j-Properties2
Składnik wykorzystuje składniki j-DatePicker, j-TimePicker, j-Directory, j-Emoji, j-ColorPicker i j-Icons.
Konfiguracja:
dateformat {String}w formacie daty (default:yyyy-MM-dd)timeformat {String}w formacie czasu (default:HH:mm)datetimeformat {String}w formacie daty/czasu (default:yyyy-MM-dd HH:mm)change {String}jest drogą do metodymethod(item, replace_text(new_text))(wykonane, jeśli niektóre wartości są zmienione) i argumentreplace_textjest opcjonalny- Wzmacniacz
modalalign {String}dla okien modalnych (default:center) style {Number}obsługuje nowy styl2podobnie jak ustawieniaiOS(default:1)validation {Boolean}umożliwia weryfikację wymaganych pól (default:true)defaultgroup {String}- domyślna nazwa grupy (default:Default)
Deklaracja danych:
var form = [];
form.push({ group: 'Personal', label: 'First name', name: 'user.firstname', type: 'string', value: 'Peter', transform: 'capitalize' });
form.push({ group: 'Personal', label: 'Last name', name: 'user.lastname', type: 'string', value: 'Širka', placeholder: 'String' });
form.push({ group: 'Personal', label: 'Age', name: 'user.age', type: 'number', value: 33, min: 30 });
form.push({ group: 'Personal', label: 'Birth date', name: 'user.birth', type: 'date', value: NOW });
form.push({ group: 'Additional', label: 'Newsletter', name: 'user.newsletter', type: 'bool', value: true });
form.push({ group: 'Additional', label: 'City', name: 'user.city', type: 'list', value: 2, items: 'items', dirsearch: 'Search city', dircustom: true });
form.push({ group: 'Additional', label: 'Color', name: 'user.color', type: 'color', value: '#e73323' });
form.push({ group: 'Additional', label: 'Icon', name: 'user.icon', type: 'fontawesome', value: 'ti ti-home' });
form.push({ group: 'Additional', label: 'Emoji', name: 'user.emoji', type: 'emoji', value: '', show: 'n => n.age === 33' });Właściwości danych w deklaracji danych:
name {String}identyfikator elementu (wymagany)label {String}etykietę (wymagane)group {String}nazwa grupy (wymagane)note {String}mała notatka pod kontrolątype {String}typu (wymagane)placeholder {String}jeden posiadacz (tylko niewielu typów wspiera)transform {String}dla typustringmoże zawierać tylkocapitalize,uppercase,lowercaselubslugmaxlength {Number}dla typustringtylkovalidate {RegExp/String}tylko dla typustring, może zawieraćemail,phoneluburlmin {Number}dla typunumbertylkomax {Number}dla typunumbertylkoinc {Number/String}wzrost wartości według wartości, której celem jestnumberlubdate(może zawierać1 daylub-1 dayTyp tylkorequired {Boolean}dla typustring,numberlubdatedirsearch {String/Boolean}miejsce dla typulisttylko, boolean zaburza wyszukiwaniadircustom {Boolean}umożliwia przydzieloną wartość tylko dla typulistdirkey {String}jest nazwą kluczową dla etykiety/nazwa, przeznaczona tylko dla typulist(default:name)dirvalue {String}to nazwa kluczowa dla wartości, przeznaczona tylko dla typulist(default:id)- Adres URL
detail {String}do uzyskania danych dla typulist, przykład:/users/{0}/i{0}zostaną zastąpione wartością z listy - Elementy
items {Object Array/String}dla typulistmogą zawierać ścieżkę doArraylubURL addressdo wyszukiwania show {Arrow function}, przykład:data => data.KEY === 'SOMETHING'--> pokaże, czy warunek będzie ważny- Ikonę
icon {String}Total, może zawierać kolor np.ti ti-home #00000 ricon {String}Ikony prawego czcionka lub tekst np.!HTML textriconclick {String}Droga do metodyfunction(item, set(new_val))camouflage {Boolean}tylko dla typustringmonospace {Boolean}używa monopolu
Dozwolone typy w danych:
stringboolnumberdatelistcoloremojifontawesomeexec(można wykonać metodęexec)text(wartość odczytu)menu(jest podobny do listy, ale składnik będzie wykonywaćj-Menu)
Zaginione typy:
datetimetimefilemonths
Dobrze wiedzieć
Składnik rozszerza Array poprzez dodanie:
- Pole
invalid {Boolean}określa, czyvaluejest nieważny (default:undefined) - Pole
changed {Boolean}określa, czyvaluezostał zmieniony (default:undefined) prev{???} zawiera wartość początkową
Użyj go z <ui-component name="properties2">Gdy element nie jest jeszcze ładowany, jComponent Pobierz go po pierwszym użyciu z adresu DEF.fallback (Wydaje się Componentator Autor: Peter Širka Źródło: Componentator Zestaw składników, licencja MIT.
<ui-component name="LAZY directory"></ui-component>
<ui-component name="LAZY colorpicker"></ui-component>
<ui-component name="LAZY faicons"></ui-component>
<ui-component name="LAZY datepicker"></ui-component>
<ui-component name="LAZY timepicker"></ui-component>
<ui-component name="LAZY emoji"></ui-component>
<ui-component name="LAZY menu"></ui-component>
<div style="width:600px;padding:20px;background-color:#F0F0F0">
<ui-component name="properties2" path="form" class="m"></ui-component>
<ui-component name="properties2" path="form2" config="style:2" class="m"></ui-component>
<!-- PERSISTENT MODE -->
<ui-component name="properties2" path="form3" config="style:2">
<script type="text/plain">
[
{ group: 'Personal', name: 'First name', id: 'firstname', type: 'string',transform: 'capitalize', note: 'Type your name' },
{ group: 'Personal', name: 'Last name', id: 'lastname', type: 'string', placeholder: 'String' },
{ group: 'Personal', name: 'Token', id: 'token', type: 'string', placeholder: 'String', camouflage: true }
]
</script>
</ui-component>
</div>
<script>
var items = [{ id: 2, name: 'Banská Bystrica' }, { id: 3, name: 'Bratislava' }];
var form = [];
form.push({ group: 'Personal', name: 'First name', id: 'firstname', type: 'string', value: 'Peter', transform: 'capitalize', note: 'Type your name' });
form.push({ group: 'Personal', name: 'Last name', id: 'lastname', type: 'string', value: 'Širka', placeholder: 'String' });
form.push({ group: 'Personal', name: 'Age', id: 'age', type: 'number', value: 33, min: 30 });
form.push({ group: 'Personal', name: 'Birth date', id: 'birth', type: 'date', value: NOW });
form.push({ group: 'Additional', name: 'Newsletter', id: 'newsletter', type: 'bool', value: true });
form.push({ group: 'Additional', name: 'City', id: 'city', type: 'list', value: 2, items: 'items', dirsearch: 'Search city', dircustom: true });
form.push({ group: 'Additional', name: 'Color', id: 'color', type: 'color', value: '#e73323' });
form.push({ group: 'Additional', name: 'Icon', id: 'icon', type: 'fontawesome', value: 'ti ti-home' });
form.push({ group: 'Additional', name: 'Emoji', id: 'emoji', type: 'emoji', value: '', show: 'n => n.age === 33' });
form.push({ group: 'Additional', name: 'Exec', exec: 'myexec', type: 'exec', value: 'Some text to exec' });
form.push({ group: 'Additional', name: 'Readonly', id: 'something', type: 'text', value: 'Readonly value' });
var form2 = [];
form2.push({ group: 'Personal', name: 'First name', id: 'firstname', type: 'string', value: 'Peter', transform: 'capitalize', note: 'Type your name' });
form2.push({ group: 'Personal', name: 'Last name', id: 'lastname', type: 'string', value: 'Širka', placeholder: 'String' });
form2.push({ group: 'Personal', name: 'Age', id: 'age', type: 'number', value: 33, min: 30 });
form2.push({ group: 'Personal', name: 'Birth date', id: 'birth', type: 'date', value: NOW });
form2.push({ group: 'Additional', name: 'Newsletter', id: 'newsletter', type: 'bool', value: true });
form2.push({ group: 'Additional', name: 'City', id: 'city', type: 'list', value: 2, items: 'items', dirsearch: 'Search city', dircustom: true });
form2.push({ group: 'Additional', name: 'Color', id: 'color', type: 'color', value: '#e73323' });
form2.push({ group: 'Additional', name: 'Icon', id: 'icon', type: 'fontawesome', value: 'ti ti-home' });
form2.push({ group: 'Additional', name: 'Emoji', id: 'emoji', type: 'emoji', value: '', show: 'n => n.age === 33' });
form2.push({ group: 'Additional', name: 'Exec', exec: 'myexec', type: 'exec', value: 'Some text to exec' });
form2.push({ group: 'Additional', name: 'Readonly', id: 'something', type: 'text', value: 'Readonly value', icon: 'ti ti-home #000' });
var form3 = {};
form3.firstname = 'Peter';
form3.lastname = 'Širka';
form3.token = GUID(30);
function myexec(item, el) {
console.log(item, el);
}
</script>