588 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			588 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html lang="en"><head></head><body>
 | |
|         <form id="mainForm" method="post" action="https://run.stackblitz.com/api/angular/v1?file=src/app/app.component.ts" target="_self"><input type="hidden" name="files[src/app/app.component.ts]" value="import { Component } from '@angular/core';
 | |
| 
 | |
| @Component({
 | |
|   selector: 'app-root',
 | |
|   templateUrl: './app.component.html',
 | |
|   styleUrls: ['./app.component.css']
 | |
| })
 | |
| export class AppComponent {
 | |
|   actionName = 'Go for it';
 | |
|   isSpecial = true;
 | |
|   canSave = true;
 | |
|   classExpression = 'special clearance';
 | |
|   styleExpression = 'color: red';
 | |
|   color = 'blue';
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/app.module.ts]" value="import { BrowserModule } from '@angular/platform-browser';
 | |
| import { NgModule } from '@angular/core';
 | |
| 
 | |
| import { AppComponent } from './app.component';
 | |
| import { CompWithHostBindingComponent } from './comp-with-host-binding.component';
 | |
| import { MyInputWithAttributeDecoratorComponent } from './my-input-with-attribute-decorator.component';
 | |
| 
 | |
| @NgModule({
 | |
|   declarations: [
 | |
|     AppComponent,
 | |
|     CompWithHostBindingComponent,
 | |
|     MyInputWithAttributeDecoratorComponent
 | |
|   ],
 | |
|   imports: [
 | |
|     BrowserModule
 | |
|   ],
 | |
|   providers: [],
 | |
|   bootstrap: [AppComponent]
 | |
| })
 | |
| export class AppModule { }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/comp-with-host-binding.component.ts]" value="import { Component, HostBinding } from '@angular/core';
 | |
| 
 | |
| @Component({
 | |
|   selector: 'comp-with-host-binding',
 | |
|   template: 'I am a component!',
 | |
| })
 | |
| export class CompWithHostBindingComponent {
 | |
|   @HostBinding('class.special')
 | |
|   isSpecial = false;
 | |
| 
 | |
|   @HostBinding('style.color')
 | |
|   color = 'green';
 | |
| 
 | |
|   @HostBinding('style.width')
 | |
|   width = '200px';
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/my-input-with-attribute-decorator.component.ts]" value="import { Attribute, Component } from '@angular/core';
 | |
| 
 | |
| @Component({
 | |
|   selector: 'app-my-input-with-attribute-decorator',
 | |
|   template: 'The type of the input is: {{ type }}'
 | |
| })
 | |
| export class MyInputWithAttributeDecoratorComponent {
 | |
|   constructor(@Attribute('type') public type: string) { }
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/single-and-multiple-style-binding.component.ts]" value="@Component({
 | |
|   selector: 'app-nav-bar',
 | |
|   template: `
 | |
| <nav [style]='navStyle'>
 | |
|   <a [style.text-decoration]="activeLinkStyle">Home Page</a>
 | |
|   <a [style.text-decoration]="linkStyle">Login</a>
 | |
| </nav>`
 | |
| })
 | |
| export class NavBarComponent {
 | |
|   navStyle = 'font-size: 1.2rem; color: cornflowerblue;';
 | |
|   linkStyle = 'underline';
 | |
|   activeLinkStyle = 'overline';
 | |
|   /* . . . */
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/environments/environment.prod.ts]" value="export const environment = {
 | |
|   production: true
 | |
| };
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/environments/environment.ts]" value="// This file can be replaced during build by using the `fileReplacements` array.
 | |
| // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
 | |
| // The list of file replacements can be found in `angular.json`.
 | |
| 
 | |
| export const environment = {
 | |
|   production: false
 | |
| };
 | |
| 
 | |
| /*
 | |
|  * For easier debugging in development mode, you can import the following file
 | |
|  * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
 | |
|  *
 | |
|  * This import should be commented out in production mode because it will have a negative impact
 | |
|  * on performance if an error is thrown.
 | |
|  */
 | |
| // import 'zone.js/plugins/zone-error';  // Included with Angular CLI.
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/main.ts]" value="import { enableProdMode } from '@angular/core';
 | |
| import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
 | |
| 
 | |
