|
@@ -0,0 +1,190 @@
|
|
|
+import { Validators } from '@angular/forms';
|
|
|
+import { ValueTransformer } from './../interfaces';
|
|
|
+
|
|
|
+// ---------------------------------------------------------------------------------------------------------------------
|
|
|
+// Native
|
|
|
+
|
|
|
+const basicTextField = {
|
|
|
+ type: 'Text',
|
|
|
+ label: 'Field One',
|
|
|
+ placeholder: 'Type a value here'
|
|
|
+};
|
|
|
+
|
|
|
+const styledTextField = {
|
|
|
+ type: 'Text',
|
|
|
+ placeholder: 'With a DOM id and CSS classes applied',
|
|
|
+ class: ['red', 'bgPaleBlue'],
|
|
|
+ id: 'yoyo'
|
|
|
+};
|
|
|
+
|
|
|
+const textareaField = {
|
|
|
+ type: 'Textarea',
|
|
|
+ placeholder: 'Type your long-winded comments here'
|
|
|
+};
|
|
|
+
|
|
|
+const passwordField = {
|
|
|
+ type: 'Password',
|
|
|
+ placeholder: 'It\'s a secret'
|
|
|
+};
|
|
|
+
|
|
|
+const selectField = {
|
|
|
+ type: 'Select',
|
|
|
+ options: ['', 'Apples', 'Oranges', 'Pears', 'Gorgonzola']
|
|
|
+};
|
|
|
+
|
|
|
+const radioField = {
|
|
|
+ type: 'radio',
|
|
|
+ options: ['Tea', 'Coffee', 'Cocoa', 'Yerba Maté'],
|
|
|
+ validators: [ Validators.required ],
|
|
|
+};
|
|
|
+
|
|
|
+const disabledTextField = {
|
|
|
+ type: 'Text',
|
|
|
+ placeholder: 'You can\'t touch this',
|
|
|
+ isDisabled: true
|
|
|
+};
|
|
|
+
|
|
|
+const radioFieldHorizontal = {
|
|
|
+ type: 'radio',
|
|
|
+ options: ['Fish', 'Fowl', 'Neither'],
|
|
|
+ horizontal: true
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+// ---------------------------------------------------------------------------------------------------------------------
|
|
|
+// Custom
|
|
|
+
|
|
|
+const checkbutton = {
|
|
|
+ type: 'checkbutton',
|
|
|
+ value: '456'
|
|
|
+};
|
|
|
+
|
|
|
+const checkbutton2 = {
|
|
|
+ type: 'checkbutton',
|
|
|
+ value: 'Yowsa'
|
|
|
+};
|
|
|
+
|
|
|
+const modifiers = ['Matches', 'Starts With', 'Contains'];
|
|
|
+const transformerFunctions: ValueTransformer = {
|
|
|
+ inputFn: val => {
|
|
|
+ let modifier = 'Starts With';
|
|
|
+ if (/^%.*?%$/.test(val)) {
|
|
|
+ modifier = 'Contains';
|
|
|
+ } else if (/^[^%].*?[^%]$/.test(val)) {
|
|
|
+ modifier = 'Matches';
|
|
|
+ } else if (/^%.*/.test(val)) {
|
|
|
+ modifier = 'Starts With';
|
|
|
+ }
|
|
|
+ const transformedVal = val.replace(/%/g, '').trim();
|
|
|
+ return { modifier: modifier, value: transformedVal };
|
|
|
+ },
|
|
|
+ outputFn: (mod, val) => {
|
|
|
+ let transformedValue;
|
|
|
+ switch (mod) {
|
|
|
+ case 'Starts With':
|
|
|
+ transformedValue = `%${val}`;
|
|
|
+ break;
|
|
|
+ case 'Contains':
|
|
|
+ transformedValue = `%${val}%`;
|
|
|
+ break;
|
|
|
+ case 'Matches':
|
|
|
+ default:
|
|
|
+ transformedValue = val;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return transformedValue;
|
|
|
+ }
|
|
|
+};
|
|
|
+const dropdownModifiedInput = {
|
|
|
+ type: 'dropdownModifiedInput',
|
|
|
+ value: 'lovely',
|
|
|
+ modifiers,
|
|
|
+ transform: transformerFunctions
|
|
|
+};
|
|
|
+
|
|
|
+const checkbuttonGroup = {
|
|
|
+ type: 'CheckbuttonGroup',
|
|
|
+ firstEnablesRest: true,
|
|
|
+<<<<<<< HEAD
|
|
|
+ meta: { iMaskTheOthers: {}, groupMemberTwo: {}, groupMemberThree: {} }
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+=======
|
|
|
+ meta: [{name: 'iMaskTheOthers'}, {name: 'groupMemberTwo'}, {name: 'groupMemberThree'}]
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+>>>>>>> a3dfe85e06beb3d977f49241b2360bb3e2f4a09d
|
|
|
+// ---------------------------------------------------------------------------------------------------------------------
|
|
|
+// Kendo
|
|
|
+
|
|
|
+const timepicker = {
|
|
|
+ type: 'timepicker'
|
|
|
+};
|
|
|
+
|
|
|
+const datepicker = {
|
|
|
+ type: 'datepicker'
|
|
|
+};
|
|
|
+
|
|
|
+// ---------------------------------------------------------------------------------------------------------------------
|
|
|
+// Container
|
|
|
+
|
|
|
+const basicTextField2 = {
|
|
|
+ type: 'Text',
|
|
|
+ label: 'Required Field',
|
|
|
+ validators: [ Validators.required, Validators.minLength(4) ],
|
|
|
+};
|
|
|
+
|
|
|
+<<<<<<< HEAD
|
|
|
+const checkbuttonGroupArray = {
|
|
|
+ type: 'CheckbuttonGroup',
|
|
|
+ firstEnablesRest: false,
|
|
|
+ showAllOrNone: true,
|
|
|
+ meta: [
|
|
|
+ {name: 'One', value: 111}, {name: 'Two', value: 222}, {name: 'Three', value: 333}, {name: 'Four', value: 444},
|
|
|
+ {name: 'Five', value: 555}, {name: 'Six', value: 666}, {name: 'Seven', value: 777}, {name: 'Eight', value: 888}
|
|
|
+ ]
|
|
|
+=======
|
|
|
+const checkbuttonGroup2 = {
|
|
|
+ type: 'CheckbuttonGroup',
|
|
|
+ firstEnablesRest: true,
|
|
|
+ meta: [{name: 'One'}, {name: 'Two'}, {name: 'Three'}]
|
|
|
+>>>>>>> a3dfe85e06beb3d977f49241b2360bb3e2f4a09d
|
|
|
+};
|
|
|
+
|
|
|
+const container = {
|
|
|
+ type: 'Container',
|
|
|
+ meta: {
|
|
|
+ basicTextField2,
|
|
|
+<<<<<<< HEAD
|
|
|
+ checkbuttonGroupArray
|
|
|
+=======
|
|
|
+ checkbuttonGroup2,
|
|
|
+>>>>>>> a3dfe85e06beb3d977f49241b2360bb3e2f4a09d
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// ---------------------------------------------------------------------------------------------------------------------
|
|
|
+
|
|
|
+const model = {};
|
|
|
+
|
|
|
+const meta = {
|
|
|
+ basicTextField,
|
|
|
+ styledTextField,
|
|
|
+ textareaField,
|
|
|
+ passwordField,
|
|
|
+ selectField,
|
|
|
+ radioField,
|
|
|
+ disabledTextField,
|
|
|
+ radioFieldHorizontal,
|
|
|
+ checkbutton,
|
|
|
+ dropdownModifiedInput,
|
|
|
+ checkbuttonGroup,
|
|
|
+ timepicker,
|
|
|
+ datepicker,
|
|
|
+ container
|
|
|
+};
|
|
|
+
|
|
|
+export { model, meta };
|