@defra/forms-model 3.0.246 → 3.0.248

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/module/components/component-types.js +0 -7
  2. package/dist/module/components/component-types.js.map +1 -1
  3. package/dist/module/components/enums.js +0 -1
  4. package/dist/module/components/enums.js.map +1 -1
  5. package/dist/module/components/helpers.js +2 -2
  6. package/dist/module/components/helpers.js.map +1 -1
  7. package/dist/module/components/types.js.map +1 -1
  8. package/dist/module/conditions/condition-abstract.js.map +1 -1
  9. package/dist/module/conditions/condition-field.js.map +1 -1
  10. package/dist/module/conditions/condition-group-def.js.map +1 -1
  11. package/dist/module/conditions/condition-group.js.map +1 -1
  12. package/dist/module/conditions/condition-model.js +4 -4
  13. package/dist/module/conditions/condition-model.js.map +1 -1
  14. package/dist/module/conditions/condition-operators.js +21 -25
  15. package/dist/module/conditions/condition-operators.js.map +1 -1
  16. package/dist/module/conditions/condition-ref.js.map +1 -1
  17. package/dist/module/conditions/condition-values.js +17 -54
  18. package/dist/module/conditions/condition-values.js.map +1 -1
  19. package/dist/module/conditions/condition.js.map +1 -1
  20. package/dist/module/conditions/enums.js +7 -1
  21. package/dist/module/conditions/enums.js.map +1 -1
  22. package/dist/module/conditions/helpers.js.map +1 -1
  23. package/dist/module/conditions/index.js +3 -3
  24. package/dist/module/conditions/index.js.map +1 -1
  25. package/dist/module/conditions/types.js.map +1 -1
  26. package/dist/module/form/form-definition/index.js +22 -29
  27. package/dist/module/form/form-definition/index.js.map +1 -1
  28. package/dist/module/form/form-definition/types.js.map +1 -1
  29. package/dist/module/form/form-metadata/types.js.map +1 -1
  30. package/dist/types/components/component-types.d.ts.map +1 -1
  31. package/dist/types/components/enums.d.ts +0 -1
  32. package/dist/types/components/enums.d.ts.map +1 -1
  33. package/dist/types/components/helpers.d.ts.map +1 -1
  34. package/dist/types/components/types.d.ts +7 -12
  35. package/dist/types/components/types.d.ts.map +1 -1
  36. package/dist/types/conditions/condition-abstract.d.ts +3 -3
  37. package/dist/types/conditions/condition-abstract.d.ts.map +1 -1
  38. package/dist/types/conditions/condition-field.d.ts +6 -8
  39. package/dist/types/conditions/condition-field.d.ts.map +1 -1
  40. package/dist/types/conditions/condition-group-def.d.ts +5 -3
  41. package/dist/types/conditions/condition-group-def.d.ts.map +1 -1
  42. package/dist/types/conditions/condition-group.d.ts +11 -10
  43. package/dist/types/conditions/condition-group.d.ts.map +1 -1
  44. package/dist/types/conditions/condition-model.d.ts +9 -17
  45. package/dist/types/conditions/condition-model.d.ts.map +1 -1
  46. package/dist/types/conditions/condition-operators.d.ts +8 -14
  47. package/dist/types/conditions/condition-operators.d.ts.map +1 -1
  48. package/dist/types/conditions/condition-ref.d.ts +4 -4
  49. package/dist/types/conditions/condition-ref.d.ts.map +1 -1
  50. package/dist/types/conditions/condition-values.d.ts +13 -30
  51. package/dist/types/conditions/condition-values.d.ts.map +1 -1
  52. package/dist/types/conditions/condition.d.ts +5 -5
  53. package/dist/types/conditions/condition.d.ts.map +1 -1
  54. package/dist/types/conditions/enums.d.ts +6 -1
  55. package/dist/types/conditions/enums.d.ts.map +1 -1
  56. package/dist/types/conditions/helpers.d.ts +5 -2
  57. package/dist/types/conditions/helpers.d.ts.map +1 -1
  58. package/dist/types/conditions/index.d.ts +3 -3
  59. package/dist/types/conditions/index.d.ts.map +1 -1
  60. package/dist/types/conditions/types.d.ts +36 -37
  61. package/dist/types/conditions/types.d.ts.map +1 -1
  62. package/dist/types/form/form-definition/index.d.ts +0 -5
  63. package/dist/types/form/form-definition/index.d.ts.map +1 -1
  64. package/dist/types/form/form-definition/types.d.ts +6 -10
  65. package/dist/types/form/form-definition/types.d.ts.map +1 -1
  66. package/dist/types/form/form-metadata/types.d.ts +5 -0
  67. package/dist/types/form/form-metadata/types.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/src/components/component-types.ts +0 -8
  70. package/src/components/enums.ts +0 -1
  71. package/src/components/helpers.ts +1 -2
  72. package/src/components/types.ts +7 -17
  73. package/src/conditions/condition-abstract.ts +5 -5
  74. package/src/conditions/condition-field.ts +6 -4
  75. package/src/conditions/condition-group-def.ts +7 -3
  76. package/src/conditions/condition-group.ts +11 -10
  77. package/src/conditions/condition-model.ts +27 -25
  78. package/src/conditions/condition-operators.ts +29 -49
  79. package/src/conditions/condition-ref.ts +3 -3
  80. package/src/conditions/condition-values.ts +31 -89
  81. package/src/conditions/condition.ts +5 -5
  82. package/src/conditions/enums.ts +7 -1
  83. package/src/conditions/helpers.ts +10 -2
  84. package/src/conditions/index.ts +4 -6
  85. package/src/conditions/types.ts +47 -24
  86. package/src/form/form-definition/index.ts +47 -51
  87. package/src/form/form-definition/types.ts +6 -13
  88. package/src/form/form-metadata/types.ts +6 -0