| import { AppModule } from './app/app.module';
 | |
| import { environment } from './environments/environment';
 | |
| 
 | |
| if (environment.production) {
 | |
|   enableProdMode();
 | |
| }
 | |
| 
 | |
| platformBrowserDynamic().bootstrapModule(AppModule)
 | |
|   .catch(err => console.log(err));
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/polyfills.ts]" value="/**
 | |
|  * This file includes polyfills needed by Angular and is loaded before the app.
 | |
|  * You can add your own extra polyfills to this file.
 | |
|  *
 | |
|  * This file is divided into 2 sections:
 | |
|  *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
 | |
|  *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
 | |
|  *      file.
 | |
|  *
 | |
|  * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
 | |
|  * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
 | |
|  * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
 | |
|  *
 | |
|  * Learn more in https://angular.io/guide/browser-support
 | |
|  */
 | |
| 
 | |
| /***************************************************************************************************
 | |
|  * BROWSER POLYFILLS
 | |
|  */
 | |
| 
 | |
| /** IE11 requires the following for NgClass support on SVG elements */
 | |
| // import 'classlist.js';  // Run `npm install --save classlist.js`.
 | |
| 
 | |
| /**
 | |
|  * Web Animations `@angular/platform-browser/animations`
 | |
|  * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
 | |
|  * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
 | |
|  */
 | |
| // import 'web-animations-js';  // Run `npm install --save web-animations-js`.
 | |
| 
 | |
| /**
 | |
|  * By default, zone.js will patch all possible macroTask and DomEvents
 | |
|  * user can disable parts of macroTask/DomEvents patch by setting following flags
 | |
|  * because those flags need to be set before `zone.js` being loaded, and webpack
 | |
|  * will put import in the top of bundle, so user need to create a separate file
 | |
|  * in this directory (for example: zone-flags.ts), and put the following flags
 | |
|  * into that file, and then add the following code before importing zone.js.
 | |
|  * import './zone-flags';
 | |
|  *
 | |
|  * The flags allowed in zone-flags.ts are listed here.
 | |
|  *
 | |
|  * The following flags will work for all browsers.
 | |
|  *
 | |
|  * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch
 | |
|  * requestAnimationFrame
 | |
|  * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
 | |
|  * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch
 | |
|  * specified eventNames
 | |
|  *
 | |
|  *  in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
 | |
|  *  with the following flag, it will bypass `zone.js` patch for IE/Edge
 | |
|  *
 | |
|  *  (window as any).__Zone_enable_cross_context_check = true;
 | |
|  *
 | |
|  */
 | |
| 
 | |
| /***************************************************************************************************
 | |
|  * Zone JS is required by default for Angular itself.
 | |
|  */
 | |
| import 'zone.js'; // Included with Angular CLI.
 | |
| 
 | |
| /***************************************************************************************************
 | |
|  * APPLICATION IMPORTS
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/app.component.css]" value=".special {
 | |
|   background-color: #1976d2;
 | |
|   color: #ffffff;
 | |
| }
 | |
| 
 | |
| .item {
 | |
|   font-weight: bold;
 | |
| }
 | |
| .clearance {
 | |
|   border: 2px solid #d41e2e;
 | |
| 
 | |
| }
 | |
| .item-clearance {
 | |
|   font-style: italic;
 | |
| 
 | |
| }
 | |
| 
 | |
| .new-class {
 | |
|   background-color: #ed1b2f;
 | |
|   font-style: italic;
 | |
|   color: #fff;
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/styles.css]" value="/* Global Styles */
 | |
| * {
 | |
|   font-family: Arial, Helvetica, sans-serif;
 | |
| }
 | |
| h1 {
 | |
|   color: #264D73;
 | |
|   font-size: 2.5rem;
 | |
| }
 | |
| h2, h3 {
 | |
|   color: #444;
 | |
|   font-weight: lighter;
 | |
| }
 | |
| h3 {
 | |
|   font-size: 1.3rem;
 | |
| }
 | |
| body {
 | |
|   padding: .5rem;
 | |
|   max-width: 1000px;
 | |
|   margin: auto;
 | |
| }
 | |
| @media (min-width: 600px) {
 | |
|   body {
 | |
|     padding: 2rem;
 | |
|   }
 | |
| }
 | |
