diff --git a/pkg/items/service.go b/pkg/items/service.go index b193076bf804b133ce0d0f422278c41adb47e039..747f155461a4450771a31274c7d7743a14038f5b 100644 --- a/pkg/items/service.go +++ b/pkg/items/service.go @@ -74,6 +74,22 @@ func NewFilter(params ...interface{}) *Filter { return f } +func (f *Filter) Clone() *Filter { + if f == nil { + return nil + } + clone := &Filter{ + ID: make([]string, len(f.ID)), + Data: make([]*filter.Filter, len(f.Data)), + Q: make([]string, len(f.Q)), + Search: f.Search, + } + copy(clone.ID, f.ID) + copy(clone.Data, f.Data) + copy(clone.Q, f.Q) + return clone +} + // AggregateExpRe - формат, которому должна соответствовать формула расчета данных var AggregateExpRe = regexp.MustCompile(`([a-zA-Z]+)\((.*)\)`)