@@ -23,13 +23,6 @@ export const ComponentTypes = [{
23
23
  hint: '',
24
24
  options: {},
25
25
  schema: {}
26
- }, {
27
- name: 'TimeField',
28
- title: 'Time field',
29
- type: ComponentType.TimeField,
30
- hint: '',
31
- options: {},
32
- schema: {}
33
26
  }, {
34
27
  name: 'DatePartsField',
35
28
  title: 'Date field',
@@ -1 +1 @@
1
- {"version":3,"file":"component-types.js","names":["ComponentType","ComponentTypes","name","title","type","TextField","hint","options","schema","MultilineTextField","YesNoField","TimeField","DatePartsField","MonthYearField","SelectField","list","AutocompleteField","RadiosField","CheckboxesField","NumberField","UkAddressField","TelephoneNumberField","EmailAddressField","Html","content","InsetText","Details","List"],"sources":["../../../src/components/component-types.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\n\n/**\n * Defaults for creating new components\n */\nexport const ComponentTypes: ComponentDef[] = [\n {\n name: 'TextField',\n title: 'Text field',\n type: ComponentType.TextField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'MultilineTextField',\n title: 'Multiline text field',\n type: ComponentType.MultilineTextField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'YesNoField',\n title: 'Yes/No field',\n type: ComponentType.YesNoField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'TimeField',\n title: 'Time field',\n type: ComponentType.TimeField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'DatePartsField',\n title: 'Date field',\n type: ComponentType.DatePartsField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'MonthYearField',\n title: 'Month & year field',\n type: ComponentType.MonthYearField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'SelectField',\n title: 'Select field',\n type: ComponentType.SelectField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'AutocompleteField',\n title: 'Autocomplete field',\n type: ComponentType.AutocompleteField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'RadiosField',\n title: 'Radios field',\n type: ComponentType.RadiosField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'CheckboxesField',\n title: 'Checkboxes field',\n type: ComponentType.CheckboxesField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'NumberField',\n title: 'Number field',\n type: ComponentType.NumberField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'UkAddressField',\n title: 'UK address field',\n type: ComponentType.UkAddressField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'TelephoneNumberField',\n title: 'Telephone number field',\n type: ComponentType.TelephoneNumberField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'EmailAddressField',\n title: 'Email address field',\n type: ComponentType.EmailAddressField,\n hint: 'For example, ‘name@example.com’',\n options: {},\n schema: {}\n },\n {\n name: 'Html',\n title: 'Html',\n type: ComponentType.Html,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'InsetText',\n title: 'Inset text',\n type: ComponentType.InsetText,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'Details',\n title: 'Details',\n type: ComponentType.Details,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'List',\n title: 'List',\n type: ComponentType.List,\n options: {},\n schema: {},\n list: ''\n }\n]\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"component-types.js","names":["ComponentType","ComponentTypes","name","title","type","TextField","hint","options","schema","MultilineTextField","YesNoField","DatePartsField","MonthYearField","SelectField","list","AutocompleteField","RadiosField","CheckboxesField","NumberField","UkAddressField","TelephoneNumberField","EmailAddressField","Html","content","InsetText","Details","List"],"sources":["../../../src/components/component-types.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\n\n/**\n * Defaults for creating new components\n */\nexport const ComponentTypes: ComponentDef[] = [\n {\n name: 'TextField',\n title: 'Text field',\n type: ComponentType.TextField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'MultilineTextField',\n title: 'Multiline text field',\n type: ComponentType.MultilineTextField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'YesNoField',\n title: 'Yes/No field',\n type: ComponentType.YesNoField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'DatePartsField',\n title: 'Date field',\n type: ComponentType.DatePartsField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'MonthYearField',\n title: 'Month & year field',\n type: ComponentType.MonthYearField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'SelectField',\n title: 'Select field',\n type: ComponentType.SelectField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'AutocompleteField',\n title: 'Autocomplete field',\n type: ComponentType.AutocompleteField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'RadiosField',\n title: 'Radios field',\n type: ComponentType.RadiosField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'CheckboxesField',\n title: 'Checkboxes field',\n type: ComponentType.CheckboxesField,\n options: {},\n schema: {},\n list: ''\n },\n {\n name: 'NumberField',\n title: 'Number field',\n type: ComponentType.NumberField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'UkAddressField',\n title: 'UK address field',\n type: ComponentType.UkAddressField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'TelephoneNumberField',\n title: 'Telephone number field',\n type: ComponentType.TelephoneNumberField,\n hint: '',\n options: {},\n schema: {}\n },\n {\n name: 'EmailAddressField',\n title: 'Email address field',\n type: ComponentType.EmailAddressField,\n hint: 'For example, ‘name@example.com’',\n options: {},\n schema: {}\n },\n {\n name: 'Html',\n title: 'Html',\n type: ComponentType.Html,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'InsetText',\n title: 'Inset text',\n type: ComponentType.InsetText,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'Details',\n title: 'Details',\n type: ComponentType.Details,\n content: '',\n options: {},\n schema: {}\n },\n {\n name: 'List',\n title: 'List',\n type: ComponentType.List,\n options: {},\n schema: {},\n list: ''\n }\n]\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,6 @@ export let ComponentType = /*#__PURE__*/function (ComponentType) {
2
2
  ComponentType["TextField"] = "TextField";
3
3
  ComponentType["MultilineTextField"] = "MultilineTextField";
4
4
  ComponentType["YesNoField"] = "YesNoField";
5
- ComponentType["TimeField"] = "TimeField";
6
5
  ComponentType["DatePartsField"] = "DatePartsField";
7
6
  ComponentType["MonthYearField"] = "MonthYearField";
8
7
  ComponentType["SelectField"] = "SelectField";
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","names":["ComponentType"],"sources":["../../../src/components/enums.ts"],"sourcesContent":["export enum ComponentType {\n TextField = 'TextField',\n MultilineTextField = 'MultilineTextField',\n YesNoField = 'YesNoField',\n TimeField = 'TimeField',\n DatePartsField = 'DatePartsField',\n MonthYearField = 'MonthYearField',\n SelectField = 'SelectField',\n AutocompleteField = 'AutocompleteField',\n RadiosField = 'RadiosField',\n CheckboxesField = 'CheckboxesField',\n NumberField = 'NumberField',\n UkAddressField = 'UkAddressField',\n TelephoneNumberField = 'TelephoneNumberField',\n EmailAddressField = 'EmailAddressField',\n Html = 'Html',\n InsetText = 'InsetText',\n Details = 'Details',\n List = 'List'\n}\n"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"enums.js","names":["ComponentType"],"sources":["../../../src/components/enums.ts"],"sourcesContent":["export enum ComponentType {\n TextField = 'TextField',\n MultilineTextField = 'MultilineTextField',\n YesNoField = 'YesNoField',\n DatePartsField = 'DatePartsField',\n MonthYearField = 'MonthYearField',\n SelectField = 'SelectField',\n AutocompleteField = 'AutocompleteField',\n RadiosField = 'RadiosField',\n CheckboxesField = 'CheckboxesField',\n NumberField = 'NumberField',\n UkAddressField = 'UkAddressField',\n TelephoneNumberField = 'TelephoneNumberField',\n EmailAddressField = 'EmailAddressField',\n Html = 'Html',\n InsetText = 'InsetText',\n Details = 'Details',\n List = 'List'\n}\n"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
@@ -19,7 +19,7 @@ export function hasConditionSupport(component) {
19
19
  return isConditionalType(component?.type);
20
20
  }
21
21
  export function isConditionalType(type) {
22
- const allowedTypes = [ComponentType.RadiosField, ComponentType.CheckboxesField, ComponentType.DatePartsField, ComponentType.EmailAddressField, ComponentType.MultilineTextField, ComponentType.NumberField, ComponentType.TextField, ComponentType.TimeField, ComponentType.YesNoField];
22
+ const allowedTypes = [ComponentType.RadiosField, ComponentType.CheckboxesField, ComponentType.DatePartsField, ComponentType.EmailAddressField, ComponentType.MultilineTextField, ComponentType.NumberField, ComponentType.SelectField, ComponentType.TextField, ComponentType.YesNoField];
23
23
  return !!type && allowedTypes.includes(type);
24
24
  }
25
25
 
@@ -43,7 +43,7 @@ export function hasEditor(component) {
43
43
  * Filter known components with input fields
44
44
  */
45
45
  export function hasInputField(component) {
46
- const allowedTypes = [ComponentType.TextField, ComponentType.EmailAddressField, ComponentType.NumberField, ComponentType.MultilineTextField, ComponentType.TelephoneNumberField, ComponentType.YesNoField, ComponentType.MonthYearField, ComponentType.TimeField, ComponentType.DatePartsField, ComponentType.UkAddressField];
46
+ const allowedTypes = [ComponentType.TextField, ComponentType.EmailAddressField, ComponentType.NumberField, ComponentType.MultilineTextField, ComponentType.TelephoneNumberField, ComponentType.YesNoField, ComponentType.MonthYearField, ComponentType.DatePartsField, ComponentType.UkAddressField];
47
47
  return !!component?.type && allowedTypes.includes(component.type);
48
48
  }
49
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["ComponentTypes","ComponentType","getComponentDefaults","component","type","find","hasConditionSupport","isConditionalType","allowedTypes","RadiosField","CheckboxesField","DatePartsField","EmailAddressField","MultilineTextField","NumberField","TextField","TimeField","YesNoField","includes","hasContentField","Details","Html","InsetText","hasEditor","TelephoneNumberField","AutocompleteField","SelectField","List","hasInputField","MonthYearField","UkAddressField","hasListField","hasSelectionFields","hasTitle","deniedTypes"],"sources":["../../../src/components/helpers.ts"],"sourcesContent":["import { ComponentTypes } from '~/src/components/component-types.js'\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type InputFieldsComponentsDef,\n type ComponentDef,\n type ConditionalComponentsDef,\n type ConditionalComponentType,\n type ContentComponentsDef,\n type HtmlComponent,\n type InsetTextComponent,\n type ListComponentsDef,\n type SelectionComponentsDef,\n type EditorComponentsDef\n} from '~/src/components/types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getComponentDefaults(component?: Partial<ComponentDef>) {\n if (!component?.type) {\n return\n }\n\n return ComponentTypes.find(({ type }) => type === component.type)\n}\n\n/**\n * Filter known components with support for conditions\n */\nexport function hasConditionSupport(\n component?: Partial<ComponentDef>\n): component is ConditionalComponentsDef {\n return isConditionalType(component?.type)\n}\n\nexport function isConditionalType(\n type?: ComponentType\n): type is ConditionalComponentType {\n const allowedTypes = [\n ComponentType.RadiosField,\n ComponentType.CheckboxesField,\n ComponentType.DatePartsField,\n ComponentType.EmailAddressField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.TextField,\n ComponentType.TimeField,\n ComponentType.YesNoField\n ]\n\n return !!type && allowedTypes.includes(type)\n}\n\n/**\n * Filter known components with content fields\n */\nexport function hasContentField(\n component?: Partial<ComponentDef>\n): component is ContentComponentsDef {\n const allowedTypes = [\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with text editor or list select\n */\nexport function hasEditor(\n component?: Partial<ComponentDef>\n): component is EditorComponentsDef {\n const allowedTypes = [\n ComponentType.TextField,\n ComponentType.EmailAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.AutocompleteField,\n ComponentType.SelectField,\n ComponentType.RadiosField,\n ComponentType.CheckboxesField,\n ComponentType.List,\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.DatePartsField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with input fields\n */\nexport function hasInputField(\n component?: Partial<ComponentDef>\n): component is InputFieldsComponentsDef {\n const allowedTypes = [\n ComponentType.TextField,\n ComponentType.EmailAddressField,\n ComponentType.NumberField,\n ComponentType.MultilineTextField,\n ComponentType.TelephoneNumberField,\n ComponentType.YesNoField,\n ComponentType.MonthYearField,\n ComponentType.TimeField,\n ComponentType.DatePartsField,\n ComponentType.UkAddressField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with lists\n */\nexport function hasListField(\n component?: Partial<ComponentDef>\n): component is ListComponentsDef {\n const allowedTypes = [\n ComponentType.AutocompleteField,\n ComponentType.List,\n ComponentType.RadiosField,\n ComponentType.SelectField,\n ComponentType.CheckboxesField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with selection fields\n */\nexport function hasSelectionFields(\n component?: Partial<ComponentDef>\n): component is SelectionComponentsDef {\n const allowedTypes = [\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.SelectField,\n ComponentType.YesNoField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with titles\n */\nexport function hasTitle(\n component?: Partial<ComponentDef>\n): component is Exclude<ComponentDef, InsetTextComponent | HtmlComponent> {\n const deniedTypes = [ComponentType.InsetText, ComponentType.Html]\n return !!component?.type && !deniedTypes.includes(component.type)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"helpers.js","names":["ComponentTypes","ComponentType","getComponentDefaults","component","type","find","hasConditionSupport","isConditionalType","allowedTypes","RadiosField","CheckboxesField","DatePartsField","EmailAddressField","MultilineTextField","NumberField","SelectField","TextField","YesNoField","includes","hasContentField","Details","Html","InsetText","hasEditor","TelephoneNumberField","AutocompleteField","List","hasInputField","MonthYearField","UkAddressField","hasListField","hasSelectionFields","hasTitle","deniedTypes"],"sources":["../../../src/components/helpers.ts"],"sourcesContent":["import { ComponentTypes } from '~/src/components/component-types.js'\nimport { ComponentType } from '~/src/components/enums.js'\nimport {\n type InputFieldsComponentsDef,\n type ComponentDef,\n type ConditionalComponentsDef,\n type ConditionalComponentType,\n type ContentComponentsDef,\n type HtmlComponent,\n type InsetTextComponent,\n type ListComponentsDef,\n type SelectionComponentsDef,\n type EditorComponentsDef\n} from '~/src/components/types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getComponentDefaults(component?: Partial<ComponentDef>) {\n if (!component?.type) {\n return\n }\n\n return ComponentTypes.find(({ type }) => type === component.type)\n}\n\n/**\n * Filter known components with support for conditions\n */\nexport function hasConditionSupport(\n component?: Partial<ComponentDef>\n): component is ConditionalComponentsDef {\n return isConditionalType(component?.type)\n}\n\nexport function isConditionalType(\n type?: ComponentType\n): type is ConditionalComponentType {\n const allowedTypes = [\n ComponentType.RadiosField,\n ComponentType.CheckboxesField,\n ComponentType.DatePartsField,\n ComponentType.EmailAddressField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.SelectField,\n ComponentType.TextField,\n ComponentType.YesNoField\n ]\n\n return !!type && allowedTypes.includes(type)\n}\n\n/**\n * Filter known components with content fields\n */\nexport function hasContentField(\n component?: Partial<ComponentDef>\n): component is ContentComponentsDef {\n const allowedTypes = [\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with text editor or list select\n */\nexport function hasEditor(\n component?: Partial<ComponentDef>\n): component is EditorComponentsDef {\n const allowedTypes = [\n ComponentType.TextField,\n ComponentType.EmailAddressField,\n ComponentType.TelephoneNumberField,\n ComponentType.MultilineTextField,\n ComponentType.NumberField,\n ComponentType.AutocompleteField,\n ComponentType.SelectField,\n ComponentType.RadiosField,\n ComponentType.CheckboxesField,\n ComponentType.List,\n ComponentType.Details,\n ComponentType.Html,\n ComponentType.InsetText,\n ComponentType.DatePartsField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with input fields\n */\nexport function hasInputField(\n component?: Partial<ComponentDef>\n): component is InputFieldsComponentsDef {\n const allowedTypes = [\n ComponentType.TextField,\n ComponentType.EmailAddressField,\n ComponentType.NumberField,\n ComponentType.MultilineTextField,\n ComponentType.TelephoneNumberField,\n ComponentType.YesNoField,\n ComponentType.MonthYearField,\n ComponentType.DatePartsField,\n ComponentType.UkAddressField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with lists\n */\nexport function hasListField(\n component?: Partial<ComponentDef>\n): component is ListComponentsDef {\n const allowedTypes = [\n ComponentType.AutocompleteField,\n ComponentType.List,\n ComponentType.RadiosField,\n ComponentType.SelectField,\n ComponentType.CheckboxesField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with selection fields\n */\nexport function hasSelectionFields(\n component?: Partial<ComponentDef>\n): component is SelectionComponentsDef {\n const allowedTypes = [\n ComponentType.CheckboxesField,\n ComponentType.RadiosField,\n ComponentType.SelectField,\n ComponentType.YesNoField\n ]\n\n return !!component?.type && allowedTypes.includes(component.type)\n}\n\n/**\n * Filter known components with titles\n */\nexport function hasTitle(\n component?: Partial<ComponentDef>\n): component is Exclude<ComponentDef, InsetTextComponent | HtmlComponent> {\n const deniedTypes = [ComponentType.InsetText, ComponentType.Html]\n return !!component?.type && !deniedTypes.includes(component.type)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/types.ts"],"sourcesContent":["import { type ComponentType } from '~/src/components/enums.js'\n\nexport type ConditionalComponentType =\n | ComponentType.RadiosField\n | ComponentType.CheckboxesField\n | ComponentType.DatePartsField\n | ComponentType.EmailAddressField\n | ComponentType.MultilineTextField\n | ComponentType.NumberField\n | ComponentType.TextField\n | ComponentType.TimeField\n | ComponentType.YesNoField\n\n/**\n * Types for Components JSON structure which are expected by engine and turned into actual form input/content/lists\n */\ninterface TextFieldBase {\n type:\n | ComponentType.EmailAddressField\n | ComponentType.MultilineTextField\n | ComponentType.NumberField\n | ComponentType.TelephoneNumberField\n | ComponentType.TextField\n | ComponentType.UkAddressField\n | ComponentType.YesNoField\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n classes?: string\n allow?: string\n autocomplete?: string\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n error?: unknown\n }\n}\n\ninterface NumberFieldBase {\n type: ComponentType\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n classes?: string\n prefix?: string\n suffix?: string\n }\n schema: {\n min?: number\n max?: number\n precision?: number\n }\n}\n\ninterface ListFieldBase {\n type:\n | ComponentType.AutocompleteField\n | ComponentType.CheckboxesField\n | ComponentType.List\n | ComponentType.RadiosField\n | ComponentType.SelectField\n name: string\n title: string\n options: {\n type?: string\n required?: boolean\n optionalText?: boolean\n classes?: string\n bold?: boolean\n }\n list: string\n schema: object\n}\n\ninterface ContentFieldBase {\n type: ComponentType.Details | ComponentType.Html | ComponentType.InsetText\n name: string\n title: string\n content: string\n options: {\n condition?: string\n }\n schema: object\n}\n\ninterface DateFieldBase {\n type:\n | ComponentType.DatePartsField\n | ComponentType.MonthYearField\n | ComponentType.TimeField\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n maxDaysInFuture?: number\n maxDaysInPast?: number\n }\n schema: object\n}\n\n// Text Fields\nexport interface TextFieldComponent extends TextFieldBase {\n type: ComponentType.TextField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface EmailAddressFieldComponent extends TextFieldBase {\n type: ComponentType.EmailAddressField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface NumberFieldComponent extends NumberFieldBase {\n type: ComponentType.NumberField\n options: NumberFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface TelephoneNumberFieldComponent extends TextFieldBase {\n type: ComponentType.TelephoneNumberField\n options: TextFieldBase['options'] & {\n customValidationMessage?: string\n }\n}\n\nexport interface YesNoFieldComponent extends TextFieldBase {\n type: ComponentType.YesNoField\n options: TextFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MultilineTextFieldComponent extends TextFieldBase {\n type: ComponentType.MultilineTextField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n rows?: number\n maxWords?: number\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n }\n}\n\nexport interface UkAddressFieldComponent extends TextFieldBase {\n type: ComponentType.UkAddressField\n options: TextFieldBase['options'] & {\n hideTitle?: boolean\n }\n}\n\n// Date Fields\nexport interface DatePartsFieldFieldComponent extends DateFieldBase {\n type: ComponentType.DatePartsField\n options: DateFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MonthYearFieldComponent extends DateFieldBase {\n type: ComponentType.MonthYearField\n options: DateFieldBase['options'] & {\n customValidationMessage?: string\n }\n}\n\nexport interface TimeFieldComponent extends DateFieldBase {\n type: ComponentType.TimeField\n options: DateFieldBase['options'] & {\n condition?: string\n }\n}\n\n// Content Fields\nexport interface DetailsComponent extends ContentFieldBase {\n type: ComponentType.Details\n}\n\nexport interface HtmlComponent extends ContentFieldBase {\n type: ComponentType.Html\n}\n\nexport interface InsetTextComponent extends ContentFieldBase {\n type: ComponentType.InsetText\n}\n\n// List Fields\nexport interface ListComponent extends ListFieldBase {\n type: ComponentType.List\n}\n\nexport interface AutocompleteFieldComponent extends ListFieldBase {\n type: ComponentType.AutocompleteField\n}\n\nexport interface CheckboxesFieldComponent extends ListFieldBase {\n type: ComponentType.CheckboxesField\n options: ListFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface RadiosFieldComponent extends ListFieldBase {\n type: ComponentType.RadiosField\n options: ListFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface SelectFieldComponent extends ListFieldBase {\n type: ComponentType.SelectField\n options: ListFieldBase['options'] & { autocomplete?: string }\n}\n\nexport type ComponentDef =\n | InsetTextComponent\n | AutocompleteFieldComponent\n | CheckboxesFieldComponent\n | DatePartsFieldFieldComponent\n | MonthYearFieldComponent\n | DetailsComponent\n | EmailAddressFieldComponent\n | HtmlComponent\n | ListComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n | TelephoneNumberFieldComponent\n | TextFieldComponent\n | TimeFieldComponent\n | UkAddressFieldComponent\n | YesNoFieldComponent\n\n// Components that render inputs\nexport type InputFieldsComponentsDef =\n | TextFieldComponent\n | EmailAddressFieldComponent\n | NumberFieldComponent\n | MultilineTextFieldComponent\n | TelephoneNumberFieldComponent\n | YesNoFieldComponent\n | MonthYearFieldComponent\n | TimeFieldComponent\n | DatePartsFieldFieldComponent\n | UkAddressFieldComponent\n\n// Components that render content\nexport type ContentComponentsDef =\n | DetailsComponent\n | HtmlComponent\n | InsetTextComponent\n\n// Components with editors\nexport type EditorComponentsDef =\n | TextFieldComponent\n | EmailAddressFieldComponent\n | TelephoneNumberFieldComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | AutocompleteFieldComponent\n | SelectFieldComponent\n | RadiosFieldComponent\n | CheckboxesFieldComponent\n | ListComponent\n | DetailsComponent\n | HtmlComponent\n | InsetTextComponent\n | DatePartsFieldFieldComponent\n\n// Components that render lists\nexport type ListComponentsDef =\n | ListComponent\n | AutocompleteFieldComponent\n | CheckboxesFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n\n// Components that have selection fields\nexport type SelectionComponentsDef =\n | CheckboxesFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n | YesNoFieldComponent\n\n// Components that have custom condition operators\nexport type ConditionalComponentsDef =\n | CheckboxesFieldComponent\n | DatePartsFieldFieldComponent\n | EmailAddressFieldComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | TextFieldComponent\n | TimeFieldComponent\n | YesNoFieldComponent\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/types.ts"],"sourcesContent":["import { type ComponentType } from '~/src/components/enums.js'\n\nexport type ConditionalComponentType =\n | ComponentType.RadiosField\n | ComponentType.CheckboxesField\n | ComponentType.DatePartsField\n | ComponentType.EmailAddressField\n | ComponentType.MultilineTextField\n | ComponentType.NumberField\n | ComponentType.SelectField\n | ComponentType.TextField\n | ComponentType.YesNoField\n\n/**\n * Types for Components JSON structure which are expected by engine and turned into actual form input/content/lists\n */\ninterface TextFieldBase {\n type:\n | ComponentType.EmailAddressField\n | ComponentType.MultilineTextField\n | ComponentType.NumberField\n | ComponentType.TelephoneNumberField\n | ComponentType.TextField\n | ComponentType.UkAddressField\n | ComponentType.YesNoField\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n classes?: string\n allow?: string\n autocomplete?: string\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n error?: unknown\n }\n}\n\ninterface NumberFieldBase {\n type: ComponentType\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n classes?: string\n prefix?: string\n suffix?: string\n }\n schema: {\n min?: number\n max?: number\n precision?: number\n }\n}\n\ninterface ListFieldBase {\n type:\n | ComponentType.AutocompleteField\n | ComponentType.CheckboxesField\n | ComponentType.List\n | ComponentType.RadiosField\n | ComponentType.SelectField\n name: string\n title: string\n options: {\n type?: string\n required?: boolean\n optionalText?: boolean\n classes?: string\n bold?: boolean\n }\n list: string\n schema: object\n}\n\ninterface ContentFieldBase {\n type: ComponentType.Details | ComponentType.Html | ComponentType.InsetText\n name: string\n title: string\n content: string\n options: {\n condition?: string\n }\n schema: object\n}\n\ninterface DateFieldBase {\n type: ComponentType.DatePartsField | ComponentType.MonthYearField\n name: string\n title: string\n hint?: string\n options: {\n required?: boolean\n optionalText?: boolean\n maxDaysInPast?: number\n maxDaysInFuture?: number\n }\n schema: object\n}\n\n// Text Fields\nexport interface TextFieldComponent extends TextFieldBase {\n type: ComponentType.TextField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface EmailAddressFieldComponent extends TextFieldBase {\n type: ComponentType.EmailAddressField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface NumberFieldComponent extends NumberFieldBase {\n type: ComponentType.NumberField\n options: NumberFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n }\n}\n\nexport interface TelephoneNumberFieldComponent extends TextFieldBase {\n type: ComponentType.TelephoneNumberField\n options: TextFieldBase['options'] & {\n customValidationMessage?: string\n }\n}\n\nexport interface YesNoFieldComponent extends TextFieldBase {\n type: ComponentType.YesNoField\n options: TextFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MultilineTextFieldComponent extends TextFieldBase {\n type: ComponentType.MultilineTextField\n options: TextFieldBase['options'] & {\n condition?: string\n customValidationMessage?: string\n rows?: number\n maxWords?: number\n }\n schema: {\n max?: number\n min?: number\n length?: number\n regex?: string\n }\n}\n\nexport interface UkAddressFieldComponent extends TextFieldBase {\n type: ComponentType.UkAddressField\n options: TextFieldBase['options'] & {\n hideTitle?: boolean\n }\n}\n\n// Date Fields\nexport interface DatePartsFieldFieldComponent extends DateFieldBase {\n type: ComponentType.DatePartsField\n options: DateFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface MonthYearFieldComponent extends DateFieldBase {\n type: ComponentType.MonthYearField\n options: DateFieldBase['options'] & {\n customValidationMessage?: string\n }\n}\n\n// Content Fields\nexport interface DetailsComponent extends ContentFieldBase {\n type: ComponentType.Details\n}\n\nexport interface HtmlComponent extends ContentFieldBase {\n type: ComponentType.Html\n}\n\nexport interface InsetTextComponent extends ContentFieldBase {\n type: ComponentType.InsetText\n}\n\n// List Fields\nexport interface ListComponent extends ListFieldBase {\n type: ComponentType.List\n}\n\nexport interface AutocompleteFieldComponent extends ListFieldBase {\n type: ComponentType.AutocompleteField\n}\n\nexport interface CheckboxesFieldComponent extends ListFieldBase {\n type: ComponentType.CheckboxesField\n options: ListFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface RadiosFieldComponent extends ListFieldBase {\n type: ComponentType.RadiosField\n options: ListFieldBase['options'] & {\n condition?: string\n }\n}\n\nexport interface SelectFieldComponent extends ListFieldBase {\n type: ComponentType.SelectField\n options: ListFieldBase['options'] & {\n autocomplete?: string\n condition?: string\n }\n}\n\nexport type ComponentDef =\n | InsetTextComponent\n | AutocompleteFieldComponent\n | CheckboxesFieldComponent\n | DatePartsFieldFieldComponent\n | MonthYearFieldComponent\n | DetailsComponent\n | EmailAddressFieldComponent\n | HtmlComponent\n | ListComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n | TelephoneNumberFieldComponent\n | TextFieldComponent\n | UkAddressFieldComponent\n | YesNoFieldComponent\n\n// Components that render inputs\nexport type InputFieldsComponentsDef =\n | TextFieldComponent\n | EmailAddressFieldComponent\n | NumberFieldComponent\n | MultilineTextFieldComponent\n | TelephoneNumberFieldComponent\n | YesNoFieldComponent\n | MonthYearFieldComponent\n | DatePartsFieldFieldComponent\n | UkAddressFieldComponent\n\n// Components that render content\nexport type ContentComponentsDef =\n | DetailsComponent\n | HtmlComponent\n | InsetTextComponent\n\n// Components with editors\nexport type EditorComponentsDef =\n | TextFieldComponent\n | EmailAddressFieldComponent\n | TelephoneNumberFieldComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | AutocompleteFieldComponent\n | SelectFieldComponent\n | RadiosFieldComponent\n | CheckboxesFieldComponent\n | ListComponent\n | DetailsComponent\n | HtmlComponent\n | InsetTextComponent\n | DatePartsFieldFieldComponent\n\n// Components that render lists\nexport type ListComponentsDef =\n | ListComponent\n | AutocompleteFieldComponent\n | CheckboxesFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n\n// Components that have selection fields\nexport type SelectionComponentsDef =\n | CheckboxesFieldComponent\n | RadiosFieldComponent\n | SelectFieldComponent\n | YesNoFieldComponent\n\n// Components that have custom condition operators\nexport type ConditionalComponentsDef =\n | CheckboxesFieldComponent\n | DatePartsFieldFieldComponent\n | EmailAddressFieldComponent\n | MultilineTextFieldComponent\n | NumberFieldComponent\n | TextFieldComponent\n | YesNoFieldComponent\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"condition-abstract.js","names":["Coordinator","ConditionAbstract","coordinator","constructor","Object","values","includes","Error","coordinatorString","getCoordinator","setCoordinator","isGroup","getGroupedConditions","_asFirstCondition","asFirstCondition","clone","conditionString","conditionExpression"],"sources":["../../../src/conditions/condition-abstract.ts"],"sourcesContent":["import { Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionAbstract {\n coordinator: Coordinator | undefined\n\n constructor(coordinator: Coordinator | undefined) {\n if (coordinator && !Object.values(Coordinator).includes(coordinator)) {\n throw Error(`coordinator ${coordinator} is not a valid coordinator`)\n }\n\n this.coordinator = coordinator\n }\n\n coordinatorString() {\n return this.coordinator ? `${this.coordinator} ` : ''\n }\n\n getCoordinator() {\n return this.coordinator\n }\n\n setCoordinator(coordinator: Coordinator | undefined) {\n this.coordinator = coordinator\n }\n\n isGroup() {\n return false\n }\n\n getGroupedConditions() {\n return [this]\n }\n\n _asFirstCondition() {\n delete this.coordinator\n }\n\n asFirstCondition() {\n throw Error(\n 'Unsupported Operation. Method asFirstCondition have not been implemented'\n )\n }\n\n clone() {\n throw Error('Unsupported Operation. Method clone have not been implemented')\n }\n\n conditionString() {\n throw Error(\n 'Unsupported Operation. Method conditionString have not been implemented'\n )\n }\n\n conditionExpression() {\n throw Error(\n 'Unsupported Operation. Method conditionExpression have not been implemented'\n )\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,OAAO,MAAMC,iBAAiB,CAAC;EAC7BC,WAAW;EAEXC,WAAWA,CAACD,WAAoC,EAAE;IAChD,IAAIA,WAAW,IAAI,CAACE,MAAM,CAACC,MAAM,CAACL,WAAW,CAAC,CAACM,QAAQ,CAACJ,WAAW,CAAC,EAAE;MACpE,MAAMK,KAAK,CAAC,eAAeL,WAAW,6BAA6B,CAAC;IACtE;IAEA,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAM,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACN,WAAW,GAAG,GAAG,IAAI,CAACA,WAAW,GAAG,GAAG,EAAE;EACvD;EAEAO,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAACP,WAAW;EACzB;EAEAQ,cAAcA,CAACR,WAAoC,EAAE;IACnD,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAS,OAAOA,CAAA,EAAG;IACR,OAAO,KAAK;EACd;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,OAAO,CAAC,IAAI,CAAC;EACf;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACX,WAAW;EACzB;EAEAY,gBAAgBA,CAAA,EAAG;IACjB,MAAMP,KAAK,CACT,0EACF,CAAC;EACH;EAEAQ,KAAKA,CAAA,EAAG;IACN,MAAMR,KAAK,CAAC,+DAA+D,CAAC;EAC9E;EAEAS,eAAeA,CAAA,EAAG;IAChB,MAAMT,KAAK,CACT,yEACF,CAAC;EACH;EAEAU,mBAAmBA,CAAA,EAAG;IACpB,MAAMV,KAAK,CACT,6EACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-abstract.js","names":["Coordinator","ConditionAbstract","coordinator","constructor","Object","values","includes","Error","coordinatorString","getCoordinator","setCoordinator","isGroup","getGroupedConditions","_asFirstCondition","asFirstCondition","clone","conditionString","conditionExpression"],"sources":["../../../src/conditions/condition-abstract.ts"],"sourcesContent":["import { Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionAbstract {\n coordinator?: Coordinator\n\n constructor(coordinator?: Coordinator) {\n if (coordinator && !Object.values(Coordinator).includes(coordinator)) {\n throw Error(`coordinator ${coordinator} is not a valid coordinator`)\n }\n\n this.coordinator = coordinator\n }\n\n coordinatorString(): string {\n return this.coordinator ? `${this.coordinator} ` : ''\n }\n\n getCoordinator(): Coordinator | undefined {\n return this.coordinator\n }\n\n setCoordinator(coordinator?: Coordinator) {\n this.coordinator = coordinator\n }\n\n isGroup() {\n return false\n }\n\n getGroupedConditions() {\n return [this]\n }\n\n _asFirstCondition() {\n delete this.coordinator\n }\n\n asFirstCondition() {\n throw Error(\n 'Unsupported Operation. Method asFirstCondition have not been implemented'\n )\n }\n\n clone() {\n throw Error('Unsupported Operation. Method clone have not been implemented')\n }\n\n conditionString() {\n throw Error(\n 'Unsupported Operation. Method conditionString have not been implemented'\n )\n }\n\n conditionExpression() {\n throw Error(\n 'Unsupported Operation. Method conditionExpression have not been implemented'\n )\n }\n}\n"],"mappings":"AAAA,SAASA,WAAW;AAEpB,OAAO,MAAMC,iBAAiB,CAAC;EAC7BC,WAAW;EAEXC,WAAWA,CAACD,WAAyB,EAAE;IACrC,IAAIA,WAAW,IAAI,CAACE,MAAM,CAACC,MAAM,CAACL,WAAW,CAAC,CAACM,QAAQ,CAACJ,WAAW,CAAC,EAAE;MACpE,MAAMK,KAAK,CAAC,eAAeL,WAAW,6BAA6B,CAAC;IACtE;IAEA,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAM,iBAAiBA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACN,WAAW,GAAG,GAAG,IAAI,CAACA,WAAW,GAAG,GAAG,EAAE;EACvD;EAEAO,cAAcA,CAAA,EAA4B;IACxC,OAAO,IAAI,CAACP,WAAW;EACzB;EAEAQ,cAAcA,CAACR,WAAyB,EAAE;IACxC,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAS,OAAOA,CAAA,EAAG;IACR,OAAO,KAAK;EACd;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,OAAO,CAAC,IAAI,CAAC;EACf;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACX,WAAW;EACzB;EAEAY,gBAAgBA,CAAA,EAAG;IACjB,MAAMP,KAAK,CACT,0EACF,CAAC;EACH;EAEAQ,KAAKA,CAAA,EAAG;IACN,MAAMR,KAAK,CAAC,+DAA+D,CAAC;EAC9E;EAEAS,eAAeA,CAAA,EAAG;IAChB,MAAMT,KAAK,CACT,yEACF,CAAC;EACH;EAEAU,mBAAmBA,CAAA,EAAG;IACpB,MAAMV,KAAK,CACT,6EACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"condition-field.js","names":["isConditionalType","ConditionField","name","type","display","constructor","Error","from","obj"],"sources":["../../../src/conditions/condition-field.ts"],"sourcesContent":["import { type ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType } from '~/src/components/helpers.js'\n\nexport class ConditionField {\n name\n type\n display\n\n constructor(name?: string, type?: ComponentType, display?: string) {\n if (!name || typeof name !== 'string') {\n throw new Error(\"ConditionField param 'name' must be a string\")\n }\n\n if (!isConditionalType(type)) {\n throw new Error(\"ConditionField param 'type' must support conditions\")\n }\n\n if (!display || typeof display !== 'string') {\n throw new Error(\"ConditionField param 'display' must be a string\")\n }\n\n this.name = name\n this.type = type\n this.display = display\n }\n\n static from(obj: { name: string; type: ComponentType; display: string }) {\n return new ConditionField(obj.name, obj.type, obj.display)\n }\n}\n"],"mappings":"AACA,SAASA,iBAAiB;AAE1B,OAAO,MAAMC,cAAc,CAAC;EAC1BC,IAAI;EACJC,IAAI;EACJC,OAAO;EAEPC,WAAWA,CAACH,IAAa,EAAEC,IAAoB,EAAEC,OAAgB,EAAE;IACjE,IAAI,CAACF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACrC,MAAM,IAAII,KAAK,CAAC,8CAA8C,CAAC;IACjE;IAEA,IAAI,CAACN,iBAAiB,CAACG,IAAI,CAAC,EAAE;MAC5B,MAAM,IAAIG,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,IAAI,CAACF,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC3C,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;IACpE;IAEA,IAAI,CAACJ,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,OAAOG,IAAIA,CAACC,GAA2D,EAAE;IACvE,OAAO,IAAIP,cAAc,CAACO,GAAG,CAACN,IAAI,EAAEM,GAAG,CAACL,IAAI,EAAEK,GAAG,CAACJ,OAAO,CAAC;EAC5D;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-field.js","names":["isConditionalType","ConditionField","name","type","display","constructor","Error","from","obj"],"sources":["../../../src/conditions/condition-field.ts"],"sourcesContent":["import { type ComponentType } from '~/src/components/enums.js'\nimport { isConditionalType } from '~/src/components/helpers.js'\nimport { type ConditionalComponentType } from '~/src/components/types.js'\nimport { type ConditionFieldData } from '~/src/conditions/types.js'\n\nexport class ConditionField {\n name: string\n type: ConditionalComponentType\n display: string\n\n constructor(name?: string, type?: ComponentType, display?: string) {\n if (!name || typeof name !== 'string') {\n throw new Error(\"ConditionField param 'name' must be a string\")\n }\n\n if (!isConditionalType(type)) {\n throw new Error(\"ConditionField param 'type' must support conditions\")\n }\n\n if (!display || typeof display !== 'string') {\n throw new Error(\"ConditionField param 'display' must be a string\")\n }\n\n this.name = name\n this.type = type\n this.display = display\n }\n\n static from(obj: ConditionField | ConditionFieldData) {\n return new ConditionField(obj.name, obj.type, obj.display)\n }\n}\n"],"mappings":"AACA,SAASA,iBAAiB;AAI1B,OAAO,MAAMC,cAAc,CAAC;EAC1BC,IAAI;EACJC,IAAI;EACJC,OAAO;EAEPC,WAAWA,CAACH,IAAa,EAAEC,IAAoB,EAAEC,OAAgB,EAAE;IACjE,IAAI,CAACF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MACrC,MAAM,IAAII,KAAK,CAAC,8CAA8C,CAAC;IACjE;IAEA,IAAI,CAACN,iBAAiB,CAACG,IAAI,CAAC,EAAE;MAC5B,MAAM,IAAIG,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,IAAI,CAACF,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;MAC3C,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;IACpE;IAEA,IAAI,CAACJ,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,OAAOG,IAAIA,CAACC,GAAwC,EAAE;IACpD,OAAO,IAAIP,cAAc,CAACO,GAAG,CAACN,IAAI,EAAEM,GAAG,CAACL,IAAI,EAAEK,GAAG,CAACJ,OAAO,CAAC;EAC5D;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"condition-group-def.js","names":["ConditionGroupDef","first","last","constructor","Error","contains","index","startsWith","applyTo","conditions","splice"],"sources":["../../../src/conditions/condition-group-def.ts"],"sourcesContent":["import { type ConditionsArray } from '~/src/conditions/types.js'\n\nexport class ConditionGroupDef {\n first: number\n last: number\n\n constructor(first: number, last: number) {\n if (typeof first !== 'number' || typeof last !== 'number') {\n throw Error(`Cannot construct a group from ${first} and ${last}`)\n } else if (first >= last) {\n throw Error(`Last (${last}) must be greater than first (${first})`)\n }\n\n this.first = first\n this.last = last\n }\n\n contains(index: number) {\n return this.first <= index && this.last >= index\n }\n\n startsWith(index: number) {\n return this.first === index\n }\n\n applyTo(conditions: ConditionsArray) {\n return [...conditions].splice(this.first, this.last - this.first + 1)\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,iBAAiB,CAAC;EAC7BC,KAAK;EACLC,IAAI;EAEJC,WAAWA,CAACF,KAAa,EAAEC,IAAY,EAAE;IACvC,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;MACzD,MAAME,KAAK,CAAC,iCAAiCH,KAAK,QAAQC,IAAI,EAAE,CAAC;IACnE,CAAC,MAAM,IAAID,KAAK,IAAIC,IAAI,EAAE;MACxB,MAAME,KAAK,CAAC,SAASF,IAAI,iCAAiCD,KAAK,GAAG,CAAC;IACrE;IAEA,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EAEAG,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAO,IAAI,CAACL,KAAK,IAAIK,KAAK,IAAI,IAAI,CAACJ,IAAI,IAAII,KAAK;EAClD;EAEAC,UAAUA,CAACD,KAAa,EAAE;IACxB,OAAO,IAAI,CAACL,KAAK,KAAKK,KAAK;EAC7B;EAEAE,OAAOA,CAACC,UAA2B,EAAE;IACnC,OAAO,CAAC,GAAGA,UAAU,CAAC,CAACC,MAAM,CAAC,IAAI,CAACT,KAAK,EAAE,IAAI,CAACC,IAAI,GAAG,IAAI,CAACD,KAAK,GAAG,CAAC,CAAC;EACvE;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-group-def.js","names":["ConditionGroupDef","first","last","constructor","Error","contains","index","startsWith","applyTo","conditions","splice"],"sources":["../../../src/conditions/condition-group-def.ts"],"sourcesContent":["import { type ConditionGroup } from '~/src/conditions/condition-group.js'\nimport { type ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { type Condition } from '~/src/conditions/condition.js'\n\nexport class ConditionGroupDef {\n first: number\n last: number\n\n constructor(first?: number, last?: number) {\n if (typeof first !== 'number' || typeof last !== 'number') {\n throw Error(`Cannot construct a group from ${first} and ${last}`)\n } else if (first >= last) {\n throw Error(`Last (${last}) must be greater than first (${first})`)\n }\n\n this.first = first\n this.last = last\n }\n\n contains(index: number) {\n return this.first <= index && this.last >= index\n }\n\n startsWith(index: number) {\n return this.first === index\n }\n\n applyTo(\n conditions: (Condition | ConditionRef | ConditionGroup)[]\n ): (Condition | ConditionRef | ConditionGroup)[] {\n return [...conditions].splice(this.first, this.last - this.first + 1)\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,iBAAiB,CAAC;EAC7BC,KAAK;EACLC,IAAI;EAEJC,WAAWA,CAACF,KAAc,EAAEC,IAAa,EAAE;IACzC,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOC,IAAI,KAAK,QAAQ,EAAE;MACzD,MAAME,KAAK,CAAC,iCAAiCH,KAAK,QAAQC,IAAI,EAAE,CAAC;IACnE,CAAC,MAAM,IAAID,KAAK,IAAIC,IAAI,EAAE;MACxB,MAAME,KAAK,CAAC,SAASF,IAAI,iCAAiCD,KAAK,GAAG,CAAC;IACrE;IAEA,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EAEAG,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAO,IAAI,CAACL,KAAK,IAAIK,KAAK,IAAI,IAAI,CAACJ,IAAI,IAAII,KAAK;EAClD;EAEAC,UAAUA,CAACD,KAAa,EAAE;IACxB,OAAO,IAAI,CAACL,KAAK,KAAKK,KAAK;EAC7B;EAEAE,OAAOA,CACLC,UAAyD,EACV;IAC/C,OAAO,CAAC,GAAGA,UAAU,CAAC,CAACC,MAAM,CAAC,IAAI,CAACT,KAAK,EAAE,IAAI,CAACC,IAAI,GAAG,IAAI,CAACD,KAAK,GAAG,CAAC,CAAC;EACvE;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"condition-group.js","names":["toPresentationString","toExpression","ConditionGroup","conditions","constructor","Array","isArray","length","Error","coordinatorString","conditionString","copy","splice","map","condition","join","conditionExpression","asFirstCondition","getCoordinator","setCoordinator","coordinator","isGroup","getGroupedConditions","clone"],"sources":["../../../src/conditions/condition-group.ts"],"sourcesContent":["import { type Coordinator } from '~/src/conditions/enums.js'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers.js'\nimport { type ConditionsArray } from '~/src/conditions/types.js'\n\nexport class ConditionGroup {\n conditions: ConditionsArray\n\n constructor(conditions: ConditionsArray = []) {\n if (!Array.isArray(conditions) || conditions.length < 2) {\n throw Error('Cannot construct a condition group from a single condition')\n }\n\n this.conditions = conditions\n }\n\n coordinatorString() {\n return this.conditions[0].coordinatorString()\n }\n\n conditionString() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionString()} ${copy\n .map((condition) => toPresentationString(condition))\n .join(' ')})`\n }\n\n conditionExpression() {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionExpression()} ${copy\n .map((condition) => toExpression(condition))\n .join(' ')})`\n }\n\n asFirstCondition() {\n this.conditions[0].asFirstCondition()\n return this\n }\n\n getCoordinator() {\n return this.conditions[0].getCoordinator()\n }\n\n setCoordinator(coordinator: Coordinator | undefined) {\n this.conditions[0].setCoordinator(coordinator)\n }\n\n isGroup() {\n return true\n }\n\n getGroupedConditions() {\n return this.conditions.map((condition) => condition.clone())\n }\n\n clone() {\n return new ConditionGroup(\n this.conditions.map((condition) => condition.clone())\n )\n }\n}\n"],"mappings":"AACA,SAASA,oBAAoB,EAAEC,YAAY;AAG3C,OAAO,MAAMC,cAAc,CAAC;EAC1BC,UAAU;EAEVC,WAAWA,CAACD,UAA2B,GAAG,EAAE,EAAE;IAC5C,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,IAAIA,UAAU,CAACI,MAAM,GAAG,CAAC,EAAE;MACvD,MAAMC,KAAK,CAAC,4DAA4D,CAAC;IAC3E;IAEA,IAAI,CAACL,UAAU,GAAGA,UAAU;EAC9B;EAEAM,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACN,UAAU,CAAC,CAAC,CAAC,CAACM,iBAAiB,CAAC,CAAC;EAC/C;EAEAC,eAAeA,CAAA,EAAG;IAChB,MAAMC,IAAI,GAAG,CAAC,GAAG,IAAI,CAACR,UAAU,CAAC;IACjCQ,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,IAAI,IAAI,CAACT,UAAU,CAAC,CAAC,CAAC,CAACO,eAAe,CAAC,CAAC,IAAIC,IAAI,CACpDE,GAAG,CAAEC,SAAS,IAAKd,oBAAoB,CAACc,SAAS,CAAC,CAAC,CACnDC,IAAI,CAAC,GAAG,CAAC,GAAG;EACjB;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,MAAML,IAAI,GAAG,CAAC,GAAG,IAAI,CAACR,UAAU,CAAC;IACjCQ,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,IAAI,IAAI,CAACT,UAAU,CAAC,CAAC,CAAC,CAACa,mBAAmB,CAAC,CAAC,IAAIL,IAAI,CACxDE,GAAG,CAAEC,SAAS,IAAKb,YAAY,CAACa,SAAS,CAAC,CAAC,CAC3CC,IAAI,CAAC,GAAG,CAAC,GAAG;EACjB;EAEAE,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACd,UAAU,CAAC,CAAC,CAAC,CAACc,gBAAgB,CAAC,CAAC;IACrC,OAAO,IAAI;EACb;EAEAC,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAACf,UAAU,CAAC,CAAC,CAAC,CAACe,cAAc,CAAC,CAAC;EAC5C;EAEAC,cAAcA,CAACC,WAAoC,EAAE;IACnD,IAAI,CAACjB,UAAU,CAAC,CAAC,CAAC,CAACgB,cAAc,CAACC,WAAW,CAAC;EAChD;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI;EACb;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,OAAO,IAAI,CAACnB,UAAU,CAACU,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACS,KAAK,CAAC,CAAC,CAAC;EAC9D;EAEAA,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIrB,cAAc,CACvB,IAAI,CAACC,UAAU,CAACU,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACS,KAAK,CAAC,CAAC,CACtD,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-group.js","names":["toPresentationString","toExpression","ConditionGroup","conditions","constructor","Array","isArray","length","Error","coordinatorString","conditionString","copy","splice","map","condition","join","conditionExpression","asFirstCondition","getCoordinator","setCoordinator","coordinator","isGroup","getGroupedConditions","clone"],"sources":["../../../src/conditions/condition-group.ts"],"sourcesContent":["import { type ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { type Condition } from '~/src/conditions/condition.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers.js'\n\nexport class ConditionGroup {\n conditions: (Condition | ConditionRef | ConditionGroup)[]\n\n constructor(conditions: (Condition | ConditionRef | ConditionGroup)[] = []) {\n if (!Array.isArray(conditions) || conditions.length < 2) {\n throw Error('Cannot construct a condition group from a single condition')\n }\n\n this.conditions = conditions\n }\n\n coordinatorString(): string {\n return this.conditions[0].coordinatorString()\n }\n\n conditionString(): string {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionString()} ${copy\n .map((condition) => toPresentationString(condition))\n .join(' ')})`\n }\n\n conditionExpression(): string {\n const copy = [...this.conditions]\n copy.splice(0, 1)\n return `(${this.conditions[0].conditionExpression()} ${copy\n .map((condition) => toExpression(condition))\n .join(' ')})`\n }\n\n asFirstCondition() {\n this.conditions[0].asFirstCondition()\n return this\n }\n\n getCoordinator(): Coordinator | undefined {\n return this.conditions[0].getCoordinator()\n }\n\n setCoordinator(coordinator?: Coordinator) {\n this.conditions[0].setCoordinator(coordinator)\n }\n\n isGroup() {\n return true\n }\n\n getGroupedConditions(): (Condition | ConditionRef | ConditionGroup)[] {\n return this.conditions.map((condition) => condition.clone())\n }\n\n clone(): ConditionGroup {\n return new ConditionGroup(\n this.conditions.map((condition) => condition.clone())\n )\n }\n}\n"],"mappings":"AAGA,SAASA,oBAAoB,EAAEC,YAAY;AAE3C,OAAO,MAAMC,cAAc,CAAC;EAC1BC,UAAU;EAEVC,WAAWA,CAACD,UAAyD,GAAG,EAAE,EAAE;IAC1E,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,UAAU,CAAC,IAAIA,UAAU,CAACI,MAAM,GAAG,CAAC,EAAE;MACvD,MAAMC,KAAK,CAAC,4DAA4D,CAAC;IAC3E;IAEA,IAAI,CAACL,UAAU,GAAGA,UAAU;EAC9B;EAEAM,iBAAiBA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACN,UAAU,CAAC,CAAC,CAAC,CAACM,iBAAiB,CAAC,CAAC;EAC/C;EAEAC,eAAeA,CAAA,EAAW;IACxB,MAAMC,IAAI,GAAG,CAAC,GAAG,IAAI,CAACR,UAAU,CAAC;IACjCQ,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,IAAI,IAAI,CAACT,UAAU,CAAC,CAAC,CAAC,CAACO,eAAe,CAAC,CAAC,IAAIC,IAAI,CACpDE,GAAG,CAAEC,SAAS,IAAKd,oBAAoB,CAACc,SAAS,CAAC,CAAC,CACnDC,IAAI,CAAC,GAAG,CAAC,GAAG;EACjB;EAEAC,mBAAmBA,CAAA,EAAW;IAC5B,MAAML,IAAI,GAAG,CAAC,GAAG,IAAI,CAACR,UAAU,CAAC;IACjCQ,IAAI,CAACC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,IAAI,IAAI,CAACT,UAAU,CAAC,CAAC,CAAC,CAACa,mBAAmB,CAAC,CAAC,IAAIL,IAAI,CACxDE,GAAG,CAAEC,SAAS,IAAKb,YAAY,CAACa,SAAS,CAAC,CAAC,CAC3CC,IAAI,CAAC,GAAG,CAAC,GAAG;EACjB;EAEAE,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACd,UAAU,CAAC,CAAC,CAAC,CAACc,gBAAgB,CAAC,CAAC;IACrC,OAAO,IAAI;EACb;EAEAC,cAAcA,CAAA,EAA4B;IACxC,OAAO,IAAI,CAACf,UAAU,CAAC,CAAC,CAAC,CAACe,cAAc,CAAC,CAAC;EAC5C;EAEAC,cAAcA,CAACC,WAAyB,EAAE;IACxC,IAAI,CAACjB,UAAU,CAAC,CAAC,CAAC,CAACgB,cAAc,CAACC,WAAW,CAAC;EAChD;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI;EACb;EAEAC,oBAAoBA,CAAA,EAAkD;IACpE,OAAO,IAAI,CAACnB,UAAU,CAACU,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACS,KAAK,CAAC,CAAC,CAAC;EAC9D;EAEAA,KAAKA,CAAA,EAAmB;IACtB,OAAO,IAAIrB,cAAc,CACvB,IAAI,CAACC,UAAU,CAACU,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACS,KAAK,CAAC,CAAC,CACtD,CAAC;EACH;AACF","ignoreList":[]}
@@ -90,7 +90,7 @@ export class ConditionsModel {
90
90
  }
91
91
  switchCoordinators() {
92
92
  this.#userGroupedConditions[1].setCoordinator(this.#userGroupedConditions[0].getCoordinator());
93
- this.#userGroupedConditions[0].setCoordinator(undefined);
93
+ this.#userGroupedConditions[0].setCoordinator();
94
94
  }
95
95
  get asPerUserGroupings() {
96
96
  return [...this.#userGroupedConditions];
@@ -164,7 +164,7 @@ export class ConditionsModel {
164
164
  const name = this.#conditionName;
165
165
  const conditions = this.#userGroupedConditions;
166
166
  return {
167
- name,
167
+ name: name ?? '',
168
168
  conditions: conditions.map(it => it.clone())
169
169
  };
170
170
  }
@@ -181,7 +181,7 @@ export class ConditionsModel {
181
181
  return toReturn;
182
182
  }
183
183
  }
184
- const conditionFrom = function (it) {
184
+ function conditionFrom(it) {
185
185
  if ('conditions' in it) {
186
186
  return new ConditionGroup(it.conditions.map(condition => conditionFrom(condition)));
187
187
  }
@@ -189,5 +189,5 @@ const conditionFrom = function (it) {
189
189
  return new ConditionRef(it.conditionName, it.conditionDisplayName, it.coordinator);
190
190
  }
191
191
  return new Condition(ConditionField.from(it.field), it.operator, conditionValueFrom(it.value), it.coordinator);
192
- };
192
+ }
193
193
  //# sourceMappingURL=condition-model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-model.js","names":["ConditionField","ConditionGroupDef","ConditionGroup","ConditionRef","conditionValueFrom","Condition","Coordinator","toPresentationString","toExpression","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","undefined","clone","toReturn","map","it","clear","name","add","condition","coordinatorExpected","length","getCoordinator","Error","push","_applyGroups","replace","index","splice","remove","indexes","filter","_condition","includes","asFirstCondition","addGroups","groupDefs","_group","splitGroup","_ungroup","moveEarlier","switchCoordinators","moveLater","setCoordinator","asPerUserGroupings","hasConditions","lastIndex","join","correctedUserGroups","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","OR","hasOr","hasAnd","AND","start","position","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","conditionDisplayName","coordinator","field","operator","value"],"sources":["../../../src/conditions/condition-model.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field.js'\nimport { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'\nimport { ConditionGroup } from '~/src/conditions/condition-group.js'\nimport { ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { conditionValueFrom } from '~/src/conditions/condition-values.js'\nimport { Condition } from '~/src/conditions/condition.js'\nimport { Coordinator } from '~/src/conditions/enums.js'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers.js'\nimport { type ConditionsArray } from '~/src/conditions/types.js'\n\ntype ConditionRawObject =\n | ConditionsModel\n | {\n name: string\n conditions: Condition[]\n }\n\nexport class ConditionsModel {\n #groupedConditions: ConditionsArray = []\n #userGroupedConditions: ConditionsArray = []\n #conditionName: string | undefined = undefined\n\n clone() {\n const toReturn = new ConditionsModel()\n toReturn.#groupedConditions = this.#groupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#userGroupedConditions = this.#userGroupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#conditionName = this.#conditionName\n return toReturn\n }\n\n clear() {\n this.#userGroupedConditions = []\n this.#groupedConditions = []\n this.#conditionName = undefined\n return this\n }\n\n set name(name) {\n this.#conditionName = name\n }\n\n get name() {\n return this.#conditionName\n }\n\n add(condition: Condition) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n }\n\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n replace(index: number, condition: Condition) {\n const coordinatorExpected = index !== 0\n\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n } else if (index >= this.#userGroupedConditions.length) {\n throw Error(\n `Cannot replace condition ${index} as no such condition exists`\n )\n }\n\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n remove(indexes: number[]) {\n this.#userGroupedConditions = this.#userGroupedConditions\n .filter((_condition, index) => !indexes.includes(index))\n .map((condition, index) =>\n index === 0 ? condition.asFirstCondition() : condition\n )\n\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n addGroups(groupDefs: ConditionGroupDef[]) {\n this.#userGroupedConditions = this._group(\n this.#userGroupedConditions,\n groupDefs\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n splitGroup(index: number) {\n this.#userGroupedConditions = this._ungroup(\n this.#userGroupedConditions,\n index\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n moveEarlier(index: number) {\n if (index > 0 && index < this.#userGroupedConditions.length) {\n this.#userGroupedConditions.splice(\n index - 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 1) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n moveLater(index: number) {\n if (index >= 0 && index < this.#userGroupedConditions.length - 1) {\n this.#userGroupedConditions.splice(\n index + 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 0) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n switchCoordinators() {\n this.#userGroupedConditions[1].setCoordinator(\n this.#userGroupedConditions[0].getCoordinator()\n )\n this.#userGroupedConditions[0].setCoordinator(undefined)\n }\n\n get asPerUserGroupings() {\n return [...this.#userGroupedConditions]\n }\n\n get hasConditions() {\n return this.#userGroupedConditions.length > 0\n }\n\n get lastIndex() {\n return this.#userGroupedConditions.length - 1\n }\n\n toPresentationString() {\n return this.#groupedConditions\n .map((condition) => toPresentationString(condition))\n .join(' ')\n }\n\n toExpression() {\n return this.#groupedConditions\n .map((condition) => toExpression(condition))\n .join(' ')\n }\n\n _applyGroups(\n userGroupedConditions: (Condition | ConditionGroup | ConditionRef)[]\n ) {\n const correctedUserGroups = userGroupedConditions.map((condition) =>\n condition instanceof ConditionGroup && condition.conditions.length > 2\n ? new ConditionGroup(\n this._group(\n condition.conditions,\n this._autoGroupDefs(condition.conditions)\n )\n )\n : condition\n )\n\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(conditions: ConditionsArray, groupDefs: ConditionGroupDef[]) {\n return conditions.reduce<ConditionsArray>(\n (groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n\n if (groupDef) {\n if (groupDef.startsWith(index)) {\n const groupConditions = groupDef.applyTo(conditions)\n groups.push(new ConditionGroup(groupConditions))\n }\n } else {\n groups.push(condition)\n }\n\n return groups\n },\n []\n )\n }\n\n _ungroup(conditions: ConditionsArray, splitIndex: number) {\n if (conditions[splitIndex].isGroup()) {\n const copy = [...conditions]\n copy.splice(\n splitIndex,\n 1,\n ...conditions[splitIndex].getGroupedConditions()\n )\n return copy\n }\n return conditions\n }\n\n _autoGroupDefs(conditions: ConditionsArray) {\n const orPositions: number[] = []\n\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === Coordinator.OR) {\n orPositions.push(index)\n }\n })\n\n const hasOr = orPositions.length > 0\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === Coordinator.AND\n )\n\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: ConditionGroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new ConditionGroupDef(start, position - 1))\n }\n const thisIsTheLastOr = orPositions.length === index + 1\n const thereAreMoreConditions = conditions.length - 1 > position\n if (thisIsTheLastOr && thereAreMoreConditions) {\n groupDefs.push(new ConditionGroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\n\n return []\n }\n\n toJSON() {\n const name = this.#conditionName\n const conditions = this.#userGroupedConditions\n return {\n name,\n conditions: conditions.map((it) => it.clone())\n }\n }\n\n // TODO:- why is this not a constructor?\n static from(obj: ConditionRawObject | ConditionsModel) {\n if (obj instanceof ConditionsModel) {\n return obj\n }\n const toReturn = new ConditionsModel()\n toReturn.#conditionName = obj.name\n toReturn.#userGroupedConditions = obj.conditions.map((condition) =>\n conditionFrom(condition)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\ntype ConditionFrom = (\n it: Condition | ConditionRef | ConditionGroup\n) => Condition | ConditionRef | ConditionGroup\n\nconst conditionFrom: ConditionFrom = function (it) {\n if ('conditions' in it) {\n return new ConditionGroup(\n it.conditions.map((condition) => conditionFrom(condition))\n )\n }\n\n if ('conditionName' in it) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n\n return new Condition(\n ConditionField.from(it.field),\n it.operator,\n conditionValueFrom(it.value),\n it.coordinator\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"condition-model.js","names":["ConditionField","ConditionGroupDef","ConditionGroup","ConditionRef","conditionValueFrom","Condition","Coordinator","toPresentationString","toExpression","ConditionsModel","groupedConditions","userGroupedConditions","conditionName","undefined","clone","toReturn","map","it","clear","name","add","condition","coordinatorExpected","length","getCoordinator","Error","push","_applyGroups","replace","index","splice","remove","indexes","filter","_condition","includes","asFirstCondition","addGroups","groupDefs","_group","splitGroup","_ungroup","moveEarlier","switchCoordinators","moveLater","setCoordinator","asPerUserGroupings","hasConditions","lastIndex","join","correctedUserGroups","conditions","_autoGroupDefs","reduce","groups","groupDef","find","contains","startsWith","groupConditions","applyTo","splitIndex","isGroup","copy","getGroupedConditions","orPositions","forEach","OR","hasOr","hasAnd","AND","start","position","thisIsTheLastOr","thereAreMoreConditions","toJSON","from","obj","conditionFrom","conditionDisplayName","coordinator","field","operator","value"],"sources":["../../../src/conditions/condition-model.ts"],"sourcesContent":["import { ConditionField } from '~/src/conditions/condition-field.js'\nimport { ConditionGroupDef } from '~/src/conditions/condition-group-def.js'\nimport { ConditionGroup } from '~/src/conditions/condition-group.js'\nimport { ConditionRef } from '~/src/conditions/condition-ref.js'\nimport { conditionValueFrom } from '~/src/conditions/condition-values.js'\nimport { Condition } from '~/src/conditions/condition.js'\nimport { Coordinator } from '~/src/conditions/enums.js'\nimport { toPresentationString, toExpression } from '~/src/conditions/helpers.js'\nimport {\n type ConditionData,\n type ConditionGroupData,\n type ConditionRefData,\n type ConditionsModelData\n} from '~/src/conditions/types.js'\n\nexport class ConditionsModel {\n #groupedConditions: (Condition | ConditionRef | ConditionGroup)[] = []\n #userGroupedConditions: (Condition | ConditionRef | ConditionGroup)[] = []\n #conditionName: string | undefined = undefined\n\n clone() {\n const toReturn = new ConditionsModel()\n toReturn.#groupedConditions = this.#groupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#userGroupedConditions = this.#userGroupedConditions.map((it) =>\n it.clone()\n )\n toReturn.#conditionName = this.#conditionName\n return toReturn\n }\n\n clear() {\n this.#userGroupedConditions = []\n this.#groupedConditions = []\n this.#conditionName = undefined\n return this\n }\n\n set name(name) {\n this.#conditionName = name\n }\n\n get name() {\n return this.#conditionName\n }\n\n add(condition: Condition | ConditionRef) {\n const coordinatorExpected = this.#userGroupedConditions.length !== 0\n\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n }\n\n this.#userGroupedConditions.push(condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n replace(index: number, condition: Condition) {\n const coordinatorExpected = index !== 0\n\n if (condition.getCoordinator() && !coordinatorExpected) {\n throw Error('No coordinator allowed on the first condition')\n } else if (!condition.getCoordinator() && coordinatorExpected) {\n throw Error('Coordinator must be present on subsequent conditions')\n } else if (index >= this.#userGroupedConditions.length) {\n throw Error(\n `Cannot replace condition ${index} as no such condition exists`\n )\n }\n\n this.#userGroupedConditions.splice(index, 1, condition)\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n\n return this\n }\n\n remove(indexes: number[]) {\n this.#userGroupedConditions = this.#userGroupedConditions\n .filter((_condition, index) => !indexes.includes(index))\n .map((condition, index) =>\n index === 0 ? condition.asFirstCondition() : condition\n )\n\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n addGroups(groupDefs: ConditionGroupDef[]) {\n this.#userGroupedConditions = this._group(\n this.#userGroupedConditions,\n groupDefs\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n splitGroup(index: number) {\n this.#userGroupedConditions = this._ungroup(\n this.#userGroupedConditions,\n index\n )\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n return this\n }\n\n moveEarlier(index: number) {\n if (index > 0 && index < this.#userGroupedConditions.length) {\n this.#userGroupedConditions.splice(\n index - 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 1) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n moveLater(index: number) {\n if (index >= 0 && index < this.#userGroupedConditions.length - 1) {\n this.#userGroupedConditions.splice(\n index + 1,\n 0,\n this.#userGroupedConditions.splice(index, 1)[0]\n )\n if (index === 0) {\n this.switchCoordinators()\n }\n this.#groupedConditions = this._applyGroups(this.#userGroupedConditions)\n }\n return this\n }\n\n switchCoordinators() {\n this.#userGroupedConditions[1].setCoordinator(\n this.#userGroupedConditions[0].getCoordinator()\n )\n this.#userGroupedConditions[0].setCoordinator()\n }\n\n get asPerUserGroupings() {\n return [...this.#userGroupedConditions]\n }\n\n get hasConditions() {\n return this.#userGroupedConditions.length > 0\n }\n\n get lastIndex() {\n return this.#userGroupedConditions.length - 1\n }\n\n toPresentationString() {\n return this.#groupedConditions\n .map((condition) => toPresentationString(condition))\n .join(' ')\n }\n\n toExpression() {\n return this.#groupedConditions\n .map((condition) => toExpression(condition))\n .join(' ')\n }\n\n _applyGroups(\n userGroupedConditions: (Condition | ConditionRef | ConditionGroup)[]\n ) {\n const correctedUserGroups = userGroupedConditions.map((condition) =>\n condition instanceof ConditionGroup && condition.conditions.length > 2\n ? new ConditionGroup(\n this._group(\n condition.conditions,\n this._autoGroupDefs(condition.conditions)\n )\n )\n : condition\n )\n\n return this._group(\n correctedUserGroups,\n this._autoGroupDefs(correctedUserGroups)\n )\n }\n\n _group(\n conditions: (Condition | ConditionRef | ConditionGroup)[],\n groupDefs: ConditionGroupDef[]\n ) {\n return conditions.reduce<(Condition | ConditionRef | ConditionGroup)[]>(\n (groups, condition, index, conditions) => {\n const groupDef = groupDefs.find((groupDef) => groupDef.contains(index))\n\n if (groupDef) {\n if (groupDef.startsWith(index)) {\n const groupConditions = groupDef.applyTo(conditions)\n groups.push(new ConditionGroup(groupConditions))\n }\n } else {\n groups.push(condition)\n }\n\n return groups\n },\n []\n )\n }\n\n _ungroup(\n conditions: (Condition | ConditionRef | ConditionGroup)[],\n splitIndex: number\n ) {\n if (conditions[splitIndex].isGroup()) {\n const copy = [...conditions]\n copy.splice(\n splitIndex,\n 1,\n ...conditions[splitIndex].getGroupedConditions()\n )\n return copy\n }\n return conditions\n }\n\n _autoGroupDefs(conditions: (Condition | ConditionRef | ConditionGroup)[]) {\n const orPositions: number[] = []\n\n conditions.forEach((condition, index) => {\n if (condition.getCoordinator() === Coordinator.OR) {\n orPositions.push(index)\n }\n })\n\n const hasOr = orPositions.length > 0\n const hasAnd = !!conditions.find(\n (condition) => condition.getCoordinator() === Coordinator.AND\n )\n\n if (hasAnd && hasOr) {\n let start = 0\n const groupDefs: ConditionGroupDef[] = []\n orPositions.forEach((position, index) => {\n if (start < position - 1) {\n groupDefs.push(new ConditionGroupDef(start, position - 1))\n }\n const thisIsTheLastOr = orPositions.length === index + 1\n const thereAreMoreConditions = conditions.length - 1 > position\n if (thisIsTheLastOr && thereAreMoreConditions) {\n groupDefs.push(new ConditionGroupDef(position, conditions.length - 1))\n }\n start = position\n })\n return groupDefs\n }\n\n return []\n }\n\n toJSON(): ConditionsModelData {\n const name = this.#conditionName\n const conditions = this.#userGroupedConditions\n return {\n name: name ?? '',\n conditions: conditions.map((it) => it.clone())\n }\n }\n\n // TODO:- why is this not a constructor?\n static from(obj: ConditionsModel | ConditionsModelData) {\n if (obj instanceof ConditionsModel) {\n return obj\n }\n const toReturn = new ConditionsModel()\n toReturn.#conditionName = obj.name\n toReturn.#userGroupedConditions = obj.conditions.map((condition) =>\n conditionFrom(condition)\n )\n toReturn.#groupedConditions = toReturn._applyGroups(\n toReturn.#userGroupedConditions\n )\n return toReturn\n }\n}\n\nfunction conditionFrom(\n it: ConditionData | ConditionRefData | ConditionGroupData\n): Condition | ConditionRef | ConditionGroup {\n if ('conditions' in it) {\n return new ConditionGroup(\n it.conditions.map((condition) => conditionFrom(condition))\n )\n }\n\n if ('conditionName' in it) {\n return new ConditionRef(\n it.conditionName,\n it.conditionDisplayName,\n it.coordinator\n )\n }\n\n return new Condition(\n ConditionField.from(it.field),\n it.operator,\n conditionValueFrom(it.value),\n it.coordinator\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { isConditionalType } from "../components/helpers.js";
2
2
  import { ComponentType } from "../components/enums.js";
3
- import { timeUnits, dateUnits, dateTimeUnits, ConditionValue, RelativeTimeValue } from "./condition-values.js";
3
+ import { ConditionValue, RelativeDateValue } from "./condition-values.js";
4
4
  import { DateDirections, Operator, OperatorName } from "./enums.js";
5
5
  const defaultOperators = {
6
6
  [OperatorName.Is]: inline(Operator.Is),
@@ -14,18 +14,18 @@ const textFieldOperators = {
14
14
  [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),
15
15
  [OperatorName.HasLength]: lengthIs(Operator.Is)
16
16
  };
17
- const absoluteDateTimeOperators = {
18
- [OperatorName.Is]: absoluteDateTime(Operator.Is),
19
- [OperatorName.IsNot]: absoluteDateTime(Operator.IsNot),
20
- [OperatorName.IsBefore]: absoluteDateTime(Operator.IsLessThan),
21
- [OperatorName.IsAfter]: absoluteDateTime(Operator.IsMoreThan)
17
+ const absoluteDateOperators = {
18
+ [OperatorName.Is]: absoluteDate(Operator.Is),
19
+ [OperatorName.IsNot]: absoluteDate(Operator.IsNot),
20
+ [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),
21
+ [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)
22
+ };
23
+ const relativeDateOperators = {
24
+ [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),
25
+ [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),
26
+ [OperatorName.IsLessThan]: relativeDate(Operator.IsMoreThan, Operator.IsLessThan),
27
+ [OperatorName.IsMoreThan]: relativeDate(Operator.IsLessThan, Operator.IsMoreThan)
22
28
  };
23
- const relativeTimeOperators = units => ({
24
- [OperatorName.IsAtLeast]: relativeTime(Operator.IsAtMost, Operator.IsAtLeast, units),
25
- [OperatorName.IsAtMost]: relativeTime(Operator.IsAtLeast, Operator.IsAtMost, units),
26
- [OperatorName.IsLessThan]: relativeTime(Operator.IsMoreThan, Operator.IsLessThan, units),
27
- [OperatorName.IsMoreThan]: relativeTime(Operator.IsLessThan, Operator.IsMoreThan, units)
28
- });
29
29
  export const customOperators = {
30
30
  [ComponentType.RadiosField]: defaultOperators,
31
31
  [ComponentType.CheckboxesField]: {
@@ -38,17 +38,14 @@ export const customOperators = {
38
38
  [OperatorName.IsLessThan]: inline(Operator.IsLessThan),
39
39
  [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)
40
40
  }),
41
- [ComponentType.TimeField]: {
42
- ...absoluteDateTimeOperators,
43
- ...relativeTimeOperators(timeUnits)
44
- },
45
41
  [ComponentType.DatePartsField]: {
46
- ...absoluteDateTimeOperators,
47
- ...relativeTimeOperators(dateUnits)
42
+ ...absoluteDateOperators,
43
+ ...relativeDateOperators
48
44
  },
49
45
  [ComponentType.TextField]: withDefaults(textFieldOperators),
50
46
  [ComponentType.MultilineTextField]: withDefaults(textFieldOperators),
51
47
  [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),
48
+ [ComponentType.SelectField]: defaultOperators,
52
49
  [ComponentType.YesNoField]: defaultOperators
53
50
  };
54
51
  export function getOperatorNames(fieldType) {
@@ -111,9 +108,9 @@ function formatValue(field, value) {
111
108
  }
112
109
  return `'${value.toExpression()}'`;
113
110
  }
114
- export const absoluteDateOrTimeOperatorNames = Object.keys(absoluteDateTimeOperators);
115
- export const relativeDateOrTimeOperatorNames = Object.keys(relativeTimeOperators(dateTimeUnits));
116
- function absoluteDateTime(operator) {
111
+ export const absoluteDateOperatorNames = Object.keys(absoluteDateOperators);
112
+ export const relativeDateOperatorNames = Object.keys(relativeDateOperators);
113
+ function absoluteDate(operator) {
117
114
  return {
118
115
  expression(field, value) {
119
116
  if (!(value instanceof ConditionValue)) {
@@ -123,12 +120,11 @@ function absoluteDateTime(operator) {
123
120
  }
124
121
  };
125
122
  }
126
- function relativeTime(pastOperator, futureOperator, units) {
123
+ function relativeDate(pastOperator, futureOperator) {
127
124
  return {
128
- units,
129
125
  expression(field, value) {
130
- if (!(value instanceof RelativeTimeValue)) {
131
- throw new Error("Expression param 'value' must be RelativeTimeValue instance");
126
+ if (!(value instanceof RelativeDateValue)) {
127
+ throw new Error("Expression param 'value' must be RelativeDateValue instance");
132
128
  }
133
129
  const isPast = value.direction === DateDirections.PAST;
134
130
  return `${field.name} ${isPast ? pastOperator : futureOperator} ${value.toExpression()}`;
@@ -1 +1 @@
1
- {"version":3,"file":"condition-operators.js","names":["isConditionalType","ComponentType","timeUnits","dateUnits","dateTimeUnits","ConditionValue","RelativeTimeValue","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","param","Object","assign","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateTimeOperators","absoluteDateTime","IsBefore","IsAfter","relativeTimeOperators","units","IsAtLeast","relativeTime","IsAtMost","customOperators","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","TimeField","DatePartsField","TextField","MultilineTextField","EmailAddressField","YesNoField","getOperatorNames","fieldType","conditionals","getConditionals","keys","sort","getExpression","fieldName","operator","value","expression","type","name","getOperatorConfig","field","formatValue","operatorDefinition","toExpression","absoluteDateOrTimeOperatorNames","relativeDateOrTimeOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { isConditionalType } from '../components/helpers.js'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n timeUnits,\n dateUnits,\n dateTimeUnits,\n ConditionValue,\n RelativeTimeValue\n} from '~/src/conditions/condition-values.js'\nimport {\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type DateUnits,\n type OperatorDefinition,\n type TimeUnits\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(param: T) {\n return Object.assign({}, param, defaultOperators)\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateTimeOperators = {\n [OperatorName.Is]: absoluteDateTime(Operator.Is),\n [OperatorName.IsNot]: absoluteDateTime(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDateTime(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDateTime(Operator.IsMoreThan)\n}\n\nconst relativeTimeOperators = (units: DateUnits | TimeUnits) => ({\n [OperatorName.IsAtLeast]: relativeTime(\n Operator.IsAtMost,\n Operator.IsAtLeast,\n units\n ),\n [OperatorName.IsAtMost]: relativeTime(\n Operator.IsAtLeast,\n Operator.IsAtMost,\n units\n ),\n [OperatorName.IsLessThan]: relativeTime(\n Operator.IsMoreThan,\n Operator.IsLessThan,\n units\n ),\n [OperatorName.IsMoreThan]: relativeTime(\n Operator.IsLessThan,\n Operator.IsMoreThan,\n units\n )\n})\n\nexport const customOperators = {\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.TimeField]: {\n ...absoluteDateTimeOperators,\n ...relativeTimeOperators(timeUnits)\n },\n [ComponentType.DatePartsField]: {\n ...absoluteDateTimeOperators,\n ...relativeTimeOperators(dateUnits)\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: withDefaults(textFieldOperators),\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.YesNoField]: defaultOperators\n}\n\nexport function getOperatorNames(fieldType?: ComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals).sort()\n}\n\nexport function getExpression(\n fieldType: ComponentType,\n fieldName: string,\n operator: OperatorName,\n value: ConditionValue | RelativeTimeValue\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(\n fieldType: ComponentType,\n operator: OperatorName\n) {\n return getConditionals(fieldType)?.[operator]\n}\n\nfunction getConditionals(\n fieldType?: ComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: ConditionValue | RelativeTimeValue\n) {\n if (\n 'value' in value &&\n (field.type === ComponentType.YesNoField ||\n field.type === ComponentType.NumberField)\n ) {\n return value.value\n }\n\n return `'${value.toExpression()}'`\n}\n\nexport const absoluteDateOrTimeOperatorNames = Object.keys(\n absoluteDateTimeOperators\n) as OperatorName[]\n\nexport const relativeDateOrTimeOperatorNames = Object.keys(\n relativeTimeOperators(dateTimeUnits)\n) as OperatorName[]\n\nfunction absoluteDateTime(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} '${formatValue(field, value)}'`\n }\n }\n}\n\nfunction relativeTime(\n pastOperator: Operator,\n futureOperator: Operator,\n units: DateUnits | TimeUnits\n): OperatorDefinition {\n return {\n units,\n expression(field, value) {\n if (!(value instanceof RelativeTimeValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeTimeValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${value.toExpression()}`\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"condition-operators.js","names":["isConditionalType","ComponentType","ConditionValue","RelativeDateValue","DateDirections","Operator","OperatorName","defaultOperators","Is","inline","IsNot","withDefaults","param","Object","assign","textFieldOperators","IsLongerThan","lengthIs","IsMoreThan","IsShorterThan","IsLessThan","HasLength","absoluteDateOperators","absoluteDate","IsBefore","IsAfter","relativeDateOperators","IsAtLeast","relativeDate","IsAtMost","customOperators","RadiosField","CheckboxesField","Contains","reverseInline","DoesNotContain","not","NumberField","DatePartsField","TextField","MultilineTextField","EmailAddressField","SelectField","YesNoField","getOperatorNames","fieldType","conditionals","getConditionals","keys","sort","getExpression","fieldName","operator","value","expression","type","name","getOperatorConfig","field","formatValue","operatorDefinition","toExpression","absoluteDateOperatorNames","relativeDateOperatorNames","Error","pastOperator","futureOperator","isPast","direction","PAST"],"sources":["../../../src/conditions/condition-operators.ts"],"sourcesContent":["import { isConditionalType } from '../components/helpers.js'\n\nimport { ComponentType } from '~/src/components/enums.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n ConditionValue,\n RelativeDateValue\n} from '~/src/conditions/condition-values.js'\nimport {\n DateDirections,\n Operator,\n OperatorName\n} from '~/src/conditions/enums.js'\nimport {\n type Conditionals,\n type OperatorDefinition\n} from '~/src/conditions/types.js'\n\nconst defaultOperators = {\n [OperatorName.Is]: inline(Operator.Is),\n [OperatorName.IsNot]: inline(Operator.IsNot)\n}\n\nfunction withDefaults<T>(param: T) {\n return Object.assign({}, param, defaultOperators)\n}\n\nconst textFieldOperators = {\n [OperatorName.IsLongerThan]: lengthIs(Operator.IsMoreThan),\n [OperatorName.IsShorterThan]: lengthIs(Operator.IsLessThan),\n [OperatorName.HasLength]: lengthIs(Operator.Is)\n}\n\nconst absoluteDateOperators = {\n [OperatorName.Is]: absoluteDate(Operator.Is),\n [OperatorName.IsNot]: absoluteDate(Operator.IsNot),\n [OperatorName.IsBefore]: absoluteDate(Operator.IsLessThan),\n [OperatorName.IsAfter]: absoluteDate(Operator.IsMoreThan)\n}\n\nconst relativeDateOperators = {\n [OperatorName.IsAtLeast]: relativeDate(Operator.IsAtMost, Operator.IsAtLeast),\n [OperatorName.IsAtMost]: relativeDate(Operator.IsAtLeast, Operator.IsAtMost),\n [OperatorName.IsLessThan]: relativeDate(\n Operator.IsMoreThan,\n Operator.IsLessThan\n ),\n [OperatorName.IsMoreThan]: relativeDate(\n Operator.IsLessThan,\n Operator.IsMoreThan\n )\n}\n\nexport const customOperators = {\n [ComponentType.RadiosField]: defaultOperators,\n [ComponentType.CheckboxesField]: {\n [OperatorName.Contains]: reverseInline(Operator.Contains),\n [OperatorName.DoesNotContain]: not(reverseInline(Operator.Contains))\n },\n [ComponentType.NumberField]: withDefaults({\n [OperatorName.IsAtLeast]: inline(Operator.IsAtLeast),\n [OperatorName.IsAtMost]: inline(Operator.IsAtMost),\n [OperatorName.IsLessThan]: inline(Operator.IsLessThan),\n [OperatorName.IsMoreThan]: inline(Operator.IsMoreThan)\n }),\n [ComponentType.DatePartsField]: {\n ...absoluteDateOperators,\n ...relativeDateOperators\n },\n [ComponentType.TextField]: withDefaults(textFieldOperators),\n [ComponentType.MultilineTextField]: withDefaults(textFieldOperators),\n [ComponentType.EmailAddressField]: withDefaults(textFieldOperators),\n [ComponentType.SelectField]: defaultOperators,\n [ComponentType.YesNoField]: defaultOperators\n}\n\nexport function getOperatorNames(fieldType?: ComponentType) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return []\n }\n\n return Object.keys(conditionals).sort()\n}\n\nexport function getExpression(\n fieldType: ComponentType,\n fieldName: string,\n operator: OperatorName,\n value: ConditionValue | RelativeDateValue\n) {\n const conditionals = getConditionals(fieldType)\n if (!conditionals) {\n return\n }\n\n return conditionals[operator]?.expression(\n { type: fieldType, name: fieldName },\n value\n )\n}\n\nexport function getOperatorConfig(\n fieldType: ComponentType,\n operator: OperatorName\n) {\n return getConditionals(fieldType)?.[operator]\n}\n\nfunction getConditionals(\n fieldType?: ComponentType\n): Partial<Conditionals> | undefined {\n if (!fieldType || !isConditionalType(fieldType)) {\n return\n }\n\n return fieldType in customOperators\n ? customOperators[fieldType]\n : defaultOperators\n}\n\nfunction inline(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `${field.name} ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction lengthIs(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n return `length(${field.name}) ${operator} ${formatValue(field, value)}`\n }\n }\n}\n\nfunction reverseInline(operator: Operator.Contains): OperatorDefinition {\n return {\n expression(field, value) {\n return `${formatValue(field, value)} ${operator} ${field.name}`\n }\n }\n}\n\nfunction not(operatorDefinition: OperatorDefinition): OperatorDefinition {\n return {\n expression(field, value) {\n return `not (${operatorDefinition.expression(field, value)})`\n }\n }\n}\n\nfunction formatValue(\n field: Pick<ComponentDef, 'type'>,\n value: ConditionValue | RelativeDateValue\n) {\n if (\n 'value' in value &&\n (field.type === ComponentType.YesNoField ||\n field.type === ComponentType.NumberField)\n ) {\n return value.value\n }\n\n return `'${value.toExpression()}'`\n}\n\nexport const absoluteDateOperatorNames = Object.keys(\n absoluteDateOperators\n) as OperatorName[]\n\nexport const relativeDateOperatorNames = Object.keys(\n relativeDateOperators\n) as OperatorName[]\n\nfunction absoluteDate(operator: Operator): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof ConditionValue)) {\n throw new Error(\n \"Expression param 'value' must be ConditionValue instance\"\n )\n }\n\n return `${field.name} ${operator} '${formatValue(field, value)}'`\n }\n }\n}\n\nfunction relativeDate(\n pastOperator: Operator,\n futureOperator: Operator\n): OperatorDefinition {\n return {\n expression(field, value) {\n if (!(value instanceof RelativeDateValue)) {\n throw new Error(\n \"Expression param 'value' must be RelativeDateValue instance\"\n )\n }\n\n const isPast = value.direction === DateDirections.PAST\n return `${field.name} ${isPast ? pastOperator : futureOperator} ${value.toExpression()}`\n }\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAE1B,SAASC,aAAa;AAEtB,SACEC,cAAc,EACdC,iBAAiB;AAEnB,SACEC,cAAc,EACdC,QAAQ,EACRC,YAAY;AAOd,MAAMC,gBAAgB,GAAG;EACvB,CAACD,YAAY,CAACE,EAAE,GAAGC,MAAM,CAACJ,QAAQ,CAACG,EAAE,CAAC;EACtC,CAACF,YAAY,CAACI,KAAK,GAAGD,MAAM,CAACJ,QAAQ,CAACK,KAAK;AAC7C,CAAC;AAED,SAASC,YAAYA,CAAIC,KAAQ,EAAE;EACjC,OAAOC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEF,KAAK,EAAEL,gBAAgB,CAAC;AACnD;AAEA,MAAMQ,kBAAkB,GAAG;EACzB,CAACT,YAAY,CAACU,YAAY,GAAGC,QAAQ,CAACZ,QAAQ,CAACa,UAAU,CAAC;EAC1D,CAACZ,YAAY,CAACa,aAAa,GAAGF,QAAQ,CAACZ,QAAQ,CAACe,UAAU,CAAC;EAC3D,CAACd,YAAY,CAACe,SAAS,GAAGJ,QAAQ,CAACZ,QAAQ,CAACG,EAAE;AAChD,CAAC;AAED,MAAMc,qBAAqB,GAAG;EAC5B,CAAChB,YAAY,CAACE,EAAE,GAAGe,YAAY,CAAClB,QAAQ,CAACG,EAAE,CAAC;EAC5C,CAACF,YAAY,CAACI,KAAK,GAAGa,YAAY,CAAClB,QAAQ,CAACK,KAAK,CAAC;EAClD,CAACJ,YAAY,CAACkB,QAAQ,GAAGD,YAAY,CAAClB,QAAQ,CAACe,UAAU,CAAC;EAC1D,CAACd,YAAY,CAACmB,OAAO,GAAGF,YAAY,CAAClB,QAAQ,CAACa,UAAU;AAC1D,CAAC;AAED,MAAMQ,qBAAqB,GAAG;EAC5B,CAACpB,YAAY,CAACqB,SAAS,GAAGC,YAAY,CAACvB,QAAQ,CAACwB,QAAQ,EAAExB,QAAQ,CAACsB,SAAS,CAAC;EAC7E,CAACrB,YAAY,CAACuB,QAAQ,GAAGD,YAAY,CAACvB,QAAQ,CAACsB,SAAS,EAAEtB,QAAQ,CAACwB,QAAQ,CAAC;EAC5E,CAACvB,YAAY,CAACc,UAAU,GAAGQ,YAAY,CACrCvB,QAAQ,CAACa,UAAU,EACnBb,QAAQ,CAACe,UACX,CAAC;EACD,CAACd,YAAY,CAACY,UAAU,GAAGU,YAAY,CACrCvB,QAAQ,CAACe,UAAU,EACnBf,QAAQ,CAACa,UACX;AACF,CAAC;AAED,OAAO,MAAMY,eAAe,GAAG;EAC7B,CAAC7B,aAAa,CAAC8B,WAAW,GAAGxB,gBAAgB;EAC7C,CAACN,aAAa,CAAC+B,eAAe,GAAG;IAC/B,CAAC1B,YAAY,CAAC2B,QAAQ,GAAGC,aAAa,CAAC7B,QAAQ,CAAC4B,QAAQ,CAAC;IACzD,CAAC3B,YAAY,CAAC6B,cAAc,GAAGC,GAAG,CAACF,aAAa,CAAC7B,QAAQ,CAAC4B,QAAQ,CAAC;EACrE,CAAC;EACD,CAAChC,aAAa,CAACoC,WAAW,GAAG1B,YAAY,CAAC;IACxC,CAACL,YAAY,CAACqB,SAAS,GAAGlB,MAAM,CAACJ,QAAQ,CAACsB,SAAS,CAAC;IACpD,CAACrB,YAAY,CAACuB,QAAQ,GAAGpB,MAAM,CAACJ,QAAQ,CAACwB,QAAQ,CAAC;IAClD,CAACvB,YAAY,CAACc,UAAU,GAAGX,MAAM,CAACJ,QAAQ,CAACe,UAAU,CAAC;IACtD,CAACd,YAAY,CAACY,UAAU,GAAGT,MAAM,CAACJ,QAAQ,CAACa,UAAU;EACvD,CAAC,CAAC;EACF,CAACjB,aAAa,CAACqC,cAAc,GAAG;IAC9B,GAAGhB,qBAAqB;IACxB,GAAGI;EACL,CAAC;EACD,CAACzB,aAAa,CAACsC,SAAS,GAAG5B,YAAY,CAACI,kBAAkB,CAAC;EAC3D,CAACd,aAAa,CAACuC,kBAAkB,GAAG7B,YAAY,CAACI,kBAAkB,CAAC;EACpE,CAACd,aAAa,CAACwC,iBAAiB,GAAG9B,YAAY,CAACI,kBAAkB,CAAC;EACnE,CAACd,aAAa,CAACyC,WAAW,GAAGnC,gBAAgB;EAC7C,CAACN,aAAa,CAAC0C,UAAU,GAAGpC;AAC9B,CAAC;AAED,OAAO,SAASqC,gBAAgBA,CAACC,SAAyB,EAAE;EAC1D,MAAMC,YAAY,GAAGC,eAAe,CAACF,SAAS,CAAC;EAC/C,IAAI,CAACC,YAAY,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,OAAOjC,MAAM,CAACmC,IAAI,CAACF,YAAY,CAAC,CAACG,IAAI,CAAC,CAAC;AACzC;AAEA,OAAO,SAASC,aAAaA,CAC3BL,SAAwB,EACxBM,SAAiB,EACjBC,QAAsB,EACtBC,KAAyC,EACzC;EACA,MAAMP,YAAY,GAAGC,eAAe,CAACF,SAAS,CAAC;EAC/C,IAAI,CAACC,YAAY,EAAE;IACjB;EACF;EAEA,OAAOA,YAAY,CAACM,QAAQ,CAAC,EAAEE,UAAU,CACvC;IAAEC,IAAI,EAAEV,SAAS;IAAEW,IAAI,EAAEL;EAAU,CAAC,EACpCE,KACF,CAAC;AACH;AAEA,OAAO,SAASI,iBAAiBA,CAC/BZ,SAAwB,EACxBO,QAAsB,EACtB;EACA,OAAOL,eAAe,CAACF,SAAS,CAAC,GAAGO,QAAQ,CAAC;AAC/C;AAEA,SAASL,eAAeA,CACtBF,SAAyB,EACU;EACnC,IAAI,CAACA,SAAS,IAAI,CAAC7C,iBAAiB,CAAC6C,SAAS,CAAC,EAAE;IAC/C;EACF;EAEA,OAAOA,SAAS,IAAIf,eAAe,GAC/BA,eAAe,CAACe,SAAS,CAAC,GAC1BtC,gBAAgB;AACtB;AAEA,SAASE,MAAMA,CAAC2C,QAAkB,EAAsB;EACtD,OAAO;IACLE,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,OAAO,GAAGK,KAAK,CAACF,IAAI,IAAIJ,QAAQ,IAAIO,WAAW,CAACD,KAAK,EAAEL,KAAK,CAAC,EAAE;IACjE;EACF,CAAC;AACH;AAEA,SAASpC,QAAQA,CAACmC,QAAkB,EAAsB;EACxD,OAAO;IACLE,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,OAAO,UAAUK,KAAK,CAACF,IAAI,KAAKJ,QAAQ,IAAIO,WAAW,CAACD,KAAK,EAAEL,KAAK,CAAC,EAAE;IACzE;EACF,CAAC;AACH;AAEA,SAASnB,aAAaA,CAACkB,QAA2B,EAAsB;EACtE,OAAO;IACLE,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,OAAO,GAAGM,WAAW,CAACD,KAAK,EAAEL,KAAK,CAAC,IAAID,QAAQ,IAAIM,KAAK,CAACF,IAAI,EAAE;IACjE;EACF,CAAC;AACH;AAEA,SAASpB,GAAGA,CAACwB,kBAAsC,EAAsB;EACvE,OAAO;IACLN,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,OAAO,QAAQO,kBAAkB,CAACN,UAAU,CAACI,KAAK,EAAEL,KAAK,CAAC,GAAG;IAC/D;EACF,CAAC;AACH;AAEA,SAASM,WAAWA,CAClBD,KAAiC,EACjCL,KAAyC,EACzC;EACA,IACE,OAAO,IAAIA,KAAK,KACfK,KAAK,CAACH,IAAI,KAAKtD,aAAa,CAAC0C,UAAU,IACtCe,KAAK,CAACH,IAAI,KAAKtD,aAAa,CAACoC,WAAW,CAAC,EAC3C;IACA,OAAOgB,KAAK,CAACA,KAAK;EACpB;EAEA,OAAO,IAAIA,KAAK,CAACQ,YAAY,CAAC,CAAC,GAAG;AACpC;AAEA,OAAO,MAAMC,yBAAyB,GAAGjD,MAAM,CAACmC,IAAI,CAClD1B,qBACF,CAAmB;AAEnB,OAAO,MAAMyC,yBAAyB,GAAGlD,MAAM,CAACmC,IAAI,CAClDtB,qBACF,CAAmB;AAEnB,SAASH,YAAYA,CAAC6B,QAAkB,EAAsB;EAC5D,OAAO;IACLE,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,IAAI,EAAEA,KAAK,YAAYnD,cAAc,CAAC,EAAE;QACtC,MAAM,IAAI8D,KAAK,CACb,0DACF,CAAC;MACH;MAEA,OAAO,GAAGN,KAAK,CAACF,IAAI,IAAIJ,QAAQ,KAAKO,WAAW,CAACD,KAAK,EAAEL,KAAK,CAAC,GAAG;IACnE;EACF,CAAC;AACH;AAEA,SAASzB,YAAYA,CACnBqC,YAAsB,EACtBC,cAAwB,EACJ;EACpB,OAAO;IACLZ,UAAUA,CAACI,KAAK,EAAEL,KAAK,EAAE;MACvB,IAAI,EAAEA,KAAK,YAAYlD,iBAAiB,CAAC,EAAE;QACzC,MAAM,IAAI6D,KAAK,CACb,6DACF,CAAC;MACH;MAEA,MAAMG,MAAM,GAAGd,KAAK,CAACe,SAAS,KAAKhE,cAAc,CAACiE,IAAI;MACtD,OAAO,GAAGX,KAAK,CAACF,IAAI,IAAIW,MAAM,GAAGF,YAAY,GAAGC,cAAc,IAAIb,KAAK,CAACQ,YAAY,CAAC,CAAC,EAAE;IAC1F;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"condition-ref.js","names":["ConditionAbstract","ConditionRef","conditionName","conditionDisplayName","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName\n conditionDisplayName\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator: Coordinator | undefined\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw new Error(\"ConditionRef param 'conditionName' must be a string\")\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw new Error(\n \"ConditionRef param 'conditionDisplayName' must be a string\"\n )\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAG1B,OAAO,MAAMC,YAAY,SAASD,iBAAiB,CAAC;EAClDE,aAAa;EACbC,oBAAoB;EAEpBC,WAAWA,CACTF,aAAqB,EACrBC,oBAA4B,EAC5BE,WAAoC,EACpC;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOH,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAM,IAAII,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,IAAI,OAAOH,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAM,IAAIG,KAAK,CACb,4DACF,CAAC;IACH;IAEA,IAAI,CAACJ,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACN,oBAAoB,GAAG;EACzC;EAEAO,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACR,aAAa;EAC3B;EAEAS,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIV,YAAY,CACrB,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACE,WACP,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"condition-ref.js","names":["ConditionAbstract","ConditionRef","conditionName","conditionDisplayName","constructor","coordinator","Error","asFirstCondition","_asFirstCondition","conditionString","conditionExpression","clone"],"sources":["../../../src/conditions/condition-ref.ts"],"sourcesContent":["import { ConditionAbstract } from '~/src/conditions/condition-abstract.js'\nimport { type Coordinator } from '~/src/conditions/enums.js'\n\nexport class ConditionRef extends ConditionAbstract {\n conditionName: string\n conditionDisplayName: string\n\n constructor(\n conditionName: string,\n conditionDisplayName: string,\n coordinator?: Coordinator\n ) {\n super(coordinator)\n\n if (typeof conditionName !== 'string') {\n throw new Error(\"ConditionRef param 'conditionName' must be a string\")\n }\n\n if (typeof conditionDisplayName !== 'string') {\n throw new Error(\n \"ConditionRef param 'conditionDisplayName' must be a string\"\n )\n }\n\n this.conditionName = conditionName\n this.conditionDisplayName = conditionDisplayName\n }\n\n asFirstCondition() {\n this._asFirstCondition()\n return this\n }\n\n conditionString() {\n return `'${this.conditionDisplayName}'`\n }\n\n conditionExpression() {\n return this.conditionName\n }\n\n clone() {\n return new ConditionRef(\n this.conditionName,\n this.conditionDisplayName,\n this.coordinator\n )\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAG1B,OAAO,MAAMC,YAAY,SAASD,iBAAiB,CAAC;EAClDE,aAAa;EACbC,oBAAoB;EAEpBC,WAAWA,CACTF,aAAqB,EACrBC,oBAA4B,EAC5BE,WAAyB,EACzB;IACA,KAAK,CAACA,WAAW,CAAC;IAElB,IAAI,OAAOH,aAAa,KAAK,QAAQ,EAAE;MACrC,MAAM,IAAII,KAAK,CAAC,qDAAqD,CAAC;IACxE;IAEA,IAAI,OAAOH,oBAAoB,KAAK,QAAQ,EAAE;MAC5C,MAAM,IAAIG,KAAK,CACb,4DACF,CAAC;IACH;IAEA,IAAI,CAACJ,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;EAClD;EAEAI,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACC,iBAAiB,CAAC,CAAC;IACxB,OAAO,IAAI;EACb;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,IAAI,CAACN,oBAAoB,GAAG;EACzC;EAEAO,mBAAmBA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACR,aAAa;EAC3B;EAEAS,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIV,YAAY,CACrB,IAAI,CAACC,aAAa,EAClB,IAAI,CAACC,oBAAoB,EACzB,IAAI,CAACE,WACP,CAAC;EACH;AACF","ignoreList":[]}