| body, input[text] {
 | |
|   color: #333;
 | |
|   font-family: Cambria, Georgia, serif;
 | |
| }
 | |
| a {
 | |
|   cursor: pointer;
 | |
| }
 | |
| button {
 | |
|   background-color: #eee;
 | |
|   border: none;
 | |
|   border-radius: 4px;
 | |
|   cursor: pointer;
 | |
|   color: black;
 | |
|   font-size: 1.2rem;
 | |
|   padding: 1rem;
 | |
|   margin-right: 1rem;
 | |
|   margin-bottom: 1rem;
 | |
| }
 | |
| button:hover {
 | |
|   background-color: black;
 | |
|   color: white;
 | |
| }
 | |
| button:disabled {
 | |
|   background-color: #eee;
 | |
|   color: #aaa;
 | |
|   cursor: auto;
 | |
| }
 | |
| 
 | |
| /* Navigation link styles */
 | |
| nav a {
 | |
|   padding: 5px 10px;
 | |
|   text-decoration: none;
 | |
|   margin-right: 10px;
 | |
|   margin-top: 10px;
 | |
|   display: inline-block;
 | |
|   background-color: #e8e8e8;
 | |
|   color: #3d3d3d;
 | |
|   border-radius: 4px;
 | |
| }
 | |
| 
 | |
| nav a:hover {
 | |
|   color: white;
 | |
|   background-color:  #42545C;
 | |
| }
 | |
| nav a.active {
 | |
|   background-color: black;
 | |
|   color: white;
 | |
| }
 | |
| hr {
 | |
|   margin: 1.5rem 0;
 | |
| }
 | |
| input[type="text"] {
 | |
|   box-sizing: border-box;
 | |
|   width: 100%;
 | |
|   padding: .5rem;
 | |
| }
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| */"><input type="hidden" name="files[src/app/app.component.html]" value="
 | |
| <h1>Attribute, class, and style bindings</h1>
 | |
| <h2>Attribute binding</h2>
 | |
| <table border=1>
 | |
|   <!--  expression calculates colspan=2 -->
 | |
|   <tr><td [attr.colspan]="1 + 1">One-Two</td></tr>
 | |
| 
 | |
|   <!-- ERROR: There is no `colspan` property to set!
 | |
|     <tr><td colspan="{{1 + 1}}">Three-Four</td></tr>
 | |
|   -->
 | |
|   <!-- Notice the colSpan property is camel case -->
 | |
|   <tr><td [colSpan]="1 + 1">Three-Four</td></tr>
 | |
| 
 | |
|   <tr><td>Five</td><td>Six</td></tr>
 | |
| </table>
 | |
| 
 | |
| <div>
 | |
|   <!-- create and set an aria attribute for assistive technology -->
 | |
|   <button [attr.aria-label]="actionName">{{actionName}} with Aria</button>
 | |
| </div>
 | |
| 
 | |
| <hr />
 | |
| 
 | |
| <h2>Styling precedence</h2>
 | |
| 
 | |
| <h3>Basic specificity</h3>
 | |
| 
 | |
| <!-- The `class.special` binding overrides any value for the `special` class in `classExpression`.  -->
 | |
| <div [class.special]="isSpecial" [class]="classExpression">Some text.</div>
 | |
| 
 | |
| <!-- The `style.color` binding overrides any value for the `color` property in `styleExpression`.  -->
 | |
| <div [style.color]="color" [style]="styleExpression">Some text.</div>
 | |
| 
 | |
| <h3>Source specificity</h3>
 | |
| 
 | |
| <!-- The `class.special` template binding overrides any host binding to the `special` class set by `dirWithClassBinding` or `comp-with-host-binding`.-->
 | |
| <comp-with-host-binding [class.special]="isSpecial" dirWithClassBinding>Some text.</comp-with-host-binding>
 | |
| 
 | |
| <!-- The `style.color` template binding overrides any host binding to the `color` property set by `dirWithStyleBinding` or `comp-with-host-binding`. -->
 | |
| <comp-with-host-binding [style.color]="color" dirWithStyleBinding>Some text.</comp-with-host-binding>
 | |
| 
 | |
| <h3>Dynamic vs static</h3>
 | |
