UNPKG

cd-force

Version:

Form creation goodness.

212 lines (203 loc) 5.76 kB
import { CheckboxControl } from '../models/control-checkbox'; import { DropdownControl } from '../models/control-dropdown'; import { TextboxControl } from '../models/control-textbox'; import { ControlService } from '../models/control.service'; import { Component, OnInit } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { CheckboxConfig, CheckboxGroup, CheckboxOption } from '../models/checkbox.model'; import { SingleCheckboxControl } from '../models/singlecheckbox.model'; @Component({ selector: 'app-model-driven', templateUrl: './model-driven.component.html', providers: [ControlService] }) export class ModelDrivenComponent { controls: any[]; checkboxes: any[]; constructor(service: ControlService) { this.controls = [ new TextboxControl({ key: 'clientId', label: 'Client ID', value: '', }), new TextboxControl({ key: 'clientName', label: 'Client Name', value: '', }), new TextboxControl({ key: 'clientUri', label: 'Client URI', value: '', }), new TextboxControl({ key: 'logoUri', label: 'Logo URI', value: '', }), new SingleCheckboxControl({ key: 'requireConsent', label: 'Require Consent', value: false }), new SingleCheckboxControl({ key: 'allowRememberConsent', label: 'Allow Remember Consent', value: false }), new TextboxControl({ key: 'redirectUrl', label: 'Redirect URL', value: 'http://', }), new TextboxControl({ key: 'scopes', label: 'Scopes', value: '', }), new DropdownControl({ key: 'grantType', label: 'Grant Type', options: [ { key: 'code', value: 'code' }, { key: 'client_credentials', value: 'client_credentials' }, { key: 'implicit', value: 'implicit' }, { key: 'hybrid', value: 'hybrid' } ] }), new TextboxControl({ key: 'accessTokenLifetime', label: 'Access token lifetime', value: '600', type: 'number' }), new TextboxControl({ key: 'identityTokenLifetime', label: 'Identity Token Lifetime', value: '600', type: 'number' }), new TextboxControl({ key: 'authorizationCodeLifetime', label: 'Authorization Code Lifetime', value: '600', type: 'number' }), new TextboxControl({ key: 'absoluteRefreshTokenLifetime', label: 'Absolute Refresh Token Lifetime', value: '600', type: 'number' }), new TextboxControl({ key: 'slidingRefreshTokenLifetime', label: 'Sliding Refresh Token Lifetime', value: '600', type: 'number' }), // refreshTokenUsage new TextboxControl({ key: 'refreshTokenExpiration', label: 'Refresh Token Expiration', value: '600', type: 'number' }), // accesstokentype new SingleCheckboxControl({ key: 'enableLocalLogin', label: 'Enable Local Login', value: true }), new SingleCheckboxControl({ key: 'includeJwtId', label: 'Include JWT ID', value: false }), new SingleCheckboxControl({ key: 'alwaysSendClientClaims', label: 'Always Send Client Claims', value: false }), new SingleCheckboxControl({ key: 'prefixClientClaims', label: 'Prefix Client Claims', value: false }), new SingleCheckboxControl({ key: 'allowClientCredentialsOnly', label: 'Allow Client Credentials Only', value: false }), new SingleCheckboxControl({ key: 'updateAccessTokenOnRefresh', label: 'Update Access Token On Refresh', value: false }), new SingleCheckboxControl({ key: 'allowAccessToAllScopes', label: 'Allow Access To All Scopes', value: false }), new SingleCheckboxControl({ key: 'allowAccessToAllGrantTypes', label: 'Allow Access To All GrantTypes', value: false }), new SingleCheckboxControl({ key: 'logoutSessionRequired', label: 'Logout Session Required', value: false }), new SingleCheckboxControl({ key: 'requireSignOutPrompt', label: 'Require Sign Our Prompt', value: false }), new SingleCheckboxControl({ key: 'allowAccessTokensViaBrowser', label: 'Allow Access Tokens Via Browser', value: false }), new TextboxControl({ key: 'registrationDate', label: 'Registration Date', value: '--', }), ]; this.checkboxes = [ // Fix this if only 1 checkbox is necessary for example. // { // key: 'requireConsent', // label: 'Require Consent', // options: [ // { label: 'JS', value: true, id: 1222 }, // ] // }, { key: 'frameworks', label: 'Frameworks', options: [ { label: 'JS', value: true, id: 1222 }, { label: 'CSS', value: false, id: 2 } ] }, { key: 'watchbrands', label: 'Watch brands', options: [ { label: 'Seiko', value: true, id: 12 }, { label: 'Rolex', value: false, id: 21 } ] }, { key: 'carbrands', label: 'Car brands', options: [ { label: 'BMW', value: true, id: 1 }, { label: 'Mercedes', value: false, id: 2 } ] } ]; } }