# @witkac/jschema (Vue3) # 4.6.0 - (2023-02-10) - obsługa pola `data` ze schematu (typu `object`) - dostępne przez reaktywny obiekt `$data` w property (już dostępne wczesniej) - typowanie zarówno w TypeScript jak i JSON - ```TypeScript const schema = defineSchema({ type: "object", properties: { firstName: { type: "string" } }, data: { extraInfo: "Ok" } }); const $schema = wrapSchema(schema); console.log($schema.$data.extraInfo); ``` - możliwośc definiowania gałęzi `csv` w schemacie - dodane typowanie zarówno z poziomu TypeScript jak i JSON - dostęp z poziomu property po polu `$csv` # 4.5.0 - (2023-02-10) - obsługa guid-ów w wersji short (12 znaków) - dodatkowe formaty `guidlong` i `guidshort` - dodatkowa opcja `longGuids` do schematu, domyślnie `false` - dopasowana walidacja do nowych formatów # 4.4.1 - (2023-02-07) - budowanie i pakowanie przeniesione na docker-a z node:18 # 4.4.0 - (2023-02-06) - poprawiona klasa `JSchema` obsługująca fuknkcje działajace na schemacie, bez Vue - eksport `JSchema.simple` eksportująca głównie klasę `JSchema` - eksport `JSchema.vue` eksportująca wszystko włącznie z dołączonymi funkcjami Vue - aktualizacja pakietów # 4.3.4 - (2023-02-02) - poprawione komunikaty o błędzie przy trybie developmnet `calc` i `aggregate` # 4.3.3 - (2022-12-29) - poprawione funkcje `isFunction` i `isObject` # 4.3.2 - (2022-12-28) - export interfejsu `IOptions` # 4.3.1 - (2022-12-21) - usunięcie odwołania do `@vue/shared` # 4.3.0 - (2022-12-20) - możliwośc używania funkcji w `defineSchema` (kompilowanych do stringa) wraz z typowanym `this` ```JavaScript const schemaDef = defineSchema({ properties: { address: defineSchema({ properties: { street: { type: "string" }, nr: { type: "number", fieldRequired() { return !!this.street; } }, fullAddress: { type: "string", calc() { return this.street + " " + this.$methods.max([this.$root.address.nr, 100]); }, } } }) } }); ``` # 4.2.1 - (2022-12-19) - poprawione typowanie `allOf`, - wymaga jednak `as const` gdy allOf zawieta więcej niż jeden element tablicy # 4.2.0 - (2022-12-06) - funkcja `defineSchema` ułatwiająca pisanie schematów w TS i JS, działa intellisense na tworzonej schemie - `const schema = defineSchema({properties: {firstName: {type: "string"}}})` - poprawione typowanie `$root` na domyślne `IWrappedPropertyWithProps` # 4.1.4 - (2022-12-06) - poprawione typowanie # 4.1.3 - (2022-11-07) - oficjalna wersja # 4.1.0-rc.26 - (2022-10-26) - `moment` jako `optionalDepedency`, docelowo całkowicie do wywalenia # 4.1.0-rc.25 - (2022-09-28) - dodane `$readOnly` do typu `IWrappedProperty` read/write - domyślnie czyta z `$schema` - ustawienie na `true` powoduje ze wszystkie pola poniżej są `$readOnly` - ustawienie na `false` powoduje że znów czyta z `$schema` # 4.1.0-rc.24 - (2022-08-22) - dodane `validFunc` do typu `IValidationMessages` # 4.1.0-rc.22 - (2022-07-21) - poprawiona fukcja `capitalize` obsługująca prawidłowo polskie znaki - możliwośc ustawienia własciwości `debounce` na polu schematu i określenie w `ms` opóźniania ustawienia przez `$value` i `calc` # 4.1.0-rc.21 - (2022-07-21) - poprawione typowanie `$root` any chwilowo nie było zapętleń - # 4.1.0-rc.20 - (2022-07-20) - poprawione działanie `calc` - dla wyników bedących obiektem wydajniejsze `deepCopy` - zmiana silnika testów na `vitest` - `validFunc` działa od razu na starcie # 4.1.0-rc.19 - (2022-07-20) - poprawione typowanie pól `number` - poprawione typowanie `$root` i `$parent` # 4.1.0-rc.18 - (2022-07-19) - poprawiona obsługa RegExp - poprawione działanie flagi `g` oraz bez podania flagi - poprawiona kompilacja funkcji dla walidacji # 4.1.0-rc.16 - (2022-07-18) - poprawione typowanie `IWrappedProperty` oraz `IWrappedProperty` - zmiana sposobu kompilacji `calc` i `validFunc` # 4.1.0-rc.14 - (2022-07-15) - poprawione typowanie pól `boolean` - `classToSchema` dodaje `extends` do dziedziczonych schematów - `SchemaFormat` i `JProp.Format` - `JProp.Nip` - `Jprop.Guid` - eksportowanie `SchemaOptionsType` - warning zamiast error przy zwracaniu `undefined` z funkcji (np. sumowania) - zmieniony sposób obsługi watchera dla pól calc, zawsze aktualizuje pole mimo że wynik wyliczenia jest taki sam - przy pustych klasach (bez dekorowanych pól) tworzenie pustego schematu typu `object` # 4.1.0-rc.13 - (2022-07-13) - możliwość definiowania elementów tablicy jako JProp ```TypeScript @JProp.Array( JProp.String({ format: 'nip', minLength(this: Model) { return this.$root.ile } }) ) nipList!: Array ``` ```TypeScript @JProp.Array( JProp.Object(FakturaItem, { default: { nr: "nowa" } }) ) faktury!: Array ``` # 4.1.0-rc.12 - (2022-07-07) - możliwość definiowania `pattern` jako RegExp ```TypeScript @JProp.String({ pattern: /^[0-9]+$/i }) numberOnly!: string; ``` - JProp.Boolean # 4.1.0-rc.11 - (2022-06-30) - możliwośc definiowania właściwosci schematu (np. walidacji jako funckji): ```TypeScript @JProp.Money({ calc(this: Model) { return this.netto * this.$external.vat; }, minimum(this: Model) { return this.netto } }) brutto!: number; ``` # 4.1.0-rc.10 - (2022-06-23) - dodane `@JField.Valid` zamieniajęce funkcje na walidację - nazwa pola `pole_walidancja` np. `netto_minimum` - lub w definicji `@JField.Valid("netto","minimum")` - dla funkcji walidującej zwracających liczby zamiana na liczbę np. `retrun 0` => `"minimum": 0` - funkcje `minifySchema` i `fixMinifiedSchema` do obsługi zminifikowanej schemy - rozwinięty typ `BaseSchemaClass` do - `BaseSchemaClass` # 4.1.0-rc.7 - (2022-06-22) - zmiana sposobu wykorzystania np. `$methods` na `this.$methods` - definioowanie w klasie jako `protected` ```TypeScript class Model { protected $root!: Model; } ``` - klasa bazowa `BaseSchemaClass` zawierająca już jako `protected` definicję wszystkich parametrów np. `$methods` ```TypeScript class Model extends BaseSchemaClass { @JProp.Money() get brutto(): number { return this.$methods.sum(this.items,x=>x.brutto) } } ``` # 4.1.0-rc.5 - (2022-06-22) - ustawianie kontekstu wbudowanych zmiennych, potrzebne przy minifikacji klas - `setContext(()=>$methods)` # 4.1.0-rc.4 - (2022-06-22) - exportowanie `$methods, $root, $external, $obj, $parent, $parent2, $parent3` do użycia na zewnątrz # 4.1.0-rc.3 - (2022-06-21) - obsługa przeciążanych pól w klasach - w przypadku konieczności zrobienia `get` dla własciwości która nie ma być wyliczana należy zwrócić `undefined` ```TypeScript get brutto(): number { return undefined as any; } ``` # 4.1.0-rc.2 - (2022-06-20) - działa bez `"emitDecoratorMetadata": true` - prawidłowe działanie pod Vite # 4.1.0-rc.1 - (2022-06-20) - definiowanie schematu w postaci klas TS - ```TypeScript export class Person { /** * imię */ @JField.String() firstName!: string; /** * nazwisko */ @JField.String() lastName!: string; /** * wiek */ @JField.Integer({ default: 0 }) age!: number; /** * pełna nazwa */ @JField.String() get fullName(): string { return this.firstName + ' ' + this.lastName; } } let schema = wrapSchemaClass(Person); ``` - wymaga ustawienia w `tsconfig.json` ```JSON "experimentalDecorators": true, "emitDecoratorMetadata": true, ``` # 4.0.0-rc.44 - (2022-07-19) - dodatkowa opcja `fixTypes` naprawiająca typy danych w modelu podczas `wrapSchema` - możliwość ustawienia przez `defaultOptions` # 4.0.0-rc.43 - (2022-07-06) - Ustawienie `patternFlags` na null powoduje nieustawienie flag w regexie walidacji # 4.0.0-rc.42 - (2022-06-13) - poprawione formatowanie danych komunikatów w przypadku formatu `date-time` # 4.0.0-rc.41 - (2022-06-13) - poprawiona obsługa prostych tablic z enum # 4.0.0-rc.40 - (2022-05-19) - dodanie opcji `readOnly` działającej jak `readOnly` na każdym polu - `wrapSchema(schema,model,{readOnly: true})` # 4.0.0-rc.39 - (2022-05-17) - naprawione działanie fukncji operujących na elementach tablicy `$moveUp()` `$moveDown()` `$clearRow()` - dodanie `$model` do `WrappedPropertyArrayItem` # 4.0.0-rc.38 - (2022-05-17) - rozszerzenie interfejsu `IWrapperPropertyArrayItem` o metody `$remove()` `$clear()` `$moveUp()` `$moveDown()` - poprawienie skryptów rollup # 4.0.0-rc.36 - (2022-04-19) - poprawiony interfejs `JSONSchema` przyjmujący tablice `readonly` - w opcjach schematu dodane ustawienie `lazyNumbers: [true|false]` powodujące (`true`) zaokrąglenie liczb dopiero po wyjściu z pola, wymaga oprogramwoania zdarzeń `focus` i `blur`: ```HTML ``` # 4.0.0-rc.35 - (2022-02-28) - poprawione wyznaczanie komunikatu dla warningów typu `format.[typFormatu]` # 4.0.0-rc.34 - (2022-02-14) - poprawione typowanie dla pól `"type": "integer"` # 4.0.0-rc.33 - (2022-02-11) - w typowaniu schematu uwzględnienie pól `allOf` i `$ref` - `allOf` - moga być problemy dla schematów które nie są `as const` - `$ref` - nie działa dla schematów które nie są `as const` - `wrapSchema` nie przyjmuje już tablicy schematów (trudności w typowaniu) aby to obejśc należy użyć `allOf`: ```JavaScript const schema = {allOf: [schema1,schema2]} as const; const $schema = wrapSchema(schema); ``` # 4.0.0-rc.32 - (2022-01-12) - wewnętrzne zmienione typowanie wartości w modelu (z `number` na `number | null`) - wewnętrznie $schema bez readonly - podbicie wersji bibliotek # 4.0.0-rc.31 - (2022-01-04) - zmienione typowanie `model.$schema` na wyliczone typy wartości (interfejs `IWrappedPropertySchema`) - drobne poprawki wynikające ze zmiany typu danych # 4.0.0-rc.30 - (2021-12-22) - `validFunc` może być asynchroniczne, zwracać `Promise` ```TypeScript { validFunc: "return new Promise((resolve,reject) => {setTimeout(() => resolve($value.length>3),500)})", validFunc: "$methods.accountService.checkLength($value,500)" } ``` - możliwośc umieszczania serwisów (nazwa klucza kończy się na `"service"` w `schemaMathods`) ```TypeScript const $schema = wrapSchema(schema, null, { schemaMethods: { accountService } }); ``` # 4.0.0-rc.29 - (2021-12-20) - Poprawione typowanie opcjonalnego parametru `path` w funkcji `$setData` - Dodana automatyczna zmiana typu przy ustawiwaniu danych przez `$setData` w tablicach prostych - np. przy tablicy liczb, `$setData(["1","2"])` automatycznie zamieni na numery # 4.0.0-rc.28 - (2021-12-03) - #47 naprawione typowanie elementów tablicy w funkcjach `$getData()` i `$setData()` - `$setData()` na typie `object` przyjmuje partial - `$getData()` na typie object omija pola `computed` - export intterfejsów: `IWrappedPropertyObject` i `IWrapperPropertyArrayItem` # 4.0.0-rc.27 - (2021-11-19) - poprawione błedy przeliczania na tablicach - poprawiony import `moment` # 4.0.0-rc.25 - (2021-11-18) - wyeksportowany interfejs `IWrappedPropertyArray` # 4.0.0-rc.22 - (2021-11-17) - poprawiono interfejsy metody `wrapSchema` - dodano interfejs `ISchemaMethods` opisujący metody dostępne przez `$methods` # 4.0.0-rc.21 - (2021-11-08) - dodane metody `$bind()` i `$unbind()` umożliwiające podłączenie schemy pod element HTML (podpina onInput, onBlur, onFocus i reaguje na zmianę wartości w modelu) - elementy HTML - ``: string, number, integer, money - `TEXTAREA`: string, number, integer, money - ``: boolean, string, number, array,array - ``: boolean, string, number, array,array - do użycia również bez Vue ```HTML ``` - dodana dyrektywa `schemaDirective` robiąca `$bind()` na elemencie HTML - ```TypeScript { directives: { schema: schemaDirective }, template: ' a+b)` # 4.0.0-rc.18 - (2021-09-04) - dodane typowanie `$external`, `$form`, `validationMessages`, `warningMessages` # 4.0.0-rc.16 - (2021-09-04) - exportowanie interfejsu `SchemaInterface` - poprawiona obsługa typu array # 4.0.0-rc.14 - (2021-09-03) - poprawione `wrapSchema` aby naprawiało pusty model # 4.0.0-rc.13 - (2021-09-03) - z typu IWrappedProperty wyrzucone nieznane pola - ale przy schema typu `any` jednak te pola są dopuszczalne # 4.0.0-rc.11 - (2021-09-02) - poprawione działanie `enum` na elementach prostej tablicy. Dodane autousuwanie po zmianie wartości # 4.0.0-rc.10 - (2021-08-31) - możliwośc ustawienia `format` w `warnings` i działa również wtedy formatowanie z formularza, np. dat # 4.0.0-rc.9 - (2021-08-29) - dodane typowanie do typu zwracanego przez `wrapSchema - typ `FromSchema` - do tworzenia typu na podstawie schematu # 4.0.0-rc.8 - (2021-08-23) - poprawiona strategia mergowania opcji do schematu, poprawnie przenosi `external` i `form` # 4.0.0-rc.7 - (2021-08-20) - przy zwracaniu typu `object` i `array` ręczne mapowanie każdego pola # 4.0.0-rc.6 - (2021-08-10) - zmiana `$key` na reaktywny (ref) # 4.0.0-rc.5 - (2021-08-10) - poprawiona walidacja numeru dowodu - podbita wersja Vue do 3.2 # 4.0.0-rc.4 - (2021-07-22) - refactoring kodu # 4.0.0-rc.3 - (2021-05-10) - zmiana sposobu budowania lib na commonjs # 4.0.0-rc.1 - (2021-05-05) - migracja do Vue3 - funkcja `wrapSchema` do obudowywania schematu, nie trzeba uzywać `schemaMixin` - w przypadku `wrapSchema` i tak tworzy zmienną `$schema` w instancji mimo że Vue3 nie pozwala zwracać tego w `return {}` funkcji `setup()` - czyszczenie wszystkich `watch` przy niszczeniu obiektu `$schema` # 3.28.2 - (2022-07-22) - poprawiona fukcja `capitalize` obsługująca prawidłowo polskie znaki # 3.28.1 - (2022-02-28) - poprawione wyznaczanie komuniaktu dla warningów typu `format.[typFormatu]` # 3.28.0 - (2021-10-21) - dodana zewnętrzna funkcja `registerSchemaMethod` do rejestrowania globalnej metody do schema - `registerSchemaMethod('add',(a,b) => a+b)` # 3.27.2 - (2021-09-22) - `calc` i `aggregate` ustawiają wartośc w modelu mimo że moga dać ten sam wynik # 3.27.1 - (2021-08-31) - poprawiona obsługa definitions w polach typu `array` # 3.27.0 - (2021-08-31) - możliwośc ustawienia `format` w `warnings` i działa również wtedy formatowanie z formularza, np. dat # 3.26.4 - (2021-08-23) - poprawiona strategia mergowania opcji do schematu, poprawnie przenosi `external` i `Vue` # 3.26.2 - (2021-08-17) - `aggregate` przy zwracanych typach `object` lub `array` bez podania `prop` automatyczne mapowanie wszystkich property - zmiana dowolnego property powoduje przeliczanie `aggregate` # 3.26.1 - (2021-08-10) - poprawiona walidacja numerów dowodów # 3.26.0 - (2021-07-13) - dodane `$schema.$definitions`, można się w ten sposób dostać do definicji pól - dodane `$enum` do każdej właściwości, zwraca wartośc `enum` ze schema (`$schema.enum`) lub upstą tablicę - dzęki temu mozna z definicji pobierać np. listę wartości do select: ```HTML ``` # 3.25.0 - (2021-05-12) - `$methods` - dodana metoda `dateHoliday(date: string) : string` zwracająca nazwę święta (dnia wolnego od pracy) tego dnia. Gdy świeta nie ma to jest zwracany pusty tekst # 3.24.1 - (2021-04-30) - dodana metoda do `$setDefault()` ustawiająca na wybranym polu (lub całym `$schema`) domyślną wartośc wynikającą ze schematu # 3.23.1 - (2021-04-13) - poprawione działanie `TimeSpan.years` - wcześniej dla dat, którym brakowało dnia do pełnego roku, zwracana była zła liczba lat # 3.23.0 - (2021-04-06) - zmiana działania `$setData()` - wcześniej ustawiał bez sprawdzania (bezposrednie ustawienie) lub pomijał gdy ty się nie zgadzał (element obiektu) - próbuje typ danych do pola, jeśli się nie da to nie ustawia - `string` -> `number` - `number` -> `string` - `string` -> `string` - uruchomienie funkcji np. `lowercase`, poprawienie formatu daty - `date` -> `string` - `string` -> `boolean` - `true` dla wartości różnych od `"false"` i `"off"` - `number` -> `boolean` - `true` dla wartości rówżych od `0` - `object` -> `string` - metoda `toString()`, gdy nie jest zaimplementowana to `JSON.stringify()` - poprawione działanie `$check` na polach typu `string` - dla pustych wartości nie wykonuje następnych reguł, kończy po `fieldRequired` i `enum` # 3.22.3 - (2021-03-11) - poprawki - poprawka wyliaczania klucza cache funkcji `calc` i `aggregate`, uwzględnia typ zwracanej wartości i precyzję - dodano szybkie cache na poziomie pojedyńczego property (zapisywane w schema), nie wymagające wyliaczania klucza - powinno przypiseszyć wyznaczanie funkcji w polach tabel - dodana możliwość ustawienia precyzji dla wyliczanego pola `money` # 3.22.1 - (2021-03-10) - poprawki - `$setLength` na tablicy weryfikuje czy nowa wielkośc >=0 - dotyczy również pola `length` ze schematu # 3.22.0 - (2021-03-03) - zmiany - `$parent4` i `$parent5` dostępne z poziomu `calc` i `aggregate` ale nie jest sprawdzana ich poprawność - `$obj.$key` jest teraz reaktywne, jeśli na jego podstawie jest wyliczane inne pole, np poprzez calc to po zmianie indexu tablicy bedzie się aktualizowało # 3.21.1 - (2021-02-22) - poprawki - poprawiono działanie `disabled` na tablicy posiadającej `default` ustawione na liczbę - przy `disabled` ustawia na `[]` po wyłączeniu disabled ustawia liczbę wierzy na tą z `default` # 3.21.0 - (2021-02-02) - methods - `capitalize` - zamiana pierwszej litery w każdym wyrazie na wielką, reszta na małe - "jacek wrycz-rekowski" -> "Jacek Wrycz-Rekowski" - format - `uppercase` - przy wpisywaniu zamienia na wielkie litery - `lowercase` - przy wpisywaniu zamienia na małe litery - `capitalize` - przy wpisywaniu zamienia pierwszą literę wyrazu na wielką, resztę na małe - schemaOptions - `fixFormat: true` - powoduje że na starcie formatuje w modelu wartości pól oznaczone jako uppercase, lowercase, capitalize, date i date-time # 3.20.4 - (2020-12-29) - poprawka przy łaczeniu opcji schematu, wyjątek na `schemaOptions` - poprawione algorytmy przy wyliczaniu różnic dat przy datach w czasie letnim i zimowym # 3.20.3 - (2020-12-15) ## Poprawki - dodana walidacja danych wejściowych w metodach `listYears` i `listMonths` - poprawione parsowanie dat w `dateParse` dodające `T` pomiędzy datą i godziną - kilka poprawek wydajności `padNumber`, `dateFromPesel`, `dateParse` # 3.20.2 - (2020-12-11) ## Poprawki - poprawione literówki w readme # 3.20.1 - (2020-12-03) ## Poprawki - poprawione łączenie opcji schematu, nie nadpisuje już domyślnych opcji # 3.20.0 - (2020-11-20) ## Nowe funkcje - mozliwośc dodawania własnych funkcji do `$methods` - schemacie w polu `$methods` ```JSON { "$methods": { "getone": "return 1", "plusone": { "args": "value", "body": ["return value+1"] }, "plustwo": ["return $0+2"] }, "properties": { ... } } ``` - treść metody może być stringiem lub tablicą stringów - domyślnie argumenty mają nazwy `$0` ... `$9` - jeśli chcemy nazwać argumenty funkcję można podać jako obiekt zawierający właściwości `props` oraz `body` - w definicji instancji Vue w polu `$methods` ```JavaScript $methods: { plusone(value) { return value+this.plusvalue; } } ``` - `this` jest mapowane na instancję # 3.19.1 (2020-10-19) ## Poprawki - poprawa `dateParse` dla Safari 14.0 (problem z formatem daty bez godziny) # 3.19.0 (2020-10-06) ## Nowe funkcje - obsługa `shortTitle` w schema - dodane do `WitkacJsonSchema` - dodana obsługa w komunikatach o błedęch i ostrzeżeniach jako `{{shortTitle}}` - dodana w definicji `JSONSchema` - dodana właściwość `$shortTitle`, w przypadku braku definicji w schemacie wypełniana wartością `$title` - aktualizacja pakietów - aktualizacja storybook do wersji 6 # 3.18.1 (2020-09-18) ## Poprawki - od teraz pesel jest traktowany jako nieprawidłowy, jeśli numer posiada ciąg tej samej cyfry, np. `00000000000`, `22222222222` itp. ## Nowe funkcje - przy polach formatu `date` podanie jako `default` wartości `today` lub `now` ustawia dziesiejsza datę - przy polach formatu `date-time` podanie jako `default` wartości `today` ustawia dzisiajeszą date i godzinę na `00:00:00` - `now` ustawia bieżacy czas - pole `default` ustawiane jest w `$schema` do odczytu # 3.18.0 (2020-07-30) ## Nowe funkcje - przy polach formatu `date` podanie jako `default` wartości `today` lub `now` ustawia dziesiejsza datę - przy polach formatu `date-time` podanie jako `default` wartości `today` ustawia dzisiajeszą date i godzinę na `00:00:00` - `now` ustawia bieżacy czas - pole `default` ustawiane jest w `$schema` do odczytu # 3.17.1 (2020-07-02) ## Poprawki - dodanie do interfejsu `IWrappedProperty` metod `$getData()` i `$destroy` - poprawione działanie `$parent.$parent` oraz `$parent.$parent.$parent` w funkcjach `aggregate` - aktualizacja pakietów # 3.17.0 (2020-05-25) ## Zmiany - ustawienie pól dostępnych przez `$schema` jako `Object.seal(obj)` co powoduje że nie są one obudowaywane przez Vue # 3.16.3 (2020-05-20) ## Poprawki - poprawiona funkcja `dateSet`, poprawka dotyczy ustawiania miesięcy # 3.16.2 (2020-05-14) ## Poprawki - dodanie opisu do readme o formacie `url` - dodanie domyślnego komunikatu dla formatu `url` # 3.16.1 (2020-04-22) ## Poprawki - obsługa pola `readOnly` ze schematu i przenoszenie do `$schema` - przy wartości o typie innym niz `boolean` pole jest wyliczalne # 3.16.0 (2020-03-24) ## Nowe funkcje - do `$check()` i `$checkAll()` dodana opcja `skipDirty` nie zaznaczająca `$dirty` w polu działająca analogicznie do `$validateAll(skipDirty)` - `$check(value,skipDirty)` lub `$check(undefined,skipDirty)` - `$checkAll(skipDirty)` - wynik funkcji `$check()` można odczytac przez `$checkResult: IValidateResult[]` # 3.15.2 (2020-03-17) ## Poprawki - poprawiona obsługa statycznego `disabled`, działa teraz identycznie jak dynamiczny (nie usuwa od razu z modelu, dopiero przy zapisie) # 3.15.1 (2020-03-14) ## Poprawki - poprawiona obsługa `enum` w `warnings` # 3.15.0 (2020-03-09) ## Nowe funkcje - możliwość ustawienia globalnie komunikatów błedu dla określonego formatu - ustawiono domyslne komunikaty dla `format.nip`, `format.email`, `format.kod` ```JSON { "$options": { "validationMessages": { "format.nip": "Nieprawidłowy format, NIP musi składać się z dziesięciu cyfr.", "format.email": "Nieprawidłowy format, adres e-mail musi być wprowadzony w formacie nazwa@domena.", "format.kod": "Nieprawidłowy format, kod pocztowy musi być wprowadzony w formacie xx-xxx i składać się z samych cyfr." } } } ``` # 3.14.1 (2020-03-06) ## Poprawki - wydzielono testy wydajności do folderu `performance` z uzyciem `@witkac/dev-tools` # 3.14.0 (2020-03-05) ## Nowe funkcje - `$schema.validateAll(skipDirty?: boolean)` - przy podaniu `skipDirty` przestaje oznaczać pola jako `$dirty` podczaz sprawdzania ich poprawności. Nie można wtedy jednak odczytać `$error` pola bo on zależy od `$dirty`, błąd znajduje się w polu `$validateResult`, jest to obiekt: ```JavaScript { validation: 'minimum', message: 'Wartośc pola musi być przynajmniej 5', expected: 5 } ``` - osobna funkcja `validate` to walidowania modelu ze schematem bez użycia Vue i całęgo systemu obudowywania modelu, uzycie: ```JavaScript import {validate} from '@witkac/jschema'; const res = validate(schema, model, options); ``` wynikiem obiekt typu `ValidationResult`: ```JavaScript ValidationResult { valid: false, errors: [ { validation: 'format', message: 'Nieprawidłowy format', expected: 'phone9', value: '60409883', path: 'phone' } ] } ``` dostępne opcje: ```JavaScript { external: {}, // dane zewnętrzne validateCalculations: false, // czy sprawdzać poprawnośc wyliczeń disableMessages: false, // czy pomijać komunikat walidacji validationMessages: undefined, // włąsne komunikaty walidacji breakOnFirstError: true, // czy przerywać sprawdzanie pola po pierszym błędzie (tylko jeden błąd na pole) } ``` # 3.13.0 (2020-03-02) ## Nowe funkcje - `title` i `description` mogą być teraz wyliczane dynamicznie, jeśli są podane jako `string[]` lub `any[]` # 3.12.1 (2020-02-28) ## Poprawki - `WiktacJsonSchema.json` - poprawienie definicji `calc.func`, możliwe jest podanie jako `string[]` # 3.12.0 (2020-02-25) ## Nowe funkcje - `flatPropsList(schema)` - zwraca płaską listę wszystkiech właściwości ze schematu - `flatPropsList(schema,true)` - na liście będą tylko typy proste (z pominięciem `object` i `array`) # 3.11.3 (2020-02-17) ## Poprawki - podprawione działanie `length` przy zmianach `disabled`, np. włączanie powoduje sprawdzenie `length` # 3.11.2 (2020-02-17) ## Poprawki - poprawione działanie dynamicznego `disabled` przy statycznym `length` na tablicach - poprawione atuomatycznie importy # 3.11.0 (2020-02-14) - `disabled` nie usuwa pola, a jedynie go zeruje, pole nie jest pobierane przy `$getData()` chyba że jest ustawione `default` - automatyczne `wrapAll` dla małych modeli danych (poniżej 100 wszystkich pól) - możliwość umieszczenia ustawień w schemacie, np. komunikatów: ```JSON { "$options": { "validationMaessages": { "required": "Wypełnienie jest obowiązkowe" } } } ``` - zmiana obsługi ustawiania danych na tabelach zawierających proste dane, dzieki temu zmiany są rektywne # 3.10.1 (2020-02-12) ## Nowe funkcje - dodanie `debugger` w miejscach gdzie są błedy w obliczeniach # 3.10.0 (2020-02-12) ## Nowe funkcje - pole `disabled` w schemacie oznczające że pole jest wyłaczone, jeśli pole jest stringiem to jest wyliczalne - ustawianie `undefined` lub `default` (jak jest) - wyłączenie walidacji i ostrzeżeń - wyłączenie calc i aggregate ## Poprawki kodu - refactoring funkcji sprawadzjącej poprawnośc formatów tekstowych `formatFunctions` - refactoring testów jednostrkowych - uspójnienie wersji plików `tes` # 3.9.1 (2020-02-08) ## Poprawki nazw plików - `fmoneyspace.ts` -> `fmoneySpace.ts` - zmiana nazwy pliku # 3.9.0 (2019-01-06) ## Nowe funkcje - `listNumberFormat` - formatowanie liczby do formatu uzywanego na listach numerowanych np. `a)` `XXI.` - `nextListNumber` - następna liczba z poziomu numerowania, łącznie z formatowaniem # 3.8.1 (2019-01-31) ## Poprawki \$methods - `slownie` -> `toWords` - zmiana nazwy funkcji - `slowniezl` -> `toWordsMoney` - zmiana nazwy funkcji # 3.8.0 (2019-02-03) ## Nowe funkcje - `$schema.$fixDateFormat` - naprawia format daty w polu i wszystkich porzędnych - `date` - obcina godziny - `date-time` - dodaje `00:00:00`, zamienia `"T"` z zapisu `JSON` na `" "` # 3.7.0 (2019-01-31) ## Nowe funkcje \$methods - `percent` - oblicza watośc procentową z dwóch liczb, zabezpiecza przed dzieleniem przez 0 i przed różnymi znakami # 3.6.5 (2019-01-31) ## Poprawki - `slownie` - przy bardzo wielkich liczbach (do których nie ma opisanych jednostek) zwraca ciąg pusty, wcześniej się wywalało # 3.6.4 (2019-01-30) ## Poprawki - `$schema.description` i `$description` - jest teraz dostępne, wcześniej się nie przenosiło # 3.6.3 (2019-01-30) ## Poprawki - `slownie` - poprawka `144000` było `tysiące` jest `tysięcy` # 3.6.2 (2019-01-30) ## Poprawki - `this.$methods` - dostępny już `data()` (ustawiany jest w `beforeCreate()`) - `$methods.fmoneyspace` - może przyjmować string (np. `$value`) - aktualizacja storybook # 3.6.0-3.6.1 (2019-01-29) ## Nowe funkcje - `$methods.slownie` - zamiana liczby całkowitej na słownie - `$methods.slowniezl` - zamiana kwwoty na słownie złotych - `$methods.fmoneyspace` - zamiana liczby na tekst ze spacjami `1234.87` => `1 234,87` - `$methods` - ustawiane jest przez `schemaMixin` teraz w `Vue.prototype` przez co jest dos†epne w każdym komponencie # 3.5.1 (2020-01-24) ## Poprawki - `$warnings` i `$check` poprawiono obsługe ostrzeżeń w przypadku pustych wartości # 3.5.0 (2020-01-23) ## Nowe funkcje - `format` dodano `kw` - czyli księga wieczysta format: `SL1S/12345678/9`, weryfikuje poprawnosc symbolu sądu jak i sumę kontrolną - `$methods` dodano `sum`,`avg`,`distinct`,`distinctItem` # 3.4.0 (2020-01-23) ## Nowe funkcje - `aggreagate` - `distinct` - lista unikalnych wartości zdefiniowanych w `prop` - `aggreagate` - `distinctitem` - lista wszystkich elementów z unikalnymi `prop`, w odróżnieniu od `distinct` zwraca całe wiersze # 3.3.0 (2020-01-22) ## Nowe funkcje - `classToSchema` - zamienające klasę TS na schemat przy pomocy dekoratorów `@SchemaProperty` - do wyrzucenia na osobny npm # 3.2.2 (2019-12-18) ## Nowe funkcje - **\$methods** - metoda `moment` do obsługi `moment` # 3.2.1 (2019-12-05) ## Poprawki - **calc** i **aggregate** - gdy zwracana wartość jest obiektem to jest dodatkowo robione `deepCopy` aby funkcja reagowała na zmianę każdej właściwości zwracanego obiektu - **\$methods** - metoda `deepCopy` do kopiowania obiektów # 3.2.0 (2019-12-03) ## Nowe funkcje - **validFunc** - treść funkcji może być wielolinijkowa, wtedy wynik trzeba umieścić w `$result` lub natychmiast zwrócić przez `return`: ```JSON "validFunc": [ "if (this.cena1>0) {", " if (this.cena2>0) {", " return 'cena 2 musi być zerowa';", " }", "}" ] ``` - wielolinijkowe wersja funkcji są dopuszczalne w: - `minimum` - `maximum` - `exclusiveMinimum` - `exclusiveMaximum` - `minLength` - `maxLength` - `minItems` - `maxItems` ```JSON minimum: [ "if (this.cena1>10) return this.cena1;", "$result = this.cena2" ] ``` # 3.1.0 (2019-12-03) ## Poprawki - **\$checkAll()** - prawidłowo zwraca tylko te elementy z niepustą tablicą `$warnings` ## Nowe funckje - **calc** - treść funkcji może być wielolinijkowa, wtedy wynik trzeba umieścić w `$result`, można tez zwrócić przez `return` ale wtedy nie zadziałają zaokrąglenia do typu docelowego (`integer`, `money`): ```JSON "calc": [ "var ile = this.ilosc;", "if (ile>10) {", " $result = ile * this.cena", "} else {", " $result = this.cena", "}" ] ``` # 3.0.5 (2019-12-02) ## Poprawki - **WrappedPropertyArray** - zmiana `$obj.$parent2` i `$obj.$parent3` na dostęp do obiektu a nie do danych # 3.0.3 (2019-12-02) ## Poprawki - **WrappedPropertyArray** - poprawiony dostęp do `$obj.$parent2` i `$obj.$parent3` z poziomu `calc` i `aggreagte` # 3.0.2 (2019-11-25) ## Poprawki - **WrappedPropertyObject** - poprawione zachowanie dla wartości `null` ustawionej na obiekcie, tworzą się właściwości ale są `null` - **WrappedPropertyObject** - poprawiona walidacja `fieldRequired` sprawdzjąca czy obiekt jest `null` # 3.0.1 (2019-11-25) ## Poprawki - **validate** - prawidłowa obsługa `filedRequired`, niestety nadal nie działa `validFunc` ani wyliczane walidacje - **IWrappedProperty** - definicja `$error` i `$warnings` # 3.0.0 (2019-11-22) ## Nowe funkcje - **JSONSchem** - deifniowanie ostrzeżeń podobnie jak walidacji, odobny klucz `warnings`, który moe zawierać równiez `warningMessages` ```JSON cena3: { "type": "money", "warnings": { "minimum": "this.cena1", "warningMessages": { "minimum": "Zalecana minimalna wartość: {{minimum}}" } } }, ``` - **SchemaWrapper** - rozszerzenia dotyczące ostrzezeń - `$warnings` - odczyt ostrzezen, zwraca tablice, pusta gry ostrzezen nie ma - `$check()` - sprawdza poprawność na podtawie zdefiniowanych `warnings` - `$checkAll()` - zwraca wszystkie pola które mają przynajlniej jedno ostrzezenie - **schema** - `$schema.itemType` - oznacza typ elementu dla typu tablicowego - **fixAdnMErgeScchema** - usprawniona obsługa `$ref` - `#` - odnosi się do root - `#/definitions` - odnosi się do `definitions` w root - `nazwa` - odnosi się do innego pola na tym samym poziomie, coś jak `this` - `..` - oznacza poziom wyzej w schemcie w stosunku do poziomu pola, coś jak `parent` # 2.11.3 (2019-11-06) ## Poprawki - **fixAndMerge** - poprawione określanie domyslnego typu (`type` nie jest wyliczalny), przydatne w łaczeniu `allOf` i dziedziczeniu # 2.11.2 (2019-10-31) ## Poprawki - **aggregate** - poprawione wyznaczanie `first` i `last` # 2.11.1 (2019-10-17) ## Poprawki - **mround** - poprawione zaokrąglanie, zawsze zaokrągla poza liczbami całkowitymi # 2.11.0 (2019-10-14) ## Nowe funkcje - **schemaMixin** - dostęp do `$methods` przez `this.$methods` z poziomu głównego komponentu ## Poprawki - **schemaMixin** - naprawiono `this` w zdarzeniach `beforeFixSchema` `beforeSchema` i `afterSchema` # 2.10.1 (2019-10-11) ## Poprawki - **IWrappedProperty:** - od teraz można odwoływać się na pola `$parent2` oraz `$parent3`. Problem występował gdy przy `aggregate` robiliśmy dość skomplikowaną operację, np: `obj.$parent.$parent.$parent.$key`, zostało to zamieniane na `obj.$parent3.$key` (które posiadało wartość `undefined`) # 2.10.0 (2019-09-25) ## Nowe funkcje - **TimeSpan:** - od teraz `TimeSpan` zwraca też różnicę w latach (przydatne do obliczania wieku czyjeś osoby) # 2.9.2 (2019-08-27) ## Poprawki - **array:** - teraz walidacja działa poprawnie. Przeniesiono do `validate` z `validateAll` # 2.9.1 (2019-08-22) ## Poprawki - **array:** - w momencie wywołania metody `$schema.$validateAll()` gdy array był `$dirty = false` nie zwracało komunikatu z błędem, lecz błąd występował. Bląd został wyeliminowany. # 2.9.0 (2019-08-22) ## Zmiany - **methods:** - dodanie metody `includesAll`, która sprawdza czy pierwsza tablica zawiera wszystkie elementy z drugiej tablicy # 2.8.2 (2019-08-07) ## Poprawki - **length:** - prawidłowa ustawianie długości tablicy na starcie # 2.8.1 (2019-08-07) ## Poprawki - **fixSchema:** - łączenie `default` poprzez `allOf` umożliwia teraz nadpisanie wartością `null` - **WitkacJSonSchema:** - dodanie obsługi `enum` w `validationMessages` # 2.8.0 (2019-08-06) ## Zmiany - **\$validate:** - `enum` prawidłowo weryfikuje wartości `null` - **filedRequired:** - w przypadku `boolean` gdy wymagana wartośc pola to `true` lepiej zastosować `enum: [true]`, a `fieldRequired` zostawić dla wartości `null` - **\$value:** - prawidłowy zapis wartości `null` przy typach `boolean` i `string` # 2.7.1 (2019-08-05) ## Poprawki - **calc/aggreagte:** - ustawianie `$dirty` dopiero po pierwszym prawidłowym obliczeniu wartości, przy `undefined` się `$dirty` nie ustawia # 2.7.0 (2019-08-02) - **format** dodanie nowego formatu `passport` # 2.6.0 (2019-08-02) - **methods** dodanie metody `dateFromPesel`, która wyciąga datę z numeru PESEL # 2.5.1 (2019-07-30) - poprawione kompunikaty walidacji # 2.5.0-rc.3 (2019-07-29) - poprawiony npmignore # 2.5.0-rc.2 (2019-07-29) - **WrappedPropertyArray:** - poprawiono reagowanie na zmiany wielkości, już automatycznie nie uruchamia walidacji - **validFunc:** - testy storybook - **validationMessges:** - dodatkowe wartości: `{{key}}`, `{{title}}`, `{{format}}` - **validationMessges:** - możliwośc przeciążania w `schemaOptions` # 2.5.0-rc.1 (2019-07-29) ## Zmiany - **\$error:** - pole `$error` jest teraz wyliczane, nie trzeba odczytywać `$value` - **\$error:** - reaguje na dynamiczną zmianę walidacji - dodano `storybook` do szybszego testowania # 2.4.3 (2019-07-29) ## Poprawki - **enum:** - prawidłowa obsługa gdy `enum` zwraca `null` lub `undefined` # 2.4.2 (2019-07-29) ## Poprawki - **removeRow:** - poprawiono działanie tej funkcji na starcie # 2.4.1 (2019-07-23) ## Nowe funkcje - **format:** - `phone9` do srpawdzania poprawności 9 cyfrowego numeru telefonu, regex: `/^\d{9}$/` ## Poprawki - **validation:** - walidacje `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum` zwracają sformatowane liczby (`type: "number"` i `type: "money"`) i daty (`format: "date"`) # 2.3.2 (2019-07-23) ## Poprawki - **calc:** - poprawione `result` # 2.3.1 (2019-07-22) ## Poprawki - **debug:** - poprawiony wygląd funkcji `aggregate` i `calc` aby ułatwić pracę w trybie debug, wyświetlanie ścieżki schematu - **schemaPath:** - wyliczanie ścieżki schematu z pominięciem `items` i `properties` - **WitkacJsonSchema.json:** - dodane brakujące wartości pola `format` # 2.3.0 (2019-07-18) ## Nowe funkcje - **validations:** - dodana obsługa `patternFlags` w przypadku użycia `pattern` - **validations:** - `enum` w przypadku gdy walidowane pole jest elementem tablicy, to w przypadku nie spełniania `enum` element jest automatycznie usuwany z tablicy # 2.2.3 (2019-07-17) ## Poprawki - **array:** - poprawione `$moveUp()` na elemencie tablicy # 2.2.2 (2019-07-17) ## Poprawki - **validate:** - poprawione czyszczenie błędów przy `$validate()` # 2.2.1 (2019-07-17) ## Poprawki - **dateDiff:** - poprawione przekazywanie parametrów # 2.2.0 (2019-07-17) ## Poprawki - **validation:** - walidacje stringów `minimum`, `maximum`, `exclusiveMinimum`, `exclusiveMaximum` działają tylko gdy wartość walidacji jest niepustym stringiem - refactoring funkcji JSchema, rozdzielone na pojedyncze pliki # 2.1.0 (2019-07-15) ## Nowe funkcje - **JSchema:** `$ref` może odwoływać się do tej samej gałęzi w której jest przez `./definitions` - **JSchema:** `$ref` może być zedefinowane dynamicznie na podstawie dostarczonego modelu np: `$ref: '#/definitions/typ{{typorganizacji}}'` ## Poprawki - **WrappedPropertyBase:** - naprawiono `$getData()` # 2.0.0 (2019-07-15) ## Nowe funkcje - **schemaWrapper:** usunięto - **schemaMixin:** poprawiono obudowywanie - **WrappedPropertyxxx:** klasy do obudowywania kolejnych elementóww schematu - **JSchema:** cache funkcji validujących, uruchamianie validacji z bieżącym schematem - **validFunc:** walidacja po zmianie parametrów w `validFunc` - szersze wykorzystane `Vue.observable`, gdy nie ma potrzeby to instancja Vue nie jest tworzona ## Poprawki - **WrappedPropertyBase:** - `$dirty` domyślnie na `undefined` - **WrappedPropertyNumber:** - poprawiona obsługa `precision` - **schemaMixin:** wywala błąd gdy brak pola `model` w `data` - **WrappedPropertyObject:** poprawione setValue - **schemaOptions:** `fixData` można ustawić false żeby nie naprawiało modelu na starcie - wywalenie niepotrzebnych console.log - **WrappedPropertyBase:** watcher dla `validFunc` wyłączenie `immediate` - **schemaMixin:** naprawiono ustawianie `$external` - **WrappedPropertyxxx:** poprawione odwołania - **WrappedPropertyxxx:** obudowanie walidacji zależne od typu danych # 1.7.1 (2019-07-08) ## Poprawki - **schemaMixin:** `length` nie zmienia teraz definicji schematu # 1.7.0 (2019-07-08) ## Zmiany - **schemaMixin:** obsługa błędów przy obliczaniu `calc` i `aggregate` - wypisywanie ścieżki, żeby łatwiej znaleźć miejsce w schemacie - tylko w trybie development, w trybie produkcyjnym nie pokazuje błędu - w przypadku błędu zwraca `undefined` i nie zmienia wartości oryginalnej w polu # 1.6.5 (2019-07-07) ## Poprawki - **schemaMixin:** poprawiono działanie dynamicznego `length` dla tablic # 1.6.3 (2019-07-04) ## Poprawki - **schemaMixin:** naprawiono domyślne komunikaty dla `minItems` # 1.6.2 (2019-06-27) ## Poprawki - **schemaMixin:** naprawiono domyślne komunikaty dla `exclusiveMinimum` i `exclusiveMaximum` # 1.6.1 (2019-06-27) ## Zmiany - **schemaMethods:** opis funkcji `dateParse` do parsowania dat - **schemaMixin:** usunięcie funkcji `clearSchema` i zmiana nazwy funkcji na `$setSchema(null)` # 1.6.0 (2019-06-27) ## Nowości - **schemaMethods:** funkcja `dateSet` do ustawiania częsci daty # 1.5.0 (2019-06-25) ## Nowości - **schemaMethods:** funkcja `fnumber` do formatowania liczb, bez dopisywania zer w częsci ułamkowej - **schemaWrapper:** typ `number` formatowany jest przy użyciu funkcji `fnumber` czyli bez dopisywania zer - **doc**: aktualizacja `README` ## Poprawki - **schemaWrapper:** poprawione użycie `precision` w formatowaniu liczb # 1.4.2 (2019-06-19) ## Poprawki - **schemaWrapper:** ustawienie `"debug": true` na poluz `aggregate` lub `calc` powoduje ustawienie debugger w srodku fukcji wyliczającej - **test:** poprawiony runner do testów, działa również na Windows, ustawiony root do testów dzięki czemu szybciej je przeszukuje # 1.4.1 (2019-06-17) ## Poprawki - **schemaWrapper:** w przypadku użycia `calc` lub `aggregate` na typie `array` lub `object` do ustawiania danych używa `$setData()` - **test:** poprawiony runner do testów, działa również na Windows, ustawiony root do testów dzięki czemu szybciej je przeszukuje # 1.4.0 (2019-06-17) ## Nowe funkcje - **schemaWrapper:** dodana funkcja `$dirtyList()` pobierająca pola ze statusem `$dirty` - **doc:** uzupełnine README o funkcje na `$schema` # 1.3.0 (2019-06-16) ## Nowe funkcje - **schemaMixin:** możliwośc zmiany schematu na istniejącej instancji - **schemaMixin:** wydzielenie metod: `setSchema(schema,[forceUpdate])` i `clearSchema()` # 1.2.3 (2019-06-14) ## Nowe funkcje - **SchemaWrapper:** sprawdza czy element jest `observable` jeśli nie to go modyfikuje - **SchemaWrapper:** możliwe na obiektach bez podania `parent` i `propName` - **SchemaWrapper:** error przy wyliczaniu aggregate zamieniony na `warn` # 1.1.0 (2019-06-14) ## Poprawki - **jschema:** zmieniona obsługa parametrów domyślnych w `fixAndMergeSchema` - **test:** testowanie samego wrappera, bez `schemaMixin` - **SchemaWrapper:** fix schema w razie potrzeby przy `wrap` # 1.0.2 (2019-06-13) ## Poprawki - **jschema:** poprawiony automatyczny typ, robi się też dla `items` # 1.0.1 (2019-06-11) ## Poprawki - **jschema:** poprawiony automatyczny typ "string", robi się tylko dla `properties` # 1.0.0 (2019-06-11) ## Zmiany organizacji - **schemaMethods:** każda funkcja w innym pliku, aby uniknąć cyklicznych odwołań - **lib:** export funkcji npm do lib - **dist:** zbodowane bundle do użycia w przeglądarce # 0.9.21 (2019-06-10) ## Nowe funkcje - **SchemaWrapper:** `options.wrapAll` obudowuje cały schemat na starcie # 0.9.19 (2019-06-05) ## Zmiany - **schemaMixin:** wyrzucenie funkcji do walidacji sekcji, przeniesiono do `smartadmin-components` # 0.9.18 (2019-06-04) ## Nowe funkcje - **schemaMethods:** `trim` do tekstów - **doc:** do README dodano przykład użycia # 0.9.17 (2019-06-03) ## Poprawki - **jschema:** poprawiony automatyczny typ "string" # 0.9.16 (2019-05-28) ## Nowe funkcje - **jschema:** gdy typ pola nie jest podany dobiera automatycznie `object`, `array` lub `string` w zależności czy jest `items` czy `properties` czy żadnego z nich, ma to na celu minifikacje schematu # 0.9.15 (2019-05-24) ## Poprawki - **walidacja:** poprawiona walidacja `required` i `type` dopiero po wyjściu z pola - **walidacja:** uruchomienie walidacji zawsze przy `$hasFocus = false` niezależnie czy wcześniej było true # 0.9.14 (2019-05-22) ## Poprawki - **schemaWrapper:** `$setData` dodano parametr `fixArraySize` w danych typu `array` # 0.9.13 (2019-05-09) ## Nowe funkcje - **polyfill:** `Array.includes` i `Object.keys` # 0.9.12 (2019-05-05) ## Nowe funkcje - **schemaWrapper:** `$setData` dodano parametr `fixArraySize` który powoduje że rozmiary tablic są zastępowane tymi z danych, `$setData(newValue: any,path: string,fixArraysize: boolean)` # 0.9.11 ## Nowe funkcje - **JSchema:** dodana obsługa `length` w definicj tablicy, pole jest dynamiczne i może być wyliczane na podstawie innych pól. Tablica ma zawsze długość ustawioną w `length` # 0.9.10 ## Nowe funkcje - **JSchema:** przy `aggregate` niepodanie `property` skutkuje tym, że agregowane są elementy tablic. Przydatne do aggregacji prostych tablic, np. `[1, 4, 11]`