| 
 | |
| <!-- If `classExpression` has a value for the `special` class, this value overrides the `class="special"` below -->
 | |
| <div class="special" [class]="classExpression">Some text.</div>
 | |
| 
 | |
| <!-- If `styleExpression` has a value for the `color` property, this value overrides the `style="color: blue"` below -->
 | |
| <div style="color: blue" [style]="styleExpression">Some text.</div>
 | |
| 
 | |
| 
 | |
| <comp-with-host-binding dirWithHostBinding></comp-with-host-binding>
 | |
| 
 | |
| <app-my-input-with-attribute-decorator type="number"></app-my-input-with-attribute-decorator>
 | |
| 
 | |
| 
 | |
| <!-- 
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| -->"><input type="hidden" name="files[src/index.html]" value="<!doctype html>
 | |
| <html lang="en">
 | |
| <head>
 | |
|   <meta charset="utf-8">
 | |
|   <title>AttributeBinding</title>
 | |
|   <base href="/">
 | |
|   <meta name="viewport" content="width=device-width, initial-scale=1">
 | |
|   <link rel="icon" type="image/x-icon" href="favicon.ico">
 | |
| </head>
 | |
| <body>
 | |
|   <app-root></app-root>
 | |
| </body>
 | |
| </html>
 | |
| 
 | |
| 
 | |
| <!-- 
 | |
| Copyright Google LLC. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at https://angular.io/license
 | |
| -->"><input type="hidden" name="files[angular.json]" value="{
 | |
|   "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
 | |
|   "version": 1,
 | |
|   "newProjectRoot": "projects",
 | |
|   "projects": {
 | |
|     "angular.io-example": {
 | |
|       "projectType": "application",
 | |
|       "schematics": {
 | |
|         "@schematics/angular:application": {
 | |
|           "strict": true
 | |
|         }
 | |
|       },
 | |
|       "root": "",
 | |
|       "sourceRoot": "src",
 | |
|       "prefix": "app",
 | |
|       "architect": {
 | |
|         "build": {
 | |
|           "builder": "@angular-devkit/build-angular:browser",
 | |
|           "options": {
 | |
|             "outputPath": "dist",
 | |
|             "index": "src/index.html",
 | |
|             "main": "src/main.ts",
 | |
|             "polyfills": "src/polyfills.ts",
 | |
|             "tsConfig": "tsconfig.app.json",
 | |
|             "aot": true,
 | |
|             "assets": [
 | |
|               "src/favicon.ico",
 | |
|               "src/assets"
 | |
|             ],
 | |
|             "styles": [
 | |
|               "src/styles.css"
 | |
|             ],
 | |
|             "scripts": []
 | |
|           },
 | |
|           "configurations": {
 | |
|             "production": {
 | |
|               "fileReplacements": [
 | |
|                 {
 | |
|                   "replace": "src/environments/environment.ts",
 | |
|                   "with": "src/environments/environment.prod.ts"
 | |
|                 }
 | |
|               ],
 | |
|               "optimization": true,
 | |
|               "outputHashing": "all",
 | |
|               "sourceMap": false,
 | |
|               "namedChunks": false,
 | |
|               "extractLicenses": true,
 | |
|               "vendorChunk": false,
 | |
|               "buildOptimizer": true,
 | |
|               "budgets": [
 | |
|                 {
 | |
|                   "type": "initial",
 | |
|                   "maximumWarning": "500kb",
 | |
|                   "maximumError": "1mb"
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "anyComponentStyle",
 | |
|                   "maximumWarning": "2kb",
 | |
|                   "maximumError": "4kb"
 | |
|                 }
 | |
|               ]
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "serve": {
 | |
|           "builder": "@angular-devkit/build-angular:dev-server",
 | |
|           "options": {
 | |
|             "browserTarget": "angular.io-example:build"
 | |
|           },
 | |
|           "configurations": {
 | |
|             "production": {
 | |
|               "browserTarget": "angular.io-example:build:production"
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "extract-i18n": {
 | |
|           "builder": "@angular-devkit/build-angular:extract-i18n",
 | |
|           "options": {
 | |
|             "browserTarget": "angular.io-example:build"
 | |
|           }
 | |
|         },
 | |
|         "test": {
 | |
|           "builder": "@angular-devkit/build-angular:karma",
 | |
|           "options": {
 | |
|             "main": "src/test.ts",
 | |
|             "polyfills": "src/polyfills.ts",
 | |
|             "tsConfig": "tsconfig.spec.json",
 | |
|             "karmaConfig": "karma.conf.js",
 | |
|             "assets": [
 | |
|               "src/favicon.ico",
 | |
|               "src/assets"
 | |
|             ],
 | |
|             "styles": [
 | |
|               "src/styles.css"
 | |
|             ],
 | |
|             "scripts": []
 | |
|           }
 | |
|         },
 | |
|         "lint": {
 | |
|           "builder": "@angular-devkit/build-angular:tslint",
 | |
|           "options": {
 | |
|             "tsConfig": [
 | |
|               "tsconfig.app.json",
 | |
|               "tsconfig.spec.json",
 | |
|               "e2e/tsconfig.json"
 | |
|             ],
 | |
|             "exclude": [
 | |
|               "**/node_modules/**"
 | |
|             ]
 | |
|           }
 | |
|         },
 | |
|         "e2e": {
 | |
|           "builder": "@angular-devkit/build-angular:protractor",
 | |
|           "options": {
 | |
|             "protractorConfig": "e2e/protractor.conf.js",
 | |
|             "devServerTarget": "angular.io-example:serve"
 | |
|           },
 | |
|           "configurations": {
 | |
|             "production": {
 | |
|               "devServerTarget": "angular.io-example:serve:production"
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   "defaultProject": "angular.io-example"
 | |
| }
 | |
| "><input type="hidden" name="files[tsconfig.json]" value="{
 | |
|   "compileOnSave": false,
 | |
|   "compilerOptions": {
 | |
|     "baseUrl": "./",
 | |
|     "outDir": "./dist/out-tsc",
 | |
|     "forceConsistentCasingInFileNames": true,
 | |
|     "noImplicitReturns": true,
 | |
|     "noFallthroughCasesInSwitch": true,
 | |
|     "sourceMap": true,
 | |
|     "declaration": false,
 | |
|     "downlevelIteration": true,
 | |
|     "experimentalDecorators": true,
 | |
|     "moduleResolution": "node",
 | |
|     "importHelpers": true,
 | |
|     "target": "es2015",
 | |
|     "module": "es2020",
 | |
|     "lib": [
 | |
|       "es2018",
 | |
|       "dom"
 | |
|     ]
 | |
|   },
 | |
|   "angularCompilerOptions": {
 | |
|     "strictInjectionParameters": true,
 | |
|     "strictInputAccessModifiers": true,
 | |
|     "strictTemplates": true,
 | |
|     "enableIvy": true
 | |
|   }
 | |
| }"><input type="hidden" name="tags[0]" value="angular"><input type="hidden" name="tags[1]" value="example"><input type="hidden" name="tags[2]" value="Attribute Binding"><input type="hidden" name="description" value="Angular Example - Attribute Binding"><input type="hidden" name="dependencies" value="{"@angular/animations":"~11.0.1","@angular/common":"~11.0.1","@angular/compiler":"~11.0.1","@angular/core":"~11.0.1","@angular/forms":"~11.0.1","@angular/platform-browser":"~11.0.1","@angular/platform-browser-dynamic":"~11.0.1","@angular/router":"~11.0.1","angular-in-memory-web-api":"~0.11.0","rxjs":"~6.6.0","tslib":"^2.0.0","zone.js":"~0.11.4","jasmine-core":"~3.6.0","jasmine-marbles":"~0.6.0"}"></form>
 | |
|         <script>
 | |
|           var embedded = 'ctl=1';
 | |
|           var isEmbedded = window.location.search.indexOf(embedded) > -1;
 | |
| 
 | |
|           if (isEmbedded) {
 | |
|             var form = document.getElementById('mainForm');
 | |
|             var action = form.action;
 | |
|             var actionHasParams = action.indexOf('?') > -1;
 | |
|             var symbol = actionHasParams ? '&' : '?'
 | |
|             form.action = form.action + symbol + embedded;
 | |
|           }
 | |
|           document.getElementById("mainForm").submit();
 | |
|         </script>
 | |
|       </body></html> |