From 0b9e1b3ad7ad644e6942c20837b177cf87161aa0 Mon Sep 17 00:00:00 2001 From: sivaranjith Date: Fri, 14 Jul 2023 18:49:25 +0530 Subject: [PATCH] Feature(EJ2-837011): CSP-template samples. --- Angular-Sample/my-diagram/.browserslistrc | 16 + Angular-Sample/my-diagram/.editorconfig | 16 + Angular-Sample/my-diagram/.gitignore | 46 + Angular-Sample/my-diagram/README.md | 27 + Angular-Sample/my-diagram/angular.json | 106 + Angular-Sample/my-diagram/karma.conf.js | 44 + Angular-Sample/my-diagram/package.json | 40 + .../my-diagram/src/app/app.component.css | 0 .../my-diagram/src/app/app.component.html | 34 + .../my-diagram/src/app/app.component.spec.ts | 31 + .../my-diagram/src/app/app.component.ts | 44 + .../my-diagram/src/app/app.module.ts | 16 + Angular-Sample/my-diagram/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 + .../src/environments/environment.ts | 16 + Angular-Sample/my-diagram/src/favicon.ico | Bin 0 -> 948 bytes Angular-Sample/my-diagram/src/index.html | 19 + Angular-Sample/my-diagram/src/main.ts | 12 + Angular-Sample/my-diagram/src/polyfills.ts | 53 + Angular-Sample/my-diagram/src/styles.css | 25 + Angular-Sample/my-diagram/src/test.ts | 26 + Angular-Sample/my-diagram/tsconfig.app.json | 15 + Angular-Sample/my-diagram/tsconfig.json | 33 + Angular-Sample/my-diagram/tsconfig.spec.json | 18 + Document/CSP-Template-diagram-1.docx | Bin 0 -> 1039878 bytes JS-Sample/ej2.js | 151354 +++++++++++++++ JS-Sample/index.html | 40 + JS-Sample/index.js | 71 + React-Sample/.gitignore | 23 + React-Sample/README.md | 70 + React-Sample/package.json | 39 + React-Sample/public/index.html | 25 + React-Sample/src/App.css | 38 + React-Sample/src/App.js | 55 + React-Sample/src/App.test.js | 8 + React-Sample/src/index.css | 13 + React-Sample/src/index.js | 17 + React-Sample/src/logo.svg | 1 + React-Sample/src/reportWebVitals.js | 13 + React-Sample/src/setupTests.js | 5 + Vue-Sample/quickstart/.babelrc | 6 + Vue-Sample/quickstart/.editorconfig | 9 + Vue-Sample/quickstart/.gitignore | 12 + Vue-Sample/quickstart/README.md | 18 + Vue-Sample/quickstart/index.html | 16 + Vue-Sample/quickstart/package-lock.json | 18437 ++ Vue-Sample/quickstart/package.json | 34 + Vue-Sample/quickstart/src/App.vue | 81 + .../quickstart/src/annotation-template.vue | 34 + Vue-Sample/quickstart/src/assets/logo.png | Bin 0 -> 6849 bytes .../quickstart/src/complex-template.vue | 31 + Vue-Sample/quickstart/src/main.js | 7 + .../quickstart/src/userHandle-template.vue | 28 + Vue-Sample/quickstart/webpack.config.js | 79 + 54 files changed, 171204 insertions(+) create mode 100644 Angular-Sample/my-diagram/.browserslistrc create mode 100644 Angular-Sample/my-diagram/.editorconfig create mode 100644 Angular-Sample/my-diagram/.gitignore create mode 100644 Angular-Sample/my-diagram/README.md create mode 100644 Angular-Sample/my-diagram/angular.json create mode 100644 Angular-Sample/my-diagram/karma.conf.js create mode 100644 Angular-Sample/my-diagram/package.json create mode 100644 Angular-Sample/my-diagram/src/app/app.component.css create mode 100644 Angular-Sample/my-diagram/src/app/app.component.html create mode 100644 Angular-Sample/my-diagram/src/app/app.component.spec.ts create mode 100644 Angular-Sample/my-diagram/src/app/app.component.ts create mode 100644 Angular-Sample/my-diagram/src/app/app.module.ts create mode 100644 Angular-Sample/my-diagram/src/assets/.gitkeep create mode 100644 Angular-Sample/my-diagram/src/environments/environment.prod.ts create mode 100644 Angular-Sample/my-diagram/src/environments/environment.ts create mode 100644 Angular-Sample/my-diagram/src/favicon.ico create mode 100644 Angular-Sample/my-diagram/src/index.html create mode 100644 Angular-Sample/my-diagram/src/main.ts create mode 100644 Angular-Sample/my-diagram/src/polyfills.ts create mode 100644 Angular-Sample/my-diagram/src/styles.css create mode 100644 Angular-Sample/my-diagram/src/test.ts create mode 100644 Angular-Sample/my-diagram/tsconfig.app.json create mode 100644 Angular-Sample/my-diagram/tsconfig.json create mode 100644 Angular-Sample/my-diagram/tsconfig.spec.json create mode 100644 Document/CSP-Template-diagram-1.docx create mode 100644 JS-Sample/ej2.js create mode 100644 JS-Sample/index.html create mode 100644 JS-Sample/index.js create mode 100644 React-Sample/.gitignore create mode 100644 React-Sample/README.md create mode 100644 React-Sample/package.json create mode 100644 React-Sample/public/index.html create mode 100644 React-Sample/src/App.css create mode 100644 React-Sample/src/App.js create mode 100644 React-Sample/src/App.test.js create mode 100644 React-Sample/src/index.css create mode 100644 React-Sample/src/index.js create mode 100644 React-Sample/src/logo.svg create mode 100644 React-Sample/src/reportWebVitals.js create mode 100644 React-Sample/src/setupTests.js create mode 100644 Vue-Sample/quickstart/.babelrc create mode 100644 Vue-Sample/quickstart/.editorconfig create mode 100644 Vue-Sample/quickstart/.gitignore create mode 100644 Vue-Sample/quickstart/README.md create mode 100644 Vue-Sample/quickstart/index.html create mode 100644 Vue-Sample/quickstart/package-lock.json create mode 100644 Vue-Sample/quickstart/package.json create mode 100644 Vue-Sample/quickstart/src/App.vue create mode 100644 Vue-Sample/quickstart/src/annotation-template.vue create mode 100644 Vue-Sample/quickstart/src/assets/logo.png create mode 100644 Vue-Sample/quickstart/src/complex-template.vue create mode 100644 Vue-Sample/quickstart/src/main.js create mode 100644 Vue-Sample/quickstart/src/userHandle-template.vue create mode 100644 Vue-Sample/quickstart/webpack.config.js diff --git a/Angular-Sample/my-diagram/.browserslistrc b/Angular-Sample/my-diagram/.browserslistrc new file mode 100644 index 0000000..4f9ac26 --- /dev/null +++ b/Angular-Sample/my-diagram/.browserslistrc @@ -0,0 +1,16 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR diff --git a/Angular-Sample/my-diagram/.editorconfig b/Angular-Sample/my-diagram/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/Angular-Sample/my-diagram/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/Angular-Sample/my-diagram/.gitignore b/Angular-Sample/my-diagram/.gitignore new file mode 100644 index 0000000..105c00f --- /dev/null +++ b/Angular-Sample/my-diagram/.gitignore @@ -0,0 +1,46 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.angular/cache +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/Angular-Sample/my-diagram/README.md b/Angular-Sample/my-diagram/README.md new file mode 100644 index 0000000..7bba630 --- /dev/null +++ b/Angular-Sample/my-diagram/README.md @@ -0,0 +1,27 @@ +# MyDiagram + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.1.2. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/Angular-Sample/my-diagram/angular.json b/Angular-Sample/my-diagram/angular.json new file mode 100644 index 0000000..0d4f664 --- /dev/null +++ b/Angular-Sample/my-diagram/angular.json @@ -0,0 +1,106 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "my-diagram": { + "projectType": "application", + "schematics": { + "@schematics/angular:application": { + "strict": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/my-diagram", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "browserTarget": "my-diagram:build:production" + }, + "development": { + "browserTarget": "my-diagram:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "my-diagram: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": [] + } + } + } + } + }, + "defaultProject": "my-diagram" +} diff --git a/Angular-Sample/my-diagram/karma.conf.js b/Angular-Sample/my-diagram/karma.conf.js new file mode 100644 index 0000000..08b56e5 --- /dev/null +++ b/Angular-Sample/my-diagram/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/my-diagram'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/Angular-Sample/my-diagram/package.json b/Angular-Sample/my-diagram/package.json new file mode 100644 index 0000000..194a5a5 --- /dev/null +++ b/Angular-Sample/my-diagram/package.json @@ -0,0 +1,40 @@ +{ + "name": "my-diagram", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "~13.1.0", + "@angular/common": "~13.1.0", + "@angular/compiler": "~13.1.0", + "@angular/core": "~13.1.0", + "@angular/forms": "~13.1.0", + "@angular/platform-browser": "~13.1.0", + "@angular/platform-browser-dynamic": "~13.1.0", + "@angular/router": "~13.1.0", + "@syncfusion/ej2-angular-diagrams": "*", + "rxjs": "~7.4.0", + "tslib": "^2.3.0", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~13.1.2", + "@angular/cli": "~13.1.2", + "@angular/compiler-cli": "~13.1.0", + "@types/jasmine": "~3.10.0", + "@types/node": "^12.11.1", + "jasmine-core": "~3.10.0", + "karma": "~6.3.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.1.0", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "~1.7.0", + "typescript": "~4.5.2" + } +} diff --git a/Angular-Sample/my-diagram/src/app/app.component.css b/Angular-Sample/my-diagram/src/app/app.component.css new file mode 100644 index 0000000..e69de29 diff --git a/Angular-Sample/my-diagram/src/app/app.component.html b/Angular-Sample/my-diagram/src/app/app.component.html new file mode 100644 index 0000000..be741e6 --- /dev/null +++ b/Angular-Sample/my-diagram/src/app/app.component.html @@ -0,0 +1,34 @@ + + + + + + + +
+ + + +
+
+
+ + + + + + + +
+
+
+
+
+ diff --git a/Angular-Sample/my-diagram/src/app/app.component.spec.ts b/Angular-Sample/my-diagram/src/app/app.component.spec.ts new file mode 100644 index 0000000..1666e37 --- /dev/null +++ b/Angular-Sample/my-diagram/src/app/app.component.spec.ts @@ -0,0 +1,31 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'my-diagram'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('my-diagram'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('.content span')?.textContent).toContain('my-diagram app is running!'); + }); +}); diff --git a/Angular-Sample/my-diagram/src/app/app.component.ts b/Angular-Sample/my-diagram/src/app/app.component.ts new file mode 100644 index 0000000..fb50bc0 --- /dev/null +++ b/Angular-Sample/my-diagram/src/app/app.component.ts @@ -0,0 +1,44 @@ +import { Component, ViewEncapsulation, ViewChild } from '@angular/core'; +import { SelectorConstraints, SelectorModel } from '@syncfusion/ej2-angular-diagrams'; +import { + Diagram, NodeModel, UndoRedo, ConnectorModel, +} from '@syncfusion/ej2-diagrams'; +Diagram.Inject(UndoRedo); + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'], + encapsulation: ViewEncapsulation.None +}) +export class AppComponent { + @ViewChild('diagram') + //Diagram Properties + public diagram: any; + constructor() {​​​​​​​ + +} + + +public nodes: NodeModel[] = [ + { + id: 'html1', width: 100, height: 100, offsetX: 100, offsetY: 100, + shape: { type: 'HTML' } +}, +{ + id: 'html2', width: 100, height: 100, offsetX: 100, offsetY: 300, + shape: { type: 'HTML', } +}, +{ + id: 'basic1', width: 100, height: 100, offsetX: 300, offsetY: 100, + annotations: [{ id:'an1' }], +}, +]; +public selectedItems: SelectorModel = { + constraints: SelectorConstraints.All | SelectorConstraints.UserHandle, userHandles:[{}] +}; +public connectors: ConnectorModel[] = [ + { id: 'connector1', sourceID: 'html2', targetID: 'basic1',annotations: [{ id:'con_an1'}] }, + +]; +} \ No newline at end of file diff --git a/Angular-Sample/my-diagram/src/app/app.module.ts b/Angular-Sample/my-diagram/src/app/app.module.ts new file mode 100644 index 0000000..8994ab4 --- /dev/null +++ b/Angular-Sample/my-diagram/src/app/app.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { DiagramAllModule, SymbolPaletteAllModule ,SnappingService, DiagramModule, SymbolPaletteModule} from '@syncfusion/ej2-angular-diagrams'; +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule,DiagramModule,SymbolPaletteModule + ], + providers: [SnappingService], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/Angular-Sample/my-diagram/src/assets/.gitkeep b/Angular-Sample/my-diagram/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Angular-Sample/my-diagram/src/environments/environment.prod.ts b/Angular-Sample/my-diagram/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/Angular-Sample/my-diagram/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/Angular-Sample/my-diagram/src/environments/environment.ts b/Angular-Sample/my-diagram/src/environments/environment.ts new file mode 100644 index 0000000..f56ff47 --- /dev/null +++ b/Angular-Sample/my-diagram/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build` 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. diff --git a/Angular-Sample/my-diagram/src/favicon.ico b/Angular-Sample/my-diagram/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + + MyDiagram + + + + + + + + + diff --git a/Angular-Sample/my-diagram/src/main.ts b/Angular-Sample/my-diagram/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/Angular-Sample/my-diagram/src/main.ts @@ -0,0 +1,12 @@ +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.error(err)); diff --git a/Angular-Sample/my-diagram/src/polyfills.ts b/Angular-Sample/my-diagram/src/polyfills.ts new file mode 100644 index 0000000..429bb9e --- /dev/null +++ b/Angular-Sample/my-diagram/src/polyfills.ts @@ -0,0 +1,53 @@ +/** + * 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 recent versions of Safari, Chrome (including + * Opera), Edge on the desktop, and iOS and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * 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 + */ diff --git a/Angular-Sample/my-diagram/src/styles.css b/Angular-Sample/my-diagram/src/styles.css new file mode 100644 index 0000000..b30f5dc --- /dev/null +++ b/Angular-Sample/my-diagram/src/styles.css @@ -0,0 +1,25 @@ +/* You can add global styles to this file, and also import other style files */ +@import '../node_modules/@syncfusion/ej2-angular-diagrams/styles/material.css'; + +#diagram +{ + float:right; +} +#symbolpalette +{ + float: left; +} +.sb-child-row +{ + padding: 8px; +} +button,select +{ + margin: 10px; + width: auto; + height: 25px; + background-color:rgb(102, 13, 75); + color: white; + border-radius: 3px; + border: rgb(102, 13, 75); +} diff --git a/Angular-Sample/my-diagram/src/test.ts b/Angular-Sample/my-diagram/src/test.ts new file mode 100644 index 0000000..00025da --- /dev/null +++ b/Angular-Sample/my-diagram/src/test.ts @@ -0,0 +1,26 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + (id: string): T; + keys(): string[]; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), +); + +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/Angular-Sample/my-diagram/tsconfig.app.json b/Angular-Sample/my-diagram/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/Angular-Sample/my-diagram/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/Angular-Sample/my-diagram/tsconfig.json b/Angular-Sample/my-diagram/tsconfig.json new file mode 100644 index 0000000..72eb0c4 --- /dev/null +++ b/Angular-Sample/my-diagram/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2017", + "module": "es2020", + "lib": [ + "es2020", + "dom" + ], + "resolveJsonModule": true, + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/Angular-Sample/my-diagram/tsconfig.spec.json b/Angular-Sample/my-diagram/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/Angular-Sample/my-diagram/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/Document/CSP-Template-diagram-1.docx b/Document/CSP-Template-diagram-1.docx new file mode 100644 index 0000000000000000000000000000000000000000..bbe556eb06a82534dc1c4a920b71ac60b79a48b6 GIT binary patch literal 1039878 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

SBMcWY6D>QMx{bo9eE`exaI7>RfKh_t+mW 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

Ys>uuAW2T+t%$-nI@$QwC}eIMDH{V9F(0~#}O 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%0D=kKUHTm%t*ED-q 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%0A1v^=Yh68i&$0_+hRzr$}?`Yx`%Pvgs@Df*j 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̾xfNw#%)gPsZfNz}BNiaVWo9%wz0 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%0DwZ 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

!tpN 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

~x$o1C{Y-xXNteAis+da^_H({oHz|MtDYf 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

52t(;(gUo#tx!z~$t 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

6omD7Z(u%%00Y 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

&4BIl7Kf%oY$SJB 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 (d6@^f%tIpLLLec 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 S1ON{3&oQ{8dO8FNRQ(Sq(J`g~ literal 0 HcmV?d00001 diff --git a/JS-Sample/ej2.js b/JS-Sample/ej2.js new file mode 100644 index 0000000..578572b --- /dev/null +++ b/JS-Sample/ej2.js @@ -0,0 +1,151354 @@ +/*! + * filename: ej2.js + * version : 22.1.37 + * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved. + * Use of this code is subject to the terms of our license. + * A copy of the current license can be obtained at any time by e-mailing + * licensing@syncfusion.com. Any infringement will be prosecuted under + * applicable laws. + */ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./crg-resources/22.1.37/src/ej2-1688981591048/script.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./crg-resources/22.1.37/src/ej2-1688981591048/copy.js": +/*!*************************************************************!*\ + !*** ./crg-resources/22.1.37/src/ej2-1688981591048/copy.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function copy(copied, first, second, deep) { + var result = copied || {}; + var length = arguments.length; + if (deep) { + length = length - 1; + } + var _loop_1 = function (i) { + if (!arguments_1[i]) { + return "continue"; + } + var obj1 = arguments_1[i]; + Object.keys(obj1).forEach(function (key) { + var src = result[key]; + var copyObj = obj1[key]; + var clone; + if (deep && (ejs.base.isObject(copyObj) || Array.isArray(copyObj))) { + if (ejs.base.isObject(copyObj)) { + clone = src ? src : {}; + result[key] = copy({}, clone, copyObj, deep); + } + else { + clone = src ? src : []; + result[key] = copy([], clone,copyObj, deep); + } + } + else { + result[key] = copyObj; + } + }); + }; + var arguments_1 = arguments; + for (var i = 1; i < length; i++) { + _loop_1(i); + } + return result; +} +exports.copy = copy; + + +/***/ }), + +/***/ "./crg-resources/22.1.37/src/ej2-1688981591048/diagram.js": +/*!****************************************************************!*\ + !*** ./crg-resources/22.1.37/src/ej2-1688981591048/diagram.js ***! + \****************************************************************/ +/*! exports provided: diagrams1, base1, data1, navigations1, popups1 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "diagrams1", function() { return diagrams1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "base1", function() { return base1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "data1", function() { return data1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "navigations1", function() { return navigations1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "popups1", function() { return popups1; }); +/* harmony import */ var _copy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./copy */ "./crg-resources/22.1.37/src/ej2-1688981591048/copy.js"); +/* harmony import */ var _copy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_copy__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-diagrams */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_diagrams_overview__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-diagrams/overview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_navigations_context_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-navigations/context-menu */ "./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_navigations_accordion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-navigations/accordion */ "./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/index.js"); +/* harmony import */ var _ej2_resources_22_1_37_scripts_ej2_popups_tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../../ej2-resources/22.1.37/scripts/ej2-popups/tooltip */ "./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/index.js"); + + + + + + + + + + +var diagrams1 = {}; +var base1 = {}; +var data1 = {}; +var navigations1 = {}; +var popups1 = {}; + +_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["Diagram"].Inject(_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["HierarchicalTree"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["MindMap"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["RadialTree"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["ComplexHierarchicalTree"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["DataBinding"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["Snapping"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["PrintAndExport"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["BpmnDiagrams"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["SymmetricLayout"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["ConnectorBridging"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["UndoRedo"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["LayoutAnimation"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["DiagramContextMenu"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["LineRouting"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["ConnectorEditing"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["BlazorTooltip"],_ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__["LineDistribution"]); + +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(diagrams1, _ej2_resources_22_1_37_scripts_ej2_diagrams__WEBPACK_IMPORTED_MODULE_1__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(diagrams1, _ej2_resources_22_1_37_scripts_ej2_diagrams_overview__WEBPACK_IMPORTED_MODULE_2__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(base1, _ej2_resources_22_1_37_scripts_ej2_base__WEBPACK_IMPORTED_MODULE_3__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(data1, _ej2_resources_22_1_37_scripts_ej2_data__WEBPACK_IMPORTED_MODULE_4__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(navigations1, _ej2_resources_22_1_37_scripts_ej2_navigations_context_menu__WEBPACK_IMPORTED_MODULE_5__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(navigations1, _ej2_resources_22_1_37_scripts_ej2_navigations_accordion__WEBPACK_IMPORTED_MODULE_6__); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(popups1, _ej2_resources_22_1_37_scripts_ej2_popups_tooltip__WEBPACK_IMPORTED_MODULE_7__); + + + + + +/***/ }), + +/***/ "./crg-resources/22.1.37/src/ej2-1688981591048/script.js": +/*!***************************************************************!*\ + !*** ./crg-resources/22.1.37/src/ej2-1688981591048/script.js ***! + \***************************************************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _copy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./copy */ "./crg-resources/22.1.37/src/ej2-1688981591048/copy.js"); +/* harmony import */ var _copy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_copy__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _diagram__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagram */ "./crg-resources/22.1.37/src/ej2-1688981591048/diagram.js"); + + + +var diagrams = {}; +var base = {}; +var data = {}; +var navigations = {}; +var popups = {}; + +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(diagrams, _diagram__WEBPACK_IMPORTED_MODULE_1__["diagrams1"]); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(diagrams, _diagram__WEBPACK_IMPORTED_MODULE_1__["diagrams1"]); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(base, _diagram__WEBPACK_IMPORTED_MODULE_1__["base1"]); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(data, _diagram__WEBPACK_IMPORTED_MODULE_1__["data1"]); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(navigations, _diagram__WEBPACK_IMPORTED_MODULE_1__["navigations1"]); +Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(popups, _diagram__WEBPACK_IMPORTED_MODULE_1__["popups1"]); + +var ejs = { diagrams:diagrams,base:base,data:data,navigations:navigations,popups:popups } + +if (window.ejs) { Object(_copy__WEBPACK_IMPORTED_MODULE_0__["copy"])(ejs, window.ejs, null, true); } +window.ejs = ejs; +window.ej = ejs; + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/ajax.js": +/*!********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/ajax.js ***! + \********************************************************/ +/*! exports provided: Ajax */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Ajax", function() { return Ajax; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + +var headerRegex = /^(.*?):[ \t]*([^\r\n]*)$/gm; +var defaultType = 'GET'; +/** + * Ajax class provides ability to make asynchronous HTTP request to the server + * ```typescript + * var ajax = new Ajax("index.html", "GET", true); + * ajax.send().then( + * function (value) { + * console.log(value); + * }, + * function (reason) { + * console.log(reason); + * }); + * ``` + */ +var Ajax = /** @__PURE__ @class */ (function () { + /** + * Constructor for Ajax class + * + * @param {string|Object} options ? + * @param {string} type ? + * @param {boolean} async ? + * @returns defaultType any + */ + function Ajax(options, type, async, contentType) { + /** + * A boolean value indicating whether the request should be sent asynchronous or not. + * + * @default true + */ + this.mode = true; + /** + * A boolean value indicating whether to ignore the promise reject. + * + * @private + * @default true + */ + this.emitError = true; + this.options = {}; + if (typeof options === 'string') { + this.url = options; + this.type = type ? type.toUpperCase() : defaultType; + this.mode = !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(async) ? async : true; + } + else if (typeof options === 'object') { + this.options = options; + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this, this.options); + } + this.type = this.type ? this.type.toUpperCase() : defaultType; + this.contentType = (this.contentType !== undefined) ? this.contentType : contentType; + } + /** + * + * Send the request to server. + * + * @param {any} data - To send the user data + * @return {Promise} ? + */ + Ajax.prototype.send = function (data) { + var _this = this; + this.data = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) ? this.data : data; + var eventArgs = { + cancel: false, + httpRequest: null + }; + var promise = new Promise(function (resolve, reject) { + _this.httpRequest = new XMLHttpRequest(); + _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); }; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.onLoad)) { + _this.httpRequest.onload = _this.onLoad; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.onProgress)) { + _this.httpRequest.onprogress = _this.onProgress; + } + /* istanbul ignore next */ + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.onAbort)) { + _this.httpRequest.onabort = _this.onAbort; + } + /* istanbul ignore next */ + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.onError)) { + _this.httpRequest.onerror = _this.onError; + } + //** Upload Events **/ + /* istanbul ignore next */ + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.onUploadProgress)) { + _this.httpRequest.upload.onprogress = _this.onUploadProgress; + } + // eslint-disable-next-line + _this.httpRequest.open(_this.type, _this.url, _this.mode); + // Set default headers + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.data) && _this.contentType !== null) { + _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8'); + } + if (_this.beforeSend) { + eventArgs.httpRequest = _this.httpRequest; + _this.beforeSend(eventArgs); + } + if (!eventArgs.cancel) { + _this.httpRequest.send(!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.data) ? _this.data : null); + } + }); + return promise; + }; + Ajax.prototype.successHandler = function (data) { + if (this.onSuccess) { + this.onSuccess(data, this); + } + return data; + }; + Ajax.prototype.failureHandler = function (reason) { + if (this.onFailure) { + this.onFailure(this.httpRequest); + } + return reason; + }; + Ajax.prototype.stateChange = function (resolve, reject) { + var data = this.httpRequest.responseText; + if (this.dataType && this.dataType.toLowerCase() === 'json') { + if (data === '') { + data = undefined; + } + else { + try { + data = JSON.parse(data); + } + catch (error) { + // no exception handle + } + } + } + if (this.httpRequest.readyState === 4) { + //success range should be 200 to 299 + if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) { + resolve(this.successHandler(data)); + } + else { + if (this.emitError) { + reject(new Error(this.failureHandler(this.httpRequest.statusText))); + } + else { + resolve(); + } + } + } + }; + /** + * To get the response header from XMLHttpRequest + * + * @param {string} key Key to search in the response header + * @returns {string} ? + */ + Ajax.prototype.getResponseHeader = function (key) { + var responseHeaders; + var header; + // eslint-disable-next-line + responseHeaders = {}; + var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders()); + while (headers) { + responseHeaders[headers[1].toLowerCase()] = headers[2]; + headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders()); + } + // eslint-disable-next-line + header = responseHeaders[key.toLowerCase()]; + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(header) ? null : header; + }; + return Ajax; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/animation.js": +/*!*************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/animation.js ***! + \*************************************************************/ +/*! exports provided: Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Animation", function() { return Animation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rippleEffect", function() { return rippleEffect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRippleEnabled", function() { return isRippleEnabled; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableRipple", function() { return enableRipple; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationMode", function() { return animationMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setGlobalAnimation", function() { return setGlobalAnimation; }); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + +/** + * The Animation framework provide options to animate the html DOM elements + * ```typescript + * let animeObject = new Animation({ + * name: 'SlideLeftIn', + * duration: 1000 + * }); + * animeObject.animate('#anime1'); + * animeObject.animate('#anime2', { duration: 500 }); + * ``` + */ +var Animation = /** @__PURE__ @class */ (function (_super) { + __extends(Animation, _super); + function Animation(options) { + var _this = _super.call(this, options, undefined) || this; + /** + * @private + */ + _this.easing = { + ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)', + linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)', + easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)', + easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)', + easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)', + elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)', + elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)', + elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)' + }; + return _this; + } + Animation_1 = Animation; + /** + * Applies animation to the current element. + * + * @param {string | HTMLElement} element - Element which needs to be animated. + * @param {AnimationModel} options - Overriding default animation settings. + * @returns {void} ? + */ + Animation.prototype.animate = function (element, options) { + options = !options ? {} : options; + var model = this.getModel(options); + if (typeof element === 'string') { + var elements = Array.prototype.slice.call(Object(_dom__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(element, document)); + for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { + var element_1 = elements_1[_i]; + model.element = element_1; + Animation_1.delayAnimation(model); + } + } + else { + model.element = element; + Animation_1.delayAnimation(model); + } + }; + /** + * Stop the animation effect on animated element. + * + * @param {HTMLElement} element - Element which needs to be stop the animation. + * @param {AnimationOptions} model - Handling the animation model at stop function. + * @return {void} + */ + Animation.stop = function (element, model) { + element.style.animation = ''; + element.removeAttribute('e-animate'); + var animationId = element.getAttribute('e-animation-id'); + if (animationId) { + var frameId = parseInt(animationId, 10); + cancelAnimationFrame(frameId); + element.removeAttribute('e-animation-id'); + } + if (model && model.end) { + model.end.call(this, model); + } + }; + /** + * Set delay to animation element + * + * @param {AnimationModel} model ? + * @returns {void} + */ + Animation.delayAnimation = function (model) { + if (animationMode === 'Disable') { + if (model.begin) { + model.begin.call(this, model); + } + if (model.end) { + model.end.call(this, model); + } + } + else { + if (model.delay) { + setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay); + } + else { + Animation_1.applyAnimation(model); + } + } + }; + /** + * Triggers animation + * + * @param {AnimationModel} model ? + * @returns {void} + */ + Animation.applyAnimation = function (model) { + var _this = this; + model.timeStamp = 0; + var step = 0; + var timerId = 0; + var prevTimeStamp = 0; + var duration = model.duration; + model.element.setAttribute('e-animate', 'true'); + var startAnimation = function (timeStamp) { + try { + if (timeStamp) { + // let step: number = model.timeStamp = timeStamp - startTime; + /** phantomjs workaround for timestamp fix */ + prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp; + model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp; + prevTimeStamp = timeStamp; + /** phantomjs workaround end */ + // trigger animation begin event + if (!step && model.begin) { + model.begin.call(_this, model); + } + step = step + 1; + var avg = model.timeStamp / step; + if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) { + // apply animation effect to the current element + model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction; + if (model.progress) { + model.progress.call(_this, model); + } + // repeat requestAnimationFrame + requestAnimationFrame(startAnimation); + } + else { + // clear requestAnimationFrame + cancelAnimationFrame(timerId); + model.element.removeAttribute('e-animation-id'); + model.element.removeAttribute('e-animate'); + model.element.style.animation = ''; + if (model.end) { + model.end.call(_this, model); + } + } + } + else { + //startTime = performance.now(); + // set initial requestAnimationFrame + timerId = requestAnimationFrame(startAnimation); + model.element.setAttribute('e-animation-id', timerId.toString()); + } + } + catch (e) { + cancelAnimationFrame(timerId); + model.element.removeAttribute('e-animation-id'); + if (model.fail) { + model.fail.call(_this, e); + } + } + }; + startAnimation(); + }; + /** + * Returns Animation Model + * + * @param {AnimationModel} options ? + * @returns {AnimationModel} ? + */ + Animation.prototype.getModel = function (options) { + return { + name: options.name || this.name, + delay: options.delay || this.delay, + duration: (options.duration !== undefined ? options.duration : this.duration), + begin: options.begin || this.begin, + end: options.end || this.end, + fail: options.fail || this.fail, + progress: options.progress || this.progress, + timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] : + (options.timingFunction || this.easing[this.timingFunction]) + }; + }; + /** + * @private + * @param {AnimationModel} newProp ? + * @param {AnimationModel} oldProp ? + * @returns {void} ? + */ + // eslint-disable-next-line + Animation.prototype.onPropertyChanged = function (newProp, oldProp) { + // no code needed + }; + /** + * Returns module name as animation + * + * @private + * @returns {void} ? + */ + Animation.prototype.getModuleName = function () { + return 'animation'; + }; + /** + * + * @private + * @returns {void} ? + */ + Animation.prototype.destroy = function () { + //Override base destroy; + }; + var Animation_1; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Property"])('FadeIn') + ], Animation.prototype, "name", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Property"])(400) + ], Animation.prototype, "duration", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Property"])('ease') + ], Animation.prototype, "timingFunction", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Property"])(0) + ], Animation.prototype, "delay", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Event"])() + ], Animation.prototype, "progress", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Event"])() + ], Animation.prototype, "begin", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Event"])() + ], Animation.prototype, "end", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_4__["Event"])() + ], Animation.prototype, "fail", void 0); + Animation = Animation_1 = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_4__["NotifyPropertyChanges"] + ], Animation); + return Animation; +}(_base__WEBPACK_IMPORTED_MODULE_1__["Base"])); + +/** + * Ripple provides material theme's wave effect when an element is clicked + * ```html + *

+ * + * ``` + * + * @private + * @param {HTMLElement} element - Target element + * @param {RippleOptions} rippleOptions - Ripple options . + * @param {Function} done . + * @returns {void} . + */ +function rippleEffect(element, rippleOptions, done) { + var rippleModel = getRippleModel(rippleOptions); + if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) { + return (function () { + // do nothing. + }); + } + element.setAttribute('data-ripple', 'true'); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel }); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done }); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel }); + if (_browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].isPointer) { + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel }); + } + return (function () { + element.removeAttribute('data-ripple'); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(element, 'mousedown', rippleHandler); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(element, 'mouseup', rippleUpHandler); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(element, 'mouseleave', rippleLeaveHandler); + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(element, 'transitionend', rippleLeaveHandler); + }); +} +/** + * Handler for ripple model + * + * @param {RippleOptions} rippleOptions ? + * @returns {RippleOptions} ? + */ +function getRippleModel(rippleOptions) { + var rippleModel = { + selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null, + ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null, + rippleFlag: rippleOptions && rippleOptions.rippleFlag, + isCenterRipple: rippleOptions && rippleOptions.isCenterRipple, + duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350 + }; + return rippleModel; +} +/** + * Handler for ripple event + * + * @param {MouseEvent} e ? + * @returns {void} ? + * @private + */ +function rippleHandler(e) { + var target = (e.target); + var selector = this.rippleOptions.selector; + var element = selector ? Object(_dom__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, selector) : target; + if (!element || (this.rippleOptions && Object(_dom__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, this.rippleOptions.ignore))) { + return; + } + var offset = element.getBoundingClientRect(); + var offsetX = e.pageX - document.body.scrollLeft; + var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ? + document.documentElement.scrollTop : document.body.scrollTop); + var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right)); + var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom)); + var radius = Math.sqrt(pageX * pageX + pageY * pageY); + var diameter = radius * 2 + 'px'; + var x = offsetX - offset.left - radius; + var y = offsetY - offset.top - radius; + if (this.rippleOptions && this.rippleOptions.isCenterRipple) { + x = 0; + y = 0; + diameter = '100%'; + } + element.classList.add('e-ripple'); + var duration = this.rippleOptions.duration.toString(); + var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' + + 'transition-duration: ' + duration + 'ms;'; + var rippleElement = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: 'e-ripple-element', styles: styles }); + element.appendChild(rippleElement); + window.getComputedStyle(rippleElement).getPropertyValue('opacity'); + rippleElement.style.transform = 'scale(1)'; + if (element !== this.parent) { + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions }); + } +} +/** + * Handler for ripple element mouse up event + * + * @param {MouseEvent} e ? + * @returns {void} ? + * @private + */ +function rippleUpHandler(e) { + removeRipple(e, this); +} +/** + * Handler for ripple element mouse move event + * + * @param {MouseEvent} e ? + * @returns {void} ? + * @private + */ +function rippleLeaveHandler(e) { + removeRipple(e, this); +} +/** + * Handler for removing ripple element + * + * @param {MouseEvent} e ? + * @param {RippleArgs} eventArgs ? + * @returns {void} ? + * @private + */ +function removeRipple(e, eventArgs) { + var duration = eventArgs.rippleOptions.duration; + var target = (e.target); + var selector = eventArgs.rippleOptions.selector; + var element = selector ? Object(_dom__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, selector) : target; + if (!element || (element && element.className.indexOf('e-ripple') === -1)) { + return; + } + var rippleElements = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-ripple-element', element); + var rippleElement = rippleElements[rippleElements.length - 1]; + if (rippleElement) { + rippleElement.style.opacity = '0.5'; + } + if (eventArgs.parent !== element) { + _event_handler__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(element, 'mouseleave', rippleLeaveHandler); + } + /* tslint:disable:align */ + setTimeout(function () { + if (rippleElement && rippleElement.parentNode) { + rippleElement.parentNode.removeChild(rippleElement); + } + if (!element.getElementsByClassName('e-ripple-element').length) { + element.classList.remove('e-ripple'); + } + if (eventArgs.done) { + eventArgs.done(e); + } + }, duration); +} +var isRippleEnabled = false; +/** + * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components. + * + * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect. + * @returns {boolean} ? + */ +function enableRipple(isRipple) { + isRippleEnabled = isRipple; + return isRippleEnabled; +} +/** + * Defines the Modes of Global animation. + * + * @private + */ +var animationMode = ''; +/** + * Method for set the Global animation modes for Syncfusion Blazor components. + * + * @param {string} value - Specifies the animation mode. + * @returns {void} + */ +function setGlobalAnimation(value) { + animationMode = value; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/base.js": +/*!********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/base.js ***! + \********************************************************/ +/*! exports provided: Base, getComponent, removeChildInstance */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Base", function() { return Base; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getComponent", function() { return getComponent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeChildInstance", function() { return removeChildInstance; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observer */ "./ej2-resources/22.1.37/scripts/ej2-base/observer.js"); + + + +var isColEName = new RegExp(']'); +/* tslint:enable:no-any */ +/** + * Base library module is common module for Framework modules like touch,keyboard and etc., + * + * @private + */ +var Base = /** @__PURE__ @class */ (function () { + /** + * Base constructor accept options and element + * + * @param {Object} options ? + * @param {string} element ? + */ + function Base(options, element) { + this.isRendered = false; + this.isComplexArraySetter = false; + this.isServerRendered = false; + this.allowServerDataBinding = true; + this.isProtectedOnChange = true; + this.properties = {}; + this.changedProperties = {}; + this.oldProperties = {}; + this.bulkChanges = {}; + this.refreshing = false; + this.ignoreCollectionWatch = false; + // eslint-disable-next-line + this.finalUpdate = function () { }; + this.childChangedProperties = {}; + this.modelObserver = new _observer__WEBPACK_IMPORTED_MODULE_2__["Observer"](this); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(element)) { + if ('string' === typeof (element)) { + this.element = document.querySelector(element); + } + else { + this.element = element; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element)) { + this.isProtectedOnChange = false; + this.addInstance(); + } + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(options)) { + this.setProperties(options, true); + } + this.isDestroyed = false; + } + /** Property base section */ + /** + * Function used to set bunch of property at a time. + * + * @private + * @param {Object} prop - JSON object which holds components properties. + * @param {boolean} muteOnChange ? - Specifies to true when we set properties. + * @returns {void} ? + */ + Base.prototype.setProperties = function (prop, muteOnChange) { + var prevDetection = this.isProtectedOnChange; + this.isProtectedOnChange = !!muteOnChange; + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this, prop); + if (muteOnChange !== true) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this.changedProperties, prop); + this.dataBind(); + } + else if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.isRendered) { + this.serverDataBind(prop); + } + this.finalUpdate(); + this.changedProperties = {}; + this.oldProperties = {}; + this.isProtectedOnChange = prevDetection; + }; + /** + * Calls for child element data bind + * + * @param {Object} obj ? + * @param {Object} parent ? + * @returns {void} ? + */ + // tslint:disable-next-line:no-any + Base.callChildDataBind = function (obj, parent) { + var keys = Object.keys(obj); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + if (parent["" + key] instanceof Array) { + for (var _a = 0, _b = parent["" + key]; _a < _b.length; _a++) { + var obj_1 = _b[_a]; + if (obj_1.dataBind !== undefined) { + obj_1.dataBind(); + } + } + } + else { + parent["" + key].dataBind(); + } + } + }; + Base.prototype.clearChanges = function () { + this.finalUpdate(); + this.changedProperties = {}; + this.oldProperties = {}; + this.childChangedProperties = {}; + }; + /** + * Bind property changes immediately to components + * + * @returns {void} ? + */ + Base.prototype.dataBind = function () { + Base.callChildDataBind(this.childChangedProperties, this); + if (Object.getOwnPropertyNames(this.changedProperties).length) { + var prevDetection = this.isProtectedOnChange; + var newChanges = this.changedProperties; + var oldChanges = this.oldProperties; + this.clearChanges(); + this.isProtectedOnChange = true; + this.onPropertyChanged(newChanges, oldChanges); + this.isProtectedOnChange = prevDetection; + } + }; + /* tslint:disable:no-any */ + Base.prototype.serverDataBind = function (newChanges) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + return; + } + newChanges = newChanges ? newChanges : {}; + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(this.bulkChanges, {}, newChanges, true); + var sfBlazor = 'sfBlazor'; + if (this.allowServerDataBinding && window["" + sfBlazor].updateModel) { + window["" + sfBlazor].updateModel(this); + this.bulkChanges = {}; + } + }; + /* tslint:enable:no-any */ + Base.prototype.saveChanges = function (key, newValue, oldValue) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + // tslint:disable-next-line:no-any + var newChanges = {}; + newChanges["" + key] = newValue; + this.serverDataBind(newChanges); + } + if (this.isProtectedOnChange) { + return; + } + this.oldProperties["" + key] = oldValue; + this.changedProperties["" + key] = newValue; + this.finalUpdate(); + this.finalUpdate = Object(_util__WEBPACK_IMPORTED_MODULE_0__["setImmediate"])(this.dataBind.bind(this)); + }; + /** Event Base Section */ + /** + * Adds the handler to the given event listener. + * + * @param {string} eventName - A String that specifies the name of the event + * @param {Function} handler - Specifies the call to run when the event occurs. + * @returns {void} ? + */ + Base.prototype.addEventListener = function (eventName, handler) { + this.modelObserver.on(eventName, handler); + }; + /** + * Removes the handler from the given event listener. + * + * @param {string} eventName - A String that specifies the name of the event to remove + * @param {Function} handler - Specifies the function to remove + * @returns {void} ? + */ + Base.prototype.removeEventListener = function (eventName, handler) { + this.modelObserver.off(eventName, handler); + }; + /** + * Triggers the handlers in the specified event. + * + * @private + * @param {string} eventName - Specifies the event to trigger for the specified component properties. + * Can be a custom event, or any of the standard events. + * @param {Event} eventProp - Additional parameters to pass on to the event properties + * @param {Function} successHandler - this function will invoke after event successfully triggered + * @param {Function} errorHandler - this function will invoke after event if it failured to call. + * @returns {void} ? + */ + Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) { + var _this = this; + if (this.isDestroyed !== true) { + var prevDetection = this.isProtectedOnChange; + this.isProtectedOnChange = false; + var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler); + if (isColEName.test(eventName)) { + var handler = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(eventName, this); + if (handler) { + var blazor = 'Blazor'; + if (window["" + blazor]) { + var promise = handler.call(this, eventProp); + if (promise && typeof promise.then === 'function') { + if (!successHandler) { + data = promise; + } + else { + promise.then(function (data) { + if (successHandler) { + data = typeof data === 'string' && _this.modelObserver.isJson(data) ? + JSON.parse(data) : data; + successHandler.call(_this, data); + } + }).catch(function (data) { + if (errorHandler) { + data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data; + errorHandler.call(_this, data); + } + }); + } + } + else if (successHandler) { + successHandler.call(this, eventProp); + } + } + else { + handler.call(this, eventProp); + if (successHandler) { + successHandler.call(this, eventProp); + } + } + } + else if (successHandler) { + successHandler.call(this, eventProp); + } + } + this.isProtectedOnChange = prevDetection; + return data; + } + }; + /** + * To maintain instance in base class + * + * @returns {void} ? + */ + Base.prototype.addInstance = function () { + // Add module class to the root element + var moduleClass = 'e-' + this.getModuleName().toLowerCase(); + Object(_dom__WEBPACK_IMPORTED_MODULE_1__["addClass"])([this.element], ['e-lib', moduleClass]); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.ej2_instances)) { + this.element.ej2_instances.push(this); + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', [this], this.element); + } + }; + /** + * To remove the instance from the element + * + * @returns {void} ? + */ + Base.prototype.destroy = function () { + var _this = this; + // eslint-disable-next-line + this.element.ej2_instances = + this.element.ej2_instances.filter(function (i) { return i !== _this; }); + Object(_dom__WEBPACK_IMPORTED_MODULE_1__["removeClass"])([this.element], ['e-' + this.getModuleName()]); + if (this.element.ej2_instances.length === 0) { + // Remove module class from the root element + Object(_dom__WEBPACK_IMPORTED_MODULE_1__["removeClass"])([this.element], ['e-lib']); + } + this.clearChanges(); + this.modelObserver.destroy(); + this.isDestroyed = true; + }; + return Base; +}()); + +/** + * Global function to get the component instance from the rendered element. + * + * @param {HTMLElement} elem Specifies the HTMLElement or element id string. + * @param {string} comp Specifies the component module name or Component. + * @returns {any} ? + */ +// tslint:disable-next-line:no-any +function getComponent(elem, comp) { + var instance; + var i; + var ele = typeof elem === 'string' ? document.getElementById(elem) : elem; + for (i = 0; i < ele.ej2_instances.length; i++) { + instance = ele.ej2_instances[parseInt(i.toString(), 10)]; + if (typeof comp === 'string') { + var compName = instance.getModuleName(); + if (comp === compName) { + return instance; + } + } + else { + // tslint:disable-next-line:no-any + if (instance instanceof comp) { + return instance; + } + } + } + return undefined; +} +/** + * Function to remove the child instances. + * + * @param {HTMLElement} element ? + * @return {void} + * @private + */ +// tslint:disable-next-line:no-any +function removeChildInstance(element) { + // tslint:disable-next-line:no-any + var childEle = [].slice.call(element.getElementsByClassName('e-control')); + for (var i = 0; i < childEle.length; i++) { + var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1]; + // tslint:disable-next-line:no-any + var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(compInstance)) { + compInstance.destroy(); + } + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js": +/*!***********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/browser.js ***! + \***********************************************************/ +/*! exports provided: Browser */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Browser", function() { return Browser; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + +var REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i; +var REGX_IE = /msie|trident/i; +var REGX_IE11 = /Trident\/7\./; +var REGX_IOS = /(ipad|iphone|ipod touch)/i; +var REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\d|(ipad|iphone|ipod touch);.*os 8_\d/i; +var REGX_ANDROID = /android/i; +var REGX_WINDOWS = /trident|windows phone|edge/i; +var REGX_VERSION = /(version)[ /]([\w.]+)/i; +var REGX_BROWSER = { + OPERA: /(opera|opr)(?:.*version|)[ /]([\w.]+)/i, + EDGE: /(edge)(?:.*version|)[ /]([\w.]+)/i, + CHROME: /(chrome|crios)[ /]([\w.]+)/i, + PANTHOMEJS: /(phantomjs)[ /]([\w.]+)/i, + SAFARI: /(safari)[ /]([\w.]+)/i, + WEBKIT: /(webkit)[ /]([\w.]+)/i, + MSIE: /(msie|trident) ([\w.]+)/i, + MOZILLA: /(mozilla)(?:.*? rv:([\w.]+)|)/i +}; +/* istanbul ignore else */ +if (typeof window !== 'undefined') { + window.browserDetails = window.browserDetails || {}; +} +/** + * Get configuration details for Browser + * + * @private + */ +var Browser = /** @__PURE__ @class */ (function () { + function Browser() { + } + Browser.extractBrowserDetail = function () { + var browserInfo = { culture: {} }; + var keys = Object.keys(REGX_BROWSER); + var clientInfo = []; + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + clientInfo = Browser.userAgent.match(REGX_BROWSER["" + key]); + if (clientInfo) { + browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase()); + browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name); + browserInfo.version = clientInfo[2]; + browserInfo.culture.name = browserInfo.culture.language = navigator.language; + // eslint-disable-next-line + if (!!Browser.userAgent.match(REGX_IE11)) { + browserInfo.name = 'msie'; + break; + } + var version = Browser.userAgent.match(REGX_VERSION); + if (browserInfo.name === 'safari' && version) { + browserInfo.version = version[2]; + } + break; + } + } + return browserInfo; + }; + /** + * To get events from the browser + * + * @param {string} event - type of event triggered. + * @returns {boolean} + */ + Browser.getEvent = function (event) { + // eslint-disable-next-line + var events = { + start: { + isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown' + }, + move: { + isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove' + }, + end: { + isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup' + }, + cancel: { + isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave' + } + }; + return (Browser.isPointer ? events["" + event].isPointer : + (Browser.isTouch ? events["" + event].isTouch + (!Browser.isDevice ? ' ' + events["" + event].isDevice : '') + : events["" + event].isDevice)); + }; + /** + * To get the Touch start event from browser + * + * @returns {string} + */ + Browser.getTouchStartEvent = function () { + return Browser.getEvent('start'); + }; + /** + * To get the Touch end event from browser + * + * @returns {string} + */ + Browser.getTouchEndEvent = function () { + return Browser.getEvent('end'); + }; + /** + * To get the Touch move event from browser + * + * @returns {string} + */ + Browser.getTouchMoveEvent = function () { + return Browser.getEvent('move'); + }; + /** + * To cancel the touch event from browser + * + * @returns {string} + */ + Browser.getTouchCancelEvent = function () { + return Browser.getEvent('cancel'); + }; + /** + * Check whether the browser on the iPad device is Safari or not + * + * @returns {boolean} + */ + Browser.isSafari = function () { + return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined' + && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1 + && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1); + }; + /** + * To get the value based on provided key and regX + * + * @param {string} key ? + * @param {RegExp} regX ? + * @returns {Object} ? + */ + Browser.getValue = function (key, regX) { + var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {}; + if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) { + browserDetails['isIos'] = true; + browserDetails['isDevice'] = true; + browserDetails['isTouch'] = true; + browserDetails['isPointer'] = true; + } + if ('undefined' === typeof browserDetails["" + key]) { + return browserDetails["" + key] = regX.test(Browser.userAgent); + } + return browserDetails["" + key]; + }; + Object.defineProperty(Browser, "userAgent", { + get: function () { + return Browser.uA; + }, + //Properties + /** + * Property specifies the userAgent of the browser. Default userAgent value is based on the browser. + * Also we can set our own userAgent. + * + * @param {string} uA ? + */ + set: function (uA) { + Browser.uA = uA; + window.browserDetails = {}; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "info", { + //Read Only Properties + /** + * Property is to get the browser information like Name, Version and Language + * + * @returns {BrowserInfo} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.info)) { + return window.browserDetails.info = Browser.extractBrowserDetail(); + } + return window.browserDetails.info; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isIE", { + /** + * Property is to get whether the userAgent is based IE. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isIE', REGX_IE); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isTouch", { + /** + * Property is to get whether the browser has touch support. + * + * @returns {boolean} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.isTouch)) { + return (window.browserDetails.isTouch = + ('ontouchstart' in window.navigator) || + (window && + window.navigator && + (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window)); + } + return window.browserDetails.isTouch; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isPointer", { + /** + * Property is to get whether the browser has Pointer support. + * + * @returns {boolean} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.isPointer)) { + return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator); + } + return window.browserDetails.isPointer; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isMSPointer", { + /** + * Property is to get whether the browser has MSPointer support. + * + * @returns {boolean} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.isMSPointer)) { + return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator); + } + return window.browserDetails.isMSPointer; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isDevice", { + /** + * Property is to get whether the userAgent is device based. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isDevice', REGX_MOBILE); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isIos", { + /** + * Property is to get whether the userAgent is IOS. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isIos', REGX_IOS); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isIos7", { + /** + * Property is to get whether the userAgent is Ios7. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isIos7', REGX_IOS7); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isAndroid", { + /** + * Property is to get whether the userAgent is Android. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isAndroid', REGX_ANDROID); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isWebView", { + /** + * Property is to identify whether application ran in web view. + * + * @returns {boolean} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.isWebView)) { + window.browserDetails.isWebView = !(Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.cordova) && Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.PhoneGap) + && Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.phonegap) && window.forge !== 'object'); + return window.browserDetails.isWebView; + } + return window.browserDetails.isWebView; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "isWindows", { + /** + * Property is to get whether the userAgent is Windows. + * + * @returns {boolean} ? + */ + get: function () { + return Browser.getValue('isWindows', REGX_WINDOWS); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "touchStartEvent", { + /** + * Property is to get the touch start event. It returns event name based on browser. + * + * @returns {string} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.touchStartEvent)) { + return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent(); + } + return window.browserDetails.touchStartEvent; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "touchMoveEvent", { + /** + * Property is to get the touch move event. It returns event name based on browser. + * + * @returns {string} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.touchMoveEvent)) { + return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent(); + } + return window.browserDetails.touchMoveEvent; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "touchEndEvent", { + /** + * Property is to get the touch end event. It returns event name based on browser. + * + * @returns {string} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.touchEndEvent)) { + return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent(); + } + return window.browserDetails.touchEndEvent; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Browser, "touchCancelEvent", { + /** + * Property is to cancel the touch end event. + * + * @returns {string} ? + */ + get: function () { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(window.browserDetails.touchCancelEvent)) { + return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent(); + } + return window.browserDetails.touchCancelEvent; + }, + enumerable: true, + configurable: true + }); + /* istanbul ignore next */ + Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : ''; + return Browser; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/child-property.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/child-property.js ***! + \******************************************************************/ +/*! exports provided: ChildProperty */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChildProperty", function() { return ChildProperty; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); + + +/** + * To detect the changes for inner properties. + * + * @private + */ +var ChildProperty = /** @__PURE__ @class */ (function () { + function ChildProperty(parent, propName, defaultValue, isArray) { + this.isComplexArraySetter = false; + this.properties = {}; + this.changedProperties = {}; + this.childChangedProperties = {}; + this.oldProperties = {}; + // eslint-disable-next-line + this.finalUpdate = function () { }; + this.callChildDataBind = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('callChildDataBind', _base__WEBPACK_IMPORTED_MODULE_1__["Base"]); + this.parentObj = parent; + this.controlParent = this.parentObj.controlParent || this.parentObj; + this.propName = propName; + this.isParentArray = isArray; + this.setProperties(defaultValue, true); + } + /** + * Updates the property changes + * + * @param {boolean} val ? + * @param {string} propName ? + * @returns {void} ? + */ + ChildProperty.prototype.updateChange = function (val, propName) { + if (val === true) { + this.parentObj.childChangedProperties["" + propName] = val; + } + else { + delete this.parentObj.childChangedProperties["" + propName]; + } + if (this.parentObj.updateChange) { + this.parentObj.updateChange(val, this.parentObj.propName); + } + }; + /** + * Updates time out duration + * + * @returns {void} ? + */ + ChildProperty.prototype.updateTimeOut = function () { + if (this.parentObj.updateTimeOut) { + this.parentObj.finalUpdate(); + this.parentObj.updateTimeOut(); + } + else { + var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj)); + var clearUpdate = function () { + clearTimeout(changeTime_1); + }; + this.finalUpdate = clearUpdate; + } + }; + /** + * Clears changed properties + * + * @returns {void} ? + */ + ChildProperty.prototype.clearChanges = function () { + this.finalUpdate(); + this.updateChange(false, this.propName); + this.oldProperties = {}; + this.changedProperties = {}; + }; + /** + * Set property changes + * + * @param {Object} prop ? + * @param {boolean} muteOnChange ? + * @returns {void} ? + */ + ChildProperty.prototype.setProperties = function (prop, muteOnChange) { + if (muteOnChange === true) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this, prop); + this.updateChange(false, this.propName); + this.clearChanges(); + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this, prop); + } + }; + /** + * Binds data + * + * @returns {void} ? + */ + ChildProperty.prototype.dataBind = function () { + this.callChildDataBind(this.childChangedProperties, this); + if (this.isParentArray) { + var curIndex = this.parentObj[this.propName].indexOf(this); + if (Object.keys(this.changedProperties).length) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties); + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties); + } + } + else { + this.parentObj.changedProperties[this.propName] = this.changedProperties; + this.parentObj.oldProperties[this.propName] = this.oldProperties; + } + this.clearChanges(); + }; + /** + * Saves changes to newer values + * + * @param {string} key ? + * @param {Object} newValue ? + * @param {Object} oldValue ? + * @param {boolean} restrictServerDataBind ? + * @returns {void} ? + */ + ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) { + if (this.controlParent.isProtectedOnChange) { + return; + } + if (!restrictServerDataBind) { + this.serverDataBind(key, newValue, true); + } + this.oldProperties["" + key] = oldValue; + this.changedProperties["" + key] = newValue; + this.updateChange(true, this.propName); + this.finalUpdate(); + this.updateTimeOut(); + }; + ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.parentObj.isComplexArraySetter) { + var parent_1; + var newChanges = {}; + var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key; + /* istanbul ignore else */ + if (parentKey.indexOf('.') !== -1) { + var complexKeys = parentKey.split('.'); + parent_1 = newChanges; + for (var i = 0; i < complexKeys.length; i++) { + var isFinal = i === complexKeys.length - 1; + parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {}; + parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]]; + } + } + else { + newChanges["" + parentKey] = {}; + parent_1 = newChanges["" + parentKey]; + newChanges["" + parentKey]["" + key] = value; + } + /* istanbul ignore next */ + if (this.isParentArray) { + var actionProperty = 'ejsAction'; + parent_1["" + actionProperty] = action ? action : 'none'; + } + this.controlParent.serverDataBind(newChanges); + } + }; + ChildProperty.prototype.getParentKey = function (isSaveChanges) { + // eslint-disable-next-line + var index = ''; + var propName = this.propName; + /* istanbul ignore next */ + if (this.isParentArray) { + index = this.parentObj[this.propName].indexOf(this); + var valueLength = this.parentObj[this.propName].length; + valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0); + index = index !== -1 ? '-' + index : '-' + valueLength; + propName = propName + index; + } + if (this.controlParent !== this.parentObj) { + propName = this.parentObj.getParentKey() + '.' + this.propName + index; + } + return propName; + }; + return ChildProperty; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/component.js": +/*!*************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/component.js ***! + \*************************************************************/ +/*! exports provided: versionBasedStatePersistence, enableVersionBasedPersistence, Component */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "versionBasedStatePersistence", function() { return versionBasedStatePersistence; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableVersionBasedPersistence", function() { return enableVersionBasedPersistence; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return Component; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _module_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./module-loader */ "./ej2-resources/22.1.37/scripts/ej2-base/module-loader.js"); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony import */ var _observer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./observer */ "./ej2-resources/22.1.37/scripts/ej2-base/observer.js"); +/* harmony import */ var _child_property__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./child-property */ "./ej2-resources/22.1.37/scripts/ej2-base/child-property.js"); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony import */ var _internationalization__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internationalization */ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js"); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _validate_lic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./validate-lic */ "./ej2-resources/22.1.37/scripts/ej2-base/validate-lic.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + +var componentCount = 0; +var lastPageID; +var lastHistoryLen = 0; +// Decalre the static variable to count the instance +var instancecount = 0; +// Decalre the static variable to find if control limit exceed or not +var isvalid = true; +// We have added styles to inline type so here declare the static variable to detect if banner is added or not +var isBannerAdded = false; +var versionBasedStatePersistence = false; +/** + * To enable or disable version based statePersistence functionality for all components globally. + * + * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option. + * @returns {void} + */ +function enableVersionBasedPersistence(status) { + versionBasedStatePersistence = status; +} +/** + * Base class for all Essential JavaScript components + */ +var Component = /** @__PURE__ @class */ (function (_super) { + __extends(Component, _super); + /** + * Initialize the constructor for component base + * + * @param {Object} options ? + * @param {string} selector ? + */ + function Component(options, selector) { + var _this = _super.call(this, options, selector) || this; + _this.randomId = Object(_util__WEBPACK_IMPORTED_MODULE_0__["uniqueID"])(); + /** + * string template option for Blazor template rendering + * + * @private + */ + _this.isStringTemplate = false; + _this.needsID = false; + _this.isReactHybrid = false; + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.enableRtl)) { + _this.setProperties({ 'enableRtl': _internationalization__WEBPACK_IMPORTED_MODULE_6__["rightToLeft"] }, true); + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.locale)) { + _this.setProperties({ 'locale': _internationalization__WEBPACK_IMPORTED_MODULE_6__["defaultCulture"] }, true); + } + _this.moduleLoader = new _module_loader__WEBPACK_IMPORTED_MODULE_1__["ModuleLoader"](_this); + _this.localObserver = new _observer__WEBPACK_IMPORTED_MODULE_3__["Observer"](_this); + // tslint:disable-next-line:no-function-constructor-with-string-args + _internationalization__WEBPACK_IMPORTED_MODULE_6__["onIntlChange"].on('notifyExternalChange', _this.detectFunction, _this, _this.randomId); + // Based on the considered control list we have count the instance + if (typeof window !== "undefined" && typeof document !== "undefined" && !Object(_validate_lic__WEBPACK_IMPORTED_MODULE_8__["validateLicense"])()) { + if (_validate_lic__WEBPACK_IMPORTED_MODULE_8__["componentList"].indexOf(_this.getModuleName()) !== -1) { + instancecount = instancecount + 1; + if (instancecount > 5) { + isvalid = false; + } + } + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(selector)) { + _this.appendTo(); + } + return _this; + } + Component.prototype.requiredModules = function () { + return []; + }; + /** + * Destroys the sub modules while destroying the widget + * + * @returns {void} ? + */ + Component.prototype.destroy = function () { + if (this.isDestroyed) { + return; + } + if (this.enablePersistence) { + this.setPersistData(); + } + this.localObserver.destroy(); + if (this.refreshing) { + return; + } + Object(_dom__WEBPACK_IMPORTED_MODULE_7__["removeClass"])([this.element], ['e-control']); + this.trigger('destroyed', { cancel: false }); + _super.prototype.destroy.call(this); + this.moduleLoader.clean(); + _internationalization__WEBPACK_IMPORTED_MODULE_6__["onIntlChange"].off('notifyExternalChange', this.detectFunction, this.randomId); + }; + /** + * Applies all the pending property changes and render the component again. + * + * @returns {void} ? + */ + Component.prototype.refresh = function () { + this.refreshing = true; + this.moduleLoader.clean(); + this.destroy(); + this.clearChanges(); + this.localObserver = new _observer__WEBPACK_IMPORTED_MODULE_3__["Observer"](this); + this.preRender(); + this.injectModules(); + this.render(); + this.refreshing = false; + }; + Component.prototype.accessMount = function () { + if (this.mount && !this.isReactHybrid) { + this.mount(); + } + }; + /** + * Returns the route element of the component + * + * @returns {HTMLElement} ? + */ + Component.prototype.getRootElement = function () { + if (this.isReactHybrid) { + // eslint-disable-next-line + return this.actualElement; + } + else { + return this.element; + } + }; + /** + * Returns the persistence data for component + * + * @returns {any} ? + */ + // eslint-disable-next-line + Component.prototype.getLocalData = function () { + var eleId = this.getModuleName() + this.element.id; + if (versionBasedStatePersistence) { + return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion); + } + else { + return window.localStorage.getItem(eleId); + } + }; + /** + * Appends the control within the given HTML element + * + * @param {string | HTMLElement} selector - Target element where control needs to be appended + * @returns {void} ? + */ + Component.prototype.appendTo = function (selector) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selector) && typeof (selector) === 'string') { + this.element = Object(_dom__WEBPACK_IMPORTED_MODULE_7__["select"])(selector, document); + } + else if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selector)) { + this.element = selector; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element)) { + var moduleClass = 'e-' + this.getModuleName().toLowerCase(); + Object(_dom__WEBPACK_IMPORTED_MODULE_7__["addClass"])([this.element], ['e-control', moduleClass]); + this.isProtectedOnChange = false; + if (this.needsID && !this.element.id) { + this.element.id = this.getUniqueID(this.getModuleName()); + } + if (this.enablePersistence) { + this.mergePersistData(); + window.addEventListener('unload', this.setPersistData.bind(this)); + } + var inst = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + if (!inst || inst.indexOf(this) === -1) { + _super.prototype.addInstance.call(this); + } + this.preRender(); + this.injectModules(); + // Checked weather cases are valid or not. If control leads to more than five counts + if (!isvalid && !isBannerAdded) { + Object(_validate_lic__WEBPACK_IMPORTED_MODULE_8__["createLicenseOverlay"])(); + isBannerAdded = true; + } + this.render(); + if (!this.mount) { + this.trigger('created'); + } + else { + this.accessMount(); + } + } + }; + /** + * It is used to process the post rendering functionalities to a component. + * + * @param {Node} wrapperElement ? + * @returns {void} ? + */ + Component.prototype.renderComplete = function (wrapperElement) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var sfBlazor = 'sfBlazor'; + // eslint-disable-next-line + window[sfBlazor].renderComplete(this.element, wrapperElement); + } + this.isRendered = true; + }; + /** + * When invoked, applies the pending property changes immediately to the component. + * + * @returns {void} ? + */ + Component.prototype.dataBind = function () { + this.injectModules(); + _super.prototype.dataBind.call(this); + }; + /** + * Attach one or more event handler to the current component context. + * It is used for internal handling event internally within the component only. + * + * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName. + * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs + * @param {Object} context - optional parameter Specifies the context to be bind in the handler. + * @returns {void} ? + * @private + */ + Component.prototype.on = function (event, handler, context) { + if (typeof event === 'string') { + this.localObserver.on(event, handler, context); + } + else { + for (var _i = 0, event_1 = event; _i < event_1.length; _i++) { + var arg = event_1[_i]; + this.localObserver.on(arg.event, arg.handler, arg.context); + } + } + }; + /** + * To remove one or more event handler that has been attached with the on() method. + * + * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName. + * @param {Function} handler - optional parameter Specifies the function to run when the event occurs + * @returns {void} ? + * @private + */ + Component.prototype.off = function (event, handler) { + if (typeof event === 'string') { + this.localObserver.off(event, handler); + } + else { + for (var _i = 0, event_2 = event; _i < event_2.length; _i++) { + var arg = event_2[_i]; + this.localObserver.off(arg.event, arg.handler); + } + } + }; + /** + * To notify the handlers in the specified event. + * + * @param {string} property - Specifies the event to be notify. + * @param {Object} argument - Additional parameters to pass while calling the handler. + * @returns {void} ? + * @private + */ + Component.prototype.notify = function (property, argument) { + if (this.isDestroyed !== true) { + this.localObserver.notify(property, argument); + } + }; + /** + * Get injected modules + * + * @returns {Function} ? + * @private + */ + Component.prototype.getInjectedModules = function () { + return this.injectedModules; + }; + /** + * Dynamically injects the required modules to the component. + * + * @param {Function} moduleList ? + * @returns {void} ? + */ + Component.Inject = function () { + var moduleList = []; + for (var _i = 0; _i < arguments.length; _i++) { + moduleList[_i] = arguments[_i]; + } + if (!this.prototype.injectedModules) { + this.prototype.injectedModules = []; + } + for (var i = 0; i < moduleList.length; i++) { + if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) { + this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]); + } + } + }; + /** + * This is a instance method to create an element. + * + * @param {string} tagName ? + * @param {ElementProperties} prop ? + * @param {boolean} isVDOM ? + * @returns {any} ? + * @private + */ + // eslint-disable-next-line + Component.prototype.createElement = function (tagName, prop, isVDOM) { + return Object(_dom__WEBPACK_IMPORTED_MODULE_7__["createElement"])(tagName, prop); + }; + /** + * + * @param {Function} handler - handler to be triggered after state Updated. + * @param {any} argument - Arguments to be passed to caller. + * @returns {void} . + * @private + */ + // eslint-disable-next-line + Component.prototype.triggerStateChange = function (handler, argument) { + if (this.isReactHybrid) { + // eslint-disable-next-line + this.setState(); + this.currentContext = { calls: handler, args: argument }; + } + }; + // tslint: enable: no-any + Component.prototype.injectModules = function () { + if (this.injectedModules && this.injectedModules.length) { + this.moduleLoader.inject(this.requiredModules(), this.injectedModules); + } + }; + Component.prototype.detectFunction = function (args) { + var prop = Object.keys(args); + if (prop.length) { + this[prop[0]] = args[prop[0]]; + } + }; + Component.prototype.mergePersistData = function () { + var data; + if (versionBasedStatePersistence) { + data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion); + } + else { + data = window.localStorage.getItem(this.getModuleName() + this.element.id); + } + if (!(Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) || (data === ''))) { + this.setProperties(JSON.parse(data), true); + } + }; + Component.prototype.setPersistData = function () { + if (!this.isDestroyed) { + if (versionBasedStatePersistence) { + window.localStorage.setItem(this.getModuleName() + + this.element.id + this.ej2StatePersistenceVersion, this.getPersistData()); + } + else { + window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData()); + } + } + }; + // eslint-disable-next-line + Component.prototype.renderReactTemplates = function (callback) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(callback)) { + callback(); + } + }; + // eslint-disable-next-line + Component.prototype.clearTemplate = function (templateName, index) { + //No Code + }; + Component.prototype.getUniqueID = function (definedName) { + if (this.isHistoryChanged()) { + componentCount = 0; + } + lastPageID = this.pageID(location.href); + lastHistoryLen = history.length; + return definedName + '_' + lastPageID + '_' + componentCount++; + }; + Component.prototype.pageID = function (url) { + var hash = 0; + if (url.length === 0) { + return hash; + } + for (var i = 0; i < url.length; i++) { + var char = url.charCodeAt(i); + hash = ((hash << 5) - hash) + char; + hash = hash & hash; // Convert to 32bit integer + } + return Math.abs(hash); + }; + Component.prototype.isHistoryChanged = function () { + return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length; + }; + Component.prototype.addOnPersist = function (options) { + var _this = this; + var persistObj = {}; + for (var _i = 0, options_1 = options; _i < options_1.length; _i++) { + var key = options_1[_i]; + var objValue = void 0; + // eslint-disable-next-line + objValue = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(key, this); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(objValue)) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])(key, this.getActualProperties(objValue), persistObj); + } + } + return JSON.stringify(persistObj, function (key, value) { + return _this.getActualProperties(value); + }); + }; + Component.prototype.getActualProperties = function (obj) { + if (obj instanceof _child_property__WEBPACK_IMPORTED_MODULE_4__["ChildProperty"]) { + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('properties', obj); + } + else { + return obj; + } + }; + Component.prototype.ignoreOnPersist = function (options) { + return JSON.stringify(this.iterateJsonProperties(this.properties, options)); + }; + Component.prototype.iterateJsonProperties = function (obj, ignoreList) { + var newObj = {}; + var _loop_1 = function (key) { + if (ignoreList.indexOf(key) === -1) { + // eslint-disable-next-line + var value = obj[key]; + if (typeof value === 'object' && !(value instanceof Array)) { + var newList = ignoreList.filter(function (str) { + var regExp = RegExp; + return new regExp(key + '.').test(str); + }).map(function (str) { + return str.replace(key + '.', ''); + }); + newObj["" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList); + } + else { + newObj["" + key] = value; + } + } + }; + var this_1 = this; + for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { + var key = _a[_i]; + _loop_1(key); + } + return newObj; + }; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_5__["Property"])(false) + ], Component.prototype, "enablePersistence", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_5__["Property"])() + ], Component.prototype, "enableRtl", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_5__["Property"])() + ], Component.prototype, "locale", void 0); + Component = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_5__["NotifyPropertyChanges"] + ], Component); + return Component; +}(_base__WEBPACK_IMPORTED_MODULE_2__["Base"])); + +//Function handling for page navigation detection +/* istanbul ignore next */ +(function () { + if (typeof window !== 'undefined') { + window.addEventListener('popstate', + /* istanbul ignore next */ + function () { + componentCount = 0; + }); + } +})(); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js": +/*!*******************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/dom.js ***! + \*******************************************************/ +/*! exports provided: createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return createElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClass", function() { return removeClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prepend", function() { return prepend; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "append", function() { return append; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detach", function() { return detach; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return remove; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attributes", function() { return attributes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "select", function() { return select; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return selectAll; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closest", function() { return closest; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "siblings", function() { return siblings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAttributeOrDefault", function() { return getAttributeOrDefault; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setStyleAttribute", function() { return setStyleAttribute; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classList", function() { return classList; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matches", function() { return matches; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "includeInnerHTML", function() { return includeInnerHTML; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsClass", function() { return containsClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneNode", function() { return cloneNode; }); +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/** + * Functions related to dom operations. + */ + + +var SVG_REG = /^svg|^path|^g/; +/** + * Function to create Html element. + * + * @param {string} tagName - Name of the tag, id and class names. + * @param {ElementProperties} properties - Object to set properties in the element. + * @param {ElementProperties} properties.id - To set the id to the created element. + * @param {ElementProperties} properties.className - To add classes to the element. + * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element. + * @param {ElementProperties} properties.styles - To set the some custom styles to element. + * @param {ElementProperties} properties.attrs - To set the attributes to element. + * @returns {any} ? + * @private + */ +function createElement(tagName, properties) { + var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName)); + if (typeof (properties) === 'undefined') { + return element; + } + element.innerHTML = (properties.innerHTML ? properties.innerHTML : ''); + if (properties.className !== undefined) { + element.className = properties.className; + } + if (properties.id !== undefined) { + element.id = properties.id; + } + if (properties.styles !== undefined) { + element.setAttribute('style', properties.styles); + } + if (properties.attrs !== undefined) { + attributes(element, properties.attrs); + } + return element; +} +/** + * The function used to add the classes to array of elements + * + * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes + * @param {string|string[]} classes - String or array of string that need to add an individual element as a class + * @returns {any} . + * @private + */ +function addClass(elements, classes) { + var classList = getClassList(classes); + var regExp = RegExp; + for (var _i = 0, _a = elements; _i < _a.length; _i++) { + var ele = _a[_i]; + for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) { + var className = classList_1[_b]; + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(ele)) { + var curClass = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('attributes.className', ele); + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(curClass)) { + Object(_util__WEBPACK_IMPORTED_MODULE_1__["setValue"])('attributes.className', className, ele); + } + else if (!new regExp('\\b' + className + '\\b', 'i').test(curClass)) { + Object(_util__WEBPACK_IMPORTED_MODULE_1__["setValue"])('attributes.className', curClass + ' ' + className, ele); + } + } + else { + if (!ele.classList.contains(className)) { + ele.classList.add(className); + } + } + } + } + return elements; +} +/** + * The function used to add the classes to array of elements + * + * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes + * @param {string|string[]} classes - String or array of string that need to add an individual element as a class + * @returns {any} . + * @private + */ +function removeClass(elements, classes) { + var classList = getClassList(classes); + for (var _i = 0, _a = elements; _i < _a.length; _i++) { + var ele = _a[_i]; + var flag = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(ele); + var canRemove = flag ? Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('attributes.className', ele) : ele.className !== ''; + if (canRemove) { + for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) { + var className = classList_2[_b]; + if (flag) { + var classes_1 = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('attributes.className', ele); + var classArr = classes_1.split(' '); + var index = classArr.indexOf(className); + if (index !== -1) { + classArr.splice(index, 1); + } + Object(_util__WEBPACK_IMPORTED_MODULE_1__["setValue"])('attributes.className', classArr.join(' '), ele); + } + else { + ele.classList.remove(className); + } + } + } + } + return elements; +} +/** + * The function used to get classlist. + * + * @param {string | string[]} classes - An element the need to check visibility + * @returns {string[]} ? + * @private + */ +function getClassList(classes) { + var classList = []; + if (typeof classes === 'string') { + classList.push(classes); + } + else { + classList = classes; + } + return classList; +} +/** + * The function used to check element is visible or not. + * + * @param {Element|Node} element - An element the need to check visibility + * @returns {boolean} ? + * @private + */ +function isVisible(element) { + var ele = element; + return (ele.style.visibility === '' && ele.offsetWidth > 0); +} +/** + * The function used to insert an array of elements into a first of the element. + * + * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend. + * @param {Element} toElement - An element that is going to prepend. + * @param {boolean} isEval - ? + * @returns {Element[] | NodeList} ? + * @private + */ +function prepend(fromElements, toElement, isEval) { + var docFrag = document.createDocumentFragment(); + for (var _i = 0, _a = fromElements; _i < _a.length; _i++) { + var ele = _a[_i]; + docFrag.appendChild(ele); + } + toElement.insertBefore(docFrag, toElement.firstElementChild); + if (isEval) { + executeScript(toElement); + } + return fromElements; +} +/** + * The function used to insert an array of elements into last of the element. + * + * @param {Element[]|NodeList} fromElements - An array of elements that need to append. + * @param {Element} toElement - An element that is going to prepend. + * @param {boolean} isEval - ? + * @returns {Element[] | NodeList} ? + * @private + */ +function append(fromElements, toElement, isEval) { + var docFrag = document.createDocumentFragment(); + if (fromElements instanceof NodeList) { + while (fromElements.length > 0) { + docFrag.appendChild(fromElements[0]); + } + } + else { + for (var _i = 0, _a = fromElements; _i < _a.length; _i++) { + var ele = _a[_i]; + docFrag.appendChild(ele); + } + } + toElement.appendChild(docFrag); + if (isEval) { + executeScript(toElement); + } + return fromElements; +} +/** + * The function is used to evaluate script from Ajax request + * + * @param {Element} ele - An element is going to evaluate the script + * @returns {void} ? + */ +function executeScript(ele) { + var eleArray = ele.querySelectorAll('script'); + eleArray.forEach(function (element) { + var script = document.createElement('script'); + script.text = element.innerHTML; + document.head.appendChild(script); + detach(script); + }); +} +/** + * The function used to remove the element from parentnode + * + * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function detach(element) { + var parentNode = element.parentNode; + if (parentNode) { + return parentNode.removeChild(element); + } +} +/** + * The function used to remove the element from Dom also clear the bounded events + * + * @param {Element|Node|HTMLElement} element - An element remove from the Dom + * @returns {void} ? + * @private + */ +function remove(element) { + var parentNode = element.parentNode; + _event_handler__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].clearEvents(element); + parentNode.removeChild(element); +} +/** + * The function helps to set multiple attributes to an element + * + * @param {Element|Node} element - An element that need to set attributes. + * @param {string} attributes - JSON Object that is going to as attributes. + * @returns {Element} ? + * @private + */ +// eslint-disable-next-line +function attributes(element, attributes) { + var keys = Object.keys(attributes); + var ele = element; + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(ele)) { + var iKey = key; + if (key === 'tabindex') { + iKey = 'tabIndex'; + } + ele.attributes["" + iKey] = attributes["" + key]; + } + else { + ele.setAttribute(key, attributes["" + key]); + } + } + return ele; +} +/** + * The function selects the element from giving context. + * + * @param {string} selector - Selector string need fetch element + * @param {Document|Element} context - It is an optional type, That specifies a Dom context. + * @param {boolean} needsVDOM ? + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function select(selector, context, needsVDOM) { + if (context === void 0) { context = document; } + selector = querySelectId(selector); + return context.querySelector(selector); +} +/** + * The function selects an array of element from the given context. + * + * @param {string} selector - Selector string need fetch element + * @param {Document|Element} context - It is an optional type, That specifies a Dom context. + * @param {boolean} needsVDOM ? + * @returns {HTMLElement[]} ? + * @private + */ +// eslint-disable-next-line +function selectAll(selector, context, needsVDOM) { + if (context === void 0) { context = document; } + selector = querySelectId(selector); + var nodeList = context.querySelectorAll(selector); + return nodeList; +} +/** + * The function selects an id of element from the given context. + * + * @param {string} selector - Selector string need fetch element + * @returns {string} ? + * @private + */ +function querySelectId(selector) { + var charRegex = /(!|"|\$|%|&|'|\(|\)|\*|\/|:|;|<|=|\?|@|\]|\^|`|{|}|\||\+|~)/g; + if (selector.match(/#[0-9]/g) || selector.match(charRegex)) { + var idList = selector.split(','); + for (var i = 0; i < idList.length; i++) { + var list = idList[parseInt(i.toString(), 10)].split(' '); + for (var j = 0; j < list.length; j++) { + if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) { + if (!list[parseInt(j.toString(), 10)].match(/\[.*\]/)) { + var splitId = list[parseInt(j.toString(), 10)].split('#'); + if (splitId[1].match(/^\d/) || splitId[1].match(charRegex)) { + var setId = list[parseInt(j.toString(), 10)].split('.'); + setId[0] = setId[0].replace(/#/, '[id=\'') + '\']'; + list[parseInt(j.toString(), 10)] = setId.join('.'); + } + } + } + } + idList[parseInt(i.toString(), 10)] = list.join(' '); + } + return idList.join(','); + } + return selector; +} +/** + * Returns single closest parent element based on class selector. + * + * @param {Element} element - An element that need to find the closest element. + * @param {string} selector - A classSelector of closest element. + * @returns {Element} ? + * @private + */ +function closest(element, selector) { + var el = element; + if (typeof el.closest === 'function') { + return el.closest(selector); + } + while (el && el.nodeType === 1) { + if (matches(el, selector)) { + return el; + } + el = el.parentNode; + } + return null; +} +/** + * Returns all sibling elements of the given element. + * + * @param {Element|Node} element - An element that need to get siblings. + * @returns {Element[]} ? + * @private + */ +function siblings(element) { + var siblings = []; + var childNodes = Array.prototype.slice.call(element.parentNode.childNodes); + for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) { + var curNode = childNodes_1[_i]; + if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) { + siblings.push(curNode); + } + } + return siblings; +} +/** + * set the value if not exist. Otherwise set the existing value + * + * @param {HTMLElement} element - An element to which we need to set value. + * @param {string} property - Property need to get or set. + * @param {string} value - value need to set. + * @returns {string} ? + * @private + */ +function getAttributeOrDefault(element, property, value) { + var attrVal; + var isObj = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(element); + if (isObj) { + attrVal = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('attributes.' + property, element); + } + else { + attrVal = element.getAttribute(property); + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(attrVal) && value) { + if (!isObj) { + element.setAttribute(property, value.toString()); + } + else { + element.attributes["" + property] = value; + } + attrVal = value; + } + return attrVal; +} +/** + * Set the style attributes to Html element. + * + * @param {HTMLElement} element - Element which we want to set attributes + * @param {any} attrs - Set the given attributes to element + * @returns {void} ? + * @private + */ +function setStyleAttribute(element, attrs) { + if (attrs !== undefined) { + Object.keys(attrs).forEach(function (key) { + // eslint-disable-next-line + element.style[key] = attrs[key]; + }); + } +} +/** + * Method for add and remove classes to a dom element. + * + * @param {Element} element - Element for add and remove classes + * @param {string[]} addClasses - List of classes need to be add to the element + * @param {string[]} removeClasses - List of classes need to be remove from the element + * @returns {void} ? + * @private + */ +function classList(element, addClasses, removeClasses) { + addClass([element], addClasses); + removeClass([element], removeClasses); +} +/** + * Method to check whether the element matches the given selector. + * + * @param {Element} element - Element to compare with the selector. + * @param {string} selector - String selector which element will satisfy. + * @returns {void} ? + * @private + */ +function matches(element, selector) { + // eslint-disable-next-line + var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector; + if (matches) { + return matches.call(element, selector); + } + else { + return [].indexOf.call(document.querySelectorAll(selector), element) !== -1; + } +} +/** + * Method to get the html text from DOM. + * + * @param {HTMLElement} ele - Element to compare with the selector. + * @param {string} innerHTML - String selector which element will satisfy. + * @returns {void} ? + * @private + */ +function includeInnerHTML(ele, innerHTML) { + ele.innerHTML = innerHTML; +} +/** + * Method to get the containsclass. + * + * @param {HTMLElement} ele - Element to compare with the selector. + * @param {string} className - String selector which element will satisfy. + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function containsClass(ele, className) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(ele)) { + // eslint-disable-next-line + return new RegExp('\\b' + className + '\\b', 'i').test(ele.attributes.className); + } + else { + return ele.classList.contains(className); + } +} +/** + * Method to check whether the element matches the given selector. + * + * @param {Object} element - Element to compare with the selector. + * @param {boolean} deep ? + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function cloneNode(element, deep) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isObject"])(element)) { + if (deep) { + return Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, {}, element, true); + } + } + else { + return element.cloneNode(deep); + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/draggable.js": +/*!*************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/draggable.js ***! + \*************************************************************/ +/*! exports provided: Position, Draggable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return Position; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Draggable", function() { return Draggable; }); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +/* harmony import */ var _child_property__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./child-property */ "./ej2-resources/22.1.37/scripts/ej2-base/child-property.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + +var defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 }; +var positionProp = ['offsetLeft', 'offsetTop']; +var axisMapper = ['x', 'y']; +var axisValueMapper = ['left', 'top']; +var isDraggedObject = { isDragged: false }; +/** + * Specifies the position coordinates + */ +var Position = /** @__PURE__ @class */ (function (_super) { + __extends(Position, _super); + function Position() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(0) + ], Position.prototype, "left", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(0) + ], Position.prototype, "top", void 0); + return Position; +}(_child_property__WEBPACK_IMPORTED_MODULE_5__["ChildProperty"])); + +/** + * Draggable Module provides support to enable draggable functionality in Dom Elements. + * ```html + *
Draggable
+ * + * ``` + */ +var Draggable = /** @__PURE__ @class */ (function (_super) { + __extends(Draggable, _super); + function Draggable(element, options) { + var _this = _super.call(this, options, element) || this; + _this.dragLimit = Draggable_1.getDefaultPosition(); + _this.borderWidth = Draggable_1.getDefaultPosition(); + _this.padding = Draggable_1.getDefaultPosition(); + _this.diffX = 0; + _this.prevLeft = 0; + _this.prevTop = 0; + _this.dragProcessStarted = false; + _this.eleTop = 0; + /* eslint-disable @typescript-eslint/no-explicit-any */ + _this.tapHoldTimer = 0; + _this.externalInitialize = false; + _this.diffY = 0; + _this.parentScrollX = 0; + _this.parentScrollY = 0; + _this.droppables = {}; + _this.bind(); + return _this; + } + Draggable_1 = Draggable; + Draggable.prototype.bind = function () { + this.toggleEvents(); + if (_browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isIE) { + Object(_dom__WEBPACK_IMPORTED_MODULE_2__["addClass"])([this.element], 'e-block-touch'); + } + this.droppables[this.scope] = {}; + }; + Draggable.getDefaultPosition = function () { + return Object(_util__WEBPACK_IMPORTED_MODULE_6__["extend"])({}, defaultPosition); + }; + Draggable.prototype.toggleEvents = function (isUnWire) { + var ele; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isUndefined"])(this.handle)) { + ele = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["select"])(this.handle, this.element); + } + var handler = (this.enableTapHold && _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isDevice && _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isTouch) ? this.mobileInitialize : this.initialize; + if (isUnWire) { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(ele || this.element, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchstart' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchStartEvent, handler); + } + else { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(ele || this.element, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchstart' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchStartEvent, handler, this); + } + }; + /* istanbul ignore next */ + Draggable.prototype.mobileInitialize = function (evt) { + var _this = this; + var target = evt.currentTarget; + this.tapHoldTimer = setTimeout(function () { + _this.externalInitialize = true; + _this.removeTapholdTimer(); + _this.initialize(evt, target); + }, this.tapHoldThreshold); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.removeTapholdTimer, this); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.removeTapholdTimer, this); + }; + /* istanbul ignore next */ + Draggable.prototype.removeTapholdTimer = function () { + clearTimeout(this.tapHoldTimer); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.removeTapholdTimer); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.removeTapholdTimer); + }; + /* istanbul ignore next */ + Draggable.prototype.getScrollableParent = function (element, axis) { + var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' }; + var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' }; + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(element)) { + return null; + } + if (element[scroll["" + axis]] > element[client["" + axis]]) { + if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) { + if (axis === 'vertical') { + this.parentScrollY = this.parentScrollY + + (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY); + this.tempScrollHeight = element.scrollHeight; + } + else { + this.parentScrollX = this.parentScrollX + + (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX); + this.tempScrollWidth = element.scrollWidth; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(element)) { + return this.getScrollableParent(element.parentNode, axis); + } + else { + return element; + } + } + else { + return this.getScrollableParent(element.parentNode, axis); + } + } + else { + return this.getScrollableParent(element.parentNode, axis); + } + }; + Draggable.prototype.getScrollableValues = function () { + this.parentScrollX = 0; + this.parentScrollY = 0; + var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal'); + var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical'); + var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal'); + }; + Draggable.prototype.initialize = function (evt, curTarget) { + this.currentStateTarget = evt.target; + if (this.isDragStarted()) { + return; + } + else { + this.isDragStarted(true); + this.externalInitialize = false; + } + this.target = (evt.currentTarget || curTarget); + this.dragProcessStarted = false; + if (this.abort) { + /* tslint:disable no-any */ + var abortSelectors = this.abort; + if (typeof abortSelectors === 'string') { + abortSelectors = [abortSelectors]; + } + for (var i = 0; i < abortSelectors.length; i++) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(Object(_dom__WEBPACK_IMPORTED_MODULE_2__["closest"])(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) { + /* istanbul ignore next */ + if (this.isDragStarted()) { + this.isDragStarted(true); + } + return; + } + } + } + if (this.preventDefault && !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isUndefined"])(evt.changedTouches) && evt.type !== 'touchstart') { + evt.preventDefault(); + } + this.element.setAttribute('aria-grabbed', 'true'); + var intCoord = this.getCoordinates(evt); + this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY }; + if (!this.clone) { + var pos = this.element.getBoundingClientRect(); + this.getScrollableValues(); + if (evt.clientX === evt.pageX) { + this.parentScrollX = 0; + } + if (evt.clientY === evt.pageY) { + this.parentScrollY = 0; + } + this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX); + this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY); + } + if (this.externalInitialize) { + this.intDragStart(evt); + } + else { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.intDragStart, this); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDestroy, this); + } + this.toggleEvents(true); + if (evt.type !== 'touchstart' && this.isPreventSelect) { + document.body.classList.add('e-prevent-select'); + } + this.externalInitialize = false; + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].trigger(document.documentElement, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchstart' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchStartEvent, evt); + }; + Draggable.prototype.intDragStart = function (evt) { + this.removeTapholdTimer(); + var isChangeTouch = !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isUndefined"])(evt.changedTouches); + if (isChangeTouch && (evt.changedTouches.length !== 1)) { + return; + } + var intCordinate = this.getCoordinates(evt); + var pos; + var styleProp = getComputedStyle(this.element); + this.margin = { + left: parseInt(styleProp.marginLeft, 10), + top: parseInt(styleProp.marginTop, 10), + right: parseInt(styleProp.marginRight, 10), + bottom: parseInt(styleProp.marginBottom, 10) + }; + var element = this.element; + if (this.clone && this.dragTarget) { + var intClosest = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["closest"])(evt.target, this.dragTarget); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(intClosest)) { + element = intClosest; + } + } + /* istanbul ignore next */ + if (this.isReplaceDragEle) { + element = this.currentStateCheck(evt.target, element); + } + this.offset = this.calculateParentPosition(element); + this.position = this.getMousePosition(evt, this.isDragScroll); + var x = this.initialPosition.x - intCordinate.pageX; + var y = this.initialPosition.y - intCordinate.pageY; + var distance = Math.sqrt((x * x) + (y * y)); + if ((distance >= this.distance || this.externalInitialize)) { + var ele = this.getHelperElement(evt); + if (!ele || Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(ele)) { + return; + } + if (isChangeTouch) { + evt.preventDefault(); + } + var dragTargetElement = this.helperElement = ele; + this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent); + if (this.dragStart) { + var curTarget = this.getProperTargetElement(evt); + var args = { + event: evt, + element: element, + target: curTarget, + bindEvents: Object(_util__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])() ? this.bindDragEvents.bind(this) : null, + dragElement: dragTargetElement + }; + this.trigger('dragStart', args); + } + if (this.dragArea) { + this.setDragArea(); + } + else { + this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 }; + this.borderWidth = { top: 0, left: 0 }; + } + pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top }; + if (this.clone && !this.enableTailMode) { + this.diffX = this.position.left - this.offset.left; + this.diffY = this.position.top - this.offset.top; + } + this.getScrollableValues(); + // when drag element has margin-top + var styles = getComputedStyle(element); + var marginTop = parseFloat(styles.marginTop); + /* istanbul ignore next */ + if (this.clone && marginTop !== 0) { + pos.top += marginTop; + } + this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0; + /* istanbul ignore next */ + // if (this.eleTop > 0) { + // pos.top += this.eleTop; + // } + if (this.enableScrollHandler && !this.clone) { + pos.top -= this.parentScrollY; + pos.left -= this.parentScrollX; + } + var posValue = this.getProcessedPositionValue({ + top: (pos.top - this.diffY) + 'px', + left: (pos.left - this.diffX) + 'px' + }); + if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') { + pos.top += this.dragArea.scrollTop; + } + this.dragElePosition = { top: pos.top, left: pos.left }; + Object(_dom__WEBPACK_IMPORTED_MODULE_2__["setStyleAttribute"])(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top })); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.intDragStart); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDestroy); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + this.bindDragEvents(dragTargetElement); + } + } + }; + Draggable.prototype.bindDragEvents = function (dragTargetElement) { + if (Object(_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(dragTargetElement)) { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.intDrag, this); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDragStop, this); + this.setGlobalDroppables(false, this.element, dragTargetElement); + } + else { + this.toggleEvents(); + document.body.classList.remove('e-prevent-select'); + } + }; + Draggable.prototype.elementInViewport = function (el) { + this.top = el.offsetTop; + this.left = el.offsetLeft; + this.width = el.offsetWidth; + this.height = el.offsetHeight; + while (el.offsetParent) { + el = el.offsetParent; + this.top += el.offsetTop; + this.left += el.offsetLeft; + } + return (this.top >= window.pageYOffset && + this.left >= window.pageXOffset && + (this.top + this.height) <= (window.pageYOffset + window.innerHeight) && + (this.left + this.width) <= (window.pageXOffset + window.innerWidth)); + }; + Draggable.prototype.getProcessedPositionValue = function (value) { + if (this.queryPositionInfo) { + return this.queryPositionInfo(value); + } + return value; + }; + Draggable.prototype.calculateParentPosition = function (ele) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(ele)) { + return { left: 0, top: 0 }; + } + var rect = ele.getBoundingClientRect(); + var style = getComputedStyle(ele); + return { + left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10), + top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10) + }; + }; + // tslint:disable-next-line:max-func-body-length + Draggable.prototype.intDrag = function (evt) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isUndefined"])(evt.changedTouches) && (evt.changedTouches.length !== 1)) { + return; + } + if (this.clone && evt.changedTouches && _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isDevice && _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isTouch) { + evt.preventDefault(); + } + var left; + var top; + this.position = this.getMousePosition(evt, this.isDragScroll); + var docHeight = this.getDocumentWidthHeight('Height'); + if (docHeight < this.position.top) { + this.position.top = docHeight; + } + var docWidth = this.getDocumentWidthHeight('Width'); + if (docWidth < this.position.left) { + this.position.left = docWidth; + } + if (this.drag) { + var curTarget = this.getProperTargetElement(evt); + this.trigger('drag', { event: evt, element: this.element, target: curTarget }); + } + var eleObj = this.checkTargetElement(evt); + if (eleObj.target && eleObj.instance) { + /* tslint:disable no-any */ + var flag = true; + if (this.hoverObject) { + if (this.hoverObject.instance !== eleObj.instance) { + this.triggerOutFunction(evt, eleObj); + } + else { + flag = false; + } + } + if (flag) { + eleObj.instance.dragData[this.scope] = this.droppables[this.scope]; + eleObj.instance.intOver(evt, eleObj.target); + this.hoverObject = eleObj; + } + } + else if (this.hoverObject) { + this.triggerOutFunction(evt, eleObj); + } + var helperElement = this.droppables[this.scope].helper; + this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent); + var tLeft = this.parentClientRect.left; + var tTop = this.parentClientRect.top; + var intCoord = this.getCoordinates(evt); + var pagex = intCoord.pageX; + var pagey = intCoord.pageY; + var dLeft = this.position.left - this.diffX; + var dTop = this.position.top - this.diffY; + var styles = getComputedStyle(helperElement); + if (this.dragArea) { + if (this.enableAutoScroll) { + this.setDragArea(); + } + if (this.pageX !== pagex || this.skipDistanceCheck) { + var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft) + + parseFloat(styles.marginRight)); + if (this.dragLimit.left > dLeft && dLeft > 0) { + left = this.dragLimit.left; + } + else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) { + left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth; + } + else { + left = dLeft < 0 ? this.dragLimit.left : dLeft; + } + } + if (this.pageY !== pagey || this.skipDistanceCheck) { + var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop) + + parseFloat(styles.marginBottom)); + if (this.dragLimit.top > dTop && dTop > 0) { + top = this.dragLimit.top; + } + else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) { + top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight; + } + else { + top = dTop < 0 ? this.dragLimit.top : dTop; + } + } + } + else { + left = dLeft; + top = dTop; + } + var iTop = tTop + this.borderWidth.top; + var iLeft = tLeft + this.borderWidth.left; + if (this.dragProcessStarted) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(top)) { + top = this.prevTop; + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(left)) { + left = this.prevLeft; + } + } + var draEleTop; + var draEleLeft; + if (this.helperElement.classList.contains('e-treeview')) { + if (this.dragArea) { + this.dragLimit.top = this.clone ? this.dragLimit.top : 0; + draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top); + draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left); + } + else { + draEleTop = top - this.borderWidth.top; + draEleLeft = left - this.borderWidth.left; + } + } + else { + if (this.dragArea) { + var isDialogEle = this.helperElement.classList.contains('e-dialog'); + this.dragLimit.top = this.clone ? this.dragLimit.top : 0; + draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop); + draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) : + this.dragElePosition.left : (left - iLeft); + } + else { + draEleTop = top - iTop; + draEleLeft = left - iLeft; + } + } + var marginTop = parseFloat(getComputedStyle(this.element).marginTop); + // when drag-element has margin-top + /* istanbul ignore next */ + if (marginTop > 0) { + if (this.clone) { + draEleTop += marginTop; + if (dTop < 0) { + if ((marginTop + dTop) >= 0) { + draEleTop = marginTop + dTop; + } + else { + draEleTop -= marginTop; + } + } + draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop; + } + if ((top - iTop) < 0) { + if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) { + var tempDraEleTop = this.dragLimit.top + dTop - iTop; + if ((tempDraEleTop + marginTop + iTop) < 0) { + draEleTop -= marginTop + iTop; + } + else { + draEleTop = tempDraEleTop; + } + } + else { + draEleTop -= marginTop + iTop; + } + } + } + if (this.dragArea && this.helperElement.classList.contains('e-treeview')) { + var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop) + + parseFloat(styles.marginBottom)); + draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop; + } + /* istanbul ignore next */ + // if(this.eleTop > 0) { + // draEleTop += this.eleTop; + // } + if (this.enableScrollHandler && !this.clone) { + draEleTop -= this.parentScrollY; + draEleLeft -= this.parentScrollX; + } + if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') { + draEleTop += this.dragArea.scrollTop; + } + var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' }); + Object(_dom__WEBPACK_IMPORTED_MODULE_2__["setStyleAttribute"])(helperElement, this.getDragPosition(dragValue)); + if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) { + this.helperElement.scrollIntoView(); + } + var elements = document.querySelectorAll(':hover'); + if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) { + if (elements.length === 0) { + elements = this.getPathElements(evt); + } + /* tslint:disable no-any */ + var scrollParent = this.getScrollParent(elements, false); + if (this.elementInViewport(this.helperElement)) { + this.getScrollPosition(scrollParent, draEleTop); + } + else if (!this.elementInViewport(this.helperElement)) { + elements = [].slice.call(document.querySelectorAll(':hover')); + if (elements.length === 0) { + elements = this.getPathElements(evt); + } + scrollParent = this.getScrollParent(elements, true); + this.getScrollPosition(scrollParent, draEleTop); + } + } + this.dragProcessStarted = true; + this.prevLeft = left; + this.prevTop = top; + this.position.left = left; + this.position.top = top; + this.pageX = pagex; + this.pageY = pagey; + }; + /* tslint:disable no-any */ + Draggable.prototype.getScrollParent = function (node, reverse) { + /* tslint:disable no-any */ + var nodeEl = reverse ? node.reverse() : node; + var hasScroll; + for (var i = nodeEl.length - 1; i >= 0; i--) { + hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y']; + if ((hasScroll === 'auto' || hasScroll === 'scroll') + && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) { + return nodeEl[parseInt(i.toString(), 10)]; + } + } + hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y']; + if (hasScroll === 'visible') { + document.scrollingElement.style.overflow = 'auto'; + return document.scrollingElement; + } + }; + Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) { + if (nodeEle && nodeEle === document.scrollingElement) { + if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop + && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) { + nodeEle.scrollTop += this.helperElement.clientHeight; + } + else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) { + nodeEle.scrollTop -= this.helperElement.clientHeight; + } + } + else if (nodeEle && nodeEle !== document.scrollingElement) { + if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) { + nodeEle.scrollTop += this.helperElement.clientHeight; + } + else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) { + nodeEle.scrollTop -= this.helperElement.clientHeight; + } + } + }; + Draggable.prototype.getPathElements = function (evt) { + var elementTop = evt.clientX > 0 ? evt.clientX : 0; + var elementLeft = evt.clientY > 0 ? evt.clientY : 0; + return document.elementsFromPoint(elementTop, elementLeft); + }; + Draggable.prototype.triggerOutFunction = function (evt, eleObj) { + this.hoverObject.instance.intOut(evt, eleObj.target); + this.hoverObject.instance.dragData[this.scope] = null; + this.hoverObject = null; + }; + Draggable.prototype.getDragPosition = function (dragValue) { + var temp = Object(_util__WEBPACK_IMPORTED_MODULE_6__["extend"])({}, dragValue); + if (this.axis) { + if (this.axis === 'x') { + delete temp.top; + } + else if (this.axis === 'y') { + delete temp.left; + } + } + return temp; + }; + Draggable.prototype.getDocumentWidthHeight = function (str) { + var docBody = document.body; + var docEle = document.documentElement; + var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]); + return returnValue; + }; + Draggable.prototype.intDragStop = function (evt) { + this.dragProcessStarted = false; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isUndefined"])(evt.changedTouches) && (evt.changedTouches.length !== 1)) { + return; + } + var type = ['touchend', 'pointerup', 'mouseup']; + if (type.indexOf(evt.type) !== -1) { + if (this.dragStop) { + var curTarget = this.getProperTargetElement(evt); + this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement }); + } + this.intDestroy(evt); + } + else { + this.element.setAttribute('aria-grabbed', 'false'); + } + var eleObj = this.checkTargetElement(evt); + if (eleObj.target && eleObj.instance) { + eleObj.instance.dragStopCalled = true; + eleObj.instance.dragData[this.scope] = this.droppables[this.scope]; + eleObj.instance.intDrop(evt, eleObj.target); + } + this.setGlobalDroppables(true); + document.body.classList.remove('e-prevent-select'); + }; + /** + * @private + */ + Draggable.prototype.intDestroy = function (evt) { + this.dragProcessStarted = false; + this.toggleEvents(); + document.body.classList.remove('e-prevent-select'); + this.element.setAttribute('aria-grabbed', 'false'); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.intDragStart); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDragStop); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDestroy); + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(document, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchmove' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchMoveEvent, this.intDrag); + if (this.isDragStarted()) { + this.isDragStarted(true); + } + }; + // triggers when property changed + Draggable.prototype.onPropertyChanged = function (newProp, oldProp) { + //No Code to handle + }; + Draggable.prototype.getModuleName = function () { + return 'draggable'; + }; + Draggable.prototype.isDragStarted = function (change) { + if (change) { + isDraggedObject.isDragged = !isDraggedObject.isDragged; + } + return isDraggedObject.isDragged; + }; + Draggable.prototype.setDragArea = function () { + var eleWidthBound; + var eleHeightBound; + var top = 0; + var left = 0; + var ele; + var type = typeof this.dragArea; + if (type === 'string') { + ele = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["select"])(this.dragArea); + } + else { + ele = this.dragArea; + } + if (ele) { + var elementArea = ele.getBoundingClientRect(); + eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left; + eleHeightBound = ele.scrollHeight ? (this.dragArea && !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top; + var keys = ['Top', 'Left', 'Bottom', 'Right']; + var styles = getComputedStyle(ele); + for (var i = 0; i < keys.length; i++) { + var key = keys[parseInt(i.toString(), 10)]; + var tborder = styles['border' + key + 'Width']; + var tpadding = styles['padding' + key]; + var lowerKey = key.toLowerCase(); + this.borderWidth["" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder); + this.padding["" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding); + } + if (this.dragArea && !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(this.helperElement) && this.helperElement.classList.contains('e-treeview')) { + top = elementArea.top + document.scrollingElement.scrollTop; + } + else { + top = elementArea.top; + } + left = elementArea.left; + this.dragLimit.left = left + this.borderWidth.left + this.padding.left; + this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top; + this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right); + this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom); + } + }; + Draggable.prototype.getProperTargetElement = function (evt) { + var intCoord = this.getCoordinates(evt); + var ele; + var prevStyle = this.helperElement.style.pointerEvents || ''; + var isPointer = evt.type.indexOf('pointer') !== -1 && _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].info.name === 'safari' && parseInt(_browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].info.version) > 12; + if (Object(_util__WEBPACK_IMPORTED_MODULE_6__["compareElementParent"])(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) { + this.helperElement.style.pointerEvents = 'none'; + ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY); + this.helperElement.style.pointerEvents = prevStyle; + } + else { + ele = evt.target; + } + return ele; + }; + /* istanbul ignore next */ + Draggable.prototype.currentStateCheck = function (ele, oldEle) { + var elem; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(this.currentStateTarget) && this.currentStateTarget !== ele) { + elem = this.currentStateTarget; + } + else { + elem = !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(oldEle) ? oldEle : ele; + } + return elem; + }; + Draggable.prototype.getMousePosition = function (evt, isdragscroll) { + /* tslint:disable no-any */ + var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target; + var intCoord = this.getCoordinates(evt); + var pageX; + var pageY; + var isOffsetParent = Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(dragEle.offsetParent); + /* istanbul ignore next */ + if (isdragscroll) { + pageX = this.clone ? intCoord.pageX : + (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition; + pageY = this.clone ? intCoord.pageY : + (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition; + } + else { + pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition; + pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition; + } + if (document.scrollingElement && (!isdragscroll && !this.clone)) { + var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0; + var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0; + pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX; + pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY; + } + return { + left: pageX - (this.margin.left + this.cursorAt.left), + top: pageY - (this.margin.top + this.cursorAt.top) + }; + }; + Draggable.prototype.getCoordinates = function (evt) { + if (evt.type.indexOf('touch') > -1) { + return evt.changedTouches[0]; + } + return evt; + }; + Draggable.prototype.getHelperElement = function (evt) { + var element; + if (this.clone) { + if (this.helper) { + element = this.helper({ sender: evt, element: this.target }); + } + else { + element = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["createElement"])('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' }); + document.body.appendChild(element); + } + } + else { + element = this.element; + } + return element; + }; + Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) { + this.droppables[this.scope] = reset ? null : { + draggable: drag, + helper: helper, + draggedElement: this.element + }; + }; + Draggable.prototype.checkTargetElement = function (evt) { + var target = this.getProperTargetElement(evt); + var dropIns = this.getDropInstance(target); + if (!dropIns && target && !Object(_util__WEBPACK_IMPORTED_MODULE_6__["isNullOrUndefined"])(target.parentNode)) { + var parent_1 = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["closest"])(target.parentNode, '.e-droppable') || target.parentElement; + if (parent_1) { + dropIns = this.getDropInstance(parent_1); + } + } + return { target: target, instance: dropIns }; + }; + Draggable.prototype.getDropInstance = function (ele) { + var name = 'getModuleName'; + var drop; + var eleInst = ele && ele.ej2_instances; + if (eleInst) { + for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) { + var inst = eleInst_1[_i]; + if (inst["" + name]() === 'droppable') { + drop = inst; + break; + } + } + } + return drop; + }; + Draggable.prototype.destroy = function () { + this.toggleEvents(true); + _super.prototype.destroy.call(this); + }; + var Draggable_1; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Complex"])({}, Position) + ], Draggable.prototype, "cursorAt", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(true) + ], Draggable.prototype, "clone", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "dragArea", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "isDragScroll", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "isReplaceDragEle", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(true) + ], Draggable.prototype, "isPreventSelect", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Draggable.prototype, "drag", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Draggable.prototype, "dragStart", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Draggable.prototype, "dragStop", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(1) + ], Draggable.prototype, "distance", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "handle", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "abort", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "helper", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])('default') + ], Draggable.prototype, "scope", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])('') + ], Draggable.prototype, "dragTarget", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "axis", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Draggable.prototype, "queryPositionInfo", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(false) + ], Draggable.prototype, "enableTailMode", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(false) + ], Draggable.prototype, "skipDistanceCheck", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(true) + ], Draggable.prototype, "preventDefault", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(false) + ], Draggable.prototype, "enableAutoScroll", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(false) + ], Draggable.prototype, "enableTapHold", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(750) + ], Draggable.prototype, "tapHoldThreshold", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])(false) + ], Draggable.prototype, "enableScrollHandler", void 0); + Draggable = Draggable_1 = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_3__["NotifyPropertyChanges"] + ], Draggable); + return Draggable; +}(_base__WEBPACK_IMPORTED_MODULE_0__["Base"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/droppable.js": +/*!*************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/droppable.js ***! + \*************************************************************/ +/*! exports provided: Droppable */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Droppable", function() { return Droppable; }); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +/** + * Droppable Module provides support to enable droppable functionality in Dom Elements. + * ```html + *
Droppable
+ * + * ``` + */ +var Droppable = /** @__PURE__ @class */ (function (_super) { + __extends(Droppable, _super); + function Droppable(element, options) { + var _this = _super.call(this, options, element) || this; + _this.mouseOver = false; + _this.dragData = {}; + _this.dragStopCalled = false; + _this.bind(); + return _this; + } + Droppable.prototype.bind = function () { + this.wireEvents(); + }; + Droppable.prototype.wireEvents = function () { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].add(this.element, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDrop, this); + }; + // triggers when property changed + // eslint-disable-next-line + Droppable.prototype.onPropertyChanged = function (newProp, oldProp) { + //No Code to handle + }; + Droppable.prototype.getModuleName = function () { + return 'droppable'; + }; + Droppable.prototype.intOver = function (event, element) { + if (!this.mouseOver) { + var drag = this.dragData[this.scope]; + this.trigger('over', { event: event, target: element, dragData: drag }); + this.mouseOver = true; + } + }; + Droppable.prototype.intOut = function (event, element) { + if (this.mouseOver) { + this.trigger('out', { evt: event, target: element }); + this.mouseOver = false; + } + }; + Droppable.prototype.intDrop = function (evt, element) { + if (!this.dragStopCalled) { + return; + } + else { + this.dragStopCalled = false; + } + var accept = true; + var drag = this.dragData[this.scope]; + var isDrag = drag ? (drag.helper && Object(_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(drag.helper)) : false; + var area; + if (isDrag) { + area = this.isDropArea(evt, drag.helper, element); + if (this.accept) { + accept = Object(_dom__WEBPACK_IMPORTED_MODULE_2__["matches"])(drag.helper, this.accept); + } + } + if (isDrag && this.drop && area.canDrop && accept) { + this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag }); + } + this.mouseOver = false; + }; + Droppable.prototype.isDropArea = function (evt, helper, element) { + var area = { canDrop: true, target: element || evt.target }; + var isTouch = evt.type === 'touchend'; + if (isTouch || area.target === helper) { + helper.style.display = 'none'; + var coord = isTouch ? (evt.changedTouches[0]) : evt; + var ele = document.elementFromPoint(coord.clientX, coord.clientY); + area.canDrop = false; + area.canDrop = Object(_util__WEBPACK_IMPORTED_MODULE_5__["compareElementParent"])(ele, this.element); + if (area.canDrop) { + area.target = ele; + } + helper.style.display = ''; + } + return area; + }; + Droppable.prototype.destroy = function () { + _event_handler__WEBPACK_IMPORTED_MODULE_4__["EventHandler"].remove(this.element, _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isSafari() ? 'touchend' : _browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].touchEndEvent, this.intDrop); + _super.prototype.destroy.call(this); + }; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])() + ], Droppable.prototype, "accept", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Property"])('default') + ], Droppable.prototype, "scope", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Droppable.prototype, "drop", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Droppable.prototype, "over", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Droppable.prototype, "out", void 0); + Droppable = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_3__["NotifyPropertyChanges"] + ], Droppable); + return Droppable; +}(_base__WEBPACK_IMPORTED_MODULE_0__["Base"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js ***! + \*****************************************************************/ +/*! exports provided: EventHandler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventHandler", function() { return EventHandler; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); + + +/** + * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element + * ```html + *
+ * + * ``` + */ +var EventHandler = /** @__PURE__ @class */ (function () { + function EventHandler() { + } + // to get the event data based on element + EventHandler.addOrGetEventData = function (element) { + if ('__eventList' in element) { + return element.__eventList.events; + } + else { + element.__eventList = {}; + return element.__eventList.events = []; + } + }; + /** + * Add an event to the specified DOM element. + * + * @param {any} element - Target HTML DOM element + * @param {string} eventName - A string that specifies the name of the event + * @param {Function} listener - Specifies the function to run when the event occurs + * @param {Object} bindTo - A object that binds 'this' variable in the event handler + * @param {number} intDebounce - Specifies at what interval given event listener should be triggered. + * @returns {Function} ? + */ + EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) { + var eventData = EventHandler.addOrGetEventData(element); + var debounceListener; + if (intDebounce) { + debounceListener = Object(_util__WEBPACK_IMPORTED_MODULE_0__["debounce"])(listener, intDebounce); + } + else { + debounceListener = listener; + } + if (bindTo) { + debounceListener = debounceListener.bind(bindTo); + } + var event = eventName.split(' '); + for (var i = 0; i < event.length; i++) { + eventData.push({ + name: event[parseInt(i.toString(), 10)], + listener: listener, + debounce: debounceListener + }); + if (_browser__WEBPACK_IMPORTED_MODULE_1__["Browser"].isIE) { + element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener); + } + else { + element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false }); + } + } + return debounceListener; + }; + /** + * Remove an event listener that has been attached before. + * + * @param {any} element - Specifies the target html element to remove the event + * @param {string} eventName - A string that specifies the name of the event to remove + * @param {Function} listener - Specifies the function to remove + * @returns {void} ? + */ + EventHandler.remove = function (element, eventName, listener) { + var eventData = EventHandler.addOrGetEventData(element); + var event = eventName.split(' '); + var _loop_1 = function (j) { + var index = -1; + var debounceListener; + if (eventData && eventData.length !== 0) { + eventData.some(function (x, i) { + return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ? + (index = i, debounceListener = x.debounce, true) : false; + }); + } + if (index !== -1) { + eventData.splice(index, 1); + } + if (debounceListener) { + element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener); + } + }; + for (var j = 0; j < event.length; j++) { + _loop_1(j); + } + }; + /** + * Clear all the event listeners that has been previously attached to the element. + * + * @param {any} element - Specifies the target html element to clear the events + * @returns {void} ? + */ + EventHandler.clearEvents = function (element) { + var eventData; + var copyData; + // eslint-disable-next-line + eventData = EventHandler.addOrGetEventData(element); + // eslint-disable-next-line + copyData = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])([], copyData, eventData); + for (var i = 0; i < copyData.length; i++) { + element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce); + eventData.shift(); + } + }; + /** + * Trigger particular event of the element. + * + * @param {any} element - Specifies the target html element to trigger the events + * @param {string} eventName - Specifies the event to trigger for the specified element. + * Can be a custom event, or any of the standard events. + * @param {any} eventProp - Additional parameters to pass on to the event properties + * @returns {void} ? + */ + EventHandler.trigger = function (element, eventName, eventProp) { + var eventData = EventHandler.addOrGetEventData(element); + for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) { + var event_1 = eventData_1[_i]; + if (event_1.name === eventName) { + event_1.debounce.call(this, eventProp); + } + } + }; + return EventHandler; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/fetch.js": +/*!*********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/fetch.js ***! + \*********************************************************/ +/*! exports provided: Fetch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fetch", function() { return Fetch; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + +/** + * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server. + * ```typescript + * var fetchApi = new Fetch('index.html', 'GET'); + * fetchApi.send() + * .then((value) => { + * console.log(value); + * }).catch((error) => { + * console.log(error); + * }); + * ``` + */ +var Fetch = /** @__PURE__ @class */ (function () { + /** + * Constructor for Fetch class. + * + * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent. + * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc. + * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource. + */ + function Fetch(options, type, contentType) { + /** + * Specifies which request method is to be used, such as GET, POST, etc. + * + * @default GET + */ + this.type = 'GET'; + /** + * A boolean value indicating whether to reject the promise or not. + * + * @private + * @default true + */ + this.emitError = true; + if (typeof options === 'string') { + this.url = options; + this.type = !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(type) ? type.toUpperCase() : this.type; + this.contentType = contentType; + } + else if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isObject"])(options) && Object.keys(options).length > 0) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(this, options); + } + this.contentType = !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentType) ? this.contentType : 'application/json; charset=utf-8'; + } + /** + * Send the request to server. + * + * @param {string|Object} data - Specifies the data that needs to be added to the request. + * @returns {Promise} - Returns the response to a request. + */ + Fetch.prototype.send = function (data) { + var _this = this; + var contentTypes = { + 'application/json': 'json', + 'multipart/form-data': 'formData', + 'application/octet-stream': 'blob', + 'application/x-www-form-urlencoded': 'formData' + }; + try { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.fetchRequest) && this.type === 'GET') { + this.fetchRequest = new Request(this.url, { method: this.type }); + } + else if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.fetchRequest)) { + this.data = !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) ? data : this.data; + this.fetchRequest = new Request(this.url, { + method: this.type, + headers: { 'Content-Type': this.contentType }, + body: this.data + }); + } + var eventArgs = { cancel: false, fetchRequest: this.fetchRequest }; + this.triggerEvent(this['beforeSend'], eventArgs); + if (eventArgs.cancel) { + return null; + } + this.fetchResponse = fetch(this.fetchRequest); + return this.fetchResponse.then(function (response) { + _this.triggerEvent(_this['onLoad'], response); + if (!response.ok) { + throw new Error(response.statusText); + } + var responseType = 'text'; + for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) { + var key = _a[_i]; + if (response.headers.get('Content-Type').indexOf(key) !== -1) { + responseType = contentTypes[key]; + } + } + return response[responseType](); + // eslint-disable-next-line + }).then(function (data) { + _this.triggerEvent(_this['onSuccess'], data, _this); + return data; + // eslint-disable-next-line + }).catch(function (error) { + var returnVal = {}; + if (_this.emitError) { + _this.triggerEvent(_this['onFailure'], error); + returnVal = Promise.reject(error); + } + return returnVal; + }); + } + catch (error) { + return error; + } + }; + Fetch.prototype.triggerEvent = function (callback, data, instance) { + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(callback) && typeof callback === 'function') { + callback(data, instance); + } + }; + return Fetch; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/hijri-parser.js": +/*!****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/hijri-parser.js ***! + \****************************************************************/ +/*! exports provided: HijriParser */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HijriParser", function() { return HijriParser; }); +/*** + * Hijri parser + */ +// eslint-disable-next-line +var HijriParser; +(function (HijriParser) { + var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, + 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, + 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, + 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, + 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116, + 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648, + 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180, + 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711, + 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, + 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, + 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, + 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, + 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, + 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, + 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433, + 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963, + 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495, + 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027, + 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, + 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, + 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, + 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, + 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, + 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, + 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748, + 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279, + 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810, + 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342, + 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, + 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, + 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, + 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, + 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, + 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, + 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063, + 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594, + 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125, + 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657, + 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, + 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, + 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, + 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, + 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, + 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, + 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379, + 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910, + 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441, + 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973, + 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, + 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, + 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, + 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, + 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, + 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, + 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694, + 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226, + 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757, + 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288, + 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, + 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, + 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, + 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, + 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, + 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, + 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009, + 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541, + 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073, + 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603, + 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, + 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, + 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, + 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, + 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, + 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, + 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325, + 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857, + 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388, + 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919, + 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, + 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, + 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, + 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, + 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, + 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, + 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640, + 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172, + 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704, + 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235, + 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, + 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, + 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, + 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, + 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, + 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, + 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956, + 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487, + 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990 + ]; + /** + * + * @param {Date} gDate ? + * @returns {Object} ? + */ + function getHijriDate(gDate) { + var day = gDate.getDate(); + var month = gDate.getMonth(); + var year = gDate.getFullYear(); + var tMonth = month + 1; + var tYear = year; + if (tMonth < 3) { + tYear -= 1; + tMonth += 12; + } + var yPrefix = Math.floor(tYear / 100.); + var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2; + var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524; + yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25); + julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1; + var b = julianNumber + julilanOffset + 1524; + var c = Math.floor((b - 122.1) / 365.25); + var d = Math.floor(365.25 * c); + var tempMonth = Math.floor((b - d) / 30.6001); + day = (b - d) - Math.floor(30.6001 * tempMonth); + month = Math.floor((b - d) / 20.6001); + if (month > 13) { + c += 1; + month -= 12; + } + month -= 1; + year = c - 4716; + var modifiedJulianDate = julianNumber - 2400000; + // date calculation for year after 2077 + var iyear = 10631. / 30.; + var z = julianNumber - 1948084; + var cyc = Math.floor(z / 10631.); + z = z - 10631 * cyc; + var j = Math.floor((z - 0.1335) / iyear); + var iy = 30 * cyc + j; + z = z - Math.floor(j * iyear + 0.1335); + var im = Math.floor((z + 28.5001) / 29.5); + /* istanbul ignore next */ + if (im === 13) { + im = 12; + } + var tempDay = z - Math.floor(29.5001 * im - 29); + var i = 0; + for (; i < dateCorrection.length; i++) { + if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) { + break; + } + } + var iln = i + 16260; + var ii = Math.floor((iln - 1) / 12); + var hYear = ii + 1; + var hmonth = iln - 12 * ii; + var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1; + if ((hDate + '').length > 2) { + hDate = tempDay; + hmonth = im; + hYear = iy; + } + return { year: hYear, month: hmonth, date: hDate }; + } + HijriParser.getHijriDate = getHijriDate; + /** + * + * @param {number} year ? + * @param {number} month ? + * @param {number} day ? + * @returns {Date} ? + */ + function toGregorian(year, month, day) { + var iy = year; + var im = month; + var id = day; + var ii = iy - 1; + var iln = (ii * 12) + 1 + (im - 1); + var i = iln - 16260; + var mcjdn = id + dateCorrection[i - 1] - 1; + var julianDate = mcjdn + 2400000; + var z = Math.floor(julianDate + 0.5); + var a = Math.floor((z - 1867216.25) / 36524.25); + a = z + 1 + a - Math.floor(a / 4); + var b = a + 1524; + var c = Math.floor((b - 122.1) / 365.25); + var d = Math.floor(365.25 * c); + var e = Math.floor((b - d) / 30.6001); + var gDay = b - d - Math.floor(e * 30.6001); + var gMonth = e - (e > 13.5 ? 13 : 1); + var gYear = c - (gMonth > 2.5 ? 4716 : 4715); + /* istanbul ignore next */ + if (gYear <= 0) { + gMonth--; + } // No year zero + return new Date(gYear + '/' + (gMonth) + '/' + gDay); + } + HijriParser.toGregorian = toGregorian; +})(HijriParser || (HijriParser = {})); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/index.js": +/*!*********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/index.js ***! + \*********************************************************/ +/*! exports provided: blazorCultureFormats, IntlBase, Ajax, Fetch, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, Base, getComponent, removeChildInstance, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, HijriParser, blazorTemplates, getRandomId, compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, initializeCSPTemplate, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper, componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _intl_intl_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intl/intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blazorCultureFormats", function() { return _intl_intl_base__WEBPACK_IMPORTED_MODULE_0__["blazorCultureFormats"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IntlBase", function() { return _intl_intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"]; }); + +/* harmony import */ var _ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ajax */ "./ej2-resources/22.1.37/scripts/ej2-base/ajax.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Ajax", function() { return _ajax__WEBPACK_IMPORTED_MODULE_1__["Ajax"]; }); + +/* harmony import */ var _fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fetch */ "./ej2-resources/22.1.37/scripts/ej2-base/fetch.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fetch", function() { return _fetch__WEBPACK_IMPORTED_MODULE_2__["Fetch"]; }); + +/* harmony import */ var _animation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./animation */ "./ej2-resources/22.1.37/scripts/ej2-base/animation.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Animation", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["Animation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rippleEffect", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["rippleEffect"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isRippleEnabled", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["isRippleEnabled"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableRipple", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["enableRipple"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "animationMode", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["animationMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setGlobalAnimation", function() { return _animation__WEBPACK_IMPORTED_MODULE_3__["setGlobalAnimation"]; }); + +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Base", function() { return _base__WEBPACK_IMPORTED_MODULE_4__["Base"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getComponent", function() { return _base__WEBPACK_IMPORTED_MODULE_4__["getComponent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeChildInstance", function() { return _base__WEBPACK_IMPORTED_MODULE_4__["removeChildInstance"]; }); + +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Browser", function() { return _browser__WEBPACK_IMPORTED_MODULE_5__["Browser"]; }); + +/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./component */ "./ej2-resources/22.1.37/scripts/ej2-base/component.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "versionBasedStatePersistence", function() { return _component__WEBPACK_IMPORTED_MODULE_6__["versionBasedStatePersistence"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableVersionBasedPersistence", function() { return _component__WEBPACK_IMPORTED_MODULE_6__["enableVersionBasedPersistence"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _component__WEBPACK_IMPORTED_MODULE_6__["Component"]; }); + +/* harmony import */ var _child_property__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./child-property */ "./ej2-resources/22.1.37/scripts/ej2-base/child-property.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChildProperty", function() { return _child_property__WEBPACK_IMPORTED_MODULE_7__["ChildProperty"]; }); + +/* harmony import */ var _draggable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./draggable */ "./ej2-resources/22.1.37/scripts/ej2-base/draggable.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Position", function() { return _draggable__WEBPACK_IMPORTED_MODULE_8__["Position"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Draggable", function() { return _draggable__WEBPACK_IMPORTED_MODULE_8__["Draggable"]; }); + +/* harmony import */ var _droppable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./droppable */ "./ej2-resources/22.1.37/scripts/ej2-base/droppable.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Droppable", function() { return _droppable__WEBPACK_IMPORTED_MODULE_9__["Droppable"]; }); + +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventHandler", function() { return _event_handler__WEBPACK_IMPORTED_MODULE_10__["EventHandler"]; }); + +/* harmony import */ var _internationalization__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internationalization */ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onIntlChange", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["onIntlChange"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rightToLeft", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["rightToLeft"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cldrData", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["cldrData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultCulture", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["defaultCulture"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultCurrencyCode", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["defaultCurrencyCode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Internationalization", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["Internationalization"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setCulture", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["setCulture"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setCurrencyCode", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["setCurrencyCode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "loadCldr", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["loadCldr"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableRtl", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["enableRtl"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNumericObject", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["getNumericObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNumberDependable", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["getNumberDependable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultDateObject", function() { return _internationalization__WEBPACK_IMPORTED_MODULE_11__["getDefaultDateObject"]; }); + +/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./keyboard */ "./ej2-resources/22.1.37/scripts/ej2-base/keyboard.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyboardEvents", function() { return _keyboard__WEBPACK_IMPORTED_MODULE_12__["KeyboardEvents"]; }); + +/* harmony import */ var _l10n__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./l10n */ "./ej2-resources/22.1.37/scripts/ej2-base/l10n.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "L10n", function() { return _l10n__WEBPACK_IMPORTED_MODULE_13__["L10n"]; }); + +/* harmony import */ var _module_loader__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./module-loader */ "./ej2-resources/22.1.37/scripts/ej2-base/module-loader.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleLoader", function() { return _module_loader__WEBPACK_IMPORTED_MODULE_14__["ModuleLoader"]; }); + +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Property", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["Property"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Complex", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["Complex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComplexFactory", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["ComplexFactory"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Collection", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["Collection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CollectionFactory", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["CollectionFactory"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["Event"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotifyPropertyChanges", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["NotifyPropertyChanges"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CreateBuilder", function() { return _notify_property_change__WEBPACK_IMPORTED_MODULE_15__["CreateBuilder"]; }); + +/* harmony import */ var _touch__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./touch */ "./ej2-resources/22.1.37/scripts/ej2-base/touch.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwipeSettings", function() { return _touch__WEBPACK_IMPORTED_MODULE_16__["SwipeSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Touch", function() { return _touch__WEBPACK_IMPORTED_MODULE_16__["Touch"]; }); + +/* harmony import */ var _hijri_parser__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./hijri-parser */ "./ej2-resources/22.1.37/scripts/ej2-base/hijri-parser.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HijriParser", function() { return _hijri_parser__WEBPACK_IMPORTED_MODULE_17__["HijriParser"]; }); + +/* harmony import */ var _template_engine__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./template-engine */ "./ej2-resources/22.1.37/scripts/ej2-base/template-engine.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "blazorTemplates", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["blazorTemplates"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRandomId", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["getRandomId"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compile", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["compile"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateBlazorTemplate", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["updateBlazorTemplate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resetBlazorTemplate", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["resetBlazorTemplate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setTemplateEngine", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["setTemplateEngine"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTemplateEngine", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["getTemplateEngine"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initializeCSPTemplate", function() { return _template_engine__WEBPACK_IMPORTED_MODULE_18__["initializeCSPTemplate"]; }); + +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "disableBlazorMode", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["disableBlazorMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createInstance", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["createInstance"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setImmediate", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["setImmediate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getValue", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["getValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setValue", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["setValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deleteObject", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["deleteObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "containerObject", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["containerObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["isObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getEnumValue", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["getEnumValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["merge"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["extend"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isNullOrUndefined", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["isNullOrUndefined"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isUndefined", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["isUndefined"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUniqueID", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["getUniqueID"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["debounce"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queryParams", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["queryParams"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObjectArray", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["isObjectArray"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compareElementParent", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["compareElementParent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["throwError"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "print", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["print"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatUnit", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["formatUnit"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enableBlazorMode", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["enableBlazorMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isBlazor", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["isBlazor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["getElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInstance", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["getInstance"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addInstance", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["addInstance"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "uniqueID", function() { return _util__WEBPACK_IMPORTED_MODULE_19__["uniqueID"]; }); + +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["createElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["addClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeClass", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["removeClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["isVisible"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "prepend", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["prepend"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "append", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["append"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "detach", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["detach"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["remove"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "attributes", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["attributes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "select", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["select"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectAll", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["selectAll"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "closest", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["closest"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "siblings", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["siblings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAttributeOrDefault", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["getAttributeOrDefault"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setStyleAttribute", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["setStyleAttribute"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classList", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["classList"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "matches", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["matches"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "includeInnerHTML", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["includeInnerHTML"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "containsClass", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["containsClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneNode", function() { return _dom__WEBPACK_IMPORTED_MODULE_20__["cloneNode"]; }); + +/* harmony import */ var _observer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./observer */ "./ej2-resources/22.1.37/scripts/ej2-base/observer.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observer", function() { return _observer__WEBPACK_IMPORTED_MODULE_21__["Observer"]; }); + +/* harmony import */ var _sanitize_helper__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./sanitize-helper */ "./ej2-resources/22.1.37/scripts/ej2-base/sanitize-helper.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SanitizeHtmlHelper", function() { return _sanitize_helper__WEBPACK_IMPORTED_MODULE_22__["SanitizeHtmlHelper"]; }); + +/* harmony import */ var _validate_lic__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./validate-lic */ "./ej2-resources/22.1.37/scripts/ej2-base/validate-lic.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "componentList", function() { return _validate_lic__WEBPACK_IMPORTED_MODULE_23__["componentList"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "registerLicense", function() { return _validate_lic__WEBPACK_IMPORTED_MODULE_23__["registerLicense"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "validateLicense", function() { return _validate_lic__WEBPACK_IMPORTED_MODULE_23__["validateLicense"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVersion", function() { return _validate_lic__WEBPACK_IMPORTED_MODULE_23__["getVersion"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createLicenseOverlay", function() { return _validate_lic__WEBPACK_IMPORTED_MODULE_23__["createLicenseOverlay"]; }); + +/** + * Base modules + */ + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js ***! + \************************************************************************/ +/*! exports provided: onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onIntlChange", function() { return onIntlChange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rightToLeft", function() { return rightToLeft; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cldrData", function() { return cldrData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultCulture", function() { return defaultCulture; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultCurrencyCode", function() { return defaultCurrencyCode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Internationalization", function() { return Internationalization; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCulture", function() { return setCulture; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCurrencyCode", function() { return setCurrencyCode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadCldr", function() { return loadCldr; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableRtl", function() { return enableRtl; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNumericObject", function() { return getNumericObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNumberDependable", function() { return getNumberDependable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultDateObject", function() { return getDefaultDateObject; }); +/* harmony import */ var _intl_date_formatter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intl/date-formatter */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-formatter.js"); +/* harmony import */ var _intl_number_formatter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intl/number-formatter */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/number-formatter.js"); +/* harmony import */ var _intl_date_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intl/date-parser */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-parser.js"); +/* harmony import */ var _intl_number_parser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./intl/number-parser */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/number-parser.js"); +/* harmony import */ var _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./intl/intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _observer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./observer */ "./ej2-resources/22.1.37/scripts/ej2-base/observer.js"); + + + + + + + +/** + * Specifies the observer used for external change detection. + */ +var onIntlChange = new _observer__WEBPACK_IMPORTED_MODULE_6__["Observer"](); +/** + * Specifies the default rtl status for EJ2 components. + */ +var rightToLeft = false; +/** + * Specifies the CLDR data loaded for internationalization functionalities. + * + * @private + */ +var cldrData = {}; +/** + * Specifies the default culture value to be considered. + * + * @private + */ +var defaultCulture = 'en-US'; +/** + * Specifies default currency code to be considered + * + * @private + */ +var defaultCurrencyCode = 'USD'; +var mapper = ['numericObject', 'dateObject']; +/** + * Internationalization class provides support to parse and format the number and date object to the desired format. + * ```typescript + * // To set the culture globally + * setCulture('en-GB'); + * + * // To set currency code globally + * setCurrencyCode('EUR'); + * + * //Load cldr data + * loadCldr(gregorainData); + * loadCldr(timeZoneData); + * loadCldr(numbersData); + * loadCldr(numberSystemData); + * + * // To use formatter in component side + * let Intl:Internationalization = new Internationalization(); + * + * // Date formatting + * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'}); + * dateFormatter(new Date('11/2/2016')); + * dateFormatter(new Date('25/2/2030')); + * Intl.formatDate(new Date(),{skeleton:'E'}); + * + * //Number formatting + * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'}) + * numberFormatter(24563334); + * Intl.formatNumber(123123,{skeleton:'p2'}); + * + * // Date parser + * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'}); + * dateParser('10:30 PM'); + * Intl.parseDate('10',{skeleton:'H'}); + * ``` + */ +var Internationalization = /** @__PURE__ @class */ (function () { + function Internationalization(cultureName) { + if (cultureName) { + this.culture = cultureName; + } + } + /** + * Returns the format function for given options. + * + * @param {DateFormatOptions} options - Specifies the format options in which the format function will return. + * @returns {Function} ? + */ + Internationalization.prototype.getDateFormat = function (options) { + return _intl_date_formatter__WEBPACK_IMPORTED_MODULE_0__["DateFormat"].dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData); + }; + /** + * Returns the format function for given options. + * + * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return. + * @returns {Function} ? + */ + Internationalization.prototype.getNumberFormat = function (options) { + if (options && !options.currency) { + options.currency = defaultCurrencyCode; + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])() && options && !options.format) { + options.minimumFractionDigits = 0; + } + return _intl_number_formatter__WEBPACK_IMPORTED_MODULE_1__["NumberFormat"].numberFormatter(this.getCulture(), options || {}, cldrData); + }; + /** + * Returns the parser function for given options. + * + * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return. + * @returns {Function} ? + */ + Internationalization.prototype.getDateParser = function (options) { + return _intl_date_parser__WEBPACK_IMPORTED_MODULE_2__["DateParser"].dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData); + }; + /** + * Returns the parser function for given options. + * + * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return. + * @returns {Function} ? + */ + Internationalization.prototype.getNumberParser = function (options) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])() && options && !options.format) { + options.minimumFractionDigits = 0; + } + return _intl_number_parser__WEBPACK_IMPORTED_MODULE_3__["NumberParser"].numberParser(this.getCulture(), options || { format: 'N' }, cldrData); + }; + /** + * Returns the formatted string based on format options. + * + * @param {number} value - Specifies the number to format. + * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted. + * @returns {string} ? + */ + Internationalization.prototype.formatNumber = function (value, option) { + return this.getNumberFormat(option)(value); + }; + /** + * Returns the formatted date string based on format options. + * + * @param {Date} value - Specifies the number to format. + * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted. + * @returns {string} ? + */ + Internationalization.prototype.formatDate = function (value, option) { + return this.getDateFormat(option)(value); + }; + /** + * Returns the date object for given date string and options. + * + * @param {string} value - Specifies the string to parse. + * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed. + * @returns {Date} ? + */ + Internationalization.prototype.parseDate = function (value, option) { + return this.getDateParser(option)(value); + }; + /** + * Returns the number object from the given string value and options. + * + * @param {string} value - Specifies the string to parse. + * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed. + * @returns {number} ? + */ + Internationalization.prototype.parseNumber = function (value, option) { + return this.getNumberParser(option)(value); + }; + /** + * Returns Native Date Time Pattern + * + * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern. + * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern. + * @returns {string} ? + * @private + */ + Internationalization.prototype.getDatePattern = function (option, isExcelFormat) { + return _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat); + }; + /** + * Returns Native Number Pattern + * + * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern. + * @param {boolean} isExcel ? + * @returns {string} ? + * @private + */ + Internationalization.prototype.getNumberPattern = function (option, isExcel) { + return _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getActualNumberFormat(this.getCulture(), option, cldrData, isExcel); + }; + /** + * Returns the First Day of the Week + * + * @returns {number} ? + */ + Internationalization.prototype.getFirstDayOfWeek = function () { + return _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getWeekData(this.getCulture(), cldrData); + }; + /** + * Returns the culture + * + * @returns {string} ? + */ + Internationalization.prototype.getCulture = function () { + return this.culture || defaultCulture; + }; + return Internationalization; +}()); + +/** + * Set the default culture to all EJ2 components + * + * @param {string} cultureName - Specifies the culture name to be set as default culture. + * @returns {void} ? + */ +function setCulture(cultureName) { + defaultCulture = cultureName; + onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture }); +} +/** + * Set the default currency code to all EJ2 components + * + * @param {string} currencyCode Specifies the culture name to be set as default culture. + * @returns {void} ? + */ +function setCurrencyCode(currencyCode) { + defaultCurrencyCode = currencyCode; + onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode }); +} +/** + * Load the CLDR data into context + * + * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser. + * @returns {void} ? + */ +function loadCldr() { + var data = []; + for (var _i = 0; _i < arguments.length; _i++) { + data[_i] = arguments[_i]; + } + for (var _a = 0, data_1 = data; _a < data_1.length; _a++) { + var obj = data_1[_a]; + Object(_util__WEBPACK_IMPORTED_MODULE_5__["extend"])(cldrData, obj, {}, true); + } +} +/** + * To enable or disable RTL functionality for all components globally. + * + * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option. + * @returns {void} ? + */ +function enableRtl(status) { + if (status === void 0) { status = true; } + rightToLeft = status; + onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft }); +} +/** + * To get the numeric CLDR object for given culture + * + * @param {string} locale - Specifies the locale for which numericObject to be returned. + * @param {string} type ? + * @returns {Object} ? + * @ignore + * @private + */ +function getNumericObject(locale, type) { + // eslint-disable-next-line + var numObject = _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getDependables(cldrData, locale, '', true)[mapper[0]]; + // eslint-disable-next-line + var dateObject = _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getDependables(cldrData, locale, '')[mapper[1]]; + var numSystem = Object(_util__WEBPACK_IMPORTED_MODULE_5__["getValue"])('defaultNumberingSystem', numObject); + var symbPattern = Object(_util__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_5__["getValue"])('numberSymbols', numObject) : Object(_util__WEBPACK_IMPORTED_MODULE_5__["getValue"])('symbols-numberSystem-' + numSystem, numObject); + var pattern = _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getSymbolPattern(type || 'decimal', numSystem, numObject, false); + return Object(_util__WEBPACK_IMPORTED_MODULE_5__["extend"])(symbPattern, _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getFormatData(pattern, true, '', true), { 'dateSeparator': _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getDateSeparator(dateObject) }); +} +/** + * To get the numeric CLDR number base object for given culture + * + * @param {string} locale - Specifies the locale for which numericObject to be returned. + * @param {string} currency - Specifies the currency for which numericObject to be returned. + * @returns {string} ? + * @ignore + * @private + */ +function getNumberDependable(locale, currency) { + // eslint-disable-next-line + var numObject = _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getDependables(cldrData, locale, '', true); + // eslint-disable-next-line + return _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getCurrencySymbol(numObject.numericObject, currency); +} +/** + * To get the default date CLDR object. + * + * @param {string} mode ? + * @returns {Object} ? + * @ignore + * @private + */ +function getDefaultDateObject(mode) { + // eslint-disable-next-line + return _intl_intl_base__WEBPACK_IMPORTED_MODULE_4__["IntlBase"].getDependables(cldrData, '', mode, false)[mapper[1]]; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-formatter.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/date-formatter.js ***! + \***********************************************************************/ +/*! exports provided: basicPatterns, datePartMatcher, DateFormat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "basicPatterns", function() { return basicPatterns; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "datePartMatcher", function() { return datePartMatcher; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFormat", function() { return DateFormat; }); +/* harmony import */ var _parser_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parser-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js"); +/* harmony import */ var _intl_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _hijri_parser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../hijri-parser */ "./ej2-resources/22.1.37/scripts/ej2-base/hijri-parser.js"); + + + + + +var abbreviateRegexGlobal = /\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi; +var standalone = 'stand-alone'; +var weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; +var basicPatterns = ['short', 'medium', 'long', 'full']; +var timeSetter = { + m: 'getMinutes', + h: 'getHours', + H: 'getHours', + s: 'getSeconds', + d: 'getDate', + f: 'getMilliseconds' +}; +var datePartMatcher = { + 'M': 'month', + 'd': 'day', + 'E': 'weekday', + 'c': 'weekday', + 'y': 'year', + 'm': 'minute', + 'h': 'hour', + 'H': 'hour', + 's': 'second', + 'L': 'month', + 'a': 'designator', + 'z': 'timeZone', + 'Z': 'timeZone', + 'G': 'era', + 'f': 'milliseconds' +}; +var timeSeparator = 'timeSeparator'; +/* tslint:disable no-any */ +/** + * Date Format is a framework provides support for date formatting. + * + * @private + */ +var DateFormat = /** @__PURE__ @class */ (function () { + function DateFormat() { + } + /** + * Returns the formatter function for given skeleton. + * + * @param {string} culture - Specifies the culture name to be which formatting. + * @param {DateFormatOptions} option - Specific the format in which date will format. + * @param {Object} cldr - Specifies the global cldr data collection. + * @returns {Function} ? + */ + DateFormat.dateFormat = function (culture, option, cldr) { + var _this = this; + var dependable = _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].getDependables(cldr, culture, option.calendar); + var numObject = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('parserObject.numbers', dependable); + var dateObject = dependable.dateObject; + var formatOptions = { isIslamic: _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].islamicRegex.test(option.calendar) }; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() && option.isServerRendered) { + option = _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].compareBlazorDateFormats(option, culture); + } + var resPattern = option.format || + _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? culture : ''); + formatOptions.dateSeperator = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dateSeperator', dateObject) : _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].getDateSeparator(dependable.dateObject); + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(resPattern)) { + Object(_util__WEBPACK_IMPORTED_MODULE_2__["throwError"])('Format options or type given must be invalid'); + } + else { + resPattern = _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].ConvertDateToWeekFormat(resPattern); + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()) { + resPattern = resPattern.replace(/tt/, 'a'); + } + formatOptions.pattern = resPattern; + formatOptions.numMapper = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? + Object(_util__WEBPACK_IMPORTED_MODULE_2__["extend"])({}, numObject) : _parser_base__WEBPACK_IMPORTED_MODULE_0__["ParserBase"].getNumberMapper(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_0__["ParserBase"].getNumberingSystem(cldr)); + var patternMatch = resPattern.match(abbreviateRegexGlobal) || []; + for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) { + var str = patternMatch_1[_i]; + var len = str.length; + var char = str[0]; + if (char === 'K') { + char = 'h'; + } + switch (char) { + case 'E': + case 'c': + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()) { + // eslint-disable-next-line + formatOptions.weekday = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('days.' + _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].monthIndex[len], dateObject); + } + else { + // eslint-disable-next-line + formatOptions.weekday = dependable.dateObject[_intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].days][standalone][_intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].monthIndex[len]]; + } + break; + case 'M': + case 'L': + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()) { + // eslint-disable-next-line + formatOptions.month = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('months.' + _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].monthIndex[len], dateObject); + } + else { + // eslint-disable-next-line + formatOptions.month = dependable.dateObject[_intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].month][standalone][_intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].monthIndex[len]]; + } + break; + case 'a': + formatOptions.designator = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? + Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dayPeriods', dateObject) : Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dayPeriods.format.wide', dateObject); + break; + case 'G': + // eslint-disable-next-line + var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow'; + formatOptions.era = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('eras', dateObject) : Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('eras.' + eText, dependable.dateObject); + break; + case 'z': + formatOptions.timeZone = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dates.timeZoneNames', dependable.parserObject); + break; + } + } + } + return function (value) { + if (isNaN(value.getDate())) { + return null; + } + return _this.intDateFormatter(value, formatOptions); + }; + }; + /** + * Returns formatted date string based on options passed. + * + * @param {Date} value ? + * @param {FormatOptions} options ? + * @returns {string} ? + */ + DateFormat.intDateFormatter = function (value, options) { + var pattern = options.pattern; + var ret = ''; + var matches = pattern.match(_intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].dateParseRegex); + var dObject = this.getCurrentDateValue(value, options.isIslamic); + for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) { + var match = matches_1[_i]; + var length_1 = match.length; + var char = match[0]; + if (char === 'K') { + char = 'h'; + } + var curval = void 0; + var curvalstr = ''; + var isNumber = void 0; + var processNumber = void 0; + var curstr = ''; + switch (char) { + case 'M': + case 'L': + curval = dObject.month; + if (length_1 > 2) { + // eslint-disable-next-line + ret += options.month[curval]; + } + else { + isNumber = true; + } + break; + case 'E': + case 'c': + // eslint-disable-next-line + ret += options.weekday[weekdayKey[value.getDay()]]; + break; + case 'H': + case 'h': + case 'm': + case 's': + case 'd': + case 'f': + isNumber = true; + if (char === 'd') { + curval = dObject.date; + } + else if (char === 'f') { + isNumber = false; + processNumber = true; + // eslint-disable-next-line + curvalstr = value[timeSetter[char]]().toString(); + curvalstr = curvalstr.substring(0, length_1); + var curlength = curvalstr.length; + if (length_1 !== curlength) { + if (length_1 > 3) { + continue; + } + for (var i = 0; i < length_1 - curlength; i++) { + curvalstr = '0' + curvalstr.toString(); + } + } + curstr += curvalstr; + } + else { + // eslint-disable-next-line + curval = value[timeSetter[char]](); + } + if (char === 'h') { + curval = curval % 12 || 12; + } + break; + case 'y': + processNumber = true; + curstr += dObject.year; + if (length_1 === 2) { + curstr = curstr.substr(curstr.length - 2); + } + break; + case 'a': + // eslint-disable-next-line + var desig = value.getHours() < 12 ? 'am' : 'pm'; + // eslint-disable-next-line + ret += options.designator[desig]; + break; + case 'G': + // eslint-disable-next-line + var dec = value.getFullYear() < 0 ? 0 : 1; + // eslint-disable-next-line + var retu = options.era[dec]; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isNullOrUndefined"])(retu)) { + // eslint-disable-next-line + retu = options.era[dec ? 0 : 1]; + } + ret += retu || ''; + break; + case '\'': + ret += (match === '\'\'') ? '\'' : match.replace(/'/g, ''); + break; + case 'z': + // eslint-disable-next-line + var timezone = value.getTimezoneOffset(); + // eslint-disable-next-line + var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat; + pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator); + if (timezone === 0) { + ret += options.timeZone.gmtZeroFormat; + } + else { + processNumber = true; + curstr = this.getTimeZoneValue(timezone, pattern_1); + } + curstr = options.timeZone.gmtFormat.replace(/\{0\}/, curstr); + break; + case ':': + // eslint-disable-next-line + ret += options.numMapper.numberSymbols[timeSeparator]; + break; + case '/': + ret += options.dateSeperator; + break; + case 'W': + isNumber = true; + curval = _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].getWeekOfYear(value); + break; + default: + ret += match; + } + if (isNumber) { + processNumber = true; + curstr = this.checkTwodigitNumber(curval, length_1); + } + if (processNumber) { + ret += _parser_base__WEBPACK_IMPORTED_MODULE_0__["ParserBase"].convertValueParts(curstr, _intl_base__WEBPACK_IMPORTED_MODULE_1__["IntlBase"].latnParseRegex, options.numMapper.mapper); + } + } + return ret; + }; + DateFormat.getCurrentDateValue = function (value, isIslamic) { + if (isIslamic) { + return _hijri_parser__WEBPACK_IMPORTED_MODULE_3__["HijriParser"].getHijriDate(value); + } + return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() }; + }; + /** + * Returns two digit numbers for given value and length + * + * @param {number} val ? + * @param {number} len ? + * @returns {string} ? + */ + DateFormat.checkTwodigitNumber = function (val, len) { + var ret = val + ''; + if (len === 2 && ret.length !== 2) { + return '0' + ret; + } + return ret; + }; + /** + * Returns the value of the Time Zone. + * + * @param {number} tVal ? + * @param {string} pattern ? + * @returns {string} ? + * @private + */ + DateFormat.getTimeZoneValue = function (tVal, pattern) { + var _this = this; + var splt = pattern.split(';'); + var curPattern = splt[tVal > 0 ? 1 : 0]; + var no = Math.abs(tVal); + return curPattern = curPattern.replace(/HH?|mm/g, function (str) { + var len = str.length; + var ishour = str.indexOf('H') !== -1; + return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len); + }); + }; + return DateFormat; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-parser.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/date-parser.js ***! + \********************************************************************/ +/*! exports provided: DateParser */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateParser", function() { return DateParser; }); +/* harmony import */ var _intl_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); +/* harmony import */ var _parser_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _date_formatter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date-formatter */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-formatter.js"); +/* harmony import */ var _hijri_parser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hijri-parser */ "./ej2-resources/22.1.37/scripts/ej2-base/hijri-parser.js"); + + + + + +var standalone = 'stand-alone'; +var latnRegex = /^[0-9]*$/; +var timeSetter = { + minute: 'setMinutes', + hour: 'setHours', + second: 'setSeconds', + day: 'setDate', + month: 'setMonth', + milliseconds: 'setMilliseconds' +}; +var month = 'months'; +/* tslint:disable no-any */ +/** + * Date Parser. + * + * @private + */ +var DateParser = /** @__PURE__ @class */ (function () { + function DateParser() { + } + /** + * Returns the parser function for given skeleton. + * + * @param {string} culture - Specifies the culture name to be which formatting. + * @param {DateFormatOptions} option - Specific the format in which string date will be parsed. + * @param {Object} cldr - Specifies the global cldr data collection. + * @returns {Function} ? + */ + DateParser.dateParser = function (culture, option, cldr) { + var _this = this; + var dependable = _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].getDependables(cldr, culture, option.calendar); + var numOptions = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getCurrentNumericOptions(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getNumberingSystem(cldr), false, Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()); + var parseOptions = {}; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() && option.isServerRendered) { + option = _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].compareBlazorDateFormats(option, culture); + } + var resPattern = option.format || + _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? culture : ''); + var regexString = ''; + var hourOnly; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(resPattern)) { + Object(_util__WEBPACK_IMPORTED_MODULE_2__["throwError"])('Format options or type given must be invalid'); + } + else { + resPattern = _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].ConvertDateToWeekFormat(resPattern); + parseOptions = { isIslamic: _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture }; + var patternMatch = resPattern.match(_intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].dateParseRegex) || []; + var length_1 = patternMatch.length; + var gmtCorrection = 0; + var zCorrectTemp = 0; + var isgmtTraversed = false; + var nRegx = numOptions.numericRegex; + // eslint-disable-next-line + var numMapper = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? dependable.parserObject.numbers : + _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getNumberMapper(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getNumberingSystem(cldr)); + for (var i = 0; i < length_1; i++) { + var str = patternMatch[parseInt(i.toString(), 10)]; + var len = str.length; + var char = (str[0] === 'K') ? 'h' : str[0]; + var isNumber = void 0; + var canUpdate = void 0; + // eslint-disable-next-line + var charKey = _date_formatter__WEBPACK_IMPORTED_MODULE_3__["datePartMatcher"][char]; + var optional = (len === 2) ? '' : '?'; + if (isgmtTraversed) { + gmtCorrection = zCorrectTemp; + isgmtTraversed = false; + } + switch (char) { + case 'E': + case 'c': + // eslint-disable-next-line + var weekData = void 0; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()) { + // eslint-disable-next-line + weekData = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('days.' + _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].monthIndex[len], dependable.dateObject); + } + else { + // eslint-disable-next-line + weekData = dependable.dateObject[_intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].days][standalone][_intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].monthIndex[len]]; + } + // eslint-disable-next-line + var weekObject = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].reverseObject(weekData); + // tslint:enable + regexString += '(' + Object.keys(weekObject).join('|') + ')'; + break; + case 'M': + case 'L': + case 'd': + case 'm': + case 's': + case 'h': + case 'H': + case 'f': + canUpdate = true; + if ((char === 'M' || char === 'L') && len > 2) { + var monthData = void 0; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])()) { + // eslint-disable-next-line + monthData = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('months.' + _intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].monthIndex[len], dependable.dateObject); + } + else { + // eslint-disable-next-line + monthData = dependable.dateObject[month][standalone][_intl_base__WEBPACK_IMPORTED_MODULE_0__["IntlBase"].monthIndex[len]]; + } + // eslint-disable-next-line + parseOptions[charKey] = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].reverseObject(monthData); + // eslint-disable-next-line + regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')'; + } + else if (char === 'f') { + if (len > 3) { + continue; + } + isNumber = true; + regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')'; + } + else { + isNumber = true; + regexString += '(' + nRegx + nRegx + optional + ')'; + } + if (char === 'h') { + parseOptions.hour12 = true; + } + break; + case 'W': + // eslint-disable-next-line + var opt = len === 1 ? '?' : ''; + regexString += '(' + nRegx + opt + nRegx + ')'; + break; + case 'y': + canUpdate = isNumber = true; + if (len === 2) { + regexString += '(' + nRegx + nRegx + ')'; + } + else { + regexString += '(' + nRegx + '{' + len + ',})'; + } + break; + case 'a': + canUpdate = true; + // eslint-disable-next-line + var periodValur = Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? + Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dayPeriods', dependable.dateObject) : + Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dayPeriods.format.wide', dependable.dateObject); + // eslint-disable-next-line + parseOptions[charKey] = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].reverseObject(periodValur); + // eslint-disable-next-line + regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')'; + break; + case 'G': + canUpdate = true; + // eslint-disable-next-line + var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow'; + // eslint-disable-next-line + parseOptions[charKey] = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].reverseObject(Object(_util__WEBPACK_IMPORTED_MODULE_2__["isBlazor"])() ? + Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('eras', dependable.dateObject) : Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('eras.' + eText, dependable.dateObject)); + // eslint-disable-next-line + regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)'; + break; + case 'z': + // eslint-disable-next-line + var tval = new Date().getTimezoneOffset(); + canUpdate = (tval !== 0); + // eslint-disable-next-line + parseOptions[charKey] = Object(_util__WEBPACK_IMPORTED_MODULE_2__["getValue"])('dates.timeZoneNames', dependable.parserObject); + // eslint-disable-next-line + var tzone = parseOptions[charKey]; + hourOnly = (len < 4); + // eslint-disable-next-line + var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat; + hpattern = hpattern.replace(/:/g, numMapper.timeSeparator); + regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?'; + isgmtTraversed = true; + zCorrectTemp = hourOnly ? 6 : 12; + break; + case '\'': + // eslint-disable-next-line + var iString = str.replace(/'/g, ''); + regexString += '(' + iString + ')?'; + break; + default: + regexString += '([\\D])'; + break; + } + if (canUpdate) { + parseOptions.evalposition["" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly }; + } + if (i === length_1 - 1 && !Object(_util__WEBPACK_IMPORTED_MODULE_2__["isNullOrUndefined"])(regexString)) { + var regExp = RegExp; + parseOptions.parserRegex = new regExp('^' + regexString + '$', 'i'); + } + } + } + return function (value) { + var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions); + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isNullOrUndefined"])(parsedDateParts) || !Object.keys(parsedDateParts).length) { + return null; + } + if (parseOptions.isIslamic) { + var dobj = {}; + var tYear = parsedDateParts.year; + var tDate = parsedDateParts.day; + var tMonth = parsedDateParts.month; + var ystrig = tYear ? (tYear + '') : ''; + var is2DigitYear = (ystrig.length === 2); + if (!tYear || !tMonth || !tDate || is2DigitYear) { + dobj = _hijri_parser__WEBPACK_IMPORTED_MODULE_4__["HijriParser"].getHijriDate(new Date()); + } + if (is2DigitYear) { + tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10); + } + // tslint:disable-next-line + var dateObject = _hijri_parser__WEBPACK_IMPORTED_MODULE_4__["HijriParser"].toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date); + parsedDateParts.year = dateObject.getFullYear(); + parsedDateParts.month = dateObject.getMonth() + 1; + parsedDateParts.day = dateObject.getDate(); + } + return _this.getDateObject(parsedDateParts); + }; + }; + /* tslint:disable */ + /** + * Returns date object for provided date options + * + * @param {DateParts} options ? + * @param {Date} value ? + * @returns {Date} ? + */ + DateParser.getDateObject = function (options, value) { + var res = value || new Date(); + res.setMilliseconds(0); + var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day']; + var y = options.year; + var desig = options.designator; + var tzone = options.timeZone; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(y)) { + var len = (y + '').length; + if (len <= 2) { + var century = Math.floor(res.getFullYear() / 100) * 100; + y += century; + } + res.setFullYear(y); + } + for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) { + var key = tKeys_1[_i]; + // eslint-disable-next-line + var tValue = options[key]; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(tValue) && key === 'day') { + res.setDate(1); + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(tValue)) { + if (key === 'month') { + tValue -= 1; + if (tValue < 0 || tValue > 11) { + return new Date('invalid'); + } + var pDate = res.getDate(); + res.setDate(1); + // eslint-disable-next-line + res[timeSetter[key]](tValue); + var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate(); + res.setDate(pDate < lDate ? pDate : lDate); + } + else { + if (key === 'day') { + var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate(); + if ((tValue < 1 || tValue > lastDay)) { + return null; + } + } + // eslint-disable-next-line + res[timeSetter[key]](tValue); + } + } + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(desig)) { + var hour = res.getHours(); + if (desig === 'pm') { + res.setHours(hour + (hour === 12 ? 0 : 12)); + } + else if (hour === 12) { + res.setHours(0); + } + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(tzone)) { + var tzValue = tzone - res.getTimezoneOffset(); + if (tzValue !== 0) { + res.setMinutes(res.getMinutes() + tzValue); + } + } + return res; + }; + /** + * Returns date parsing options for provided value along with parse and numeric options + * + * @param {string} value ? + * @param {ParseOptions} parseOptions ? + * @param {NumericOptions} num ? + * @returns {DateParts} ? + */ + DateParser.internalDateParse = function (value, parseOptions, num) { + var matches = value.match(parseOptions.parserRegex); + var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 }; + if (Object(_util__WEBPACK_IMPORTED_MODULE_2__["isNullOrUndefined"])(matches)) { + return null; + } + else { + var props = Object.keys(parseOptions.evalposition); + for (var _i = 0, props_1 = props; _i < props_1.length; _i++) { + var prop = props_1[_i]; + var curObject = parseOptions.evalposition["" + prop]; + var matchString = matches[curObject.pos]; + if (curObject.isNumber) { + // eslint-disable-next-line + retOptions[prop] = this.internalNumberParser(matchString, num); + } + else { + if (prop === 'timeZone' && !Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(matchString)) { + var pos = curObject.pos; + var val = void 0; + var tmatch = matches[pos + 1]; + var flag = !Object(_util__WEBPACK_IMPORTED_MODULE_2__["isUndefined"])(tmatch); + if (curObject.hourOnly) { + val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60; + } + else { + val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60; + val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num); + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_2__["isNullOrUndefined"])(val)) { + retOptions["" + prop] = val; + } + } + else { + // eslint-disable-next-line + matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US')) + ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString; + // eslint-disable-next-line + retOptions[prop] = parseOptions[prop][matchString]; + } + } + } + if (parseOptions.hour12) { + retOptions.hour12 = true; + } + } + return retOptions; + }; + /** + * Returns parsed number for provided Numeric string and Numeric Options + * + * @param {string} value ? + * @param {NumericOptions} option ? + * @returns {number} ? + */ + DateParser.internalNumberParser = function (value, option) { + value = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].convertValueParts(value, option.numberParseRegex, option.numericPair); + if (latnRegex.test(value)) { + return +value; + } + return null; + }; + /** + * Returns parsed time zone RegExp for provided hour format and time zone + * + * @param {string} hourFormat ? + * @param {base.TimeZoneOptions} tZone ? + * @param {string} nRegex ? + * @returns {string} ? + */ + DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) { + var pattern = tZone.gmtFormat; + var ret; + var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')'; + var splitStr; + ret = hourFormat.replace('+', '\\+'); + if (hourFormat.indexOf('HH') !== -1) { + ret = ret.replace(/HH|mm/g, '(' + cRegex + ')'); + } + else { + ret = ret.replace(/H|m/g, '(' + cRegex + '?)'); + } + // eslint-disable-next-line + splitStr = (ret.split(';').map(function (str) { + return pattern.replace('{0}', str); + })); + ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat; + return ret; + }; + /** + * Returns zone based value. + * + * @param {boolean} flag ? + * @param {string} val1 ? + * @param {string} val2 ? + * @param {NumericOptions} num ? + * @returns {number} ? + */ + DateParser.getZoneValue = function (flag, val1, val2, num) { + var ival = flag ? val1 : val2; + if (!ival) { + return 0; + } + var value = this.internalNumberParser(ival, num); + if (flag) { + return -value; + } + return value; + }; + return DateParser; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js ***! + \******************************************************************/ +/*! exports provided: blazorCultureFormats, IntlBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blazorCultureFormats", function() { return blazorCultureFormats; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IntlBase", function() { return IntlBase; }); +/* harmony import */ var _internationalization__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internationalization */ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _parser_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parser-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js"); +/* harmony import */ var _date_formatter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./date-formatter */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/date-formatter.js"); +/* harmony import */ var _number_formatter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./number-formatter */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/number-formatter.js"); + + + + + + +var regExp = RegExp; +var blazorCultureFormats = { + 'en-US': { + 'd': 'M/d/y', + 'D': 'EEEE, MMMM d, y', + 'f': 'EEEE, MMMM d, y h:mm a', + 'F': 'EEEE, MMMM d, y h:mm:s a', + 'g': 'M/d/y h:mm a', + 'G': 'M/d/yyyy h:mm:ss tt', + 'm': 'MMMM d', + 'M': 'MMMM d', + 'r': 'ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'', + 'R': 'ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'', + 's': 'yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss', + 't': 'h:mm tt', + 'T': 'h:m:s tt', + 'u': 'yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'', + 'U': 'dddd, MMMM d, yyyy h:mm:ss tt', + 'y': 'MMMM yyyy', + 'Y': 'MMMM yyyy' + } +}; +/** + * Date base common constants and function for date parser and formatter. + */ +// eslint-disable-next-line +var IntlBase; +(function (IntlBase) { + /* eslint-disable */ + // tslint:disable-next-line:max-line-length. + IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\*.)?((([#,]*[0,]*0+)(\.0*[0-9]*#*)?)|([#,]*@+#*))(E\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/; + IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\*.)?((([0#,]*[0,]*[0#]*[0#\ ]*)(\.[0#]*)?)|([#,]*@+#*))(E\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/; + IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g; + var fractionRegex = /[0-9]/g; + IntlBase.defaultCurrency = '$'; + var mapper = ['infinity', 'nan', 'group', 'decimal']; + var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g; + var patternMatch = { + 'G': '', + 'M': 'm', + 'L': 'm', + 'H': 'h', + 'c': 'd', + '\'': '"', + ' a': ' AM/PM', + 'yy': 'yy', + 'y': 'yyyy', + 'EEEE': 'dddd', + 'E': 'ddd' + }; + IntlBase.dateConverterMapper = /dddd|ddd/ig; + var defaultFirstDay = 'sun'; + IntlBase.islamicRegex = /^islamic/; + var firstDayMapper = { + 'sun': 0, + 'mon': 1, + 'tue': 2, + 'wed': 3, + 'thu': 4, + 'fri': 5, + 'sat': 6 + }; + IntlBase.formatRegex = new regExp("(^[ncpae]{1})([0-1]?[0-9]|20)?$", "i"); + IntlBase.currencyFormatRegex = new regExp("(^[ca]{1})([0-1]?[0-9]|20)?$", "i"); + IntlBase.curWithoutNumberRegex = /(c|a)$/ig; + var typeMapper = { + '$': 'isCurrency', + '%': 'isPercent', + '-': 'isNegative', + 0: 'nlead', + 1: 'nend' + }; + IntlBase.dateParseRegex = /([a-z])\1*|'([^']|'')+'|''|./gi; + IntlBase.basicPatterns = ['short', 'medium', 'long', 'full']; + /* tslint:disable:quotemark */ + IntlBase.defaultObject = { + 'dates': { + 'calendars': { + 'gregorian': { + 'months': { + 'stand-alone': { + 'abbreviated': { + '1': 'Jan', + '2': 'Feb', + '3': 'Mar', + '4': 'Apr', + '5': 'May', + '6': 'Jun', + '7': 'Jul', + '8': 'Aug', + '9': 'Sep', + '10': 'Oct', + '11': 'Nov', + '12': 'Dec' + }, + 'narrow': { + '1': 'J', + '2': 'F', + '3': 'M', + '4': 'A', + '5': 'M', + '6': 'J', + '7': 'J', + '8': 'A', + '9': 'S', + '10': 'O', + '11': 'N', + '12': 'D' + }, + 'wide': { + '1': 'January', + '2': 'February', + '3': 'March', + '4': 'April', + '5': 'May', + '6': 'June', + '7': 'July', + '8': 'August', + '9': 'September', + '10': 'October', + '11': 'November', + '12': 'December' + } + } + }, + 'days': { + 'stand-alone': { + 'abbreviated': { + 'sun': 'Sun', + 'mon': 'Mon', + 'tue': 'Tue', + 'wed': 'Wed', + 'thu': 'Thu', + 'fri': 'Fri', + 'sat': 'Sat' + }, + 'narrow': { + 'sun': 'S', + 'mon': 'M', + 'tue': 'T', + 'wed': 'W', + 'thu': 'T', + 'fri': 'F', + 'sat': 'S' + }, + 'short': { + 'sun': 'Su', + 'mon': 'Mo', + 'tue': 'Tu', + 'wed': 'We', + 'thu': 'Th', + 'fri': 'Fr', + 'sat': 'Sa' + }, + 'wide': { + 'sun': 'Sunday', + 'mon': 'Monday', + 'tue': 'Tuesday', + 'wed': 'Wednesday', + 'thu': 'Thursday', + 'fri': 'Friday', + 'sat': 'Saturday' + } + } + }, + 'dayPeriods': { + 'format': { + 'wide': { + 'am': 'AM', + 'pm': 'PM' + } + } + }, + 'eras': { + 'eraNames': { + '0': 'Before Christ', + '0-alt-variant': 'Before Common Era', + '1': 'Anno Domini', + '1-alt-variant': 'Common Era' + }, + 'eraAbbr': { + '0': 'BC', + '0-alt-variant': 'BCE', + '1': 'AD', + '1-alt-variant': 'CE' + }, + 'eraNarrow': { + '0': 'B', + '0-alt-variant': 'BCE', + '1': 'A', + '1-alt-variant': 'CE' + } + }, + 'dateFormats': { + 'full': 'EEEE, MMMM d, y', + 'long': 'MMMM d, y', + 'medium': 'MMM d, y', + 'short': 'M/d/yy' + }, + 'timeFormats': { + 'full': 'h:mm:ss a zzzz', + 'long': 'h:mm:ss a z', + 'medium': 'h:mm:ss a', + 'short': 'h:mm a' + }, + 'dateTimeFormats': { + 'full': '{1} \'at\' {0}', + 'long': '{1} \'at\' {0}', + 'medium': '{1}, {0}', + 'short': '{1}, {0}', + 'availableFormats': { + 'd': 'd', + 'E': 'ccc', + 'Ed': 'd E', + 'Ehm': 'E h:mm a', + 'EHm': 'E HH:mm', + 'Ehms': 'E h:mm:ss a', + 'EHms': 'E HH:mm:ss', + 'Gy': 'y G', + 'GyMMM': 'MMM y G', + 'GyMMMd': 'MMM d, y G', + 'GyMMMEd': 'E, MMM d, y G', + 'h': 'h a', + 'H': 'HH', + 'hm': 'h:mm a', + 'Hm': 'HH:mm', + 'hms': 'h:mm:ss a', + 'Hms': 'HH:mm:ss', + 'hmsv': 'h:mm:ss a v', + 'Hmsv': 'HH:mm:ss v', + 'hmv': 'h:mm a v', + 'Hmv': 'HH:mm v', + 'M': 'L', + 'Md': 'M/d', + 'MEd': 'E, M/d', + 'MMM': 'LLL', + 'MMMd': 'MMM d', + 'MMMEd': 'E, MMM d', + 'MMMMd': 'MMMM d', + 'ms': 'mm:ss', + 'y': 'y', + 'yM': 'M/y', + 'yMd': 'M/d/y', + 'yMEd': 'E, M/d/y', + 'yMMM': 'MMM y', + 'yMMMd': 'MMM d, y', + 'yMMMEd': 'E, MMM d, y', + 'yMMMM': 'MMMM y' + } + } + }, + 'islamic': { + 'months': { + 'stand-alone': { + 'abbreviated': { + '1': 'Muh.', + '2': 'Saf.', + '3': 'Rab. I', + '4': 'Rab. II', + '5': 'Jum. I', + '6': 'Jum. II', + '7': 'Raj.', + '8': 'Sha.', + '9': 'Ram.', + '10': 'Shaw.', + '11': 'Dhuʻl-Q.', + '12': 'Dhuʻl-H.' + }, + 'narrow': { + '1': '1', + '2': '2', + '3': '3', + '4': '4', + '5': '5', + '6': '6', + '7': '7', + '8': '8', + '9': '9', + '10': '10', + '11': '11', + '12': '12' + }, + 'wide': { + '1': 'Muharram', + '2': 'Safar', + '3': 'Rabiʻ I', + '4': 'Rabiʻ II', + '5': 'Jumada I', + '6': 'Jumada II', + '7': 'Rajab', + '8': 'Shaʻban', + '9': 'Ramadan', + '10': 'Shawwal', + '11': 'Dhuʻl-Qiʻdah', + '12': 'Dhuʻl-Hijjah' + } + } + }, + 'days': { + 'stand-alone': { + 'abbreviated': { + 'sun': 'Sun', + 'mon': 'Mon', + 'tue': 'Tue', + 'wed': 'Wed', + 'thu': 'Thu', + 'fri': 'Fri', + 'sat': 'Sat' + }, + 'narrow': { + 'sun': 'S', + 'mon': 'M', + 'tue': 'T', + 'wed': 'W', + 'thu': 'T', + 'fri': 'F', + 'sat': 'S' + }, + 'short': { + 'sun': 'Su', + 'mon': 'Mo', + 'tue': 'Tu', + 'wed': 'We', + 'thu': 'Th', + 'fri': 'Fr', + 'sat': 'Sa' + }, + 'wide': { + 'sun': 'Sunday', + 'mon': 'Monday', + 'tue': 'Tuesday', + 'wed': 'Wednesday', + 'thu': 'Thursday', + 'fri': 'Friday', + 'sat': 'Saturday' + } + } + }, + 'dayPeriods': { + 'format': { + 'wide': { + 'am': 'AM', + 'pm': 'PM' + } + } + }, + 'eras': { + 'eraNames': { + '0': 'AH' + }, + 'eraAbbr': { + '0': 'AH' + }, + 'eraNarrow': { + '0': 'AH' + } + }, + 'dateFormats': { + 'full': 'EEEE, MMMM d, y G', + 'long': 'MMMM d, y G', + 'medium': 'MMM d, y G', + 'short': 'M/d/y GGGGG' + }, + 'timeFormats': { + 'full': 'h:mm:ss a zzzz', + 'long': 'h:mm:ss a z', + 'medium': 'h:mm:ss a', + 'short': 'h:mm a' + }, + 'dateTimeFormats': { + 'full': '{1} \'at\' {0}', + 'long': '{1} \'at\' {0}', + 'medium': '{1}, {0}', + 'short': '{1}, {0}', + 'availableFormats': { + 'd': 'd', + 'E': 'ccc', + 'Ed': 'd E', + 'Ehm': 'E h:mm a', + 'EHm': 'E HH:mm', + 'Ehms': 'E h:mm:ss a', + 'EHms': 'E HH:mm:ss', + 'Gy': 'y G', + 'GyMMM': 'MMM y G', + 'GyMMMd': 'MMM d, y G', + 'GyMMMEd': 'E, MMM d, y G', + 'h': 'h a', + 'H': 'HH', + 'hm': 'h:mm a', + 'Hm': 'HH:mm', + 'hms': 'h:mm:ss a', + 'Hms': 'HH:mm:ss', + 'M': 'L', + 'Md': 'M/d', + 'MEd': 'E, M/d', + 'MMM': 'LLL', + 'MMMd': 'MMM d', + 'MMMEd': 'E, MMM d', + 'MMMMd': 'MMMM d', + 'ms': 'mm:ss', + 'y': 'y G', + 'yyyy': 'y G', + 'yyyyM': 'M/y GGGGG', + 'yyyyMd': 'M/d/y GGGGG', + 'yyyyMEd': 'E, M/d/y GGGGG', + 'yyyyMMM': 'MMM y G', + 'yyyyMMMd': 'MMM d, y G', + 'yyyyMMMEd': 'E, MMM d, y G', + 'yyyyMMMM': 'MMMM y G', + 'yyyyQQQ': 'QQQ y G', + 'yyyyQQQQ': 'QQQQ y G' + } + } + } + }, + 'timeZoneNames': { + 'hourFormat': '+HH:mm;-HH:mm', + 'gmtFormat': 'GMT{0}', + 'gmtZeroFormat': 'GMT' + } + }, + 'numbers': { + 'currencies': { + 'USD': { + 'displayName': 'US Dollar', + 'symbol': '$', + 'symbol-alt-narrow': '$' + }, + 'EUR': { + 'displayName': 'Euro', + 'symbol': '€', + 'symbol-alt-narrow': '€' + }, + 'GBP': { + 'displayName': 'British Pound', + 'symbol-alt-narrow': '£' + } + }, + 'defaultNumberingSystem': 'latn', + 'minimumGroupingDigits': '1', + 'symbols-numberSystem-latn': { + 'decimal': '.', + 'group': ',', + 'list': ';', + 'percentSign': '%', + 'plusSign': '+', + 'minusSign': '-', + 'exponential': 'E', + 'superscriptingExponent': '×', + 'perMille': '‰', + 'infinity': '∞', + 'nan': 'NaN', + 'timeSeparator': ':' + }, + 'decimalFormats-numberSystem-latn': { + 'standard': '#,##0.###' + }, + 'percentFormats-numberSystem-latn': { + 'standard': '#,##0%' + }, + 'currencyFormats-numberSystem-latn': { + 'standard': '¤#,##0.00', + 'accounting': '¤#,##0.00;(¤#,##0.00)' + }, + 'scientificFormats-numberSystem-latn': { + 'standard': '#E0' + } + } + }; + IntlBase.blazorDefaultObject = { + 'numbers': { + 'mapper': { + '0': '0', + '1': '1', + '2': '2', + '3': '3', + '4': '4', + '5': '5', + '6': '6', + '7': '7', + '8': '8', + '9': '9' + }, + 'mapperDigits': '0123456789', + 'numberSymbols': { + 'decimal': '.', + 'group': ',', + 'plusSign': '+', + 'minusSign': '-', + 'percentSign': '%', + 'nan': 'NaN', + 'timeSeparator': ':', + 'infinity': '∞' + }, + 'timeSeparator': ':', + 'currencySymbol': '$', + 'currencypData': { + 'nlead': '$', + 'nend': '', + 'groupSeparator': ',', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + }, + 'percentpData': { + 'nlead': '', + 'nend': '%', + 'groupSeparator': ',', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + }, + 'percentnData': { + 'nlead': '-', + 'nend': '%', + 'groupSeparator': ',', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + }, + 'currencynData': { + 'nlead': '($', + 'nend': ')', + 'groupSeparator': ',', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + }, + 'decimalnData': { + 'nlead': '-', + 'nend': '', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + }, + 'decimalpData': { + 'nlead': '', + 'nend': '', + 'groupData': { + 'primary': 3 + }, + 'maximumFraction': 2, + 'minimumFraction': 2 + } + }, + 'dates': { + 'dayPeriods': { + 'am': 'AM', + 'pm': 'PM' + }, + 'dateSeperator': '/', + 'days': { + 'abbreviated': { + 'sun': 'Sun', + 'mon': 'Mon', + 'tue': 'Tue', + 'wed': 'Wed', + 'thu': 'Thu', + 'fri': 'Fri', + 'sat': 'Sat' + }, + 'short': { + 'sun': 'Su', + 'mon': 'Mo', + 'tue': 'Tu', + 'wed': 'We', + 'thu': 'Th', + 'fri': 'Fr', + 'sat': 'Sa' + }, + 'wide': { + 'sun': 'Sunday', + 'mon': 'Monday', + 'tue': 'Tuesday', + 'wed': 'Wednesday', + 'thu': 'Thursday', + 'fri': 'Friday', + 'sat': 'Saturday' + } + }, + 'months': { + 'abbreviated': { + '1': 'Jan', + '2': 'Feb', + '3': 'Mar', + '4': 'Apr', + '5': 'May', + '6': 'Jun', + '7': 'Jul', + '8': 'Aug', + '9': 'Sep', + '10': 'Oct', + '11': 'Nov', + '12': 'Dec' + }, + 'wide': { + '1': 'January', + '2': 'February', + '3': 'March', + '4': 'April', + '5': 'May', + '6': 'June', + '7': 'July', + '8': 'August', + '9': 'September', + '10': 'October', + '11': 'November', + '12': 'December' + } + }, + 'eras': { + '1': 'AD' + } + } + }; + /* tslint:enable:quotemark */ + IntlBase.monthIndex = { + 3: 'abbreviated', + 4: 'wide', + 5: 'narrow', + 1: 'abbreviated' + }; + /** + * + */ + IntlBase.month = 'months'; + IntlBase.days = 'days'; + /** + * Default numerber Object + */ + IntlBase.patternMatcher = { + C: 'currency', + P: 'percent', + N: 'decimal', + A: 'currency', + E: 'scientific' + }; + /** + * Returns the resultant pattern based on the skeleton, dateObject and the type provided + * + * @private + * @param {string} skeleton ? + * @param {Object} dateObject ? + * @param {string} type ? + * @param {boolean} isIslamic ? + * @param {string} blazorCulture ? + * @returns {string} ? + */ + function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) { + var resPattern; + var iType = type || 'date'; + if (blazorCulture) { + resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format || + compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format; + } + else { + if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) { + resPattern = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(iType + 'Formats.' + skeleton, dateObject); + if (iType === 'dateTime') { + var dPattern = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('dateFormats.' + skeleton, dateObject); + var tPattern = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('timeFormats.' + skeleton, dateObject); + resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern); + } + } + else { + resPattern = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('dateTimeFormats.availableFormats.' + skeleton, dateObject); + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isUndefined"])(resPattern) && skeleton === 'yMd') { + resPattern = 'M/d/y'; + } + } + return resPattern; + } + IntlBase.getResultantPattern = getResultantPattern; + /** + * Returns the dependable object for provided cldr data and culture + * + * @private + * @param {Object} cldr ? + * @param {string} culture ? + * @param {string} mode ? + * @param {boolean} isNumber ? + * @returns {any} ? + */ + function getDependables(cldr, culture, mode, isNumber) { + var ret = {}; + var calendartype = mode || 'gregorian'; + ret.parserObject = _parser_base__WEBPACK_IMPORTED_MODULE_2__["ParserBase"].getMainObject(cldr, culture) || (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject); + if (isNumber) { + ret.numericObject = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('numbers', ret.parserObject); + } + else { + var dateString = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? 'dates' : ('dates.calendars.' + calendartype); + ret.dateObject = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(dateString, ret.parserObject); + } + return ret; + } + IntlBase.getDependables = getDependables; + /** + * Returns the symbol pattern for provided parameters + * + * @private + * @param {string} type ? + * @param {string} numSystem ? + * @param {Object} obj ? + * @param {boolean} isAccount ? + * @returns {string} ? + */ + function getSymbolPattern(type, numSystem, obj, isAccount) { + return Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(type + 'Formats-numberSystem-' + + numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(type + 'Formats-numberSystem-' + + numSystem + '.standard', obj) : ''); + } + IntlBase.getSymbolPattern = getSymbolPattern; + /** + * + * @param {string} format ? + * @returns {string} ? + */ + function ConvertDateToWeekFormat(format) { + var convertMapper = format.match(IntlBase.dateConverterMapper); + if (convertMapper && Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])()) { + var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE'; + return format.replace(IntlBase.dateConverterMapper, tempString); + } + return format; + } + IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat; + /** + * + * @param {DateFormatOptions} formatOptions ? + * @param {string} culture ? + * @returns {DateFormatOptions} ? + */ + function compareBlazorDateFormats(formatOptions, culture) { + var format = formatOptions.format || formatOptions.skeleton; + var curFormatMapper = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])((culture || 'en-US') + '.' + format, blazorCultureFormats); + if (!curFormatMapper) { + curFormatMapper = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('en-US.' + format, blazorCultureFormats); + } + if (curFormatMapper) { + curFormatMapper = ConvertDateToWeekFormat(curFormatMapper); + formatOptions.format = curFormatMapper.replace(/tt/, 'a'); + } + return formatOptions; + } + IntlBase.compareBlazorDateFormats = compareBlazorDateFormats; + /** + * Returns proper numeric skeleton + * + * @private + * @param {string} skeleton ? + * @returns {any} ? + */ + function getProperNumericSkeleton(skeleton) { + var matches = skeleton.match(IntlBase.formatRegex); + var ret = {}; + var pattern = matches[1].toUpperCase(); + ret.isAccount = (pattern === 'A'); + // eslint-disable-next-line + ret.type = IntlBase.patternMatcher[pattern]; + if (skeleton.length > 1) { + ret.fractionDigits = parseInt(matches[2], 10); + } + return ret; + } + IntlBase.getProperNumericSkeleton = getProperNumericSkeleton; + /** + * Returns format data for number formatting like minimum fraction, maximum fraction, etc.., + * + * @private + * @param {string} pattern ? + * @param {boolean} needFraction ? + * @param {string} cSymbol ? + * @param {boolean} fractionOnly ? + * @returns {any} ? + */ + function getFormatData(pattern, needFraction, cSymbol, fractionOnly) { + var nData = fractionOnly ? {} : { nlead: '', nend: '' }; + var match = pattern.match(IntlBase.customRegex); + if (match) { + if (!fractionOnly) { + nData.nlead = changeCurrencySymbol(match[1], cSymbol); + nData.nend = changeCurrencySymbol(match[10], cSymbol); + nData.groupPattern = match[4]; + } + var fraction = match[7]; + if (fraction && needFraction) { + var fmatch = fraction.match(fractionRegex); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(fmatch)) { + nData.minimumFraction = fmatch.length; + } + else { + nData.minimumFraction = 0; + } + nData.maximumFraction = fraction.length - 1; + } + } + return nData; + } + IntlBase.getFormatData = getFormatData; + /** + * Changes currency symbol + * + * @private + * @param {string} val ? + * @param {string} sym ? + * @returns {string} ? + */ + function changeCurrencySymbol(val, sym) { + if (val) { + return val.replace(IntlBase.defaultCurrency, sym); + } + return ''; + } + IntlBase.changeCurrencySymbol = changeCurrencySymbol; + /** + * Returns currency symbol based on currency code ? + * + * @private + * @param {Object} numericObject ? + * @param {string} currencyCode ? + * @param {string} altSymbol ? + * @returns {string} ? + */ + function getCurrencySymbol(numericObject, currencyCode, altSymbol) { + var symbol = altSymbol ? ('.' + altSymbol) : '.symbol'; + var getCurrency = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('currencies.' + currencyCode + symbol, numericObject) || + Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$'; + return getCurrency; + } + IntlBase.getCurrencySymbol = getCurrencySymbol; + /** + * Returns formatting options for custom number format + * + * @private + * @param {string} format ? + * @param {CommonOptions} dOptions ? + * @param {any} obj ? + * @returns {any} ? + */ + function customFormat(format, dOptions, obj) { + var options = {}; + var formatSplit = format.split(';'); + var data = ['pData', 'nData', 'zeroData']; + for (var i = 0; i < formatSplit.length; i++) { + // eslint-disable-next-line + options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj); + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(options.nData)) { + options.nData = Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, options.pData); + options.nData.nlead = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead; + } + return options; + } + IntlBase.customFormat = customFormat; + /** + * Returns custom formatting options + * + * @private + * @param {string} format ? + * @param {CommonOptions} dOptions ? + * @param {Object} numObject ? + * @returns {any} ? + */ + function customNumberFormat(format, dOptions, numObject) { + var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 }; + var pattern = format.match(IntlBase.customRegex); + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(pattern) || (pattern[5] === '' && format !== 'N/A')) { + cOptions.type = undefined; + return cOptions; + } + cOptions.nlead = pattern[1]; + cOptions.nend = pattern[10]; + var integerPart = pattern[6]; + var spaceCapture = integerPart.match(/\ $/g) ? true : false; + var spaceGrouping = integerPart.replace(/\ $/g, '').indexOf(' ') !== -1; + cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping; + integerPart = integerPart.replace(/,/g, ''); + var fractionPart = pattern[7]; + if (integerPart.indexOf('0') !== -1) { + cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0'); + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(fractionPart)) { + cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0'); + cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#'); + if (cOptions.minimumFractionDigits === -1) { + cOptions.minimumFractionDigits = 0; + } + if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) { + cOptions.maximumFractionDigits = cOptions.minimumFractionDigits; + } + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(dOptions)) { + dOptions.isCustomFormat = true; + Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol)); + if (!cOptions.isCurrency) { + Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol)); + } + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%')); + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(numObject)) { + var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false); + if (cOptions.useGrouping) { + // eslint-disable-next-line + cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]]; + cOptions.groupData = _number_formatter__WEBPACK_IMPORTED_MODULE_4__["NumberFormat"].getGroupingDetails(symbolPattern.split(';')[0]); + } + cOptions.nlead = cOptions.nlead.replace(/'/g, ''); + cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, ''); + } + return cOptions; + } + IntlBase.customNumberFormat = customNumberFormat; + /** + * Returns formatting options for currency or percent type + * + * @private + * @param {string[]} parts ? + * @param {string} actual ? + * @param {string} symbol ? + * @returns {any} ? + */ + function isCurrencyPercent(parts, actual, symbol) { + var options = { nlead: parts[0], nend: parts[1] }; + for (var i = 0; i < 2; i++) { + var part = parts[parseInt(i.toString(), 10)]; + var loc = part.indexOf(actual); + if ((loc !== -1) && ((loc < part.indexOf('\'')) || (loc > part.lastIndexOf('\'')))) { + // eslint-disable-next-line + options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1); + // eslint-disable-next-line + options[typeMapper[actual]] = true; + options.type = options.isCurrency ? 'currency' : 'percent'; + break; + } + } + return options; + } + IntlBase.isCurrencyPercent = isCurrencyPercent; + /** + * Returns culture based date separator + * + * @private + * @param {Object} dateObj ? + * @returns {string} ? + */ + function getDateSeparator(dateObj) { + var value = (Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i); + return value ? value[1] : '/'; + } + IntlBase.getDateSeparator = getDateSeparator; + /** + * Returns Native Date Time pattern + * + * @private + * @param {string} culture ? + * @param {DateFormatOptions} options ? + * @param {Object} cldr ? + * @param {boolean} isExcelFormat ? + * @returns {string} ? + */ + function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) { + var dependable = getDependables(cldr, culture, options.calendar); + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])()) { + options = compareBlazorDateFormats(options, culture); + } + var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type); + if (isExcelFormat) { + actualPattern = actualPattern.replace(patternRegex, function (pattern) { + // eslint-disable-next-line + return patternMatch[pattern]; + }); + if (actualPattern.indexOf('z') !== -1) { + var tLength = actualPattern.match(/z/g).length; + var timeZonePattern = void 0; + var options_1 = { 'timeZone': {} }; + options_1.numMapper = _parser_base__WEBPACK_IMPORTED_MODULE_2__["ParserBase"].getNumberMapper(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_2__["ParserBase"].getNumberingSystem(cldr)); + options_1.timeZone = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('dates.timeZoneNames', dependable.parserObject); + var value = new Date(); + var timezone = value.getTimezoneOffset(); + var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat; + pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator); + if (timezone === 0) { + timeZonePattern = options_1.timeZone.gmtZeroFormat; + } + else { + timeZonePattern = _date_formatter__WEBPACK_IMPORTED_MODULE_3__["DateFormat"].getTimeZoneValue(timezone, pattern); + timeZonePattern = options_1.timeZone.gmtFormat.replace(/\{0\}/, timeZonePattern); + } + actualPattern = actualPattern.replace(/[z]+/, '"' + timeZonePattern + '"'); + } + actualPattern = actualPattern.replace(/ $/, ''); + } + return actualPattern; + } + IntlBase.getActualDateTimeFormat = getActualDateTimeFormat; + /** + * + * @param {string} actual ? + * @param {any} option ? + * @returns {any} ? + */ + // eslint-disable-next-line + function processSymbol(actual, option) { + if (actual.indexOf(',') !== -1) { + // eslint-disable-next-line + var split = actual.split(','); + actual = (split[0] + Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('numberMapper.numberSymbols.group', option) + + split[1].replace('.', Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('numberMapper.numberSymbols.decimal', option))); + } + else { + actual = actual.replace('.', Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('numberMapper.numberSymbols.decimal', option)); + } + return actual; + } + /** + * Returns Native Number pattern + * + * @private + * @param {string} culture ? + * @param {NumberFormatOptions} options ? + * @param {Object} cldr ? + * @param {boolean} isExcel ? + * @returns {string} ? + */ + function getActualNumberFormat(culture, options, cldr, isExcel) { + var dependable = getDependables(cldr, culture, '', true); + var parseOptions = { custom: true }; + var numrericObject = dependable.numericObject; + var minFrac; + var curObj = {}; + var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex); + var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {}; + var dOptions = {}; + if (curMatch) { + dOptions.numberMapper = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? + Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, dependable.numericObject) : + _parser_base__WEBPACK_IMPORTED_MODULE_2__["ParserBase"].getNumberMapper(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_2__["ParserBase"].getNumberingSystem(cldr), true); + var curCode = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('currencySymbol', dependable.numericObject) : + getCurrencySymbol(dependable.numericObject, options.currency || _internationalization__WEBPACK_IMPORTED_MODULE_0__["defaultCurrencyCode"], options.altSymbol); + var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format)); + symbolPattern = symbolPattern.replace(/\u00A4/g, curCode); + var split = symbolPattern.split(';'); + curObj.hasNegativePattern = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? true : (split.length > 1); + curObj.nData = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(type.type + 'nData', numrericObject) : + getFormatData(split[1] || '-' + split[0], true, curCode); + curObj.pData = Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(type.type + 'pData', numrericObject) : + getFormatData(split[0], false, curCode); + if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) { + minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction; + } + } + var actualPattern; + if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) { + Object(_util__WEBPACK_IMPORTED_MODULE_1__["extend"])(parseOptions, getProperNumericSkeleton(options.format || 'N')); + parseOptions.custom = false; + actualPattern = '###0'; + if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) { + var defaultMinimum = 0; + if (parseOptions.fractionDigits) { + options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits; + } + actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits || + options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum); + } + if (options.minimumIntegerDigits) { + actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits); + } + if (options.useGrouping) { + actualPattern = groupingPattern(actualPattern); + } + if (parseOptions.type === 'currency' || (parseOptions.type && Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])())) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])() && parseOptions.type !== 'currency') { + curObj.pData = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(parseOptions.type + 'pData', numrericObject); + curObj.nData = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(parseOptions.type + 'nData', numrericObject); + } + var cPattern = actualPattern; + actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend; + if (curObj.hasNegativePattern || Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])()) { + actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend; + } + } + if (parseOptions.type === 'percent' && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["isBlazor"])()) { + actualPattern += ' %'; + } + } + else { + actualPattern = options.format.replace(/'/g, '"'); + } + if (Object.keys(dOptions).length > 0) { + actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern; + } + return actualPattern; + } + IntlBase.getActualNumberFormat = getActualNumberFormat; + /** + * + * @param {string} pattern ? + * @param {number} minDigits ? + * @param {number} maxDigits ? + * @returns {string} ? + */ + function fractionDigitsPattern(pattern, minDigits, maxDigits) { + pattern += '.'; + for (var a = 0; a < minDigits; a++) { + pattern += '0'; + } + if (minDigits < maxDigits) { + var diff = maxDigits - minDigits; + for (var b = 0; b < diff; b++) { + pattern += '#'; + } + } + return pattern; + } + IntlBase.fractionDigitsPattern = fractionDigitsPattern; + /** + * + * @param {string} pattern ? + * @param {number} digits ? + * @returns {string} ? + */ + function minimumIntegerPattern(pattern, digits) { + var temp = pattern.split('.'); + var integer = ''; + for (var x = 0; x < digits; x++) { + integer += '0'; + } + return temp[1] ? (integer + '.' + temp[1]) : integer; + } + IntlBase.minimumIntegerPattern = minimumIntegerPattern; + /** + * + * @param {string} pattern ? + * @returns {string} ? + */ + function groupingPattern(pattern) { + var temp = pattern.split('.'); + var integer = temp[0]; + var no = 3 - integer.length % 3; + var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : ''); + integer = hash + integer; + pattern = ''; + for (var x = integer.length - 1; x > 0; x = x - 3) { + pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern; + } + pattern = pattern.slice(1); + return temp[1] ? (pattern + '.' + temp[1]) : pattern; + } + IntlBase.groupingPattern = groupingPattern; + /** + * + * @param {string} culture ? + * @param {Object} cldr ? + * @returns {number} ? + */ + function getWeekData(culture, cldr) { + var firstDay = defaultFirstDay; + var mapper = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('supplemental.weekData.firstDay', cldr); + var iCulture = culture; + if ((/en-/).test(iCulture)) { + iCulture = iCulture.slice(3); + } + iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2); + if (mapper) { + firstDay = mapper["" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay; + } + return firstDayMapper["" + firstDay]; + } + IntlBase.getWeekData = getWeekData; + /** + * @private + * @param {any} pData ? + * @param {string} aCurrency ? + * @param {string} rCurrency ? + * @returns {void} ? + */ + function replaceBlazorCurrency(pData, aCurrency, rCurrency) { + var iCurrency = Object(_parser_base__WEBPACK_IMPORTED_MODULE_2__["getBlazorCurrencySymbol"])(rCurrency); + if (aCurrency !== iCurrency) { + for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) { + var data = pData_1[_i]; + data.nend = data.nend.replace(aCurrency, iCurrency); + data.nlead = data.nlead.replace(aCurrency, iCurrency); + } + } + } + IntlBase.replaceBlazorCurrency = replaceBlazorCurrency; + /** + * @private + * @param {Date} date ? + * @returns {number} ? + */ + function getWeekOfYear(date) { + var newYear = new Date(date.getFullYear(), 0, 1); + var day = newYear.getDay(); + var weeknum; + day = (day >= 0 ? day : day + 7); + var daynum = Math.floor((date.getTime() - newYear.getTime() - + (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1; + if (day < 4) { + weeknum = Math.floor((daynum + day - 1) / 7) + 1; + if (weeknum > 52) { + var nYear = new Date(date.getFullYear() + 1, 0, 1); + var nday = nYear.getDay(); + nday = nday >= 0 ? nday : nday + 7; + weeknum = nday < 4 ? 1 : 53; + } + } + else { + weeknum = Math.floor((daynum + day - 1) / 7); + } + return weeknum; + } + IntlBase.getWeekOfYear = getWeekOfYear; +})(IntlBase || (IntlBase = {})); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/number-formatter.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/number-formatter.js ***! + \*************************************************************************/ +/*! exports provided: NumberFormat */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFormat", function() { return NumberFormat; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _internationalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internationalization */ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js"); +/* harmony import */ var _intl_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); +/* harmony import */ var _parser_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parser-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js"); + + + + +var errorText = { + 'ms': 'minimumSignificantDigits', + 'ls': 'maximumSignificantDigits', + 'mf': 'minimumFractionDigits', + 'lf': 'maximumFractionDigits' +}; +var integerError = 'minimumIntegerDigits'; +var percentSign = 'percentSign'; +var minusSign = 'minusSign'; +var spaceRegex = /\s/; +var mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential']; +var infinity = 'infinity'; +var nan = 'nan'; +/** + * Module for number formatting. + * + * @private + */ +var NumberFormat = /** @__PURE__ @class */ (function () { + function NumberFormat() { + } + /** + * Returns the formatter function for given skeleton. + * + * @param {string} culture - Specifies the culture name to be which formatting. + * @param {NumberFormatOptions} option - Specific the format in which number will format. + * @param {Object} cldr - Specifies the global cldr data collection. + * @returns {Function} ? + */ + NumberFormat.numberFormatter = function (culture, option, cldr) { + var _this = this; + var fOptions = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, option); + var cOptions = {}; + var dOptions = {}; + var symbolPattern; + var dependable = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getDependables(cldr, culture, '', true); + var numObject = dependable.numericObject; + dOptions.numberMapper = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, numObject) : + _parser_base__WEBPACK_IMPORTED_MODULE_3__["ParserBase"].getNumberMapper(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_3__["ParserBase"].getNumberingSystem(cldr), true); + dOptions.currencySymbol = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('currencySymbol', numObject) : _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getCurrencySymbol(dependable.numericObject, fOptions.currency || _internationalization__WEBPACK_IMPORTED_MODULE_1__["defaultCurrencyCode"], option.altSymbol); + /* eslint-disable @typescript-eslint/no-explicit-any */ + dOptions.percentSymbol = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('numberSymbols.percentSign', numObject) : + dOptions.numberMapper.numberSymbols["" + percentSign]; + dOptions.minusSymbol = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('numberSymbols.minusSign', numObject) : + dOptions.numberMapper.numberSymbols["" + minusSign]; + var symbols = dOptions.numberMapper.numberSymbols; + if ((option.format) && !(_intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].formatRegex.test(option.format))) { + cOptions = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].customFormat(option.format, dOptions, dependable.numericObject); + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(fOptions, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getProperNumericSkeleton(option.format || 'N')); + fOptions.isCurrency = fOptions.type === 'currency'; + fOptions.isPercent = fOptions.type === 'percent'; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + symbolPattern = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount); + } + fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true); + this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(fOptions.fractionDigits)) { + fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits; + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(fOptions.useGrouping)) { + fOptions.useGrouping = true; + } + if (fOptions.isCurrency && !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + symbolPattern = symbolPattern.replace(/\u00A4/g, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].defaultCurrency); + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var split = symbolPattern.split(';'); + cOptions.nData = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol); + cOptions.pData = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getFormatData(split[0], false, dOptions.currencySymbol); + if (fOptions.useGrouping) { + fOptions.groupSeparator = symbols[mapper[2]]; + fOptions.groupData = this.getGroupingDetails(split[0]); + } + } + else { + cOptions.nData = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(fOptions.type + 'nData', numObject)); + cOptions.pData = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(fOptions.type + 'pData', numObject)); + if (fOptions.type === 'currency' && option.currency) { + _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency); + } + } + var minFrac = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(fOptions.minimumFractionDigits); + if (minFrac) { + fOptions.minimumFractionDigits = cOptions.nData.minimumFraction; + } + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(fOptions.maximumFractionDigits)) { + var mval = cOptions.nData.maximumFraction; + fOptions.maximumFractionDigits = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(mval) && fOptions.isPercent ? 0 : mval; + } + var mfrac = fOptions.minimumFractionDigits; + var lfrac = fOptions.maximumFractionDigits; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(mfrac) && !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(lfrac)) { + if (mfrac > lfrac) { + fOptions.maximumFractionDigits = mfrac; + } + } + } + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(cOptions.nData, fOptions); + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(cOptions.pData, fOptions); + return function (value) { + if (isNaN(value)) { + return symbols[mapper[1]]; + } + else if (!isFinite(value)) { + return symbols[mapper[0]]; + } + return _this.intNumberFormatter(value, cOptions, dOptions, option); + }; + }; + /** + * Returns grouping details for the pattern provided + * + * @param {string} pattern ? + * @returns {GroupDetails} ? + */ + NumberFormat.getGroupingDetails = function (pattern) { + var ret = {}; + var match = pattern.match(_intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].negativeDataRegex); + if (match && match[4]) { + var pattern_1 = match[4]; + var p = pattern_1.lastIndexOf(','); + if (p !== -1) { + var temp = pattern_1.split('.')[0]; + ret.primary = (temp.length - p) - 1; + var s = pattern_1.lastIndexOf(',', p - 1); + if (s !== -1) { + ret.secondary = p - 1 - s; + } + } + } + return ret; + }; + /** + * Returns if the provided integer range is valid. + * + * @param {number} val1 ? + * @param {number} val2 ? + * @param {boolean} checkbothExist ? + * @param {boolean} isFraction ? + * @returns {boolean} ? + */ + NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) { + var decide = isFraction ? 'f' : 's'; + var dint = 0; + var str1 = errorText['l' + decide]; + // eslint-disable-next-line + var str2 = errorText['m' + decide]; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(val1)) { + this.checkRange(val1, str1, isFraction); + dint++; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(val2)) { + this.checkRange(val2, str2, isFraction); + dint++; + } + if (dint === 2) { + if (val1 < val2) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["throwError"])(str2 + 'specified must be less than the' + str1); + } + else { + return true; + } + } + else if (checkbothExist && dint === 1) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["throwError"])('Both' + str2 + 'and' + str2 + 'must be present'); + } + return false; + }; + /** + * Check if the provided fraction range is valid + * + * @param {number} val ? + * @param {string} text ? + * @param {boolean} isFraction ? + * @returns {void} ? + */ + NumberFormat.checkRange = function (val, text, isFraction) { + var range = isFraction ? [0, 20] : [1, 21]; + if (val < range[0] || val > range[1]) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["throwError"])(text + 'value must be within the range' + range[0] + 'to' + range[1]); + } + }; + /** + * Returns formatted numeric string for provided formatting options + * + * @param {number} value ? + * @param {base.GenericFormatOptions} fOptions ? + * @param {CommonOptions} dOptions ? + * @returns {string} ? + */ + NumberFormat.intNumberFormatter = function (value, fOptions, dOptions, option) { + var curData; + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(fOptions.nData.type)) { + return undefined; + } + else { + if (value < 0) { + value = value * -1; + curData = fOptions.nData; + } + else if (value === 0) { + curData = fOptions.zeroData || fOptions.pData; + } + else { + curData = fOptions.pData; + } + var fValue = ''; + if (curData.isPercent) { + value = value * 100; + } + if (curData.groupOne) { + fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits); + } + else { + fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits, option); + if (curData.minimumIntegerDigits) { + fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits); + } + if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits + && /\d+\.\d+/.test(fValue)) { + var temp = fValue.split('.'); + var decimalPart = temp[1]; + var len = decimalPart.length; + for (var i = len - 1; i >= 0; i--) { + if (decimalPart["" + i] === '0' && i >= curData.minimumFractionDigits) { + decimalPart = decimalPart.slice(0, i); + } + else { + break; + } + } + fValue = temp[0] + '.' + decimalPart; + } + } + if (curData.type === 'scientific') { + fValue = value.toExponential(curData.maximumFractionDigits); + fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]); + } + fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]); + fValue = curData.format === "#,###,,;(#,###,,)" ? this.customPivotFormat(parseInt(fValue)) : fValue; + if (curData.useGrouping) { + /* eslint-disable @typescript-eslint/no-explicit-any */ + fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary); + } + fValue = _parser_base__WEBPACK_IMPORTED_MODULE_3__["ParserBase"].convertValueParts(fValue, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].latnParseRegex, dOptions.numberMapper.mapper); + if (curData.nlead === 'N/A') { + return curData.nlead; + } + else { + if (fValue === '0' && option && option.format === '0') { + return fValue + curData.nend; + } + return curData.nlead + fValue + curData.nend; + } + } + }; + /** + * Returns significant digits processed numeric string + * + * @param {number} value ? + * @param {number} min ? + * @param {number} max ? + * @returns {string} ? + */ + NumberFormat.processSignificantDigits = function (value, min, max) { + var temp = value + ''; + var tn; + var length = temp.length; + if (length < min) { + return value.toPrecision(min); + } + else { + temp = value.toPrecision(max); + tn = +temp; + return tn + ''; + } + }; + /** + * Returns grouped numeric string + * + * @param {string} val ? + * @param {number} level1 ? + * @param {string} sep ? + * @param {string} decimalSymbol ? + * @param {number} level2 ? + * @returns {string} ? + */ + NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) { + var flag = !Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(level2) && level2 !== 0; + var split = val.split(decimalSymbol); + var prefix = split[0]; + var length = prefix.length; + var str = ''; + while (length > level1) { + str = prefix.slice(length - level1, length) + (str.length ? + (sep + str) : ''); + length -= level1; + if (flag) { + level1 = level2; + flag = false; + } + } + split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str; + return split.join(decimalSymbol); + }; + /** + * Returns fraction processed numeric string + * + * @param {number} value ? + * @param {number} min ? + * @param {number} max ? + * @returns {string} ? + */ + NumberFormat.processFraction = function (value, min, max, option) { + var temp = (value + '').split('.')[1]; + var length = temp ? temp.length : 0; + if (min && length < min) { + var ret = ''; + if (length === 0) { + ret = value.toFixed(min); + } + else { + ret += value; + for (var j = 0; j < min - length; j++) { + ret += '0'; + } + return ret; + } + return value.toFixed(min); + } + else if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(max) && (length > max || max === 0)) { + return value.toFixed(max); + } + var str = value + ''; + if (str[0] === '0' && option && option.format === '###.00') { + str = str.slice(1); + } + return str; + }; + /** + * Returns integer processed numeric string + * + * @param {string} value ? + * @param {number} min ? + * @returns {string} ? + */ + NumberFormat.processMinimumIntegers = function (value, min) { + var temp = value.split('.'); + var lead = temp[0]; + var len = lead.length; + if (len < min) { + for (var i = 0; i < min - len; i++) { + lead = '0' + lead; + } + temp[0] = lead; + } + return temp.join('.'); + }; + /** + * Returns custom format for pivot table + * + * @param {number} value ? + */ + NumberFormat.customPivotFormat = function (value) { + if (value >= 500000) { + value /= 1000000; + var _a = value.toString().split("."), integer = _a[0], decimal = _a[1]; + return decimal && +decimal.substring(0, 1) >= 5 + ? Math.ceil(value).toString() + : Math.floor(value).toString(); + } + return ""; + }; + return NumberFormat; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/number-parser.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/number-parser.js ***! + \**********************************************************************/ +/*! exports provided: NumberParser */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberParser", function() { return NumberParser; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _parser_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parser-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js"); +/* harmony import */ var _intl_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./intl-base */ "./ej2-resources/22.1.37/scripts/ej2-base/intl/intl-base.js"); + + + +var regExp = RegExp; +var parseRegex = new regExp('^([^0-9]*)' + '(([0-9,]*[0-9]+)(\.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$'); +var groupRegex = /,/g; +var keys = ['minusSign', 'infinity']; +/** + * Module for Number Parser. + * + * @private + */ +var NumberParser = /** @__PURE__ @class */ (function () { + function NumberParser() { + } + /** + * Returns the parser function for given skeleton. + * + * @param {string} culture - Specifies the culture name to be which formatting. + * @param {NumberFormatOptions} option - Specific the format in which number will parsed. + * @param {Object} cldr - Specifies the global cldr data collection. + * @returns {Function} ? + */ + NumberParser.numberParser = function (culture, option, cldr) { + var _this = this; + var dependable = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getDependables(cldr, culture, '', true); + var parseOptions = { custom: true }; + var numOptions; + if ((_intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].formatRegex.test(option.format)) || !(option.format)) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(parseOptions, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getProperNumericSkeleton(option.format || 'N')); + parseOptions.custom = false; + if (!parseOptions.fractionDigits) { + if (option.maximumFractionDigits) { + parseOptions.maximumFractionDigits = option.maximumFractionDigits; + } + } + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(parseOptions, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].customFormat(option.format, null, null)); + } + var numbers = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('numbers', dependable.parserObject); + // eslint-disable-next-line + numOptions = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getCurrentNumericOptions(dependable.parserObject, _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getNumberingSystem(cldr), true, Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()); + parseOptions.symbolRegex = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].getSymbolRegex(Object.keys(numOptions.symbolMatch)); + // eslint-disable-next-line + parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]]; + var symbolpattern; + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + symbolpattern = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount); + if (symbolpattern) { + symbolpattern = symbolpattern.replace(/\u00A4/g, _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].defaultCurrency); + var split = symbolpattern.split(';'); + parseOptions.nData = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getFormatData(split[1] || '-' + split[0], true, ''); + parseOptions.pData = _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].getFormatData(split[0], true, ''); + } + } + else { + parseOptions.nData = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(parseOptions.type + 'nData', numbers)); + parseOptions.pData = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(parseOptions.type + 'pData', numbers)); + if (parseOptions.type === 'currency' && option.currency) { + _intl_base__WEBPACK_IMPORTED_MODULE_2__["IntlBase"].replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('currencySymbol', numbers), option.currency); + } + } + return function (value) { + return _this.getParsedNumber(value, parseOptions, numOptions); + }; + }; + /** + * Returns parsed number for the provided formatting options + * + * @param {string} value ? + * @param {NumericParts} options ? + * @param {NumericOptions} numOptions ? + * @returns {number} ? + */ + NumberParser.getParsedNumber = function (value, options, numOptions) { + var isNegative; + var isPercent; + var tempValue; + var lead; + var end; + var ret; + if (value.indexOf(options.infinity) !== -1) { + return Infinity; + } + else { + value = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].convertValueParts(value, options.symbolRegex, numOptions.symbolMatch); + value = _parser_base__WEBPACK_IMPORTED_MODULE_1__["ParserBase"].convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair); + value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value; + if (value.indexOf('.') === 0) { + value = '0' + value; + } + var matches = value.match(parseRegex); + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(matches)) { + return NaN; + } + lead = matches[1]; + tempValue = matches[2]; + var exponent = matches[5]; + end = matches[6]; + isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) : + ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1)); + isPercent = isNegative ? + options.nData.isPercent : + options.pData.isPercent; + tempValue = tempValue.replace(groupRegex, ''); + if (exponent) { + tempValue += exponent; + } + ret = +tempValue; + if (options.type === 'percent' || isPercent) { + ret = ret / 100; + } + if (options.custom || options.fractionDigits) { + ret = parseFloat(ret.toFixed(options.custom ? + (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits)); + } + if (options.maximumFractionDigits) { + ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative); + } + if (isNegative) { + ret *= -1; + } + return ret; + } + }; + NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) { + var decimalSplitValue = value.split('.'); + if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) { + ret = +(ret.toFixed(options.custom ? + (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits)); + } + return ret; + }; + return NumberParser; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/intl/parser-base.js ***! + \********************************************************************/ +/*! exports provided: ParserBase, getBlazorCurrencySymbol */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ParserBase", function() { return ParserBase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBlazorCurrencySymbol", function() { return getBlazorCurrencySymbol; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/** + * Parser + */ +var defaultNumberingSystem = { + 'latn': { + '_digits': '0123456789', + '_type': 'numeric' + } +}; + +var defaultNumberSymbols = { + 'decimal': '.', + 'group': ',', + 'percentSign': '%', + 'plusSign': '+', + 'minusSign': '-', + 'infinity': '∞', + 'nan': 'NaN', + 'exponential': 'E' +}; +var latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; +/** + * Interface for parser base + * + * @private + */ +var ParserBase = /** @__PURE__ @class */ (function () { + function ParserBase() { + } + /** + * Returns the cldr object for the culture specifies + * + * @param {Object} obj - Specifies the object from which culture object to be acquired. + * @param {string} cName - Specifies the culture name. + * @returns {Object} ? + */ + ParserBase.getMainObject = function (obj, cName) { + var value = Object(_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? cName : 'main.' + cName; + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(value, obj); + }; + /** + * Returns the numbering system object from given cldr data. + * + * @param {Object} obj - Specifies the object from which number system is acquired. + * @returns {Object} ? + */ + ParserBase.getNumberingSystem = function (obj) { + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('supplemental.numberingSystems', obj) || this.numberingSystems; + }; + /** + * Returns the reverse of given object keys or keys specified. + * + * @param {Object} prop - Specifies the object to be reversed. + * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal. + * @returns {Object} ? + */ + ParserBase.reverseObject = function (prop, keys) { + var propKeys = keys || Object.keys(prop); + var res = {}; + for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) { + var key = propKeys_1[_i]; + // eslint-disable-next-line + if (!res.hasOwnProperty(prop[key])) { + // eslint-disable-next-line + res[prop[key]] = key; + } + } + return res; + }; + /** + * Returns the symbol regex by skipping the escape sequence. + * + * @param {string[]} props - Specifies the array values to be skipped. + * @returns {RegExp} ? + */ + ParserBase.getSymbolRegex = function (props) { + var regexStr = props.map(function (str) { + return str.replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'); + }).join('|'); + var regExp = RegExp; + return new regExp(regexStr, 'g'); + }; + /** + * + * @param {Object} prop ? + * @returns {Object} ? + */ + ParserBase.getSymbolMatch = function (prop) { + var matchKeys = Object.keys(defaultNumberSymbols); + var ret = {}; + for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) { + var key = matchKeys_1[_i]; + // eslint-disable-next-line + ret[prop[key]] = defaultNumberSymbols[key]; + } + return ret; + }; + /** + * Returns regex string for provided value + * + * @param {string} val ? + * @returns {string} ? + */ + ParserBase.constructRegex = function (val) { + var len = val.length; + var ret = ''; + for (var i = 0; i < len; i++) { + if (i !== len - 1) { + ret += val[parseInt(i.toString(), 10)] + '|'; + } + else { + ret += val[parseInt(i.toString(), 10)]; + } + } + return ret; + }; + /** + * Returns the replaced value of matching regex and obj mapper. + * + * @param {string} value - Specifies the values to be replaced. + * @param {RegExp} regex - Specifies the regex to search. + * @param {Object} obj - Specifies the object matcher to be replace value parts. + * @returns {string} ? + */ + ParserBase.convertValueParts = function (value, regex, obj) { + return value.replace(regex, function (str) { + // eslint-disable-next-line + return obj[str]; + }); + }; + /** + * Returns default numbering system object for formatting from cldr data + * + * @param {Object} obj ? + * @returns {NumericObject} ? + */ + ParserBase.getDefaultNumberingSystem = function (obj) { + var ret = {}; + ret.obj = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('numbers', obj); + ret.nSystem = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('defaultNumberingSystem', ret.obj); + return ret; + }; + /** + * Returns the replaced value of matching regex and obj mapper. + * + * @param {Object} curObj ? + * @param {Object} numberSystem ? + * @param {boolean} needSymbols ? + * @param {boolean} blazorMode ? + * @returns {Object} ? + */ + ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) { + var ret = {}; + var cur = this.getDefaultNumberingSystem(curObj); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(cur.nSystem) || blazorMode) { + var digits = blazorMode ? Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('obj.mapperDigits', cur) : Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(cur.nSystem + '._digits', numberSystem); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(digits)) { + ret.numericPair = this.reverseObject(digits, latnNumberSystem); + var regExp = RegExp; + ret.numberParseRegex = new regExp(this.constructRegex(digits), 'g'); + ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']'; + if (needSymbols) { + ret.numericRegex = digits[0] + '-' + digits[9]; + ret.symbolNumberSystem = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj); + ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem); + ret.numberSystem = cur.nSystem; + } + } + } + return ret; + }; + /** + * Returns number mapper object for the provided cldr data + * + * @param {Object} curObj ? + * @param {Object} numberSystem ? + * @param {boolean} isNumber ? + * @returns {NumberMapper} ? + */ + // eslint-disable-next-line + ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) { + var ret = { mapper: {} }; + var cur = this.getDefaultNumberingSystem(curObj); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(cur.nSystem)) { + ret.numberSystem = cur.nSystem; + ret.numberSymbols = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('symbols-numberSystem-' + cur.nSystem, cur.obj); + ret.timeSeparator = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('timeSeparator', ret.numberSymbols); + var digits = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(cur.nSystem + '._digits', numberSystem); + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(digits)) { + for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) { + var i = latnNumberSystem_1[_i]; + // eslint-disable-next-line + ret.mapper[i] = digits[i]; + } + } + } + return ret; + }; + ParserBase.nPair = 'numericPair'; + ParserBase.nRegex = 'numericRegex'; + ParserBase.numberingSystems = defaultNumberingSystem; + return ParserBase; +}()); + +/** + * @private + */ +var blazorCurrencyData = { + 'DJF': 'Fdj', + 'ERN': 'Nfk', + 'ETB': 'Br', + 'NAD': '$', + 'ZAR': 'R', + 'XAF': 'FCFA', + 'GHS': 'GH₵', + 'XDR': 'XDR', + 'AED': 'د.إ.', + 'BHD': 'د.ب.', + 'DZD': 'د.ج.', + 'EGP': 'ج.م.', + 'ILS': '₪', + 'IQD': 'د.ع.', + 'JOD': 'د.ا.', + 'KMF': 'CF', + 'KWD': 'د.ك.', + 'LBP': 'ل.ل.', + 'LYD': 'د.ل.', + 'MAD': 'د.م.', + 'MRU': 'أ.م.', + 'OMR': 'ر.ع.', + 'QAR': 'ر.ق.', + 'SAR': 'ر.س.', + 'SDG': 'ج.س.', + 'SOS': 'S', + 'SSP': '£', + 'SYP': 'ل.س.', + 'TND': 'د.ت.', + 'YER': 'ر.ي.', + 'CLP': '$', + 'INR': '₹', + 'TZS': 'TSh', + 'EUR': '€', + 'AZN': '₼', + 'RUB': '₽', + 'BYN': 'Br', + 'ZMW': 'K', + 'BGN': 'лв.', + 'NGN': '₦', + 'XOF': 'CFA', + 'BDT': '৳', + 'CNY': '¥', + 'BAM': 'КМ', + 'UGX': 'USh', + 'USD': '$', + 'CZK': 'Kč', + 'GBP': '£', + 'DKK': 'kr.', + 'KES': 'Ksh', + 'CHF': 'CHF', + 'MVR': 'ރ.', + 'BTN': 'Nu.', + 'XCD': 'EC$', + 'AUD': '$', + 'BBD': '$', + 'BIF': 'FBu', + 'BMD': '$', + 'BSD': '$', + 'BWP': 'P', + 'BZD': '$', + 'CAD': '$', + 'NZD': '$', + 'FJD': '$', + 'FKP': '£', + 'GIP': '£', + 'GMD': 'D', + 'GYD': '$', + 'HKD': '$', + 'IDR': 'Rp', + 'JMD': '$', + 'KYD': '$', + 'LRD': '$', + 'MGA': 'Ar', + 'MOP': 'MOP$', + 'MUR': 'Rs', + 'MWK': 'MK', + 'MYR': 'RM', + 'PGK': 'K', + 'PHP': '₱', + 'PKR': 'Rs', + 'RWF': 'RF', + 'SBD': '$', + 'SCR': 'SR', + 'SEK': 'kr', + 'SGD': '$', + 'SHP': '£', + 'SLL': 'Le', + 'ANG': 'NAf.', + 'SZL': 'E', + 'TOP': 'T$', + 'TTD': '$', + 'VUV': 'VT', + 'WST': 'WS$', + 'ARS': '$', + 'BOB': 'Bs', + 'BRL': 'R$', + 'COP': '$', + 'CRC': '₡', + 'CUP': '$', + 'DOP': '$', + 'GTQ': 'Q', + 'HNL': 'L', + 'MXN': '$', + 'NIO': 'C$', + 'PAB': 'B/.', + 'PEN': 'S/', + 'PYG': '₲', + 'UYU': '$', + 'VES': 'Bs.S', + 'IRR': 'ريال', + 'GNF': 'FG', + 'CDF': 'FC', + 'HTG': 'G', + 'XPF': 'FCFP', + 'HRK': 'kn', + 'HUF': 'Ft', + 'AMD': '֏', + 'ISK': 'kr', + 'JPY': '¥', + 'GEL': '₾', + 'CVE': '​', + 'KZT': '₸', + 'KHR': '៛', + 'KPW': '₩', + 'KRW': '₩', + 'KGS': 'сом', + 'AOA': 'Kz', + 'LAK': '₭', + 'MZN': 'MTn', + 'MKD': 'ден', + 'MNT': '₮', + 'BND': '$', + 'MMK': 'K', + 'NOK': 'kr', + 'NPR': 'रु', + 'AWG': 'Afl.', + 'SRD': '$', + 'PLN': 'zł', + 'AFN': '؋', + 'STN': 'Db', + 'MDL': 'L', + 'RON': 'lei', + 'UAH': '₴', + 'LKR': 'රු.', + 'ALL': 'Lekë', + 'RSD': 'дин.', + 'TJS': 'смн', + 'THB': '฿', + 'TMT': 'm.', + 'TRY': '₺', + 'UZS': 'сўм', + 'VND': '₫', + 'TWD': 'NT$' +}; +/** + * + * @param {string} currencyCode ? + * @returns {string} ? + */ +function getBlazorCurrencySymbol(currencyCode) { + return Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(currencyCode || '', blazorCurrencyData); +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/keyboard.js": +/*!************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/keyboard.js ***! + \************************************************************/ +/*! exports provided: KeyboardEvents */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyboardEvents", function() { return KeyboardEvents; }); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +var keyCode = { + 'backspace': 8, + 'tab': 9, + 'enter': 13, + 'shift': 16, + 'control': 17, + 'alt': 18, + 'pause': 19, + 'capslock': 20, + 'space': 32, + 'escape': 27, + 'pageup': 33, + 'pagedown': 34, + 'end': 35, + 'home': 36, + 'leftarrow': 37, + 'uparrow': 38, + 'rightarrow': 39, + 'downarrow': 40, + 'insert': 45, + 'delete': 46, + 'f1': 112, + 'f2': 113, + 'f3': 114, + 'f4': 115, + 'f5': 116, + 'f6': 117, + 'f7': 118, + 'f8': 119, + 'f9': 120, + 'f10': 121, + 'f11': 122, + 'f12': 123, + 'semicolon': 186, + 'plus': 187, + 'comma': 188, + 'minus': 189, + 'dot': 190, + 'forwardslash': 191, + 'graveaccent': 192, + 'openbracket': 219, + 'backslash': 220, + 'closebracket': 221, + 'singlequote': 222 +}; +/** + * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc. + * ```html + *
; + * + * ``` + */ +var KeyboardEvents = /** @__PURE__ @class */ (function (_super) { + __extends(KeyboardEvents, _super); + /** + * Initializes the KeyboardEvents + * + * @param {HTMLElement} element ? + * @param {KeyboardEventsModel} options ? + */ + function KeyboardEvents(element, options) { + var _this = _super.call(this, options, element) || this; + /** + * To handle a key press event returns null + * + * @param {KeyboardEventArgs} e ? + * @returns {void} ? + */ + _this.keyPressHandler = function (e) { + var isAltKey = e.altKey; + var isCtrlKey = e.ctrlKey; + var isShiftKey = e.shiftKey; + var curkeyCode = e.which; + var keys = Object.keys(_this.keyConfigs); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + var configCollection = _this.keyConfigs["" + key].split(','); + for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) { + var rconfig = configCollection_1[_a]; + var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim()); + if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey && + isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) { + e.action = key; + if (_this.keyAction) { + _this.keyAction(e); + } + } + } + } + }; + _this.bind(); + return _this; + } + KeyboardEvents_1 = KeyboardEvents; + /** + * Unwire bound events and destroy the instance. + * + * @returns {void} ? + */ + KeyboardEvents.prototype.destroy = function () { + this.unwireEvents(); + _super.prototype.destroy.call(this); + }; + /** + * Function can be used to specify certain action if a property is changed + * + * @param {KeyboardEventsModel} newProp ? + * @param {KeyboardEventsModel} oldProp ? + * @returns {void} ? + * @private + */ + // eslint-disable-next-line + KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) { + // No code are needed + }; + KeyboardEvents.prototype.bind = function () { + this.wireEvents(); + }; + /** + * To get the module name, returns 'keyboard'. + * + * @returns {string} ? + * @private + */ + KeyboardEvents.prototype.getModuleName = function () { + return 'keyboard'; + }; + /** + * Wiring event handlers to events + * + * @returns {void} ? + * @private + */ + KeyboardEvents.prototype.wireEvents = function () { + this.element.addEventListener(this.eventName, this.keyPressHandler); + }; + /** + * Unwiring event handlers to events + * + * @returns {void} ? + * @private + */ + KeyboardEvents.prototype.unwireEvents = function () { + this.element.removeEventListener(this.eventName, this.keyPressHandler); + }; + /** + * To get the key configuration data + * + * @param {string} config - configuration data + * @returns {KeyData} ? + */ + KeyboardEvents.getKeyConfigData = function (config) { + if (config in this.configCache) { + return this.configCache["" + config]; + } + var keys = config.toLowerCase().split('+'); + var keyData = { + altKey: (keys.indexOf('alt') !== -1 ? true : false), + ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false), + shiftKey: (keys.indexOf('shift') !== -1 ? true : false), + keyCode: null + }; + if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) { + keyData.keyCode = Number(keys[keys.length - 1]); + } + else { + keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]); + } + KeyboardEvents_1.configCache["" + config] = keyData; + return keyData; + }; + // Return the keycode value as string + KeyboardEvents.getKeyCode = function (keyVal) { + return keyCode["" + keyVal] || keyVal.toUpperCase().charCodeAt(0); + }; + var KeyboardEvents_1; + KeyboardEvents.configCache = {}; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], KeyboardEvents.prototype, "keyConfigs", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_0__["Property"])('keyup') + ], KeyboardEvents.prototype, "eventName", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], KeyboardEvents.prototype, "keyAction", void 0); + KeyboardEvents = KeyboardEvents_1 = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], KeyboardEvents); + return KeyboardEvents; +}(_base__WEBPACK_IMPORTED_MODULE_1__["Base"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/l10n.js": +/*!********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/l10n.js ***! + \********************************************************/ +/*! exports provided: L10n */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L10n", function() { return L10n; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _internationalization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internationalization */ "./ej2-resources/22.1.37/scripts/ej2-base/internationalization.js"); + + +/** + * L10n modules provides localized text for different culture. + * ```typescript + * import {setCulture} from '../ts-base-library'; + * //load global locale object common for all components. + * L10n.load({ + * 'fr-BE': { + * 'button': { + * 'check': 'vérifié' + * } + * } + * }); + * //set globale default locale culture. + * setCulture('fr-BE'); + * let instance: L10n = new L10n('button', { + * check: 'checked' + * }); + * //Get locale text for current property. + * instance.getConstant('check'); + * //Change locale culture in a component. + * instance.setLocale('en-US'); + * ``` + */ +var L10n = /** @__PURE__ @class */ (function () { + /** + * Constructor + * + * @param {string} controlName ? + * @param {Object} localeStrings ? + * @param {string} locale ? + */ + function L10n(controlName, localeStrings, locale) { + this.controlName = controlName; + this.localeStrings = localeStrings; + this.setLocale(locale || _internationalization__WEBPACK_IMPORTED_MODULE_1__["defaultCulture"]); + } + /** + * Sets the locale text + * + * @param {string} locale ? + * @returns {void} ? + */ + L10n.prototype.setLocale = function (locale) { + var intLocale = this.intGetControlConstant(L10n.locale, locale); + this.currentLocale = intLocale || this.localeStrings; + }; + /** + * Sets the global locale for all components. + * + * @param {Object} localeObject - specifies the localeObject to be set as global locale. + * @returns {void} ? + */ + L10n.load = function (localeObject) { + this.locale = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(this.locale, localeObject, {}, true); + }; + /** + * Returns current locale text for the property based on the culture name and control name. + * + * @param {string} prop - specifies the property for which localize text to be returned. + * @returns {string} ? + */ + L10n.prototype.getConstant = function (prop) { + // Removed conditional operator because this method does not return correct value when passing 0 as value in localization + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.currentLocale["" + prop])) { + return this.currentLocale["" + prop]; + } + else { + return this.localeStrings["" + prop] || ''; + } + }; + /** + * Returns the control constant object for current object and the locale specified. + * + * @param {Object} curObject ? + * @param {string} locale ? + * @returns {Object} ? + */ + L10n.prototype.intGetControlConstant = function (curObject, locale) { + if ((curObject)["" + locale]) { + return (curObject)["" + locale][this.controlName]; + } + return null; + }; + L10n.locale = {}; + return L10n; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/module-loader.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/module-loader.js ***! + \*****************************************************************/ +/*! exports provided: ModuleLoader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleLoader", function() { return ModuleLoader; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/** + * Module loading operations + */ + +var MODULE_SUFFIX = 'Module'; +var ModuleLoader = /** @__PURE__ @class */ (function () { + function ModuleLoader(parent) { + this.loadedModules = []; + this.parent = parent; + } + /** + * Inject required modules in component library + * + * @returns {void} ? + * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required + * @param {Function[]} moduleList - Array of modules to be injected from sample side + */ + ModuleLoader.prototype.inject = function (requiredModules, moduleList) { + var reqLength = requiredModules.length; + if (reqLength === 0) { + this.clean(); + return; + } + if (this.loadedModules.length) { + this.clearUnusedModule(requiredModules); + } + for (var i = 0; i < reqLength; i++) { + var modl = requiredModules[parseInt(i.toString(), 10)]; + for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) { + var module = moduleList_1[_i]; + var modName = modl.member; + if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) { + var moduleObject = Object(_util__WEBPACK_IMPORTED_MODULE_0__["createInstance"])(module, modl.args); + var memberName = this.getMemberName(modName); + if (modl.isProperty) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])(memberName, module, this.parent); + } + else { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["setValue"])(memberName, moduleObject, this.parent); + } + var loadedModule = modl; + loadedModule.member = memberName; + this.loadedModules.push(loadedModule); + } + } + } + }; + /** + * To remove the created object while destroying the control + * + * @returns {void} + */ + ModuleLoader.prototype.clean = function () { + for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) { + var modules = _a[_i]; + if (!modules.isProperty) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(modules.member, this.parent).destroy(); + } + } + this.loadedModules = []; + }; + /** + * Removes all unused modules + * + * @param {ModuleDeclaration[]} moduleList ? + * @returns {void} ? + */ + ModuleLoader.prototype.clearUnusedModule = function (moduleList) { + var _this = this; + var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); }); + var removableModule = this.loadedModules.filter(function (module) { + return usedModules.indexOf(module.member) === -1; + }); + for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) { + var mod = removableModule_1[_i]; + if (!mod.isProperty) { + Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mod.member, this.parent).destroy(); + } + this.loadedModules.splice(this.loadedModules.indexOf(mod), 1); + Object(_util__WEBPACK_IMPORTED_MODULE_0__["deleteObject"])(this.parent, mod.member); + } + }; + /** + * To get the name of the member. + * + * @param {string} name ? + * @returns {string} ? + */ + ModuleLoader.prototype.getMemberName = function (name) { + return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX; + }; + /** + * Returns boolean based on whether the module specified is loaded or not + * + * @param {string} modName ? + * @returns {boolean} ? + */ + ModuleLoader.prototype.isModuleLoaded = function (modName) { + for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) { + var mod = _a[_i]; + if (mod.member === this.getMemberName(modName)) { + return true; + } + } + return false; + }; + return ModuleLoader; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js ***! + \**************************************************************************/ +/*! exports provided: Property, Complex, ComplexFactory, Collection, CollectionFactory, Event, NotifyPropertyChanges, CreateBuilder */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Property", function() { return Property; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Complex", function() { return Complex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComplexFactory", function() { return ComplexFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Collection", function() { return Collection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CollectionFactory", function() { return CollectionFactory; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return Event; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotifyPropertyChanges", function() { return NotifyPropertyChanges; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateBuilder", function() { return CreateBuilder; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + +/** + * Returns the Class Object + * + * @param {ClassObject} instance - instance of ClassObject + * @param {string} curKey - key of the current instance + * @param {Object} defaultValue - default Value + * @param {Object[]} type ? + * @returns {ClassObject} ? + */ +// eslint-disable-next-line +function getObject(instance, curKey, defaultValue, type) { + // eslint-disable-next-line + if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) { + instance.properties["" + curKey] = Object(_util__WEBPACK_IMPORTED_MODULE_0__["createInstance"])(type, [instance, curKey, defaultValue]); + } + return instance.properties["" + curKey]; +} +/** + * Returns object array + * + * @param {ClassObject} instance ? + * @param {string} curKey ? + * @param {Object[]} defaultValue ? + * @param {Object} type ? + * @param {boolean} isSetter ? + * @param {boolean} isFactory ? + * @returns {Object[]} ? + */ +// eslint-disable-next-line +function getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) { + var result = []; + var len = defaultValue ? defaultValue.length : 0; + for (var i = 0; i < len; i++) { + var curType = type; + if (isFactory) { + curType = type(defaultValue[parseInt(i.toString(), 10)], instance); + } + if (isSetter) { + var inst = Object(_util__WEBPACK_IMPORTED_MODULE_0__["createInstance"])(curType, [instance, curKey, {}, true]); + inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true); + result.push(inst); + } + else { + result.push(Object(_util__WEBPACK_IMPORTED_MODULE_0__["createInstance"])(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false])); + } + } + return result; +} +/** + * Returns the properties of the object + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @returns {void} ? + */ +function propertyGetter(defaultValue, curKey) { + return function () { + // eslint-disable-next-line + if (!this.properties.hasOwnProperty(curKey)) { + this.properties["" + curKey] = defaultValue; + } + return this.properties["" + curKey]; + }; +} +/** + * Set the properties for the object + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @returns {void} ? + */ +function propertySetter(defaultValue, curKey) { + return function (newValue) { + if (this.properties["" + curKey] !== newValue) { + // eslint-disable-next-line + var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue; + this.saveChanges(curKey, newValue, oldVal); + this.properties["" + curKey] = newValue; + } + }; +} +/** + * Returns complex objects + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +// eslint-disable-next-line +function complexGetter(defaultValue, curKey, type) { + return function () { + return getObject(this, curKey, defaultValue, type); + }; +} +/** + * Sets complex objects + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +function complexSetter(defaultValue, curKey, type) { + return function (newValue) { + getObject(this, curKey, defaultValue, type).setProperties(newValue); + }; +} +/** + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @param {FunctionConstructor} type ? + * @returns {void} ? + */ +// eslint-disable-next-line +function complexFactoryGetter(defaultValue, curKey, type) { + return function () { + var curType = type({}); + // eslint-disable-next-line + if (this.properties.hasOwnProperty(curKey)) { + return this.properties["" + curKey]; + } + else { + return getObject(this, curKey, defaultValue, curType); + } + }; +} +/** + * + * @param {Object} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +function complexFactorySetter(defaultValue, curKey, type) { + return function (newValue) { + var curType = type(newValue, this); + getObject(this, curKey, defaultValue, curType).setProperties(newValue); + }; +} +/** + * + * @param {Object[]} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +function complexArrayGetter(defaultValue, curKey, type) { + return function () { + var _this = this; + // eslint-disable-next-line + if (!this.properties.hasOwnProperty(curKey)) { + var defCollection = getObjectArray(this, curKey, defaultValue, type, false); + this.properties["" + curKey] = defCollection; + } + var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch) + || this.ignoreCollectionWatch); + // eslint-disable-next-line + if (!this.properties[curKey].hasOwnProperty('push') && !ignore) { + ['push', 'pop'].forEach(function (extendFunc) { + var descriptor = { + value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties["" + curKey]).bind(_this), + configurable: true + }; + Object.defineProperty(_this.properties["" + curKey], extendFunc, descriptor); + }); + } + // eslint-disable-next-line + if (!this.properties[curKey].hasOwnProperty('isComplexArray')) { + Object.defineProperty(this.properties["" + curKey], 'isComplexArray', { value: true }); + } + return this.properties["" + curKey]; + }; +} +/** + * + * @param {Object[]} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +function complexArraySetter(defaultValue, curKey, type) { + return function (newValue) { + this.isComplexArraySetter = true; + var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false); + var newValCollection = getObjectArray(this, curKey, newValue, type, true); + this.isComplexArraySetter = false; + this.saveChanges(curKey, newValCollection, oldValueCollection); + this.properties["" + curKey] = newValCollection; + }; +} +/** + * + * @param {Object[]} defaultValue ? + * @param {string} curKey ? + * @param {Object[]} type ? + * @returns {void} ? + */ +function complexArrayFactorySetter(defaultValue, curKey, type) { + return function (newValue) { + // eslint-disable-next-line + var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue; + var newValCollection = getObjectArray(this, curKey, newValue, type, true, true); + this.saveChanges(curKey, newValCollection, oldValueCollection); + this.properties["" + curKey] = newValCollection; + }; +} +/** + * + * @param {Object[]} defaultValue ? + * @param {string} curKey ? + * @param {FunctionConstructor} type ? + * @returns {void} ? + */ +function complexArrayFactoryGetter(defaultValue, curKey, type) { + return function () { + var curType = type({}); + // eslint-disable-next-line + if (!this.properties.hasOwnProperty(curKey)) { + var defCollection = getObjectArray(this, curKey, defaultValue, curType, false); + this.properties["" + curKey] = defCollection; + } + return this.properties["" + curKey]; + }; +} +/** + * + * @param {string} dFunc ? + * @param {string} curKey ? + * @param {Object} type ? + * @param {Object} prop ? + * @returns {Object} ? + */ +function complexArrayDefinedCallback(dFunc, curKey, type, prop) { + /* tslint:disable no-function-expression */ + return function () { + var newValue = []; + for (var _i = 0; _i < arguments.length; _i++) { + newValue[_i] = arguments[_i]; + } + var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-'; + switch (dFunc) { + case 'push': + for (var i = 0; i < newValue.length; i++) { + Array.prototype["" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]); + var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc); + this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc); + } + break; + case 'pop': + Array.prototype["" + dFunc].apply(prop); + // eslint-disable-next-line + var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc); + this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc); + break; + } + return prop; + }; +} +/** + * + * @param {string} keyString ? + * @param {Object} value ? + * @param {boolean} isControlParent ? + * @param {string} arrayFunction ? + * @returns {Object} ? + */ +function getArrayModel(keyString, value, isControlParent, arrayFunction) { + var modelObject = keyString; + if (isControlParent) { + modelObject = {}; + modelObject["" + keyString] = value; + if (value && typeof value === 'object') { + var action = 'ejsAction'; + modelObject["" + keyString]["" + action] = arrayFunction; + } + } + return modelObject; +} +// eslint-disable-next-line +/** + * Method used to create property. General syntax below. + * + * @param {Object} defaultValue - Specifies the default value of property. + * @returns {PropertyDecorator} ? + * ``` + * @Property('TypeScript') + * propertyName: Type; + * ``` + * @private + */ +function Property(defaultValue) { + return function (target, key) { + var propertyDescriptor = { + set: propertySetter(defaultValue, key), + get: propertyGetter(defaultValue, key), + enumerable: true, + configurable: true + }; + //new property creation + Object.defineProperty(target, key, propertyDescriptor); + addPropertyCollection(target, key, 'prop', defaultValue); + }; +} +/** + * Method used to create complex property. General syntax below. + * + * @param {any} defaultValue - Specifies the default value of property. + * @param {Function} type - Specifies the class type of complex object. + * @returns {PropertyDecorator} ? + * ``` + * @Complex({},Type) + * propertyName: Type; + * ``` + * @private + */ +function Complex(defaultValue, type) { + return function (target, key) { + var propertyDescriptor = { + set: complexSetter(defaultValue, key, type), + get: complexGetter(defaultValue, key, type), + enumerable: true, + configurable: true + }; + //new property creation + Object.defineProperty(target, key, propertyDescriptor); + addPropertyCollection(target, key, 'complexProp', defaultValue, type); + }; +} +/** + * Method used to create complex Factory property. General syntax below. + * + * @param {Function} type - Specifies the class factory type of complex object. + * @returns {PropertyDecorator} ? + * ``` + * @ComplexFactory(defaultType, factoryFunction) + * propertyName: Type1 | Type2; + * ``` + * @private + */ +function ComplexFactory(type) { + return function (target, key) { + var propertyDescriptor = { + set: complexFactorySetter({}, key, type), + get: complexFactoryGetter({}, key, type), + enumerable: true, + configurable: true + }; + //new property creation + Object.defineProperty(target, key, propertyDescriptor); + addPropertyCollection(target, key, 'complexProp', {}, type); + }; +} +/** + * Method used to create complex array property. General syntax below. + * + * @param {any} defaultValue - Specifies the default value of property. + * @param {Function} type - Specifies the class type of complex object. + * @returns {PropertyDecorator} ? + * ``` + * @Collection([], Type); + * propertyName: Type; + * ``` + * @private + */ +function Collection(defaultValue, type) { + return function (target, key) { + var propertyDescriptor = { + set: complexArraySetter(defaultValue, key, type), + get: complexArrayGetter(defaultValue, key, type), + enumerable: true, + configurable: true + }; + //new property creation + Object.defineProperty(target, key, propertyDescriptor); + addPropertyCollection(target, key, 'colProp', defaultValue, type); + }; +} +/** + * Method used to create complex factory array property. General syntax below. + * + * @param {Function} type - Specifies the class type of complex object. + * @returns {PropertyCollectionInfo} ? + * ``` + * @Collection([], Type); + * propertyName: Type; + * ``` + * @private + */ +function CollectionFactory(type) { + return function (target, key) { + var propertyDescriptor = { + set: complexArrayFactorySetter([], key, type), + get: complexArrayFactoryGetter([], key, type), + enumerable: true, + configurable: true + }; + //new property creation + Object.defineProperty(target, key, propertyDescriptor); + addPropertyCollection(target, key, 'colProp', {}, type); + }; +} +/** + * Method used to create event property. General syntax below. + * + * @returns {PropertyDecorator} ? + * ``` + * @Event(()=>{return true;}) + * ``` + * @private + */ +function Event() { + return function (target, key) { + var eventDescriptor = { + set: function (newValue) { + var oldValue = this.properties["" + key]; + if (oldValue !== newValue) { + var finalContext = getParentContext(this, key); + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(oldValue) === false) { + finalContext.context.removeEventListener(finalContext.prefix, oldValue); + } + finalContext.context.addEventListener(finalContext.prefix, newValue); + this.properties["" + key] = newValue; + } + }, + get: propertyGetter(undefined, key), + enumerable: true, + configurable: true + }; + Object.defineProperty(target, key, eventDescriptor); + addPropertyCollection(target, key, 'event'); + }; +} +/** + * NotifyPropertyChanges is triggers the call back when the property has been changed. + * + * @param {Function} classConstructor ? + * @returns {void} ? + * ``` + * @NotifyPropertyChanges + * class DemoClass implements INotifyPropertyChanged { + * + * @Property() + * property1: string; + * + * dataBind: () => void; + * + * constructor() { } + * + * onPropertyChanged(newProp: any, oldProp: any) { + * // Called when property changed + * } + * } + * ``` + * @private + */ +// eslint-disable-next-line +function NotifyPropertyChanges(classConstructor) { + /** Need to code */ +} +/** + * Method used to create the builderObject for the target component. + * + * @param {BuildInfo} target ? + * @param {string} key ? + * @param {string} propertyType ? + * @param {Object} defaultValue ? + * @param {Function} type ? + * @returns {void} ? + * @private + */ +function addPropertyCollection(target, key, propertyType, defaultValue, type) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(target.propList)) { + target.propList = { + props: [], + complexProps: [], + colProps: [], + events: [], + propNames: [], + complexPropNames: [], + colPropNames: [], + eventNames: [] + }; + } + // eslint-disable-next-line + target.propList[propertyType + 's'].push({ + propertyName: key, + defaultValue: defaultValue, + type: type + }); + // eslint-disable-next-line + target.propList[propertyType + 'Names'].push(key); +} +/** + * Returns an object containing the builder properties + * + * @param {Function} component ? + * @returns {Object} ? + * @private + */ +function getBuilderProperties(component) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(component.prototype.builderObject)) { + component.prototype.builderObject = { + properties: {}, propCollections: [], add: function () { + this.isPropertyArray = true; + this.propCollections.push(Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, this.properties, {})); + } + }; + var rex = /complex/; + for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) { + var key = _a[_i]; + var _loop_1 = function (prop) { + if (rex.test(key)) { + component.prototype.builderObject[prop.propertyName] = function (value) { + var childType = {}; + Object(_util__WEBPACK_IMPORTED_MODULE_0__["merge"])(childType, getBuilderProperties(prop.type)); + value(childType); + var tempValue; + if (!childType.isPropertyArray) { + tempValue = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, childType.properties, {}); + } + else { + tempValue = childType.propCollections; + } + this.properties[prop.propertyName] = tempValue; + childType.properties = {}; + childType.propCollections = []; + childType.isPropertyArray = false; + return this; + }; + } + else { + component.prototype.builderObject[prop.propertyName] = function (value) { + this.properties[prop.propertyName] = value; + return this; + }; + } + }; + for (var _b = 0, _c = component.prototype.propList["" + key]; _b < _c.length; _b++) { + var prop = _c[_b]; + _loop_1(prop); + } + } + } + return component.prototype.builderObject; +} +/** + * Method used to create builder for the components + * + * @param {any} component -specifies the target component for which builder to be created. + * @returns {Object} ? + * @private + */ +function CreateBuilder(component) { + var builderFunction = function (element) { + this.element = element; + return this; + }; + var instanceFunction = function (element) { + // eslint-disable-next-line + if (!builderFunction.prototype.hasOwnProperty('create')) { + builderFunction.prototype = getBuilderProperties(component); + builderFunction.prototype.create = function () { + var temp = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, this.properties); + this.properties = {}; + return new component(temp, this.element); + }; + } + return new builderFunction(element); + }; + return instanceFunction; +} +/** + * Returns parent options for the object + * + * @param {Object} context ? + * @param {string} prefix ? + * @returns {ParentOption} ? + * @private + */ +function getParentContext(context, prefix) { + // eslint-disable-next-line + if (context.hasOwnProperty('parentObj') === false) { + return { context: context, prefix: prefix }; + } + else { + var curText = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('propName', context); + if (curText) { + prefix = curText + '-' + prefix; + } + return getParentContext(Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])('parentObj', context), prefix); + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/observer.js": +/*!************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/observer.js ***! + \************************************************************/ +/*! exports provided: Observer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observer", function() { return Observer; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + +var Observer = /** @__PURE__ @class */ (function () { + function Observer(context) { + this.ranArray = []; + this.boundedEvents = {}; + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(context)) { + return; + } + this.context = context; + } + /** + * To attach handler for given property in current context. + * + * @param {string} property - specifies the name of the event. + * @param {Function} handler - Specifies the handler function to be called while event notified. + * @param {Object} context - Specifies the context binded to the handler. + * @param {string} id - specifies the random generated id. + * @returns {void} + */ + Observer.prototype.on = function (property, handler, context, id) { + if (Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(handler)) { + return; + } + var cntxt = context || this.context; + if (this.notExist(property)) { + this.boundedEvents["" + property] = [{ handler: handler, context: cntxt }]; + return; + } + if (!Object(_util__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + if (this.ranArray.indexOf(id) === -1) { + this.ranArray.push(id); + this.boundedEvents["" + property].push({ handler: handler, context: cntxt, id: id }); + } + } + else if (!this.isHandlerPresent(this.boundedEvents["" + property], handler)) { + this.boundedEvents["" + property].push({ handler: handler, context: cntxt }); + } + }; + /** + * To remove handlers from a event attached using on() function. + * + * @param {string} property - specifies the name of the event. + * @param {Function} handler - Optional argument specifies the handler function to be called while event notified. + * @param {string} id - specifies the random generated id. + * @returns {void} ? + */ + Observer.prototype.off = function (property, handler, id) { + if (this.notExist(property)) { + return; + } + var curObject = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(property, this.boundedEvents); + if (handler) { + for (var i = 0; i < curObject.length; i++) { + if (id) { + if (curObject[parseInt(i.toString(), 10)].id === id) { + curObject.splice(i, 1); + var indexLocation = this.ranArray.indexOf(id); + if (indexLocation !== -1) { + this.ranArray.splice(indexLocation, 1); + } + break; + } + } + else if (handler === curObject[parseInt(i.toString(), 10)].handler) { + curObject.splice(i, 1); + break; + } + } + } + else { + delete this.boundedEvents["" + property]; + } + }; + /** + * To notify the handlers in the specified event. + * + * @param {string} property - Specifies the event to be notify. + * @param {Object} argument - Additional parameters to pass while calling the handler. + * @param {Function} successHandler - this function will invoke after event successfully triggered + * @param {Function} errorHandler - this function will invoke after event if it was failure to call. + * @returns {void} ? + */ + Observer.prototype.notify = function (property, argument, successHandler, errorHandler) { + if (this.notExist(property)) { + if (successHandler) { + successHandler.call(this, argument); + } + return; + } + if (argument) { + argument.name = property; + } + var blazor = 'Blazor'; + var curObject = Object(_util__WEBPACK_IMPORTED_MODULE_0__["getValue"])(property, this.boundedEvents).slice(0); + if (window["" + blazor]) { + return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0); + } + else { + for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) { + var cur = curObject_1[_i]; + cur.handler.call(cur.context, argument); + } + if (successHandler) { + successHandler.call(this, argument); + } + } + }; + Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) { + var _this = this; + var isTrigger = index === objs.length - 1; + if (index < objs.length) { + var obj_1 = objs[parseInt(index.toString(), 10)]; + var promise = obj_1.handler.call(obj_1.context, argument); + if (promise && typeof promise.then === 'function') { + if (!successHandler) { + return promise; + } + promise.then(function (data) { + data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data; + Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(argument, argument, data, true); + if (successHandler && isTrigger) { + successHandler.call(obj_1.context, argument); + } + else { + return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1); + } + }).catch(function (data) { + if (errorHandler) { + errorHandler.call(obj_1.context, typeof data === 'string' && + _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data); + } + }); + } + else if (successHandler && isTrigger) { + successHandler.call(obj_1.context, argument); + } + else { + return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1); + } + } + }; + // eslint-disable-next-line + Observer.prototype.dateReviver = function (key, value) { + var dPattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/; + if (_util__WEBPACK_IMPORTED_MODULE_0__["isBlazor"] && typeof value === 'string' && value.match(dPattern) !== null) { + return (new Date(value)); + } + return (value); + }; + Observer.prototype.isJson = function (value) { + try { + JSON.parse(value); + } + catch (e) { + return false; + } + return true; + }; + /** + * To destroy handlers in the event + * + * @returns {void} ? + */ + Observer.prototype.destroy = function () { + this.boundedEvents = this.context = undefined; + }; + /** + * Returns if the property exists. + * + * @param {string} prop ? + * @returns {boolean} ? + */ + Observer.prototype.notExist = function (prop) { + // eslint-disable-next-line + return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0; + }; + /** + * Returns if the handler is present. + * + * @param {BoundOptions[]} boundedEvents ? + * @param {Function} handler ? + * @returns {boolean} ? + */ + Observer.prototype.isHandlerPresent = function (boundedEvents, handler) { + for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) { + var cur = boundedEvents_1[_i]; + if (cur.handler === handler) { + return true; + } + } + return false; + }; + return Observer; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/sanitize-helper.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/sanitize-helper.js ***! + \*******************************************************************/ +/*! exports provided: SanitizeHtmlHelper */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SanitizeHtmlHelper", function() { return SanitizeHtmlHelper; }); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/** + * SanitizeHtmlHelper for sanitize the value. + */ + +var removeTags = [ + 'script', + 'style', + 'iframe[src]', + 'link[href*="javascript:"]', + 'object[type="text/x-scriptlet"]', + 'object[data^="data:text/html;base64"]', + 'img[src^="data:text/html;base64"]', + '[src^="javascript:"]', + '[dynsrc^="javascript:"]', + '[lowsrc^="javascript:"]', + '[type^="application/x-shockwave-flash"]' +]; +var removeAttrs = [ + { attribute: 'href', selector: '[href*="javascript:"]' }, + { attribute: 'background', selector: '[background^="javascript:"]' }, + { attribute: 'style', selector: '[style*="javascript:"]' }, + { attribute: 'style', selector: '[style*="expression("]' }, + { attribute: 'href', selector: 'a[href^="data:text/html;base64"]' } +]; +var jsEvents = ['onchange', + 'onclick', + 'onmouseover', + 'onmouseout', + 'onkeydown', + 'onload', + 'onerror', + 'onblur', + 'onfocus', + 'onbeforeload', + 'onbeforeunload', + 'onkeyup', + 'onsubmit', + 'onafterprint', + 'onbeforeonload', + 'onbeforeprint', + 'oncanplay', + 'oncanplaythrough', + 'oncontextmenu', + 'ondblclick', + 'ondrag', + 'ondragend', + 'ondragenter', + 'ondragleave', + 'ondragover', + 'ondragstart', + 'ondrop', + 'ondurationchange', + 'onemptied', + 'onended', + 'onformchange', + 'onforminput', + 'onhaschange', + 'oninput', + 'oninvalid', + 'onkeypress', + 'onloadeddata', + 'onloadedmetadata', + 'onloadstart', + 'onmessage', + 'onmousedown', + 'onmousemove', + 'onmouseup', + 'onmousewheel', + 'onoffline', + 'onoine', + 'ononline', + 'onpagehide', + 'onpageshow', + 'onpause', + 'onplay', + 'onplaying', + 'onpopstate', + 'onprogress', + 'onratechange', + 'onreadystatechange', + 'onredo', + 'onresize', + 'onscroll', + 'onseeked', + 'onseeking', + 'onselect', + 'onstalled', + 'onstorage', + 'onsuspend', + 'ontimeupdate', + 'onundo', + 'onunload', + 'onvolumechange', + 'onwaiting', + 'onmouseenter', + 'onmouseleave', + 'onstart', + 'onpropertychange', + 'oncopy', + 'ontoggle', + 'onpointerout', + 'onpointermove', + 'onpointerleave', + 'onpointerenter', + 'onpointerrawupdate', + 'onpointerover', + 'onbeforecopy', + 'onbeforecut', + 'onbeforeinput' +]; +var SanitizeHtmlHelper = /** @__PURE__ @class */ (function () { + function SanitizeHtmlHelper() { + } + SanitizeHtmlHelper.beforeSanitize = function () { + return { + selectors: { + tags: removeTags, + attributes: removeAttrs + } + }; + }; + SanitizeHtmlHelper.sanitize = function (value) { + var item = this.beforeSanitize(); + var output = this.serializeValue(item, value); + return output; + }; + SanitizeHtmlHelper.serializeValue = function (item, value) { + this.removeAttrs = item.selectors.attributes; + this.removeTags = item.selectors.tags; + this.wrapElement = document.createElement('div'); + this.wrapElement.innerHTML = value; + this.removeXssTags(); + this.removeJsEvents(); + this.removeXssAttrs(); + var tempEleValue = this.wrapElement.innerHTML; + this.removeElement(); + return tempEleValue.replace('&', '&'); + }; + SanitizeHtmlHelper.removeElement = function () { + // Removes an element's attibute to avoid html tag validation + var nodes = this.wrapElement.children; + for (var j = 0; j < nodes.length; j++) { + var attribute = nodes[parseInt(j.toString(), 10)].attributes; + for (var i = 0; i < attribute.length; i++) { + this.wrapElement.children[parseInt(j.toString(), 10)].removeAttribute(attribute[parseInt(i.toString(), 10)].localName); + } + } + }; + SanitizeHtmlHelper.removeXssTags = function () { + var elements = this.wrapElement.querySelectorAll(this.removeTags.join(',')); + if (elements.length > 0) { + elements.forEach(function (element) { + Object(_dom__WEBPACK_IMPORTED_MODULE_0__["detach"])(element); + }); + } + else { + return; + } + }; + SanitizeHtmlHelper.removeJsEvents = function () { + var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']'); + if (elements.length > 0) { + elements.forEach(function (element) { + jsEvents.forEach(function (attr) { + if (element.hasAttribute(attr)) { + element.removeAttribute(attr); + } + }); + }); + } + else { + return; + } + }; + SanitizeHtmlHelper.removeXssAttrs = function () { + var _this = this; + // eslint-disable-next-line + this.removeAttrs.forEach(function (item, index) { + var elements = _this.wrapElement.querySelectorAll(item.selector); + if (elements.length > 0) { + elements.forEach(function (element) { + element.removeAttribute(item.attribute); + }); + } + }); + }; + return SanitizeHtmlHelper; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/template-engine.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/template-engine.js ***! + \*******************************************************************/ +/*! exports provided: blazorTemplates, getRandomId, compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, initializeCSPTemplate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blazorTemplates", function() { return blazorTemplates; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRandomId", function() { return getRandomId; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compile", function() { return compile; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateBlazorTemplate", function() { return updateBlazorTemplate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resetBlazorTemplate", function() { return resetBlazorTemplate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTemplateEngine", function() { return setTemplateEngine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTemplateEngine", function() { return getTemplateEngine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initializeCSPTemplate", function() { return initializeCSPTemplate; }); +/* harmony import */ var _template__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./template */ "./ej2-resources/22.1.37/scripts/ej2-base/template.js"); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/** + * Template Engine Bridge + */ + + + +var HAS_ROW = /^[\n\r.]+ { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString(); +// } +/** + * + * @param {string} str ? + * @param {boolean} addNS ? + * @param {string} nameSpace ? + * @param {string[]} ignoreList ? + * @returns {string} ? + */ +function NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) { + return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '["' + str : str); +} +// eslint-disable-next-line +function SlashReplace(tempStr) { + var double = '\\\\'; + if (tempStr.match(DOUBLE_SLASH)) { + // eslint-disable-next-line + tempStr = tempStr; + } + else { + tempStr = tempStr.replace(SINGLE_SLASH, double); + } + return tempStr; +} +/** + * + * @param {string} str ? + * @param {string} nameSpaceNew ? + * @param {string[]} keys ? + * @param {boolean} ignorePrefix ? + * @returns {string} ? + */ +function HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) { + str = str.trim(); + var windowFunc = /\window\./gm; + if (!windowFunc.test(str)) { + var quotes = /'|"/gm; + var splRegexp = /@|\$|#/gm; + if (splRegexp.test(str)) { + str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '"]'; + } + if (ARR_OBJ.test(str)) { + return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys); + } + else { + return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix); + } + } + else { + return str; + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/touch.js": +/*!*********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/touch.js ***! + \*********************************************************/ +/*! exports provided: SwipeSettings, Touch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwipeSettings", function() { return SwipeSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Touch", function() { return Touch; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); +/* harmony import */ var _notify_property_change__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notify-property-change */ "./ej2-resources/22.1.37/scripts/ej2-base/notify-property-change.js"); +/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser */ "./ej2-resources/22.1.37/scripts/ej2-base/browser.js"); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base */ "./ej2-resources/22.1.37/scripts/ej2-base/base.js"); +/* harmony import */ var _child_property__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./child-property */ "./ej2-resources/22.1.37/scripts/ej2-base/child-property.js"); +/* harmony import */ var _event_handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./event-handler */ "./ej2-resources/22.1.37/scripts/ej2-base/event-handler.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +/** + * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc.., + */ +var SwipeSettings = /** @__PURE__ @class */ (function (_super) { + __extends(SwipeSettings, _super); + function SwipeSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Property"])(50) + ], SwipeSettings.prototype, "swipeThresholdDistance", void 0); + return SwipeSettings; +}(_child_property__WEBPACK_IMPORTED_MODULE_4__["ChildProperty"])); + +var swipeRegex = /(Up|Down)/; +/** + * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc.., + * ```typescript + * let node: HTMLElement; + * let touchObj: Touch = new Touch({ + * element: node, + * tap: function (e) { + * // tap handler function code + * } + * tapHold: function (e) { + * // tap hold handler function code + * } + * scroll: function (e) { + * // scroll handler function code + * } + * swipe: function (e) { + * // swipe handler function code + * } + * }); + * ``` + */ +var Touch = /** @__PURE__ @class */ (function (_super) { + __extends(Touch, _super); + /* End-Properties */ + function Touch(element, options) { + var _this = _super.call(this, options, element) || this; + _this.touchAction = true; + _this.tapCount = 0; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + _this.startEvent = function (evt) { + if (_this.touchAction === true) { + var point = _this.updateChangeTouches(evt); + if (evt.changedTouches !== undefined) { + _this.touchAction = false; + } + _this.isTouchMoved = false; + _this.movedDirection = ''; + _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY }; + _this.startEventData = point; + _this.hScrollLocked = _this.vScrollLocked = false; + _this.tStampStart = Date.now(); + _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].add(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchMoveEvent, _this.moveEvent, _this); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].add(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchEndEvent, _this.endEvent, _this); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].add(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchCancelEvent, _this.cancelEvent, _this); + } + }; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + _this.moveEvent = function (evt) { + var point = _this.updateChangeTouches(evt); + _this.movedPoint = point; + _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY); + var eScrollArgs = {}; + if (_this.isTouchMoved) { + clearTimeout(_this.timeOutTapHold); + _this.calcScrollPoints(evt); + var scrollArg = { + startEvents: _this.startEventData, + originalEvent: evt, startX: _this.startPoint.clientX, + startY: _this.startPoint.clientY, distanceX: _this.distanceX, + distanceY: _this.distanceY, scrollDirection: _this.scrollDirection, + velocity: _this.getVelocity(point) + }; + eScrollArgs = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(eScrollArgs, {}, scrollArg); + _this.trigger('scroll', eScrollArgs); + _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY }; + } + }; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + _this.cancelEvent = function (evt) { + clearTimeout(_this.timeOutTapHold); + clearTimeout(_this.timeOutTap); + _this.tapCount = 0; + _this.swipeFn(evt); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchCancelEvent, _this.cancelEvent); + }; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + _this.endEvent = function (evt) { + _this.swipeFn(evt); + if (!_this.isTouchMoved) { + if (typeof _this.tap === 'function') { + _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount }); + _this.timeOutTap = setTimeout(function () { + _this.tapCount = 0; + }, _this.tapThreshold); + } + } + _this.modeclear(); + }; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + _this.swipeFn = function (evt) { + clearTimeout(_this.timeOutTapHold); + clearTimeout(_this.timeOutTap); + var point = _this.updateChangeTouches(evt); + var diffX = point.clientX - _this.startPoint.clientX; + var diffY = point.clientY - _this.startPoint.clientY; + diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX); + diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX); + _this.isTouchMoved = diffX > 1 || diffY > 1; + var isFirefox = (/Firefox/).test(_browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].userAgent); + if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') { + _this.isTouchMoved = false; + } + _this.endPoint = point; + _this.calcPoints(evt); + var swipeArgs = { + originalEvent: evt, + startEvents: _this.startEventData, + startX: _this.startPoint.clientX, + startY: _this.startPoint.clientY, + distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection, + velocity: _this.getVelocity(point) + }; + if (_this.isTouchMoved) { + var eSwipeArgs = void 0; + var tDistance = _this.swipeSettings.swipeThresholdDistance; + // eslint-disable-next-line + eSwipeArgs = Object(_util__WEBPACK_IMPORTED_MODULE_0__["extend"])(eSwipeArgs, _this.defaultArgs, swipeArgs); + var canTrigger = false; + var ele = _this.element; + var scrollBool = _this.isScrollable(ele); + var moved = swipeRegex.test(_this.movedDirection); + if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) { + if (!scrollBool) { + canTrigger = true; + } + else { + canTrigger = _this.checkSwipe(ele, moved); + } + } + if (canTrigger) { + _this.trigger('swipe', eSwipeArgs); + } + } + _this.modeclear(); + }; + _this.modeclear = function () { + _this.modeClear = setTimeout(function () { + _this.touchAction = true; + }, (typeof _this.tap !== 'function' ? 0 : 20)); + _this.lastTapTime = new Date().getTime(); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchMoveEvent, _this.moveEvent); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchEndEvent, _this.endEvent); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(_this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchCancelEvent, _this.cancelEvent); + }; + _this.bind(); + return _this; + } + // triggers when property changed + /** + * + * @private + * @param {TouchModel} newProp ? + * @param {TouchModel} oldProp ? + * @returns {void} ? + */ + // eslint-disable-next-line + Touch.prototype.onPropertyChanged = function (newProp, oldProp) { + //No Code to handle + }; + Touch.prototype.bind = function () { + this.wireEvents(); + if (_browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].isIE) { + this.element.classList.add('e-block-touch'); + } + }; + /** + * To destroy the touch instance. + * + * @returns {void} + */ + Touch.prototype.destroy = function () { + this.unwireEvents(); + _super.prototype.destroy.call(this); + }; + // Need to changes the event binding once we updated the event handler. + Touch.prototype.wireEvents = function () { + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].add(this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchStartEvent, this.startEvent, this); + }; + Touch.prototype.unwireEvents = function () { + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchStartEvent, this.startEvent); + }; + /** + * Returns module name as touch + * + * @returns {string} ? + * @private + */ + Touch.prototype.getModuleName = function () { + return 'touch'; + }; + /** + * Returns if the HTML element is Scrollable. + * + * @param {HTMLElement} element - HTML Element to check if Scrollable. + * @returns {boolean} ? + */ + Touch.prototype.isScrollable = function (element) { + var eleStyle = getComputedStyle(element); + var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY; + if ((/(auto|scroll)/).test(style)) { + return true; + } + return false; + }; + /** + * + * @param {MouseEventArgs | TouchEventArgs} evt ? + * @returns {void} ? + */ + Touch.prototype.tapHoldEvent = function (evt) { + this.tapCount = 0; + this.touchAction = true; + var eTapArgs; + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchMoveEvent, this.moveEvent); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchEndEvent, this.endEvent); + // eslint-disable-next-line + eTapArgs = { originalEvent: evt }; + this.trigger('tapHold', eTapArgs); + _event_handler__WEBPACK_IMPORTED_MODULE_5__["EventHandler"].remove(this.element, _browser__WEBPACK_IMPORTED_MODULE_2__["Browser"].touchCancelEvent, this.cancelEvent); + }; + Touch.prototype.calcPoints = function (evt) { + var point = this.updateChangeTouches(evt); + this.defaultArgs = { originalEvent: evt }; + this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX))); + this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY))); + if (this.distanceX > this.distanceY) { + this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left'; + } + else { + this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down'; + } + }; + Touch.prototype.calcScrollPoints = function (evt) { + var point = this.updateChangeTouches(evt); + this.defaultArgs = { originalEvent: evt }; + this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX))); + this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY))); + if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) { + this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left'; + this.hScrollLocked = true; + } + else { + this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down'; + this.vScrollLocked = true; + } + }; + Touch.prototype.getVelocity = function (pnt) { + var newX = pnt.clientX; + var newY = pnt.clientY; + var newT = Date.now(); + var xDist = newX - this.startPoint.clientX; + var yDist = newY - this.startPoint.clientX; + var interval = newT - this.tStampStart; + return Math.sqrt(xDist * xDist + yDist * yDist) / interval; + }; + // eslint-disable-next-line + Touch.prototype.checkSwipe = function (ele, flag) { + var keys = ['scroll', 'offset']; + var temp = flag ? ['Height', 'Top'] : ['Width', 'Left']; + if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) { + return true; + } + return (ele[keys[0] + temp[1]] === 0) || + (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]); + }; + Touch.prototype.updateChangeTouches = function (evt) { + var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt; + return point; + }; + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], Touch.prototype, "tap", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], Touch.prototype, "tapHold", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], Touch.prototype, "swipe", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], Touch.prototype, "scroll", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Property"])(350) + ], Touch.prototype, "tapThreshold", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Property"])(750) + ], Touch.prototype, "tapHoldThreshold", void 0); + __decorate([ + Object(_notify_property_change__WEBPACK_IMPORTED_MODULE_1__["Complex"])({}, SwipeSettings) + ], Touch.prototype, "swipeSettings", void 0); + Touch = __decorate([ + _notify_property_change__WEBPACK_IMPORTED_MODULE_1__["NotifyPropertyChanges"] + ], Touch); + return Touch; +}(_base__WEBPACK_IMPORTED_MODULE_3__["Base"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/util.js": +/*!********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/util.js ***! + \********************************************************/ +/*! exports provided: disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "disableBlazorMode", function() { return disableBlazorMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createInstance", function() { return createInstance; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setImmediate", function() { return setImmediate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getValue", function() { return getValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setValue", function() { return setValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteObject", function() { return deleteObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containerObject", function() { return containerObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnumValue", function() { return getEnumValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNullOrUndefined", function() { return isNullOrUndefined; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUndefined", function() { return isUndefined; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUniqueID", function() { return getUniqueID; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryParams", function() { return queryParams; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObjectArray", function() { return isObjectArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareElementParent", function() { return compareElementParent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "print", function() { return print; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatUnit", function() { return formatUnit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableBlazorMode", function() { return enableBlazorMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBlazor", function() { return isBlazor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return getElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInstance", function() { return getInstance; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addInstance", function() { return addInstance; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "uniqueID", function() { return uniqueID; }); +var instances = 'ej2_instances'; +var uid = 0; +var isBlazorPlatform = false; +/** + * Function to check whether the platform is blazor or not. + * + * @returns {void} result + * @private + */ +function disableBlazorMode() { + isBlazorPlatform = false; +} +/** + * Create Instance from constructor function with desired parameters. + * + * @param {Function} classFunction - Class function to which need to create instance + * @param {any[]} params - Parameters need to passed while creating instance + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function createInstance(classFunction, params) { + var arrayParam = params; + arrayParam.unshift(undefined); + return new (Function.prototype.bind.apply(classFunction, arrayParam)); +} +/** + * To run a callback function immediately after the browser has completed other operations. + * + * @param {Function} handler - callback function to be triggered. + * @returns {Function} ? + * @private + */ +function setImmediate(handler) { + var unbind; + // eslint-disable-next-line + var num = new Uint16Array(5); + var intCrypto = window.msCrypto || window.crypto; + intCrypto.getRandomValues(num); + var secret = 'ej2' + combineArray(num); + // eslint-disable-next-line + var messageHandler = function (event) { + if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) { + handler(); + unbind(); + } + }; + window.addEventListener('message', messageHandler, false); + window.postMessage(secret, '*'); + return unbind = function () { + window.removeEventListener('message', messageHandler); + handler = messageHandler = secret = undefined; + }; +} +/** + * To get nameSpace value from the desired object. + * + * @param {string} nameSpace - String value to the get the inner object + * @param {any} obj - Object to get the inner object value. + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function getValue(nameSpace, obj) { + // eslint-disable-next-line + var value = obj; + var splits = nameSpace.replace(/\[/g, '.').replace(/\]/g, '').split('.'); + for (var i = 0; i < splits.length && !isUndefined(value); i++) { + value = value[splits[parseInt(i.toString(), 10)]]; + } + return value; +} +/** + * To set value for the nameSpace in desired object. + * + * @param {string} nameSpace - String value to the get the inner object + * @param {any} value - Value that you need to set. + * @param {any} obj - Object to get the inner object value. + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function setValue(nameSpace, value, obj) { + var keys = nameSpace.replace(/\[/g, '.').replace(/\]/g, '').split('.'); + // eslint-disable-next-line + var start = obj || {}; + // eslint-disable-next-line + var fromObj = start; + var i; + var length = keys.length; + var key; + for (i = 0; i < length; i++) { + key = keys[parseInt(i.toString(), 10)]; + if (i + 1 === length) { + fromObj["" + key] = value === undefined ? {} : value; + } + else if (isNullOrUndefined(fromObj["" + key])) { + fromObj["" + key] = {}; + } + fromObj = fromObj["" + key]; + } + return start; +} +/** + * Delete an item from Object + * + * @param {any} obj - Object in which we need to delete an item. + * @param {string} key - String value to the get the inner object + * @returns {void} ? + * @private + */ +// eslint-disable-next-line +function deleteObject(obj, key) { + delete obj["" + key]; +} +/** + *@private + */ +// eslint-disable-next-line +var containerObject = typeof window !== 'undefined' ? window : {}; +/** + * Check weather the given argument is only object. + * + * @param {any} obj - Object which is need to check. + * @returns {boolean} ? + * @private + */ +// eslint-disable-next-line +function isObject(obj) { + var objCon = {}; + return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor); +} +/** + * To get enum value by giving the string. + * + * @param {any} enumObject - Enum object. + * @param {string} enumValue - Enum value to be searched + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function getEnumValue(enumObject, enumValue) { + // eslint-disable-next-line + return enumObject[enumValue]; +} +/** + * Merge the source object into destination object. + * + * @param {any} source - source object which is going to merge with destination object + * @param {any} destination - object need to be merged + * @returns {void} ? + * @private + */ +function merge(source, destination) { + if (!isNullOrUndefined(destination)) { + var temrObj = source; + var tempProp = destination; + var keys = Object.keys(destination); + var deepmerge = 'deepMerge'; + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + if (!isNullOrUndefined(temrObj["" + deepmerge]) && (temrObj["" + deepmerge].indexOf(key) !== -1) && + (isObject(tempProp["" + key]) || Array.isArray(tempProp["" + key]))) { + extend(temrObj["" + key], temrObj["" + key], tempProp["" + key], true); + } + else { + temrObj["" + key] = tempProp["" + key]; + } + } + } +} +/** + * Extend the two object with newer one. + * + * @param {any} copied - Resultant object after merged + * @param {Object} first - First object need to merge + * @param {Object} second - Second object need to merge + * @param {boolean} deep ? + * @returns {Object} ? + * @private + */ +function extend(copied, first, second, deep) { + var result = copied && typeof copied === 'object' ? copied : {}; + var length = arguments.length; + if (deep) { + length = length - 1; + } + var _loop_1 = function (i) { + // eslint-disable-next-line + if (!arguments_1[i]) { + return "continue"; + } + // eslint-disable-next-line + var obj1 = arguments_1[i]; + Object.keys(obj1).forEach(function (key) { + var src = result["" + key]; + var copy = obj1["" + key]; + var clone; + var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length); + // eslint-disable-next-line + var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true; + if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) { + if (isObject(copy)) { + clone = src ? src : {}; + // eslint-disable-next-line + if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) { + extend(clone, {}, copy, deep); + } + else { + result["" + key] = extend(clone, {}, copy, deep); + } + } + else { + /* istanbul ignore next */ + clone = isBlazor() ? src && Object.keys(copy).length : src ? src : []; + // eslint-disable-next-line + result["" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length)); + } + } + else { + result["" + key] = copy; + } + }); + }; + var arguments_1 = arguments; + for (var i = 1; i < length; i++) { + _loop_1(i); + } + return result; +} +/** + * To check whether the object is null or undefined. + * + * @param {Object} value - To check the object is null or undefined + * @returns {boolean} ? + * @private + */ +function isNullOrUndefined(value) { + return value === undefined || value === null; +} +/** + * To check whether the object is undefined. + * + * @param {Object} value - To check the object is undefined + * @returns {boolean} ? + * @private + */ +function isUndefined(value) { + return ('undefined' === typeof value); +} +/** + * To return the generated unique name + * + * @param {string} definedName - To concatenate the unique id to provided name + * @returns {string} ? + * @private + */ +function getUniqueID(definedName) { + return definedName + '_' + uid++; +} +/** + * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly. + * + * @param {Function} eventFunction - Specifies the function to run when the event occurs + * @param {number} delay - A number that specifies the milliseconds for function delay call option + * @returns {Function} ? + * @private + */ +function debounce(eventFunction, delay) { + // eslint-disable-next-line + var out; + return function () { + var _this = this; + // eslint-disable-next-line + var args = arguments; + var later = function () { + out = null; + return eventFunction.apply(_this, args); + }; + clearTimeout(out); + out = setTimeout(later, delay); + }; +} +/** + * To convert the object to string for query url + * + * @param {Object} data ? + * @returns {string} ? + * @private + */ +// eslint-disable-next-line +function queryParams(data) { + var array = []; + var keys = Object.keys(data); + for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) { + var key = keys_2[_i]; + array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data["" + key])); + } + return array.join('&'); +} +/** + * To check whether the given array contains object. + * + * @param {any} value - Specifies the T type array to be checked. + * @returns {boolean} ? + * @private + */ +function isObjectArray(value) { + var parser = Object.prototype.toString; + if (parser.call(value) === '[object Array]') { + if (parser.call(value[0]) === '[object Object]') { + return true; + } + } + return false; +} +/** + * To check whether the child element is descendant to parent element or parent and child are same element. + * + * @param {Element} child - Specifies the child element to compare with parent. + * @param {Element} parent - Specifies the parent element. + * @returns {boolean} ? + * @private + */ +function compareElementParent(child, parent) { + var node = child; + if (node === parent) { + return true; + } + else if (node === document || !node) { + return false; + } + else { + return compareElementParent(node.parentNode, parent); + } +} +/** + * To throw custom error message. + * + * @param {string} message - Specifies the error message to be thrown. + * @returns {void} ? + * @private + */ +function throwError(message) { + try { + throw new Error(message); + } + catch (e) { + // eslint-disable-next-line + throw e.message + '\n' + e.stack; + } +} +/** + * This function is used to print given element + * + * @param {Element} element - Specifies the print content element. + * @param {Window} printWindow - Specifies the print window. + * @returns {Window} ? + * @private + */ +function print(element, printWindow) { + var div = document.createElement('div'); + var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style')); + var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style')); + if (blinks.length) { + for (var l = 0, len = blinks.length; l < len; l++) { + links.push(blinks[parseInt(l.toString(), 10)]); + } + } + var reference = ''; + if (isNullOrUndefined(printWindow)) { + printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no'); + } + div.appendChild(element.cloneNode(true)); + for (var i = 0, len = links.length; i < len; i++) { + reference += links[parseInt(i.toString(), 10)].outerHTML; + } + printWindow.document.write(' ' + reference + '' + div.innerHTML + + '' + ''); + printWindow.document.close(); + printWindow.focus(); + // eslint-disable-next-line + var interval = setInterval(function () { + if (printWindow.ready) { + printWindow.print(); + printWindow.close(); + clearInterval(interval); + } + }, 500); + return printWindow; +} +/** + * Function to normalize the units applied to the element. + * + * @param {number|string} value ? + * @returns {string} result + * @private + */ +function formatUnit(value) { + var result = value + ''; + if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) { + return result; + } + return result + 'px'; +} +/** + * Function to check whether the platform is blazor or not. + * + * @returns {void} result + * @private + */ +function enableBlazorMode() { + isBlazorPlatform = true; +} +/** + * Function to check whether the platform is blazor or not. + * + * @returns {boolean} result + * @private + */ +function isBlazor() { + return isBlazorPlatform; +} +/** + * Function to convert xPath to DOM element in blazor platform + * + * @returns {HTMLElement} result + * @param {HTMLElement | object} element ? + * @private + */ +function getElement(element) { + var xPath = 'xPath'; + if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element["" + xPath])) { + return document.evaluate(element["" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + } + return element; +} +/** + * Function to fetch the Instances of a HTML element for the given component. + * + * @param {string | HTMLElement} element ? + * @param {any} component ? + * @returns {Object} ? + * @private + */ +// eslint-disable-next-line +function getInstance(element, component) { + // eslint-disable-next-line + var elem = (typeof (element) === 'string') ? document.querySelector(element) : element; + if (elem["" + instances]) { + for (var _i = 0, _a = elem["" + instances]; _i < _a.length; _i++) { + var inst = _a[_i]; + if (inst instanceof component) { + return inst; + } + } + } + return null; +} +/** + * Function to add instances for the given element. + * + * @param {string | HTMLElement} element ? + * @param {Object} instance ? + * @returns {void} ? + * @private + */ +function addInstance(element, instance) { + // eslint-disable-next-line + var elem = (typeof (element) === 'string') ? document.querySelector(element) : element; + if (elem["" + instances]) { + elem["" + instances].push(instance); + } + else { + elem["" + instances] = [instance]; + } +} +/** + * Function to generate the unique id. + * + * @returns {any} ? + * @private + */ +// eslint-disable-next-line +function uniqueID() { + if ((typeof window) === 'undefined') { + return; + } + // eslint-disable-next-line + var num = new Uint16Array(5); + var intCrypto = window.msCrypto || window.crypto; + return intCrypto.getRandomValues(num); +} +/** + * + * @param {Int16Array} num ? + * @returns {string} ? + */ +function combineArray(num) { + var ret = ''; + for (var i = 0; i < 5; i++) { + ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)]; + } + return ret; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-base/validate-lic.js": +/*!****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-base/validate-lic.js ***! + \****************************************************************/ +/*! exports provided: componentList, registerLicense, validateLicense, getVersion, createLicenseOverlay */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "componentList", function() { return componentList; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "registerLicense", function() { return registerLicense; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateLicense", function() { return validateLicense; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVersion", function() { return getVersion; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createLicenseOverlay", function() { return createLicenseOverlay; }); +/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom */ "./ej2-resources/22.1.37/scripts/ej2-base/dom.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-base/util.js"); + + +var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview']; +var bypassKey = [115, 121, 110, 99, 102, 117, 115, 105, + 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108, + 105, 100, 97, 116, 101, 100]; +var accountURL; +/** + * License validation module + * + * @private + */ +var LicenseValidator = /** @__PURE__ @class */ (function () { + function LicenseValidator(key) { + this.isValidated = false; + this.isLicensed = true; + this.version = '22'; + this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i; + this.errors = { + noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' + + ' To remove the license validation message permanently, a valid license key must be included.', + trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' + + ' To remove the license validation message permanently, a valid license key must be included.', + versionMismatched: 'The included Syncfusion license key is invalid.', + platformMismatched: 'The included Syncfusion license key is invalid.', + invalidKey: 'The included Syncfusion license key is invalid.' + }; + /** + * To manage licensing operation. + */ + this.manager = (function () { + var licKey = null; + /** + * Sets the license key. + * + * @param {string} key - Specifies the license key. + * @returns {void} + */ + function set(key) { licKey = key; } + /** + * Gets the license key. + * + * @returns {string} -Gets the license key. + */ + function get() { return licKey; } + return { + setKey: set, + getKey: get + }; + })(); + /** + * To manage npx licensing operation. + */ + this.npxManager = (function () { + var npxLicKey = 'npxKeyReplace'; + /** + * Gets the license key. + * + * @returns {string} - Gets the license key. + */ + function get() { return npxLicKey; } + return { + getKey: get + }; + })(); + this.manager.setKey(key); + } + /** + * To validate the provided license key. + */ + LicenseValidator.prototype.validate = function () { + var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46, + 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116]; + var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46, + 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76]; + if (!this.isValidated && (_util__WEBPACK_IMPORTED_MODULE_1__["containerObject"] && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(convertToChar(bypassKey), _util__WEBPACK_IMPORTED_MODULE_1__["containerObject"]) && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])('Blazor', _util__WEBPACK_IMPORTED_MODULE_1__["containerObject"]))) { + var validateMsg = void 0; + var validateURL = void 0; + if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) { + var result = this.getInfoFromKey(); + if (result && result.length) { + for (var _i = 0, result_1 = result; _i < result_1.length; _i++) { + var res = result_1[_i]; + if (!this.platform.test(res.platform) || res.invalidPlatform) { + validateMsg = this.errors.platformMismatched; + } + else if (res.version.indexOf(this.version) === -1) { + validateMsg = this.errors.versionMismatched; + validateMsg = validateMsg.replace('##LicenseVersion', res.version); + validateMsg = validateMsg.replace('##Requireversion', this.version + '.x'); + } + else if (res.expiryDate) { + var expDate = new Date(res.expiryDate); + var currDate = new Date(); + if (expDate !== currDate && expDate < currDate) { + validateMsg = this.errors.trailExpired; + } + else { + break; + } + } + } + } + else { + validateMsg = this.errors.invalidKey; + } + } + else { + var licenseContent = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(convertToChar(contentKey), _util__WEBPACK_IMPORTED_MODULE_1__["containerObject"]); + validateURL = Object(_util__WEBPACK_IMPORTED_MODULE_1__["getValue"])(convertToChar(URLKey), _util__WEBPACK_IMPORTED_MODULE_1__["containerObject"]); + if (licenseContent && licenseContent !== '') { + validateMsg = licenseContent; + } + else { + validateMsg = this.errors.noLicense; + } + } + if (validateMsg && typeof document !== 'undefined' && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(document)) { + accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjI="; + var errorDiv = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { + innerHTML: "" + validateMsg + ' ' + '
Claim your free account' + }); + errorDiv.setAttribute('style', "position: fixed;\n top: 10px;\n left: 10px;\n right: 10px;\n font-size: 14px;\n background: #EEF2FF;\n color: #222222;\n z-index: 999999999;\n text-align: left;\n border: 1px solid #EEEEEE;\n padding: 10px 11px 10px 50px;\n border-radius: 8px;\n font-family: Helvetica Neue, Helvetica, Arial;"); + document.body.appendChild(errorDiv); + this.isLicensed = false; + } + this.isValidated = true; + Object(_util__WEBPACK_IMPORTED_MODULE_1__["setValue"])(convertToChar(bypassKey), this.isValidated, _util__WEBPACK_IMPORTED_MODULE_1__["containerObject"]); + } + return this.isLicensed; + }; + LicenseValidator.prototype.getDecryptedData = function (key) { + try { + return atob(key); + } + catch (error) { + return ''; + } + }; + /** + * Get license information from key. + * + * @returns {IValidator} - Get license information from key. + */ + LicenseValidator.prototype.getInfoFromKey = function () { + try { + var licKey = ''; + var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488, + 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888, + 6356992, 7602176, 4587520, 7274496, 7471104, 7143424]; + var decryptedStr = []; + var resultArray = []; + var invalidPlatform = false; + var isNpxKey = false; + if (this.manager.getKey()) { + licKey = this.manager.getKey(); + } + else { + isNpxKey = true; + licKey = this.npxManager.getKey().split('npxKeyReplace')[1]; + } + var licKeySplit = licKey.split(';'); + for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) { + var lKey = licKeySplit_1[_i]; + var decodeStr = this.getDecryptedData(lKey); + if (!decodeStr) { + continue; + } + var k = 0; + var buffr = ''; + if (!isNpxKey) { + for (var i = 0; i < decodeStr.length; i++, k++) { + if (k === pkey.length) { + k = 0; + } + var c = decodeStr.charCodeAt(i); + buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16)); + } + } + else { + var charKey = decodeStr[decodeStr.length - 1]; + var decryptedKey = []; + for (var i = 0; i < decodeStr.length; i++) { + decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0); + } + for (var i = 0; i < decryptedKey.length; i++) { + buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]); + } + } + if (this.platform.test(buffr)) { + decryptedStr = buffr.split(';'); + invalidPlatform = false; + // checked the length to verify the key in proper strucutre + if (decryptedStr.length > 3) { + resultArray.push({ platform: decryptedStr[0], + version: decryptedStr[1], + expiryDate: decryptedStr[2] }); + } + } + else if (buffr && buffr.split(';').length > 3) { + invalidPlatform = true; + } + } + if (invalidPlatform && !resultArray.length) { + return [{ invalidPlatform: invalidPlatform }]; + } + else { + return resultArray.length ? resultArray : null; + } + } + catch (error) { + return null; + } + }; + return LicenseValidator; +}()); +var licenseValidator = new LicenseValidator(); +/** + * Converts the given number to characters. + * + * @param {number} cArr - Specifies the license key as number. + * @returns {string} + */ +function convertToChar(cArr) { + var ret = ''; + for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) { + var arr = cArr_1[_i]; + ret += String.fromCharCode(arr); + } + return ret; +} +/** + * To set license key. + * + * @param {string} key - license key + * @returns {void} + */ +function registerLicense(key) { + licenseValidator = new LicenseValidator(key); +} +var validateLicense = function (key) { + if (key) { + registerLicense(key); + } + return licenseValidator.validate(); +}; +var getVersion = function () { + return licenseValidator.version; +}; +// Method for create overlay over the sample +var createLicenseOverlay = function () { + var bannerTemplate = "\n
\n
\n
\n \n
\n
Claim your FREE account and get a key in less than a minute
\n
    \n
  • Access to a 30-day free trial of any of our products.
  • \n
  • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
  • \n
  • 200+ ebooks on the latest technologies, industry trends, and research topics.\n
  • \n
  • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
  • \n
  • Free and unlimited access to Syncfusion technical blogs and whitepapers.
  • \n
\n
Syncfusion is trusted by 29,000+ businesses worldwide
\n \n Claim your FREE account\n
have a Syncfusion account? Sign In
\n
\n
"; + if (typeof document !== 'undefined' && !Object(_util__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(document)) { + var errorBackground = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { + innerHTML: bannerTemplate + }); + document.body.appendChild(errorBackground); + } +}; + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/button/button.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/button/button.js ***! + \********************************************************************/ +/*! exports provided: IconPosition, buttonObserver, Button */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconPosition", function() { return IconPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buttonObserver", function() { return buttonObserver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return Button; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/common */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +/** + * Defines the icon position of button. + */ +var IconPosition; +(function (IconPosition) { + /** + * Positions the Icon at the left of the text content in the Button. + */ + IconPosition["Left"] = "Left"; + /** + * Positions the Icon at the right of the text content in the Button. + */ + IconPosition["Right"] = "Right"; + /** + * Positions the Icon at the top of the text content in the Button. + */ + IconPosition["Top"] = "Top"; + /** + * Positions the Icon at the bottom of the text content in the Button. + */ + IconPosition["Bottom"] = "Bottom"; +})(IconPosition || (IconPosition = {})); +var buttonObserver = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Observer"](); +var cssClassName = { + RTL: 'e-rtl', + BUTTON: 'e-btn', + PRIMARY: 'e-primary', + ICONBTN: 'e-icon-btn' +}; +/** + * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Button = /** @__PURE__ @class */ (function (_super) { + __extends(Button, _super); + /** + * Constructor for creating the widget + * + * @param {ButtonModel} options - Specifies the button model + * @param {string|HTMLButtonElement} element - Specifies the target element + */ + function Button(options, element) { + return _super.call(this, options, element) || this; + } + Button.prototype.preRender = function () { + // pre render code snippets + }; + /** + * Initialize the control rendering + * + * @returns {void} + * @private + */ + Button.prototype.render = function () { + this.initialize(); + this.removeRippleEffect = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, { selector: '.' + cssClassName.BUTTON }); + this.renderComplete(); + }; + Button.prototype.initialize = function () { + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if (this.isPrimary) { + this.element.classList.add(cssClassName.PRIMARY); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.getModuleName() !== 'progress-btn')) { + if (this.content) { + var tempContent = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.content) : this.content; + this.element.innerHTML = tempContent; + } + this.setIconCss(); + } + if (this.enableRtl) { + this.element.classList.add(cssClassName.RTL); + } + if (this.disabled) { + this.controlStatus(this.disabled); + } + else { + this.wireEvents(); + } + }; + Button.prototype.controlStatus = function (disabled) { + this.element.disabled = disabled; + }; + Button.prototype.setIconCss = function () { + if (this.iconCss) { + var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss }); + if (!this.element.textContent.trim()) { + this.element.classList.add(cssClassName.ICONBTN); + } + else { + span.classList.add('e-icon-' + this.iconPosition.toLowerCase()); + if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') { + this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn'); + } + } + var node = this.element.childNodes[0]; + if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) { + this.element.insertBefore(span, node); + } + else { + this.element.appendChild(span); + } + } + }; + Button.prototype.wireEvents = function () { + if (this.isToggle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.btnClickHandler, this); + } + }; + Button.prototype.unWireEvents = function () { + if (this.isToggle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.btnClickHandler); + } + }; + Button.prototype.btnClickHandler = function () { + if (this.element.classList.contains('e-active')) { + this.element.classList.remove('e-active'); + } + else { + this.element.classList.add('e-active'); + } + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + Button.prototype.destroy = function () { + var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger', + 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round', + 'e-top-icon-btn', 'e-bottom-icon-btn']; + if (this.cssClass) { + classList = classList.concat(this.cssClass.split(' ')); + } + _super.prototype.destroy.call(this); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classList); + if (!this.element.getAttribute('class')) { + this.element.removeAttribute('class'); + } + if (this.disabled) { + this.element.removeAttribute('disabled'); + } + if (this.content) { + this.element.innerHTML = this.element.innerHTML.replace(this.content, ''); + } + var span = this.element.querySelector('span.e-btn-icon'); + if (span) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(span); + } + this.unWireEvents(); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + this.removeRippleEffect(); + } + }; + /** + * Get component name. + * + * @returns {string} - Module name + * @private + */ + Button.prototype.getModuleName = function () { + return 'btn'; + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist Data + * @private + */ + Button.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * Dynamically injects the required modules to the component. + * + * @private + * @returns {void} + */ + Button.Inject = function () { + // Inject code snippets + }; + /** + * Called internally if any of the property value changed. + * + * @param {ButtonModel} newProp - Specifies new properties + * @param {ButtonModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + Button.prototype.onPropertyChanged = function (newProp, oldProp) { + var span = this.element.querySelector('span.e-btn-icon'); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'isPrimary': + if (newProp.isPrimary) { + this.element.classList.add(cssClassName.PRIMARY); + } + else { + this.element.classList.remove(cssClassName.PRIMARY); + } + break; + case 'disabled': + this.controlStatus(newProp.disabled); + break; + case 'iconCss': { + if (span) { + if (newProp.iconCss) { + span.className = 'e-btn-icon ' + newProp.iconCss; + if (this.element.textContent.trim()) { + if (this.iconPosition === 'Left') { + span.classList.add('e-icon-left'); + } + else { + span.classList.add('e-icon-right'); + } + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(span); + } + } + else { + this.setIconCss(); + } + break; + } + case 'iconPosition': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']); + span = this.element.querySelector('span.e-btn-icon'); + if (span) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(span); + } + this.setIconCss(); + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + break; + case 'enableRtl': + if (newProp.enableRtl) { + this.element.classList.add(cssClassName.RTL); + } + else { + this.element.classList.remove(cssClassName.RTL); + } + break; + case 'content': { + var node = Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["getTextNode"])(this.element); + if (!node) { + this.element.classList.remove(cssClassName.ICONBTN); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) { + if (this.enableHtmlSanitizer) { + newProp.content = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(newProp.content); + } + this.element.innerHTML = newProp.content; + this.setIconCss(); + } + break; + } + case 'isToggle': + if (newProp.isToggle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.btnClickHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.btnClickHandler); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], ['e-active']); + } + break; + } + } + }; + /** + * Click the button element + * its native method + * + * @public + * @returns {void} + */ + Button.prototype.click = function () { + this.element.click(); + }; + /** + * Sets the focus to Button + * its native method + * + * @public + * @returns {void} + */ + Button.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], Button.prototype, "iconPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Button.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Button.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Button.prototype, "isPrimary", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Button.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Button.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Button.prototype, "isToggle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Button.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Button.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Button.prototype, "created", void 0); + Button = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Button); + return Button; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/button/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/button/index.js ***! + \*******************************************************************/ +/*! exports provided: IconPosition, buttonObserver, Button */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button */ "./ej2-resources/22.1.37/scripts/ej2-buttons/button/button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconPosition", function() { return _button__WEBPACK_IMPORTED_MODULE_0__["IconPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonObserver", function() { return _button__WEBPACK_IMPORTED_MODULE_0__["buttonObserver"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _button__WEBPACK_IMPORTED_MODULE_0__["Button"]; }); + +/** + * Button modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/check-box.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/check-box.js ***! + \**************************************************************************/ +/*! exports provided: CheckBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckBox", function() { return CheckBox; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../common/common */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +var CHECK = 'e-check'; +var DISABLED = 'e-checkbox-disabled'; +var FRAME = 'e-frame'; +var INDETERMINATE = 'e-stop'; +var LABEL = 'e-label'; +var RIPPLE = 'e-ripple-container'; +var RIPPLECHECK = 'e-ripple-check'; +var RIPPLEINDETERMINATE = 'e-ripple-stop'; +var RTL = 'e-rtl'; +var WRAPPER = 'e-checkbox-wrapper'; +var containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value']; +/** + * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices. + * It contains checked, unchecked, and indeterminate states. + * ```html + * + * + * ``` + */ +var CheckBox = /** @__PURE__ @class */ (function (_super) { + __extends(CheckBox, _super); + /** + * Constructor for creating the widget + * + * @private + * @param {CheckBoxModel} options - Specifies checkbox model + * @param {string | HTMLInputElement} element - Specifies target element + */ + function CheckBox(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isFocused = false; + _this.isMouseClick = false; + _this.clickTriggered = false; + _this.validCheck = true; + return _this; + } + CheckBox.prototype.changeState = function (state, isInitialize) { + var ariaState; + var rippleSpan; + var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0]; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0]; + } + if (state === 'check') { + frameSpan.classList.remove(INDETERMINATE); + frameSpan.classList.add(CHECK); + if (rippleSpan) { + rippleSpan.classList.remove(RIPPLEINDETERMINATE); + rippleSpan.classList.add(RIPPLECHECK); + } + ariaState = 'true'; + this.element.checked = true; + if ((this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) { + this.element.checked = false; + this.validCheck = false; + } + else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) { + this.validCheck = true; + } + } + else if (state === 'uncheck') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([frameSpan], [CHECK, INDETERMINATE]); + if (rippleSpan) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]); + } + ariaState = 'false'; + this.element.checked = false; + if ((this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) && this.validCheck && !isInitialize) { + this.element.checked = true; + this.validCheck = false; + } + else if (this.element.required || this.element.closest('form') && this.element.closest('form').classList.contains('e-formvalidator')) { + this.validCheck = true; + } + } + else { + frameSpan.classList.remove(CHECK); + frameSpan.classList.add(INDETERMINATE); + if (rippleSpan) { + rippleSpan.classList.remove(RIPPLECHECK); + rippleSpan.classList.add(RIPPLEINDETERMINATE); + } + ariaState = 'mixed'; + this.element.indeterminate = true; + this.indeterminate = true; + } + }; + CheckBox.prototype.clickHandler = function (event) { + if (event.target.tagName === 'INPUT' && this.clickTriggered) { + if (this.isVue) { + this.changeState(this.checked ? 'check' : 'uncheck'); + } + this.clickTriggered = false; + return; + } + if (event.target.tagName === 'SPAN' || event.target.tagName === 'LABEL') { + this.clickTriggered = true; + } + if (this.isMouseClick) { + this.focusOutHandler(); + this.isMouseClick = false; + } + if (this.indeterminate) { + this.changeState(this.checked ? 'check' : 'uncheck'); + this.indeterminate = false; + this.element.indeterminate = false; + } + else if (this.checked) { + this.changeState('uncheck'); + this.checked = false; + } + else { + this.changeState('check'); + this.checked = true; + } + var changeEventArgs = { checked: this.updateVueArrayModel(false), event: event }; + this.trigger('change', changeEventArgs); + event.stopPropagation(); + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + CheckBox.prototype.destroy = function () { + var _this = this; + var wrapper = this.getWrapper(); + _super.prototype.destroy.call(this); + if (this.wrapper) { + wrapper = this.wrapper; + if (!this.disabled) { + this.unWireEvents(); + } + if (this.tagName === 'INPUT') { + if (this.getWrapper() && wrapper.parentNode) { + wrapper.parentNode.insertBefore(this.element, wrapper); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(wrapper); + this.element.checked = false; + if (this.indeterminate) { + this.element.indeterminate = false; + } + ['name', 'value', 'disabled'].forEach(function (key) { + _this.element.removeAttribute(key); + }); + } + else { + ['class'].forEach(function (key) { + wrapper.removeAttribute(key); + }); + wrapper.innerHTML = ''; + } + } + }; + CheckBox.prototype.focusHandler = function () { + this.isFocused = true; + }; + CheckBox.prototype.focusOutHandler = function () { + var wrapper = this.getWrapper(); + if (wrapper) { + wrapper.classList.remove('e-focus'); + } + this.isFocused = false; + }; + /** + * Gets the module name. + * + * @private + * @returns {string} - Module Name + */ + CheckBox.prototype.getModuleName = function () { + return 'checkbox'; + }; + /** + * Gets the properties to be maintained in the persistence state. + * + * @private + * @returns {string} - Persist Data + */ + CheckBox.prototype.getPersistData = function () { + return this.addOnPersist(['checked', 'indeterminate']); + }; + CheckBox.prototype.getWrapper = function () { + if (this.element && this.element.parentElement) { + return this.element.parentElement.parentElement; + } + else { + return null; + } + }; + CheckBox.prototype.initialize = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initialCheckedValue)) { + this.initialCheckedValue = this.checked; + } + if (this.name) { + this.element.setAttribute('name', this.name); + } + if (this.value) { + this.element.setAttribute('value', this.value); + if (this.isVue && typeof this.value === 'boolean' && this.value === true) { + this.setProperties({ 'checked': true }, true); + } + } + if (this.checked) { + this.changeState('check', true); + } + if (this.indeterminate) { + this.changeState(); + } + if (this.disabled) { + this.setDisabled(); + } + }; + CheckBox.prototype.initWrapper = function () { + var wrapper = this.element.parentElement; + if (!wrapper.classList.contains(WRAPPER)) { + wrapper = this.createElement('div', { + className: WRAPPER + }); + this.element.parentNode.insertBefore(wrapper, this.element); + } + var label = this.createElement('label', { attrs: { for: this.element.id } }); + var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME }); + wrapper.classList.add('e-wrapper'); + if (this.enableRtl) { + wrapper.classList.add(RTL); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + wrapper.appendChild(label); + label.appendChild(this.element); + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["setHiddenInput"])(this, label); + label.appendChild(frameSpan); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + var rippleSpan = this.createElement('span', { className: RIPPLE }); + if (this.labelPosition === 'Before') { + label.appendChild(rippleSpan); + } + else { + label.insertBefore(rippleSpan, frameSpan); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(rippleSpan, { duration: 400, isCenterRipple: true }); + } + if (this.label) { + this.setText(this.label); + } + }; + CheckBox.prototype.keyUpHandler = function () { + if (this.isFocused) { + this.getWrapper().classList.add('e-focus'); + } + }; + CheckBox.prototype.labelMouseDownHandler = function (e) { + this.isMouseClick = true; + var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0]; + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + }; + CheckBox.prototype.labelMouseUpHandler = function (e) { + this.isMouseClick = true; + var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0]; + if (rippleSpan) { + var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element'); + for (var i = 0; i < rippleElem.length - 1; i++) { + rippleSpan.removeChild(rippleSpan.childNodes[i]); + } + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + } + }; + /** + * Called internally if any of the property value changes. + * + * @private + * @param {CheckBoxModel} newProp - Specifies new Properties + * @param {CheckBoxModel} oldProp - Specifies old Properties + * + * @returns {void} + */ + CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) { + var wrapper = this.getWrapper(); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'checked': + this.indeterminate = false; + this.element.indeterminate = false; + this.changeState(newProp.checked ? 'check' : 'uncheck'); + break; + case 'indeterminate': + if (newProp.indeterminate) { + this.changeState(); + } + else { + this.element.indeterminate = false; + this.changeState(this.checked ? 'check' : 'uncheck'); + } + break; + case 'disabled': + if (newProp.disabled) { + this.setDisabled(); + this.wrapper = this.getWrapper(); + this.unWireEvents(); + } + else { + this.element.disabled = false; + wrapper.classList.remove(DISABLED); + wrapper.setAttribute('aria-disabled', 'false'); + this.wireEvents(); + } + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([wrapper], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + break; + case 'enableRtl': + if (newProp.enableRtl) { + wrapper.classList.add(RTL); + } + else { + wrapper.classList.remove(RTL); + } + break; + case 'label': + this.setText(newProp.label); + break; + case 'labelPosition': { + var label = wrapper.getElementsByClassName(LABEL)[0]; + var labelWrap = wrapper.getElementsByTagName('label')[0]; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(label); + if (newProp.labelPosition === 'After') { + labelWrap.appendChild(label); + } + else { + labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]); + } + break; + } + case 'name': + this.element.setAttribute('name', newProp.name); + break; + case 'value': + if (this.isVue && typeof newProp.value === 'object') { + break; + } + this.element.setAttribute('value', newProp.value); + break; + case 'htmlAttributes': + this.updateHtmlAttributeToWrapper(); + break; + } + } + }; + /** + * Initialize Angular, React and Unique ID support. + * + * @private + * @returns {void} + */ + CheckBox.prototype.preRender = function () { + var element = this.element; + this.tagName = this.element.tagName; + element = Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["wrapperInitialize"])(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox'); + this.element = element; + if (this.element.getAttribute('type') !== 'checkbox') { + this.element.setAttribute('type', 'checkbox'); + } + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + }; + /** + * Initialize the control rendering. + * + * @private + * @returns {void} + */ + CheckBox.prototype.render = function () { + this.initWrapper(); + this.initialize(); + if (!this.disabled) { + this.wireEvents(); + } + this.updateHtmlAttributeToWrapper(); + this.updateVueArrayModel(true); + this.renderComplete(); + this.wrapper = this.getWrapper(); + }; + CheckBox.prototype.setDisabled = function () { + var wrapper = this.getWrapper(); + this.element.disabled = true; + wrapper.classList.add(DISABLED); + wrapper.setAttribute('aria-disabled', 'true'); + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + CheckBox.prototype.setText = function (text) { + var wrapper = this.getWrapper(); + if (!wrapper) { + return; + } + var label = wrapper.getElementsByClassName(LABEL)[0]; + if (label) { + label.textContent = text; + } + else { + text = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(text) : text; + label = this.createElement('span', { className: LABEL, innerHTML: text }); + var labelWrap = wrapper.getElementsByTagName('label')[0]; + if (this.labelPosition === 'Before') { + labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]); + } + else { + labelWrap.appendChild(label); + } + } + }; + CheckBox.prototype.changeHandler = function (e) { + e.stopPropagation(); + }; + CheckBox.prototype.formResetHandler = function () { + this.checked = this.initialCheckedValue; + this.element.checked = this.initialCheckedValue; + }; + CheckBox.prototype.unWireEvents = function () { + var wrapper = this.wrapper; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(wrapper, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', this.keyUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', this.focusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusout', this.focusOutHandler); + var label = wrapper.getElementsByTagName('label')[0]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(label, 'mousedown', this.labelMouseDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(label, 'mouseup', this.labelMouseUpHandler); + var formElem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElem) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(formElem, 'reset', this.formResetHandler); + } + if (this.tagName === 'EJS-CHECKBOX') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'change', this.changeHandler); + } + }; + CheckBox.prototype.wireEvents = function () { + var wrapper = this.getWrapper(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(wrapper, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', this.keyUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', this.focusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.focusOutHandler, this); + var label = wrapper.getElementsByTagName('label')[0]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(label, 'mousedown', this.labelMouseDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(label, 'mouseup', this.labelMouseUpHandler, this); + var formElem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElem) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(formElem, 'reset', this.formResetHandler, this); + } + if (this.tagName === 'EJS-CHECKBOX') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'change', this.changeHandler, this); + } + }; + CheckBox.prototype.updateVueArrayModel = function (init) { + if (this.isVue && typeof this.value === 'object') { + var value = this.element.value; + if (value && this.value) { + if (init) { + for (var i = 0; i < this.value.length; i++) { + if (value === this.value[i]) { + this.changeState('check'); + this.setProperties({ 'checked': true }, true); + } + } + } + else { + var index = this.value.indexOf(value); + if (this.checked) { + if (index < 0) { + this.value.push(value); + } + } + else { + if (index > -1) { + this.value.splice(index, 1); + } + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return this.value; + } + } + } + return this.validCheck ? this.element.checked : !this.element.checked; + }; + CheckBox.prototype.updateHtmlAttributeToWrapper = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (containerAttr.indexOf(key) > -1) { + var wrapper = this.getWrapper(); + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.htmlAttributes["" + key].split(' ')); + } + else if (key === 'title') { + wrapper.setAttribute(key, this.htmlAttributes["" + key]); + } + else if (key === 'style') { + var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0]; + frameSpan.setAttribute(key, this.htmlAttributes["" + key]); + } + else if (key === 'disabled') { + if (this.htmlAttributes["" + key] === 'true') { + this.setDisabled(); + } + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + else { + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + } + }; + /** + * Click the CheckBox element + * its native method + * + * @public + * @returns {void} + */ + CheckBox.prototype.click = function () { + this.element.click(); + }; + /** + * Sets the focus to CheckBox + * its native method + * + * @public + * @returns {void} + */ + CheckBox.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], CheckBox.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], CheckBox.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], CheckBox.prototype, "checked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CheckBox.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], CheckBox.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], CheckBox.prototype, "indeterminate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CheckBox.prototype, "label", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('After') + ], CheckBox.prototype, "labelPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CheckBox.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CheckBox.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], CheckBox.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], CheckBox.prototype, "htmlAttributes", void 0); + CheckBox = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], CheckBox); + return CheckBox; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/index.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/index.js ***! + \**********************************************************************/ +/*! exports provided: CheckBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _check_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./check-box */ "./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/check-box.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBox", function() { return _check_box__WEBPACK_IMPORTED_MODULE_0__["CheckBox"]; }); + +/** + * CheckBox modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip-list.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip-list.js ***! + \**********************************************************************/ +/*! exports provided: classNames, ChipList */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return classNames; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChipList", function() { return ChipList; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var classNames = { + chipSet: 'e-chip-set', + chip: 'e-chip', + avatar: 'e-chip-avatar', + text: 'e-chip-text', + icon: 'e-chip-icon', + delete: 'e-chip-delete', + deleteIcon: 'e-dlt-btn', + multiSelection: 'e-multi-selection', + singleSelection: 'e-selection', + active: 'e-active', + chipWrapper: 'e-chip-avatar-wrap', + iconWrapper: 'e-chip-icon-wrap', + focused: 'e-focused', + disabled: 'e-disabled', + rtl: 'e-rtl' +}; +/** + * A chip component is a small block of essential information, mostly used on contacts or filter tags. + * ```html + *
+ * ``` + * ```typescript + * + * ``` + */ +var ChipList = /** @__PURE__ @class */ (function (_super) { + __extends(ChipList, _super); + function ChipList(options, element) { + var _this = _super.call(this, options, element) || this; + _this.multiSelectedChip = []; + return _this; + } + /** + * Initialize the event handler + * + * @private + */ + ChipList.prototype.preRender = function () { + //prerender + }; + /** + * To find the chips length. + * + * @returns boolean + * @private + */ + ChipList.prototype.chipType = function () { + return (this.chips && this.chips.length && this.chips.length > 0); + }; + /** + * To Initialize the control rendering. + * + * @returns void + * @private + */ + ChipList.prototype.render = function () { + var property; + this.type = this.chips.length ? 'chipset' : (this.text || this.element.innerText ? 'chip' : 'chipset'); + this.setAttributes(); + this.createChip(); + this.setRtl(); + this.select(this.selectedChips, property); + this.wireEvent(false); + this.rippleFunction = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, { + selector: '.e-chip' + }); + this.renderComplete(); + }; + ChipList.prototype.createChip = function () { + this.innerText = (this.element.innerText && this.element.innerText.length !== 0) + ? this.element.innerText.trim() : this.element.innerText; + this.element.innerHTML = ''; + this.chipCreation(this.type === 'chip' ? [this.innerText ? this.innerText : this.text] : this.chips); + }; + ChipList.prototype.setAttributes = function () { + if (this.type === 'chip') { + if (this.enabled) + this.element.tabIndex = 0; + this.element.setAttribute('role', 'option'); + } + else { + this.element.classList.add(classNames.chipSet); + this.element.setAttribute('role', 'listbox'); + if (this.selection === 'Multiple') { + this.element.classList.add(classNames.multiSelection); + this.element.setAttribute('aria-multiselectable', 'true'); + } + else if (this.selection === 'Single') { + this.element.classList.add(classNames.singleSelection); + this.element.setAttribute('aria-multiselectable', 'false'); + } + else { + this.element.setAttribute('aria-multiselectable', 'false'); + } + } + }; + ChipList.prototype.setRtl = function () { + this.element.classList[this.enableRtl ? 'add' : 'remove'](classNames.rtl); + }; + ChipList.prototype.chipCreation = function (data) { + var chipListArray = []; + var attributeArray = []; + for (var i = 0; i < data.length; i++) { + var fieldsData = this.getFieldValues(data[i]); + var attributesValue = fieldsData.htmlAttributes; + attributeArray.push(attributesValue); + var chipArray = this.elementCreation(fieldsData); + var className = (classNames.chip + ' ' + (fieldsData.enabled ? ' ' : classNames.disabled) + ' ' + + (fieldsData.avatarIconCss || fieldsData.avatarText ? classNames.chipWrapper : (fieldsData.leadingIconCss ? + classNames.iconWrapper : ' ')) + ' ' + fieldsData.cssClass).split(' ').filter(function (css) { return css; }); + if (!this.chipType()) { + chipListArray = chipArray; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], className); + this.element.setAttribute('aria-label', fieldsData.text); + if (fieldsData.value) { + this.element.setAttribute('data-value', fieldsData.value.toString()); + } + } + else { + var wrapper = this.createElement('DIV', { + className: className.join(' '), attrs: { + tabIndex: '0', role: 'option', + 'aria-label': fieldsData.text, 'aria-selected': 'false' + } + }); + if (fieldsData.value) { + wrapper.setAttribute('data-value', fieldsData.value.toString()); + } + if (fieldsData.enabled) { + wrapper.setAttribute('aria-disabled', 'false'); + } + else { + wrapper.removeAttribute('tabindex'); + wrapper.setAttribute('aria-disabled', 'true'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(attributeArray[i])) { + if (attributeArray.length > i && Object.keys(attributeArray[i]).length) { + var htmlAttr = []; + htmlAttr = (Object.keys(attributeArray[i])); + for (var j = 0; j < htmlAttr.length; j++) { + wrapper.setAttribute(htmlAttr[j], attributeArray[i][htmlAttr[j]]); + } + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(chipArray, wrapper); + chipListArray.push(wrapper); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(chipListArray, this.element); + }; + ChipList.prototype.getFieldValues = function (data) { + var chipEnabled = !(this.enabled.toString() === 'false'); + var fields = { + text: typeof data === 'object' ? (data.text ? data.text.toString() : this.text.toString()) : + (!this.chipType() ? (this.innerText ? this.innerText : this.text.toString()) : data.toString()), + cssClass: typeof data === 'object' ? (data.cssClass ? data.cssClass.toString() : this.cssClass.toString()) : + (this.cssClass.toString()), + leadingIconCss: typeof data === 'object' ? (data.leadingIconCss ? data.leadingIconCss.toString() : + this.leadingIconCss.toString()) : (this.leadingIconCss.toString()), + avatarIconCss: typeof data === 'object' ? (data.avatarIconCss ? data.avatarIconCss.toString() : + this.avatarIconCss.toString()) : (this.avatarIconCss.toString()), + avatarText: typeof data === 'object' ? (data.avatarText ? data.avatarText.toString() : this.avatarText.toString()) : + (this.avatarText.toString()), + trailingIconCss: typeof data === 'object' ? (data.trailingIconCss ? data.trailingIconCss.toString() : + this.trailingIconCss.toString()) : (this.trailingIconCss.toString()), + enabled: typeof data === 'object' ? (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.enabled) ? (data.enabled.toString() === 'false' ? false : true) : + chipEnabled) : (chipEnabled), + value: typeof data === 'object' ? ((data.value ? data.value.toString() : null)) : null, + leadingIconUrl: typeof data === 'object' ? (data.leadingIconUrl ? data.leadingIconUrl.toString() : this.leadingIconUrl) : + this.leadingIconUrl, + trailingIconUrl: typeof data === 'object' ? (data.trailingIconUrl ? data.trailingIconUrl.toString() : this.trailingIconUrl) : + this.trailingIconUrl, + htmlAttributes: typeof data === 'object' ? (data.htmlAttributes ? data.htmlAttributes : this.htmlAttributes) : this.htmlAttributes + }; + return fields; + }; + ChipList.prototype.elementCreation = function (fields) { + var chipArray = []; + if (fields.avatarText || fields.avatarIconCss) { + var className = (classNames.avatar + ' ' + fields.avatarIconCss).trim(); + var chipAvatarElement = this.createElement('span', { className: className }); + chipAvatarElement.innerText = fields.avatarText; + chipArray.push(chipAvatarElement); + } + else if (fields.leadingIconCss) { + var className = (classNames.icon + ' ' + fields.leadingIconCss).trim(); + var chipIconElement = this.createElement('span', { className: className }); + chipArray.push(chipIconElement); + } + else if (fields.leadingIconUrl) { + var className = (classNames.avatar + ' ' + 'image-url').trim(); + var chipIconElement = this.createElement('span', { className: className }); + chipIconElement.style.backgroundImage = 'url(' + fields.leadingIconUrl + ')'; + chipArray.push(chipIconElement); + } + var chipTextElement = this.createElement('span', { className: classNames.text }); + chipTextElement.innerText = fields.text; + chipArray.push(chipTextElement); + if (fields.trailingIconCss || (this.chipType() && this.enableDelete)) { + var className = (classNames.delete + ' ' + + (fields.trailingIconCss ? fields.trailingIconCss : classNames.deleteIcon)).trim(); + var chipdeleteElement = this.createElement('span', { className: className }); + chipArray.push(chipdeleteElement); + } + else if (fields.trailingIconUrl) { + var className = ('trailing-icon-url').trim(); + var chipIconsElement = this.createElement('span', { className: className }); + chipIconsElement.style.backgroundImage = 'url(' + fields.trailingIconUrl + ')'; + chipArray.push(chipIconsElement); + } + return chipArray; + }; + /** + * A function that finds chip based on given input. + * + * @param {number | HTMLElement } fields - We can pass index number or element of chip. + * {% codeBlock src='chips/find/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + ChipList.prototype.find = function (fields) { + var chipData; + var chipElement = fields instanceof HTMLElement ? + fields : this.element.querySelectorAll('.' + classNames.chip)[fields]; + if (chipElement && this.chipType()) { + chipData = { text: undefined, index: undefined, element: undefined, data: undefined }; + chipData.index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipElement); + chipData.text = typeof this.chips[chipData.index] === 'object' ? + (this.chips[chipData.index].text ? + this.chips[chipData.index].text.toString() : '') : + this.chips[chipData.index].toString(); + chipData.data = this.chips[chipData.index]; + chipData.element = chipElement; + } + return chipData; + }; + /** + * Allows adding the chip item(s) by passing a single or array of string, number, or ChipModel values. + * + * @param {string[] | number[] | ChipModel[] | string | number | ChipModel} chipsData - We can pass array of string or + * array of number or array of chip model or string data or number data or chip model. + * {% codeBlock src='chips/add/index.md' %}{% endcodeBlock %} + * + * @returns {void} + + */ + ChipList.prototype.add = function (chipsData) { + var _a; + if (this.type !== 'chip') { + var fieldData = chipsData instanceof Array ? + chipsData : [chipsData]; + (_a = this.chips).push.apply(_a, fieldData); + this.chipCreation(fieldData); + } + }; + /** + * Allows selecting the chip item(s) by passing a single or array of string, number, or ChipModel values. + * + * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number + * or chip element or array of chip element. + * {% codeBlock src='chips/select/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + ChipList.prototype.select = function (fields, selectionType) { + this.onSelect(fields, false, selectionType); + }; + ChipList.prototype.multiSelection = function (newProp) { + var items = this.element.querySelectorAll('.' + 'e-chip'); + for (var j = 0; j < newProp.length; j++) { + if (typeof newProp[j] === 'string') { + for (var k = 0; k < items.length; k++) { + if (newProp[j] !== k) { + if (newProp[j] === items[k].attributes[5].value) { + this.multiSelectedChip.push(k); + break; + } + } + } + } + else { + this.multiSelectedChip.push(newProp[j]); + } + } + }; + ChipList.prototype.onSelect = function (fields, callFromProperty, selectionType) { + var index; + var chipNodes; + var chipValue; + if (this.chipType() && this.selection !== 'None') { + if (callFromProperty) { + var chipElements = this.element.querySelectorAll('.' + classNames.chip); + for (var i = 0; i < chipElements.length; i++) { + chipElements[i].setAttribute('aria-selected', 'false'); + chipElements[i].classList.remove(classNames.active); + } + } + var fieldData = fields instanceof Array ? fields : [fields]; + for (var i = 0; i < fieldData.length; i++) { + var chipElement = fieldData[i] instanceof HTMLElement ? fieldData[i] + : this.element.querySelectorAll('.' + classNames.chip)[fieldData[i]]; + if (selectionType !== 'index') { + for (var j = 0; j < this.chips.length; j++) { + chipNodes = this.element.querySelectorAll('.' + classNames.chip)[j]; + var fieldsData = this.getFieldValues(this.chips[j]); + if (selectionType === 'value') { + if (fieldsData.value !== null) { + chipValue = chipNodes.dataset.value; + } + } + else if (selectionType === 'text') { + chipValue = chipNodes.innerText; + } + if (chipValue === fieldData[i].toString()) { + index = j; + chipElement = this.element.querySelectorAll('.' + classNames.chip)[index]; + } + } + } + if (chipElement instanceof HTMLElement) { + this.selectionHandler(chipElement); + } + } + } + }; + /** + * Allows removing the chip item(s) by passing a single or array of string, number, or ChipModel values. + * + * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number + * or chip element or array of chip element. + * {% codeBlock src='chips/remove/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + ChipList.prototype.remove = function (fields) { + var _this = this; + if (this.chipType()) { + var fieldData = fields instanceof Array ? fields : [fields]; + var chipElements_1 = []; + var chipCollection_1 = this.element.querySelectorAll('.' + classNames.chip); + fieldData.forEach(function (data) { + var chipElement = data instanceof HTMLElement ? data + : chipCollection_1[data]; + if (chipElement instanceof HTMLElement) { + chipElements_1.push(chipElement); + } + }); + chipElements_1.forEach(function (element) { + var chips = _this.element.querySelectorAll('.' + classNames.chip); + var index = Array.prototype.slice.call(chips).indexOf(element); + _this.deleteHandler(element, index); + }); + } + }; + /** + * Returns the selected chip(s) data. + * {% codeBlock src='chips/getSelectedChips/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + ChipList.prototype.getSelectedChips = function () { + var selectedChips; + if (this.chipType() && this.selection !== 'None') { + var selectedItems = { texts: [], Indexes: [], data: [], elements: [] }; + var items = this.element.querySelectorAll('.' + classNames.active); + for (var i = 0; i < items.length; i++) { + var chip = items[i]; + selectedItems.elements.push(chip); + var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chip); + selectedItems.Indexes.push(index); + selectedItems.data.push(this.chips[index]); + var text = typeof this.chips[index] === 'object' ? + this.chips[index].text ? this.chips[index].text.toString() + : null : this.chips[index].toString(); + selectedItems.texts.push(text); + } + var selectedItem = { + text: selectedItems.texts[0], index: selectedItems.Indexes[0], + data: selectedItems.data[0], element: selectedItems.elements[0] + }; + selectedChips = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selectedItem.index) ? + (this.selection === 'Multiple' ? selectedItems : selectedItem) : undefined; + } + return selectedChips; + }; + ChipList.prototype.wireEvent = function (unWireEvent) { + if (!unWireEvent) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.focusOutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.keyHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', this.keyHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusout', this.focusOutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', this.keyHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', this.keyHandler); + } + }; + ChipList.prototype.keyHandler = function (e) { + if (e.target.classList.contains(classNames.chip)) { + if (e.type === 'keydown') { + if (e.keyCode === 13 || e.keyCode === 32) { + this.clickHandler(e); + } + else if (e.keyCode === 46 && this.enableDelete) { + this.clickHandler(e, true); + } + } + else if (e.keyCode === 9) { + this.focusInHandler(e.target); + } + } + }; + ChipList.prototype.focusInHandler = function (chipWrapper) { + if (!chipWrapper.classList.contains(classNames.focused)) { + chipWrapper.classList.add(classNames.focused); + } + }; + ChipList.prototype.focusOutHandler = function (e) { + var chipWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + classNames.chip); + var focusedElement = !this.chipType() ? (this.element.classList.contains(classNames.focused) ? + this.element : null) : this.element.querySelector('.' + classNames.focused); + if (chipWrapper && focusedElement) { + focusedElement.classList.remove(classNames.focused); + } + }; + ChipList.prototype.clickHandler = function (e, del) { + var _this = this; + if (del === void 0) { del = false; } + var chipWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + classNames.chip); + if (chipWrapper) { + // eslint-disable-next-line + var chipDataArgs = void 0; + if (this.chipType()) { + chipDataArgs = this.find(chipWrapper); + } + else { + var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipWrapper); + chipDataArgs = { + text: this.innerText ? this.innerText : this.text, + element: chipWrapper, data: this.text, index: index + }; + } + chipDataArgs.event = e; + chipDataArgs.cancel = false; + this.trigger('beforeClick', chipDataArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.clickEventHandler(observedArgs.element, e, del); + } + }); + } + }; + ChipList.prototype.clickEventHandler = function (chipWrapper, e, del) { + var _this = this; + if (this.chipType()) { + var chipData_1 = this.find(chipWrapper); + chipData_1.event = e; + var deleteElement = e.target.classList.contains(classNames.deleteIcon) ? + e.target : (del ? chipWrapper.querySelector('.' + classNames.deleteIcon) : undefined); + if (deleteElement && this.enableDelete) { + chipData_1.cancel = false; + var deletedItemArgs = chipData_1; + this.trigger('delete', deletedItemArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.deleteHandler(observedArgs.element, observedArgs.index); + _this.selectionHandler(chipWrapper); + chipData_1.selected = observedArgs.element.classList.contains(classNames.active); + var selectedItemArgs = chipData_1; + _this.trigger('click', selectedItemArgs); + var chipElement = _this.element.querySelectorAll('.' + classNames.chip)[observedArgs.index]; + if (chipElement) { + chipElement.focus(); + _this.focusInHandler(chipElement); + } + } + }); + } + else if (this.selection !== 'None') { + this.selectionHandler(chipWrapper); + chipData_1.selected = chipWrapper.classList.contains(classNames.active); + var selectedItemArgs = chipData_1; + this.trigger('click', selectedItemArgs); + } + else { + this.focusInHandler(chipWrapper); + var clickedItemArgs = chipData_1; + this.trigger('click', clickedItemArgs); + } + } + else { + this.focusInHandler(chipWrapper); + var clickedItemArgs = { + text: this.innerText ? this.innerText : this.text, + element: chipWrapper, data: this.text, event: e + }; + this.trigger('click', clickedItemArgs); + } + }; + ChipList.prototype.selectionHandler = function (chipWrapper) { + if (this.selection === 'Single') { + var activeElement = this.element.querySelector('.' + classNames.active); + if (activeElement && activeElement !== chipWrapper) { + activeElement.classList.remove(classNames.active); + activeElement.setAttribute('aria-selected', 'false'); + } + this.setProperties({ selectedChips: null }, true); + } + else { + this.setProperties({ selectedChips: [] }, true); + } + if (chipWrapper.classList.contains(classNames.active)) { + chipWrapper.classList.remove(classNames.active); + chipWrapper.setAttribute('aria-selected', 'false'); + } + else { + chipWrapper.classList.add(classNames.active); + chipWrapper.setAttribute('aria-selected', 'true'); + } + this.updateSelectedChips(); + }; + ChipList.prototype.updateSelectedChips = function () { + var chipListEle = this.element.querySelectorAll('.e-chip'); + var chipCollIndex = []; + var chipCollValue = []; + var chip = null; + var value; + for (var i = 0; i < chipListEle.length; i++) { + var selectedEle = this.element.querySelectorAll('.e-chip')[i]; + if (selectedEle.getAttribute('aria-selected') === 'true') { + value = selectedEle.getAttribute('data-value'); + if (this.selection === 'Single' && selectedEle.classList.contains('e-active')) { + chip = value ? value : i; + break; + } + else { + chip = value ? chipCollValue.push(value) : chipCollIndex.push(i); + } + } + } + this.setProperties({ selectedChips: this.selection === 'Single' ? chip : value ? chipCollValue : chipCollIndex }, true); + }; + ChipList.prototype.deleteHandler = function (chipWrapper, index) { + // Used to store the deleted chip item details. + var deletedChipData = this.find(chipWrapper); + this.chips.splice(index, 1); + this.setProperties({ chips: this.chips }, true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(chipWrapper); + this.trigger('deleted', deletedChipData); + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. Also, it removes the attributes and classes. + * {% codeBlock src='chips/destroy/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + ChipList.prototype.destroy = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [classNames.chipSet, classNames.chip, classNames.rtl, + classNames.multiSelection, classNames.singleSelection, classNames.disabled, classNames.chipWrapper, classNames.iconWrapper, + classNames.active, classNames.focused].concat(this.cssClass.toString().split(' ').filter(function (css) { return css; }))); + this.removeMultipleAttributes(['tabindex', 'role', 'aria-label', 'aria-multiselectable'], this.element); + this.wireEvent(true); + this.rippleFunction(); + _super.prototype.destroy.call(this); + this.element.innerHTML = ''; + this.element.innerText = this.innerText; + }; + ChipList.prototype.removeMultipleAttributes = function (attributes, element) { + attributes.forEach(function (attr) { + element.removeAttribute(attr); + }); + }; + ChipList.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + ChipList.prototype.getModuleName = function () { + return 'chip-list'; + }; + /** + * Called internally if any of the property value changed. + * + * @returns void + * @private + */ + ChipList.prototype.onPropertyChanged = function (newProp, oldProp) { + var property; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'chips': + case 'text': + case 'avatarText': + case 'avatarIconCss': + case 'leadingIconCss': + case 'trailingIconCss': + case 'selection': + case 'enableDelete': + case 'enabled': + this.refresh(); + break; + case 'cssClass': + if (!this.chipType()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.cssClass.toString().split(' ').filter(function (css) { return css; })); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newProp.cssClass.toString().split(' ').filter(function (css) { return css; })); + } + else { + this.refresh(); + } + break; + case 'selectedChips': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(this.element.querySelectorAll('.e-active'), 'e-active'); + if (this.selection === 'Multiple') { + this.multiSelectedChip = []; + this.multiSelection(newProp.selectedChips); + this.onSelect(this.multiSelectedChip, true, property); + this.updateSelectedChips(); + } + else { + this.onSelect(newProp.selectedChips, true, property); + } + break; + case 'enableRtl': + this.setRtl(); + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], ChipList.prototype, "chips", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "avatarText", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "avatarIconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "leadingIconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "trailingIconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "leadingIconUrl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "trailingIconUrl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ChipList.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ChipList.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], ChipList.prototype, "selectedChips", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], ChipList.prototype, "selection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ChipList.prototype, "enableDelete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ChipList.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ChipList.prototype, "click", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ChipList.prototype, "beforeClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ChipList.prototype, "delete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ChipList.prototype, "deleted", void 0); + ChipList = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], ChipList); + return ChipList; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip.js ***! + \*****************************************************************/ +/*! exports provided: Chip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Chip", function() { return Chip; }); +/** + * Represents ChipList `Chip` model class. + */ +var Chip = /** @__PURE__ @class */ (function () { + function Chip() { + } + return Chip; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/chips/index.js ***! + \******************************************************************/ +/*! exports provided: classNames, ChipList, Chip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _chip_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chip-list */ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip-list.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return _chip_list__WEBPACK_IMPORTED_MODULE_0__["classNames"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChipList", function() { return _chip_list__WEBPACK_IMPORTED_MODULE_0__["ChipList"]; }); + +/* harmony import */ var _chip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./chip */ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/chip.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Chip", function() { return _chip__WEBPACK_IMPORTED_MODULE_1__["Chip"]; }); + +/** + * Chip modules + */ + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js ***! + \********************************************************************/ +/*! exports provided: wrapperInitialize, getTextNode, destroy, preRender, createCheckBox, rippleMouseHandler, setHiddenInput */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrapperInitialize", function() { return wrapperInitialize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTextNode", function() { return getTextNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "destroy", function() { return destroy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preRender", function() { return preRender; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCheckBox", function() { return createCheckBox; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rippleMouseHandler", function() { return rippleMouseHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setHiddenInput", function() { return setHiddenInput; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + + +/** + * Initialize wrapper element for angular. + * + * @private + * + * @param {CreateElementArgs} createElement - Specifies created element args + * @param {string} tag - Specifies tag name + * @param {string} type - Specifies type name + * @param {HTMLInputElement} element - Specifies input element + * @param {string} WRAPPER - Specifies wrapper element + * @param {string} role - Specifies role + * @returns {HTMLInputElement} - Input Element + */ +function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) { + var input = element; + if (element.tagName === tag) { + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', element); + input = createElement('input', { attrs: { 'type': type } }); + var props = ['change', 'cssClass', 'label', 'labelPosition', 'id']; + for (var index = 0, len = element.attributes.length; index < len; index++) { + if (props.indexOf(element.attributes[index].nodeName) === -1) { + input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'class': WRAPPER }); + element.appendChild(input); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, input); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["deleteObject"])(element, 'ej2_instances'); + } + return input; +} +/** + * Get the text node. + * + * @param {HTMLElement} element - Specifies html element + * @private + * @returns {Node} - Text node. + */ +function getTextNode(element) { + var node; + var childnode = element.childNodes; + for (var i = 0; i < childnode.length; i++) { + node = childnode[i]; + if (node.nodeType === 3) { + return node; + } + } + return null; +} +/** + * Destroy the button components. + * + * @private + * @param {Switch | CheckBox} ejInst - Specifies eJ2 Instance + * @param {Element} wrapper - Specifies wrapper element + * @param {string} tagName - Specifies tag name + * @returns {void} + */ +function destroy(ejInst, wrapper, tagName) { + if (tagName === 'INPUT') { + wrapper.parentNode.insertBefore(ejInst.element, wrapper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(wrapper); + ejInst.element.checked = false; + ['name', 'value', 'disabled'].forEach(function (key) { + ejInst.element.removeAttribute(key); + }); + } + else { + ['role', 'aria-checked', 'class'].forEach(function (key) { + wrapper.removeAttribute(key); + }); + wrapper.innerHTML = ''; + } +} +/** + * Initialize control pre rendering. + * + * @private + * @param {Switch | CheckBox} proxy - Specifies proxy + * @param {string} control - Specifies control + * @param {string} wrapper - Specifies wrapper element + * @param {HTMLInputElement} element - Specifies input element + * @param {string} moduleName - Specifies module name + * @returns {void} + */ +function preRender(proxy, control, wrapper, element, moduleName) { + element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName); + proxy.element = element; + if (proxy.element.getAttribute('type') !== 'checkbox') { + proxy.element.setAttribute('type', 'checkbox'); + } + if (!proxy.element.id) { + proxy.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + moduleName); + } +} +/** + * Creates CheckBox component UI with theming and ripple support. + * + * @private + * @param {CreateElementArgs} createElement - Specifies Created Element args + * @param {boolean} enableRipple - Specifies ripple effect + * @param {CheckBoxUtilModel} options - Specifies Checkbox util Model + * @returns {Element} - Checkbox Element + */ +function createCheckBox(createElement, enableRipple, options) { + if (enableRipple === void 0) { enableRipple = false; } + if (options === void 0) { options = {}; } + var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' }); + if (options.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], options.cssClass.split(' ')); + } + if (options.enableRtl) { + wrapper.classList.add('e-rtl'); + } + if (enableRipple) { + var rippleSpan = createElement('span', { className: 'e-ripple-container' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(rippleSpan, { isCenterRipple: true, duration: 400 }); + wrapper.appendChild(rippleSpan); + } + var frameSpan = createElement('span', { className: 'e-frame e-icons' }); + if (options.checked) { + frameSpan.classList.add('e-check'); + } + wrapper.appendChild(frameSpan); + if (options.label) { + var labelSpan = createElement('span', { className: 'e-label' }); + if (options.disableHtmlEncode) { + labelSpan.textContent = options.label; + } + else { + labelSpan.innerHTML = options.label; + } + wrapper.appendChild(labelSpan); + } + return wrapper; +} +/** + * Handles ripple mouse. + * + * @private + * @param {MouseEvent} e - Specifies mouse event + * @param {Element} rippleSpan - Specifies Ripple span element + * @returns {void} + */ +function rippleMouseHandler(e, rippleSpan) { + if (rippleSpan) { + var event_1 = document.createEvent('MouseEvents'); + event_1.initEvent(e.type, false, true); + rippleSpan.dispatchEvent(event_1); + } +} +/** + * Append hidden input to given element + * + * @private + * @param {Switch | CheckBox} proxy - Specifies Proxy + * @param {Element} wrap - Specifies Wrapper ELement + * @returns {void} + */ +function setHiddenInput(proxy, wrap) { + if (proxy.element.getAttribute('ejs-for')) { + wrap.appendChild(proxy.createElement('input', { + attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' } + })); + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/common/index.js ***! + \*******************************************************************/ +/*! exports provided: wrapperInitialize, getTextNode, destroy, preRender, createCheckBox, rippleMouseHandler, setHiddenInput */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wrapperInitialize", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["wrapperInitialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTextNode", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["getTextNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "destroy", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["destroy"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "preRender", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["preRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCheckBox", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["createCheckBox"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rippleMouseHandler", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["rippleMouseHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setHiddenInput", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["setHiddenInput"]; }); + +/** + * Common modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/floating-action-button.js": +/*!****************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/floating-action-button.js ***! + \****************************************************************************************************/ +/*! exports provided: FabPosition, Fab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FabPosition", function() { return FabPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fab", function() { return Fab; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _button_button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../button/button */ "./ej2-resources/22.1.37/scripts/ej2-buttons/button/button.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + + + +var FABHIDDEN = 'e-fab-hidden'; +var FIXEDFAB = 'e-fab-fixed'; +var FABVERTDIST = '--fabVertDist'; +var FABHORZDIST = '--fabHorzDist'; +var FABTOP = 'e-fab-top'; +var FABBOTTOM = 'e-fab-bottom'; +var FABRIGHT = 'e-fab-right'; +var FABLEFT = 'e-fab-left'; +var FABMIDDLE = 'e-fab-middle'; +var FABCENTER = 'e-fab-center'; +/** + * Defines the position of FAB (Floating Action Button) in target. + */ +var FabPosition; +(function (FabPosition) { + /** + * Positions the FAB at the target's top left corner. + */ + FabPosition["TopLeft"] = "TopLeft"; + /** + * Places the FAB on the top-center position of the target. + */ + FabPosition["TopCenter"] = "TopCenter"; + /** + * Positions the FAB at the target's top right corner. + */ + FabPosition["TopRight"] = "TopRight"; + /** + * Positions the FAB in the middle of target's left side. + */ + FabPosition["MiddleLeft"] = "MiddleLeft"; + /** + * Positions the FAB in the center of target. + */ + FabPosition["MiddleCenter"] = "MiddleCenter"; + /** + * Positions the FAB in the middle of target's right side. + */ + FabPosition["MiddleRight"] = "MiddleRight"; + /** + * Positions the FAB at the target's bottom left corner. + */ + FabPosition["BottomLeft"] = "BottomLeft"; + /** + * Places the FAB on the bottom-center position of the target. + */ + FabPosition["BottomCenter"] = "BottomCenter"; + /** + * Positions the FAB at the target's bottom right corner. + */ + FabPosition["BottomRight"] = "BottomRight"; +})(FabPosition || (FabPosition = {})); +/** + * The FAB Component (Floating Action Button) is an extension of Button Component that appears in front of all the contents of the page and performs the primary action. + */ +var Fab = /** @__PURE__ @class */ (function (_super) { + __extends(Fab, _super); + /** + * Constructor for creating the widget + * + * @param {FabModel} options - Specifies the floating action button model + * @param {string|HTMLButtonElement} element - Specifies the target element + */ + function Fab(options, element) { + return _super.call(this, options, element) || this; + } + /** + * Initialize the control rendering + * + * @returns {void} + * @private + */ + Fab.prototype.render = function () { + _super.prototype.render.call(this); + this.initializeFab(); + }; + Fab.prototype.preRender = function () { + _super.prototype.preRender.call(this); + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + Fab.prototype.getPersistData = function () { + _super.prototype.getPersistData.call(this); + return this.addOnPersist([]); + }; + /** + * Get component name. + * + * @returns {string} - Module name + * @private + */ + Fab.prototype.getModuleName = function () { + return 'fab'; + }; + Fab.prototype.initializeFab = function () { + // To add 'e-btn' class + this.element.classList.add('e-' + _super.prototype.getModuleName.call(this)); + this.checkTarget(); + this.setPosition(); + this.setVisibility(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'resize', this.resizeHandler, this); + }; + Fab.prototype.checkTarget = function () { + this.isFixed = true; + if (this.target) { + this.targetEle = (typeof this.target === 'string') ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.target) : this.target; + if (this.targetEle) { + this.isFixed = false; + this.targetEle.appendChild(this.element); + } + } + this.element.classList[this.isFixed ? 'add' : 'remove'](FIXEDFAB); + }; + Fab.prototype.setVisibility = function () { + this.element.classList[this.visible ? 'remove' : 'add'](FABHIDDEN); + }; + Fab.prototype.setPosition = function () { + this.setVerticalPosition(); + this.setHorizontalPosition(); + }; + Fab.prototype.setVerticalPosition = function () { + //Check for middle position and middle class and vertical distance atttribute. + if (['MiddleLeft', 'MiddleRight', 'MiddleCenter'].indexOf(this.position) !== -1) { + var yoffset = ((this.isFixed ? window.innerHeight : this.targetEle.clientHeight) - this.element.offsetHeight) / 2; + this.element.style.setProperty(FABVERTDIST, yoffset + 'px'); + this.element.classList.add(FABMIDDLE); + } + //Check for bottom position and bottom class else add top class. + this.element.classList.add((['BottomLeft', 'BottomCenter', 'BottomRight'].indexOf(this.position) !== -1) ? FABBOTTOM : FABTOP); + }; + Fab.prototype.setHorizontalPosition = function () { + //Check for center position and center class and horizontal distance atttribute. + if (['TopCenter', 'BottomCenter', 'MiddleCenter'].indexOf(this.position) !== -1) { + var xoffset = ((this.isFixed ? window.innerWidth : this.targetEle.clientWidth) - this.element.offsetWidth) / 2; + this.element.style.setProperty(FABHORZDIST, xoffset + 'px'); + this.element.classList.add(FABCENTER); + } + var isRight = ['TopRight', 'MiddleRight', 'BottomRight'].indexOf(this.position) !== -1; + this.element.classList.add((!(this.enableRtl || isRight) || (this.enableRtl && isRight)) ? FABLEFT : FABRIGHT); + }; + Fab.prototype.clearPosition = function () { + this.element.style.removeProperty(FABVERTDIST); + this.element.classList.remove(FABTOP, FABBOTTOM, FABMIDDLE); + this.clearHorizontalPosition(); + }; + Fab.prototype.clearHorizontalPosition = function () { + this.element.style.removeProperty(FABHORZDIST); + this.element.classList.remove(FABRIGHT, FABLEFT, FABCENTER); + }; + /** + * Refreshes the FAB position. You can call this method to re-position FAB when target is resized. + * + * @returns {void} + */ + Fab.prototype.refreshPosition = function () { + this.resizeHandler(); + }; + Fab.prototype.resizeHandler = function () { + this.setPosition(); + }; + /** + * Destroys the FAB instance. + * + * @returns {void} + * + */ + Fab.prototype.destroy = function () { + _super.prototype.destroy.call(this); + // To remove 'e-btn' class + this.element.classList.remove('e-' + _super.prototype.getModuleName.call(this), FIXEDFAB); + this.clearPosition(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'resize', this.resizeHandler); + }; + /** + * Called internally if any of the property value changed. + * + * @param {FabModel} newProp - Specifies new properties + * @param {FabModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + Fab.prototype.onPropertyChanged = function (newProp, oldProp) { + _super.prototype.onPropertyChanged.call(this, newProp, oldProp); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'enableRtl': + this.clearHorizontalPosition(); + this.setHorizontalPosition(); + break; + case 'visible': + this.setVisibility(); + break; + case 'position': + this.clearPosition(); + this.setPosition(); + break; + case 'target': + this.checkTarget(); + this.setPosition(); + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('BottomRight') + ], Fab.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Fab.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Fab.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Fab.prototype, "isPrimary", void 0); + Fab = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Fab); + return Fab; +}(_button_button__WEBPACK_IMPORTED_MODULE_1__["Button"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/index.js": +/*!***********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/index.js ***! + \***********************************************************************************/ +/*! exports provided: FabPosition, Fab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _floating_action_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./floating-action-button */ "./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/floating-action-button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabPosition", function() { return _floating_action_button__WEBPACK_IMPORTED_MODULE_0__["FabPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fab", function() { return _floating_action_button__WEBPACK_IMPORTED_MODULE_0__["Fab"]; }); + +/** + * Floating Action Button modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js": +/*!************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/index.js ***! + \************************************************************/ +/*! exports provided: wrapperInitialize, getTextNode, destroy, preRender, createCheckBox, rippleMouseHandler, setHiddenInput, IconPosition, buttonObserver, Button, CheckBox, RadioButton, Switch, classNames, ChipList, Chip, FabPosition, Fab, SpeedDialMode, LinearDirection, RadialDirection, SpeedDialAnimationEffect, SpeedDialAnimationSettings, RadialSettings, SpeedDialItem, SpeedDial */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wrapperInitialize", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["wrapperInitialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTextNode", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["getTextNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "destroy", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["destroy"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "preRender", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["preRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createCheckBox", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["createCheckBox"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rippleMouseHandler", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["rippleMouseHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setHiddenInput", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["setHiddenInput"]; }); + +/* harmony import */ var _button_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./button/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IconPosition", function() { return _button_index__WEBPACK_IMPORTED_MODULE_1__["IconPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buttonObserver", function() { return _button_index__WEBPACK_IMPORTED_MODULE_1__["buttonObserver"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Button", function() { return _button_index__WEBPACK_IMPORTED_MODULE_1__["Button"]; }); + +/* harmony import */ var _check_box_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./check-box/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/check-box/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckBox", function() { return _check_box_index__WEBPACK_IMPORTED_MODULE_2__["CheckBox"]; }); + +/* harmony import */ var _radio_button_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./radio-button/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioButton", function() { return _radio_button_index__WEBPACK_IMPORTED_MODULE_3__["RadioButton"]; }); + +/* harmony import */ var _switch_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./switch/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/switch/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return _switch_index__WEBPACK_IMPORTED_MODULE_4__["Switch"]; }); + +/* harmony import */ var _chips_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./chips/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/chips/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return _chips_index__WEBPACK_IMPORTED_MODULE_5__["classNames"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChipList", function() { return _chips_index__WEBPACK_IMPORTED_MODULE_5__["ChipList"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Chip", function() { return _chips_index__WEBPACK_IMPORTED_MODULE_5__["Chip"]; }); + +/* harmony import */ var _floating_action_button_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./floating-action-button/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FabPosition", function() { return _floating_action_button_index__WEBPACK_IMPORTED_MODULE_6__["FabPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Fab", function() { return _floating_action_button_index__WEBPACK_IMPORTED_MODULE_6__["Fab"]; }); + +/* harmony import */ var _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./speed-dial/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialMode", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["SpeedDialMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinearDirection", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["LinearDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialDirection", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["RadialDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationEffect", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["SpeedDialAnimationEffect"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationSettings", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["SpeedDialAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialSettings", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["RadialSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialItem", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["SpeedDialItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDial", function() { return _speed_dial_index__WEBPACK_IMPORTED_MODULE_7__["SpeedDial"]; }); + +/** + * Button all modules + */ + + + + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/index.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/index.js ***! + \*************************************************************************/ +/*! exports provided: RadioButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _radio_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./radio-button */ "./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/radio-button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadioButton", function() { return _radio_button__WEBPACK_IMPORTED_MODULE_0__["RadioButton"]; }); + +/** + * RadioButton modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/radio-button.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/radio-button/radio-button.js ***! + \********************************************************************************/ +/*! exports provided: RadioButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadioButton", function() { return RadioButton; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../common/common */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +var LABEL = 'e-label'; +var RIPPLE = 'e-ripple-container'; +var RTL = 'e-rtl'; +var WRAPPER = 'e-radio-wrapper'; +var ATTRIBUTES = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value']; +/** + * The RadioButton is a graphical user interface element that allows you to select one option from the choices. + * It contains checked and unchecked states. + * ```html + * + * + * ``` + */ +var RadioButton = /** @__PURE__ @class */ (function (_super) { + __extends(RadioButton, _super); + /** + * Constructor for creating the widget + * + * @private + * @param {RadioButtonModel} options - Specifies Radio button model + * @param {string | HTMLInputElement} element - Specifies target element + */ + function RadioButton(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isFocused = false; + return _this; + } + RadioButton_1 = RadioButton; + RadioButton.prototype.changeHandler = function (event) { + this.checked = true; + this.dataBind(); + var value = this.element.getAttribute('value'); + value = this.isVue && value ? this.element.value : this.value; + var type = typeof this.value; + if (this.isVue && type === 'boolean') { + value = value === 'true' ? true : false; + } + this.trigger('change', { value: value, event: event }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (this.isAngular) { + event.stopPropagation(); + } + }; + RadioButton.prototype.updateChange = function () { + var input; + var instance; + var radioGrp = this.getRadioGroup(); + for (var i = 0; i < radioGrp.length; i++) { + input = radioGrp[i]; + if (input !== this.element) { + instance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(input, RadioButton_1); + instance.checked = false; + if (this.tagName === 'EJS-RADIOBUTTON') { + instance.angularValue = this.value; + } + } + } + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + RadioButton.prototype.destroy = function () { + var _this = this; + var radioWrap = this.wrapper; + _super.prototype.destroy.call(this); + if (radioWrap) { + if (!this.disabled) { + this.unWireEvents(); + } + if (this.tagName === 'INPUT') { + if (radioWrap.parentNode) { + radioWrap.parentNode.insertBefore(this.element, radioWrap); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(radioWrap); + this.element.checked = false; + ['name', 'value', 'disabled'].forEach(function (key) { + _this.element.removeAttribute(key); + }); + } + else { + ['role', 'aria-checked', 'class'].forEach(function (key) { + radioWrap.removeAttribute(key); + }); + radioWrap.innerHTML = ''; + } + } + }; + RadioButton.prototype.focusHandler = function () { + this.isFocused = true; + }; + RadioButton.prototype.focusOutHandler = function () { + var label = this.getLabel(); + if (label) { + label.classList.remove('e-focus'); + } + }; + RadioButton.prototype.getModuleName = function () { + return 'radio'; + }; + /** + * To get the value of selected radio button in a group. + * + * @method getSelectedValue + * @returns {string} - Selected Value + */ + RadioButton.prototype.getSelectedValue = function () { + var input; + var radioGrp = this.getRadioGroup(); + for (var i = 0, len = radioGrp.length; i < len; i++) { + input = radioGrp[i]; + if (input.checked) { + return input.value; + } + } + return ''; + }; + RadioButton.prototype.getRadioGroup = function () { + return document.querySelectorAll('input.e-radio[name="' + this.element.getAttribute('name') + '"]'); + }; + /** + * Gets the properties to be maintained in the persistence state. + * + * @private + * @returns {string} - Persist Data + */ + RadioButton.prototype.getPersistData = function () { + return this.addOnPersist(['checked']); + }; + RadioButton.prototype.getWrapper = function () { + if (this.element) { + return this.element.parentElement; + } + else { + return null; + } + }; + RadioButton.prototype.getLabel = function () { + if (this.element) { + return this.element.nextElementSibling; + } + else { + return null; + } + }; + RadioButton.prototype.initialize = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initialCheckedValue)) { + this.initialCheckedValue = this.checked; + } + this.initWrapper(); + this.updateHtmlAttribute(); + if (this.name) { + this.element.setAttribute('name', this.name); + } + var value = this.element.getAttribute('value'); + var type = typeof this.value; + if (this.isVue && type === 'boolean') { + value = value === 'true' ? true : false; + } + if (this.isVue ? this.value && type !== 'boolean' && !value : this.value) { + this.element.setAttribute('value', this.value); + } + if (this.checked) { + this.element.checked = true; + } + if (this.disabled) { + this.setDisabled(); + } + }; + RadioButton.prototype.initWrapper = function () { + var rippleSpan; + var wrapper = this.element.parentElement; + if (!wrapper.classList.contains(WRAPPER)) { + wrapper = this.createElement('div', { className: WRAPPER }); + this.element.parentNode.insertBefore(wrapper, this.element); + } + var label = this.createElement('label', { attrs: { for: this.element.id } }); + wrapper.appendChild(this.element); + wrapper.appendChild(label); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + rippleSpan = this.createElement('span', { className: (RIPPLE) }); + label.appendChild(rippleSpan); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(rippleSpan, { + duration: 400, + isCenterRipple: true + }); + } + wrapper.classList.add('e-wrapper'); + if (this.enableRtl) { + label.classList.add(RTL); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if (this.label) { + this.setText(this.label); + } + }; + RadioButton.prototype.keyUpHandler = function () { + if (this.isFocused) { + this.getLabel().classList.add('e-focus'); + } + }; + RadioButton.prototype.labelMouseDownHandler = function (e) { + var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0]; + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + }; + RadioButton.prototype.labelMouseLeaveHandler = function (e) { + var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0]; + if (rippleSpan) { + var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element'); + for (var i = rippleElem.length - 1; i > 0; i--) { + rippleSpan.removeChild(rippleSpan.childNodes[i]); + } + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + } + }; + RadioButton.prototype.labelMouseUpHandler = function (e) { + var rippleSpan = this.getLabel().getElementsByClassName(RIPPLE)[0]; + if (rippleSpan) { + var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element'); + for (var i = rippleElem.length - 1; i > 0; i--) { + rippleSpan.removeChild(rippleSpan.childNodes[i]); + } + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + } + }; + RadioButton.prototype.formResetHandler = function () { + this.checked = this.initialCheckedValue; + if (this.initialCheckedValue) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'checked': 'true' }); + } + }; + /** + * Called internally if any of the property value changes. + * + * @private + * @param {RadioButtonModel} newProp - Specifies New Properties + * @param {RadioButtonModel} oldProp - Specifies Old Properties + * @returns {void} + */ + RadioButton.prototype.onPropertyChanged = function (newProp, oldProp) { + var wrap = this.getWrapper(); + var label = this.getLabel(); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'checked': + if (newProp.checked) { + this.updateChange(); + } + this.element.checked = newProp.checked; + break; + case 'disabled': + if (newProp.disabled) { + this.setDisabled(); + this.unWireEvents(); + } + else { + this.element.disabled = false; + this.wireEvents(); + } + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([wrap], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrap], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + break; + case 'enableRtl': + if (newProp.enableRtl) { + label.classList.add(RTL); + } + else { + label.classList.remove(RTL); + } + break; + case 'label': + this.setText(newProp.label); + break; + case 'labelPosition': + if (newProp.labelPosition === 'Before') { + label.classList.add('e-right'); + } + else { + label.classList.remove('e-right'); + } + break; + case 'name': + this.element.setAttribute('name', newProp.name); + break; + case 'value': + var type = typeof this.htmlAttributes.value; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes) && (this.htmlAttributes.value || type === 'boolean' && !this.htmlAttributes.value)) { + break; + } + this.element.setAttribute('value', newProp.value); + break; + case 'htmlAttributes': + this.updateHtmlAttribute(); + break; + } + } + }; + /** + * Initialize checked Property, Angular and React and Unique ID support. + * + * @private + * @returns {void} + */ + RadioButton.prototype.preRender = function () { + var element = this.element; + this.formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + this.tagName = this.element.tagName; + element = Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["wrapperInitialize"])(this.createElement, 'EJS-RADIOBUTTON', 'radio', element, WRAPPER, 'radio'); + this.element = element; + if (this.element.getAttribute('type') !== 'radio') { + this.element.setAttribute('type', 'radio'); + } + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + if (this.tagName === 'EJS-RADIOBUTTON') { + var formControlName = this.element.getAttribute('formcontrolname'); + if (formControlName) { + this.setProperties({ 'name': formControlName }, true); + this.element.setAttribute('name', formControlName); + } + } + }; + /** + * Initialize the control rendering + * + * @private + * @returns {void} + */ + RadioButton.prototype.render = function () { + this.initialize(); + if (!this.disabled) { + this.wireEvents(); + } + this.renderComplete(); + this.wrapper = this.getWrapper(); + }; + RadioButton.prototype.setDisabled = function () { + this.element.disabled = true; + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + RadioButton.prototype.setText = function (text) { + var label = this.getLabel(); + var textLabel = label.getElementsByClassName(LABEL)[0]; + if (textLabel) { + textLabel.textContent = text; + } + else { + text = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(text) : text; + textLabel = this.createElement('span', { className: LABEL, innerHTML: text }); + label.appendChild(textLabel); + } + if (this.labelPosition === 'Before') { + this.getLabel().classList.add('e-right'); + } + else { + this.getLabel().classList.remove('e-right'); + } + }; + RadioButton.prototype.updateHtmlAttribute = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (ATTRIBUTES.indexOf(key) > -1) { + var wrapper = this.element.parentElement; + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.htmlAttributes["" + key].replace(/\s+/g, ' ').trim().split(' ')); + } + else if (key === 'title' || key === 'style') { + wrapper.setAttribute(key, this.htmlAttributes["" + key]); + } + else { + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + } + }; + RadioButton.prototype.unWireEvents = function () { + var label = this.wrapper; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'change', this.changeHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', this.focusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusout', this.focusOutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', this.keyUpHandler); + var rippleLabel = label.getElementsByTagName('label')[0]; + if (rippleLabel) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(rippleLabel, 'mousedown', this.labelMouseDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(rippleLabel, 'mouseup', this.labelMouseUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(rippleLabel, 'mouseleave', this.labelMouseLeaveHandler); + } + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', this.formResetHandler); + } + }; + RadioButton.prototype.wireEvents = function () { + var label = this.getLabel(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'change', this.changeHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', this.keyUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', this.focusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.focusOutHandler, this); + var rippleLabel = label.getElementsByClassName(LABEL)[0]; + if (rippleLabel) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(rippleLabel, 'mousedown', this.labelMouseDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(rippleLabel, 'mouseup', this.labelMouseUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(rippleLabel, 'mouseleave', this.labelMouseLeaveHandler, this); + } + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.formResetHandler, this); + } + }; + /** + * Click the RadioButton element + * its native method + * + * @public + * @returns {void} + */ + RadioButton.prototype.click = function () { + this.element.click(); + }; + /** + * Sets the focus to RadioButton + * its native method + * + * @public + * @returns {void} + */ + RadioButton.prototype.focusIn = function () { + this.element.focus(); + }; + var RadioButton_1; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], RadioButton.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], RadioButton.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], RadioButton.prototype, "checked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], RadioButton.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], RadioButton.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], RadioButton.prototype, "label", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('After') + ], RadioButton.prototype, "labelPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], RadioButton.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], RadioButton.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], RadioButton.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], RadioButton.prototype, "htmlAttributes", void 0); + RadioButton = RadioButton_1 = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], RadioButton); + return RadioButton; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/index.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/index.js ***! + \***********************************************************************/ +/*! exports provided: SpeedDialMode, LinearDirection, RadialDirection, SpeedDialAnimationEffect, SpeedDialAnimationSettings, RadialSettings, SpeedDialItem, SpeedDial */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _speed_dial__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speed-dial */ "./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/speed-dial.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialMode", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["SpeedDialMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinearDirection", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["LinearDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialDirection", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["RadialDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationEffect", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["SpeedDialAnimationEffect"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationSettings", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["SpeedDialAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialSettings", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["RadialSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDialItem", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["SpeedDialItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpeedDial", function() { return _speed_dial__WEBPACK_IMPORTED_MODULE_0__["SpeedDial"]; }); + +/** + * SpeedDial modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/speed-dial.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/speed-dial/speed-dial.js ***! + \****************************************************************************/ +/*! exports provided: SpeedDialMode, LinearDirection, RadialDirection, SpeedDialAnimationEffect, SpeedDialAnimationSettings, RadialSettings, SpeedDialItem, SpeedDial */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpeedDialMode", function() { return SpeedDialMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinearDirection", function() { return LinearDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadialDirection", function() { return RadialDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationEffect", function() { return SpeedDialAnimationEffect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpeedDialAnimationSettings", function() { return SpeedDialAnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadialSettings", function() { return RadialSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpeedDialItem", function() { return SpeedDialItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpeedDial", function() { return SpeedDial; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _floating_action_button_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../floating-action-button/index */ "./ej2-resources/22.1.37/scripts/ej2-buttons/floating-action-button/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var topPosition = ['TopLeft', 'TopCenter', 'TopRight']; +var bottomPosition = ['BottomLeft', 'BottomCenter', 'BottomRight']; +var leftPosition = ['TopLeft', 'MiddleLeft', 'BottomLeft']; +var rightPosition = ['TopRight', 'MiddleRight', 'BottomRight']; +var SDHIDDEN = 'e-speeddial-hidden'; +var FIXEDSD = 'e-speeddial-fixed'; +var SPEEDDIAL = 'e-speeddial'; +var RTLCLASS = 'e-rtl'; +var HOVERSD = 'e-speeddial-hover-open'; +var RADIALSD = 'e-speeddial-radial'; +var LINEARSD = 'e-speeddial-linear'; +var TEMPLATESD = 'e-speeddial-template'; +var SDTEMPLATECONTAINER = 'e-speeddial-template-container'; +var SDOVERLAY = 'e-speeddial-overlay'; +var SDPOPUP = 'e-speeddial-popup'; +var SDUL = 'e-speeddial-ul'; +var SDLI = 'e-speeddial-li'; +var SDACTIVELI = 'e-speeddial-li-active'; +var SDLIICON = 'e-speeddial-li-icon'; +var SDLITEXT = 'e-speeddial-li-text'; +var SDLITEXTONLY = 'e-speeddial-text-li'; +var DISABLED = 'e-disabled'; +var SDVERTICALBOTTOM = 'e-speeddial-vert-bottom'; +var SDVERTICALRIGHT = 'e-speeddial-vert-right'; +var SDHORIZONTALTOP = 'e-speeddial-horz-top'; +var SDHORIZONTALLEFT = 'e-speeddial-horz-left'; +var SDHORIZONTALRIGHT = 'e-speeddial-horz-right'; +var SDOVERFLOW = 'e-speeddial-overflow'; +var SDVERTOVERFLOW = 'e-speeddial-vert-overflow'; +var SDHORZOVERFLOW = 'e-speeddial-horz-overflow'; +var SDTOP = 'e-speeddial-top'; +var SDBOTTOM = 'e-speeddial-bottom'; +var SDRIGHT = 'e-speeddial-right'; +var SDLEFT = 'e-speeddial-left'; +var SDMIDDLE = 'e-speeddial-middle'; +var SDCENTER = 'e-speeddial-center'; +var SDTOPLEFT = 'e-speeddial-top-left'; +var SDBOTTOMRIGHT = 'e-speeddial-bottom-right'; +var SDTOPRIGHT = 'e-speeddial-top-right'; +var SDBOTTOMLEFT = 'e-speeddial-bottom-left'; +var SDVERTDIST = '--speeddialVertDist'; +var SDHORZDIST = '--speeddialHorzDist'; +var SDRADICALANGLE = '--speeddialRadialAngle'; +var SDRADICALOFFSET = '--speeddialRadialOffset'; +var SDRADICALMINHEIGHT = '--speeddialRadialMinHeight'; +var SDRADICALMINWIDTH = '--speeddialRadialMinWidth'; +var SDOVERFLOWLIMIT = '--speeddialOverflowLimit'; +/** + * Defines the display mode of speed dial action items in SpeedDial + */ +var SpeedDialMode; +(function (SpeedDialMode) { + /** + * SpeedDial items are displayed in linear order like list. + */ + SpeedDialMode["Linear"] = "Linear"; + /** + * SpeedDial items are displayed like radial menu in radial direction (circular direction). + */ + SpeedDialMode["Radial"] = "Radial"; +})(SpeedDialMode || (SpeedDialMode = {})); +/** + * Defines the speed dial action items display direction when mode is Linear. + */ +var LinearDirection; +(function (LinearDirection) { + /** + * Speed dial action items are displayed vertically above the button of Speed Dial. + */ + LinearDirection["Up"] = "Up"; + /** + * Speed dial action items are displayed vertically below the button of Speed Dial. + */ + LinearDirection["Down"] = "Down"; + /** + * Speed dial action items are displayed horizontally on the button's right side. + */ + LinearDirection["Right"] = "Right"; + /** + * Speed dial action items are displayed horizontally on the button's left side. + */ + LinearDirection["Left"] = "Left"; + /** + * Speed dial action items are displayed vertically above or below the button of Speed Dial based on the position. + * If Position is TopRight, TopLeft, TopCenter, the items are displayed vertically below the button else above the button. + */ + LinearDirection["Auto"] = "Auto"; +})(LinearDirection || (LinearDirection = {})); +/** + * Defines the speed dial action items order, when mode is Radial. + */ +var RadialDirection; +(function (RadialDirection) { + /** + * SpeedDial items are arranged in clockwise direction. + */ + RadialDirection["Clockwise"] = "Clockwise"; + /** + * SpeedDial items are shown in anti-clockwise direction. + */ + RadialDirection["AntiClockwise"] = "AntiClockwise"; + /** + * SpeedDial items are shown clockwise or anti-clockwise based on the position. + */ + RadialDirection["Auto"] = "Auto"; +})(RadialDirection || (RadialDirection = {})); +/** + * Defines the animation effect applied when open and close the speed dial items. + */ +var SpeedDialAnimationEffect; +(function (SpeedDialAnimationEffect) { + /** + * SpeedDial open/close actions occur with the Fade animation effect. + */ + SpeedDialAnimationEffect["Fade"] = "Fade"; + /** + * SpeedDial open/close actions occur with the FadeZoom animation effect. + */ + SpeedDialAnimationEffect["FadeZoom"] = "FadeZoom"; + /** + * SpeedDial open/close actions occur with the FlipLeftDown animation effect. + */ + SpeedDialAnimationEffect["FlipLeftDown"] = "FlipLeftDown"; + /** + * SpeedDial open/close actions occur with the FlipLeftUp animation effect. + */ + SpeedDialAnimationEffect["FlipLeftUp"] = "FlipLeftUp"; + /** + * SpeedDial open/close actions occur with the FlipRightDown animation effect. + */ + SpeedDialAnimationEffect["FlipRightDown"] = "FlipRightDown"; + /** + * SpeedDial open/close actions occur with the FlipRightUp animation effect. + */ + SpeedDialAnimationEffect["FlipRightUp"] = "FlipRightUp"; + /** + * SpeedDial open/close actions occur with the FlipXDown animation effect. + */ + SpeedDialAnimationEffect["FlipXDown"] = "FlipXDown"; + /** + * SpeedDial open/close actions occur with the FlipXUp animation effect. + */ + SpeedDialAnimationEffect["FlipXUp"] = "FlipXUp"; + /** + * SpeedDial open/close actions occur with the FlipYLeft animation effect. + */ + SpeedDialAnimationEffect["FlipYLeft"] = "FlipYLeft"; + /** + * SpeedDial open/close actions occur with the FlipYRight animation effect. + */ + SpeedDialAnimationEffect["FlipYRight"] = "FlipYRight"; + /** + * SpeedDial open/close actions occur with the SlideBottom animation effect. + */ + SpeedDialAnimationEffect["SlideBottom"] = "SlideBottom"; + /** + * SpeedDial open/close actions occur with the SlideLeft animation effect. + */ + SpeedDialAnimationEffect["SlideLeft"] = "SlideLeft"; + /** + * SpeedDial open/close actions occur with the SlideRight animation effect. + */ + SpeedDialAnimationEffect["SlideRight"] = "SlideRight"; + /** + * SpeedDial open/close actions occur with the SlideTop animation effect. + */ + SpeedDialAnimationEffect["SlideTop"] = "SlideTop"; + /** + * SpeedDial open/close actions occur with the Zoom animation effect. + */ + SpeedDialAnimationEffect["Zoom"] = "Zoom"; + /** + * SpeedDial open/close actions occur without any animation effect. + */ + SpeedDialAnimationEffect["None"] = "None"; +})(SpeedDialAnimationEffect || (SpeedDialAnimationEffect = {})); +/** + * AProvides options to customize the animation applied while opening and closing the popup of SpeedDial. + */ +var SpeedDialAnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(SpeedDialAnimationSettings, _super); + function SpeedDialAnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Fade') + ], SpeedDialAnimationSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], SpeedDialAnimationSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], SpeedDialAnimationSettings.prototype, "delay", void 0); + return SpeedDialAnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Provides the options to customize the speed dial action buttons when mode of SpeedDial is Radial. + */ +var RadialSettings = /** @__PURE__ @class */ (function (_super) { + __extends(RadialSettings, _super); + function RadialSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], RadialSettings.prototype, "direction", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], RadialSettings.prototype, "endAngle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100px') + ], RadialSettings.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], RadialSettings.prototype, "startAngle", void 0); + return RadialSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the items of Floating Action Button. + */ +var SpeedDialItem = /** @__PURE__ @class */ (function (_super) { + __extends(SpeedDialItem, _super); + function SpeedDialItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDialItem.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDialItem.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDialItem.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDialItem.prototype, "title", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SpeedDialItem.prototype, "disabled", void 0); + return SpeedDialItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * The SpeedDial component that appears in front of all the contents of the page and displays list of action buttons on click which is an extended version of FAB. + * The button of speed dial is positioned in relative to a view port of browser or the . + * It can display a menu of related actions or a custom content popupTemplate>. + * + */ +var SpeedDial = /** @__PURE__ @class */ (function (_super) { + __extends(SpeedDial, _super); + /** + * Constructor for creating the widget + * + * @param {SpeedDialModel} options - Specifies the floating action button model + * @param {string|HTMLButtonElement} element - Specifies the target element + */ + function SpeedDial(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isMenuOpen = false; + _this.isClock = true; + _this.isVertical = true; + _this.isControl = false; + _this.focusedIndex = -1; + return _this; + } + /** + * Initialize the control rendering + * + * @returns {void} + * @private + */ + SpeedDial.prototype.render = function () { + this.initialize(); + }; + SpeedDial.prototype.preRender = function () { + this.keyConfigs = { + space: 'space', + enter: 'enter', + end: 'end', + home: 'home', + moveDown: 'downarrow', + moveLeft: 'leftarrow', + moveRight: 'rightarrow', + moveUp: 'uparrow', + esc: 'escape' + }; + this.validateDirection(); + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + SpeedDial.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * Get component name. + * + * @returns {string} - Module name + * @private + */ + SpeedDial.prototype.getModuleName = function () { + return 'speed-dial'; + }; + SpeedDial.prototype.initialize = function () { + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + this.fab = new _floating_action_button_index__WEBPACK_IMPORTED_MODULE_1__["Fab"]({ + content: this.content, + cssClass: this.cssClass ? (SPEEDDIAL + ' ' + this.cssClass) : SPEEDDIAL, + disabled: this.disabled, + enablePersistence: this.enablePersistence, + enableRtl: this.enableRtl, + iconCss: this.openIconCss, + iconPosition: this.iconPosition, + position: this.position, + target: this.target, + visible: this.visible + }); + this.fab.appendTo(this.element); + if ((this.items.length > 0) || this.popupTemplate) { + this.createPopup(); + } + this.wireEvents(); + }; + SpeedDial.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'resize', this.resizeHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document.body, 'click', this.bodyClickHandler, this); + if (this.opensOnHover) { + this.wireFabHover(); + } + else { + this.wireFabClick(); + } + }; + SpeedDial.prototype.wirePopupEvents = function () { + this.removeRippleEffect = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.popupEle, { selector: '.' + SDLIICON }); + this.keyboardModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs, + eventName: 'keydown' + }); + this.popupKeyboardModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.popupEle, { + keyAction: this.popupKeyActionHandler.bind(this), + keyConfigs: { esc: 'escape' }, + eventName: 'keydown' + }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.popupEle, 'click', this.popupClick, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.popupEle, 'mouseleave', this.popupMouseLeaveHandle, this); + }; + SpeedDial.prototype.wireFabClick = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.fab.element, 'click', this.fabClick, this); + }; + SpeedDial.prototype.wireFabHover = function () { + this.popupEle.classList.add(HOVERSD); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.fab.element, 'mouseover', this.mouseOverHandle, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseleave', this.mouseLeaveHandle, this); + }; + SpeedDial.prototype.createPopup = function () { + var className = SDPOPUP + ' ' + SDHIDDEN; + className = this.enableRtl ? className + ' ' + RTLCLASS : className; + className = this.cssClass ? className + ' ' + this.cssClass : className; + this.popupEle = this.createElement('div', { + className: className, + id: this.element.id + '_popup' + }); + this.element.insertAdjacentElement('afterend', this.popupEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-expanded': 'false', 'aria-haspopup': 'true', 'aria-controls': this.popupEle.id }); + this.setPopupContent(); + if (this.modal) { + this.createOverlay(); + } + this.checkTarget(); + this.setPositionProps(); + this.wirePopupEvents(); + }; + SpeedDial.prototype.createOverlay = function () { + this.overlayEle = this.createElement('div', { + id: this.element.id + '_overlay', + className: (SDOVERLAY + (this.isMenuOpen ? '' : ' ' + SDHIDDEN) + ' ' + this.cssClass).trim() + }); + this.element.insertAdjacentElement('beforebegin', this.overlayEle); + }; + SpeedDial.prototype.popupClick = function () { + this.isControl = true; + }; + //Checks and closes the speed dial if the click happened outside this speed dial. + SpeedDial.prototype.bodyClickHandler = function (e) { + if (this.isControl) { + this.isControl = false; + return; + } + if (this.isMenuOpen) { + this.hidePopupEle(e); + } + }; + SpeedDial.prototype.fabClick = function (e) { + this.isControl = true; + if (this.isMenuOpen) { + this.hidePopupEle(e); + } + else { + this.showPopupEle(e); + } + }; + SpeedDial.prototype.setPopupContent = function () { + this.popupEle.classList.remove(RADIALSD, LINEARSD, TEMPLATESD); + if (!this.popupTemplate) { + this.popupEle.classList.add((this.mode === 'Radial') ? RADIALSD : LINEARSD); + this.createUl(); + this.createItems(); + } + else { + this.popupEle.classList.add(TEMPLATESD); + this.appendTemplate(); + } + this.renderReactTemplates(); + }; + SpeedDial.prototype.appendTemplate = function () { + var templateContainer = this.createElement('div', { className: SDTEMPLATECONTAINER }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([templateContainer], this.popupEle); + var templateFunction = this.getTemplateString(this.popupTemplate); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(templateFunction({}, this, 'fabPopupTemplate', (this.element.id + 'popupTemplate'), this.isStringTemplate), templateContainer); + }; + SpeedDial.prototype.getTemplateString = function (template) { + var stringContent = ''; + try { + var tempEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(template); + if (typeof template !== 'function' && tempEle) { + //Return innerHTML incase of jsrenderer script else outerHTML + stringContent = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML; + } + else { + stringContent = template; + } + } + catch (e) { + stringContent = template; + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(stringContent); + }; + SpeedDial.prototype.updatePopupTemplate = function () { + if (this.popupEle) { + if (this.popupEle.querySelector('.' + SDLI)) { + this.clearItems(); + this.popupEle.classList.remove(RADIALSD, LINEARSD); + this.popupEle.classList.add(TEMPLATESD); + } + while (this.popupEle.firstElementChild) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.popupEle.firstElementChild); + } + this.setPopupContent(); + this.updatePositionProperties(); + } + else { + this.createPopup(); + } + }; + SpeedDial.prototype.createUl = function () { + var popupUlEle = this.createElement('ul', { + className: SDUL, + id: this.element.id + '_ul', + attrs: { 'role': 'menu' } + }); + this.popupEle.appendChild(popupUlEle); + }; + SpeedDial.prototype.createItems = function () { + var _this = this; + this.focusedIndex = -1; + var ul = this.popupEle.querySelector('.' + SDUL); + var _loop_1 = function (index) { + var item = this_1.items[parseInt(index.toString(), 10)]; + var li = this_1.createElement('li', { + className: SDLI + ' ' + SDHIDDEN, + id: item.id ? item.id : (this_1.element.id + '_li_' + index), + attrs: { 'role': 'menuitem' } + }); + if (item.text) { + li.setAttribute('aria-label', item.text); + } + if (this_1.itemTemplate) { + var templateFunction = this_1.getTemplateString(this_1.itemTemplate); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(templateFunction(item, this_1, 'fabItemTemplate', (this_1.element.id + 'itemTemplate'), this_1.isStringTemplate), li); + } + else { + if (item.iconCss) { + var iconSpan = this_1.createElement('span', { + className: SDLIICON + ' ' + item.iconCss + }); + li.appendChild(iconSpan); + } + if (item.text) { + var textSpan = this_1.createElement('span', { + className: SDLITEXT + }); + textSpan.innerText = item.text; + li.appendChild(textSpan); + if (!item.iconCss) { + li.classList.add(SDLITEXTONLY); + } + } + } + if (item.disabled) { + li.classList.add(DISABLED); + li.setAttribute('aria-disabled', 'true'); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(li, 'click', function (e) { return _this.triggerItemClick(e, item); }, this_1); + } + if (item.title) { + li.setAttribute('title', item.title); + } + var eventArgs = { element: li, item: item }; + this_1.trigger('beforeItemRender', eventArgs, function (args) { + ul.appendChild(args.element); + }); + }; + var this_1 = this; + for (var index = 0; index < this.items.length; index++) { + _loop_1(index); + } + }; + SpeedDial.prototype.setRTL = function () { + this.popupEle.classList[this.enableRtl ? 'add' : 'remove'](RTLCLASS); + this.clearHorizontalPosition(); + if (!(this.popupTemplate || (this.mode === 'Radial'))) { + this.setLinearHorizontalPosition(); + } + else { + this.setHorizontalPosition(); + } + }; + SpeedDial.prototype.checkTarget = function () { + this.isFixed = true; + if (this.target) { + this.targetEle = (typeof this.target === 'string') ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.target) : this.target; + if (this.targetEle) { + this.targetEle.appendChild(this.element); + this.isFixed = false; + } + } + if (this.isFixed) { + if (this.popupEle) { + this.popupEle.classList.add(FIXEDSD); + } + if (this.overlayEle) { + this.overlayEle.classList.add(FIXEDSD); + } + } + else { + if (this.popupEle) { + this.popupEle.classList.remove(FIXEDSD); + } + if (this.overlayEle) { + this.overlayEle.classList.remove(FIXEDSD); + } + } + }; + SpeedDial.prototype.setVisibility = function (val) { + this.setProperties({ visible: val }, true); + this.fab.setProperties({ visible: val }); + }; + SpeedDial.prototype.popupMouseLeaveHandle = function (e) { + var target = e.relatedTarget; + if (this.opensOnHover && !(target.classList.contains(SPEEDDIAL) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + SPEEDDIAL))) { + this.hidePopupEle(e); + } + }; + SpeedDial.prototype.mouseOverHandle = function (e) { + this.showPopupEle(e); + }; + SpeedDial.prototype.mouseLeaveHandle = function (e) { + var target = e.relatedTarget; + if (!(target.classList.contains(SDPOPUP) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + SDPOPUP))) { + this.hidePopupEle(e); + } + }; + SpeedDial.prototype.popupKeyActionHandler = function (e) { + switch (e.action) { + case 'esc': + this.hidePopupEle(e); + break; + } + }; + SpeedDial.prototype.keyActionHandler = function (e) { + e.preventDefault(); + switch (e.action) { + case 'enter': + case 'space': + if (this.isMenuOpen) { + if (this.focusedIndex !== -1) { + this.triggerItemClick(e, this.items[this.focusedIndex]); + } + else { + this.hidePopupEle(e); + } + } + else { + this.showPopupEle(e); + } + break; + case 'esc': + this.hidePopupEle(e); + break; + default: + if (this.popupTemplate || !this.isMenuOpen) { + break; + } + switch (e.action) { + case 'end': + this.focusLastElement(); + break; + case 'home': + this.focusFirstElement(); + break; + case 'moveRight': + if (this.mode === 'Radial') { + this.focusLeftRightElement(false); + } + else { + this.focusLinearElement(false); + } + break; + case 'moveDown': + if (this.mode === 'Radial') { + this.focusUpDownElement(false); + } + else { + this.focusLinearElement(false); + } + break; + case 'moveLeft': + if (this.mode === 'Radial') { + this.focusLeftRightElement(true); + } + else { + this.focusLinearElement(true); + } + break; + case 'moveUp': + if (this.mode === 'Radial') { + this.focusUpDownElement(true); + } + else { + this.focusLinearElement(true); + } + break; + } + break; + } + }; + SpeedDial.prototype.focusFirstElement = function () { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + var index = 0; + while (ele[parseInt(index.toString(), 10)].classList.contains(DISABLED)) { + index++; + if (index > (ele.length - 1)) { + return; + } + } + this.setFocus(index, ele[parseInt(index.toString(), 10)]); + }; + SpeedDial.prototype.focusLastElement = function () { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + var index = ele.length - 1; + while (ele[parseInt(index.toString(), 10)].classList.contains(DISABLED)) { + index--; + if (index < 0) { + return; + } + } + this.setFocus(index, ele[parseInt(index.toString(), 10)]); + }; + /*Linear*/ + SpeedDial.prototype.focusLinearElement = function (isLeftUp) { + var isReversed = this.popupEle.classList.contains(SDVERTICALBOTTOM) || + this.popupEle.classList.contains(SDHORIZONTALRIGHT); + /* Elements will be in reverse (RTL) order for these classes are present. + Reversed and Down or right is previous. + Not reversed and Up or left is previous. + ((isReversed && !isLeftUp)||(!isReversed && isLeftUp)) ==> isReversed!==isLeftUp */ + if (isReversed !== isLeftUp) { + this.focusPrevElement(); + } + else { + this.focusNextElement(); + } + }; + /*Radial*/ + SpeedDial.prototype.focusLeftRightElement = function (isLeft) { + /*radialTop position and left + anticlock or right + clock is previous + other positions and right + anticlock or left + clock is previous + ((isLeft && !this.isClock)||(!isLeft && this.isClock)) ==> isLeft!==this.isClock */ + var isradialTop = ['TopLeft', 'TopCenter', 'TopRight', 'MiddleLeft'].indexOf(this.position) !== -1; + if ((isradialTop && (isLeft !== this.isClock)) || (!isradialTop && (isLeft === this.isClock))) { + this.focusPrevElement(); + } + else { + this.focusNextElement(); + } + }; + /*Radial*/ + SpeedDial.prototype.focusUpDownElement = function (isUp) { + /*radialRight position and up + anticlock or down + clock is previous + other positions and down + anticlock or up + clock is previous + ((isUp && !this.isClock)||(!isUp && this.isClock)) ==> isUp!==this.isClock */ + var isradialRight = ['TopRight', 'MiddleRight', 'BottomRight', 'BottomCenter'].indexOf(this.position) !== -1; + if ((isradialRight && (isUp !== this.isClock)) || (!isradialRight && (isUp === this.isClock))) { + this.focusPrevElement(); + } + else { + this.focusNextElement(); + } + }; + SpeedDial.prototype.focusPrevElement = function () { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + var index = this.focusedIndex; + do { + index--; + if (index < 0) { + this.setFocus(-1); + return; + } + } while (ele[parseInt(index.toString(), 10)].classList.contains(DISABLED)); + this.setFocus(index, ele[parseInt(index.toString(), 10)]); + }; + SpeedDial.prototype.focusNextElement = function () { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + var index = this.focusedIndex; + do { + index++; + if (index > (ele.length - 1)) { + return; + } + } while (ele[parseInt(index.toString(), 10)].classList.contains(DISABLED)); + this.setFocus(index, ele[parseInt(index.toString(), 10)]); + }; + SpeedDial.prototype.setFocus = function (index, ele) { + this.removeFocus(); + if (ele) { + ele.classList.add(SDACTIVELI); + } + this.focusedIndex = index; + }; + SpeedDial.prototype.removeFocus = function () { + var preEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SDACTIVELI, this.popupEle); + if (preEle) { + preEle.classList.remove(SDACTIVELI); + } + }; + SpeedDial.prototype.updatePositionProperties = function () { + this.hidePopupEle(); + this.clearPosition(); + this.validateDirection(); + this.setPositionProps(); + }; + SpeedDial.prototype.setPositionProps = function () { + if (this.popupTemplate) { + this.setPosition(); + } + else if ((this.mode === 'Radial')) { + this.setRadialPosition(); + this.setPosition(); + } + else { + this.setLinearPosition(); + this.setMaxSize(); + } + }; + SpeedDial.prototype.validateDirection = function () { + switch (this.direction) { + case 'Up': + this.actualLinDirection = (topPosition.indexOf(this.position) !== -1) ? 'Auto' : 'Up'; + break; + case 'Down': + this.actualLinDirection = (bottomPosition.indexOf(this.position) !== -1) ? 'Auto' : 'Down'; + break; + case 'Right': + this.actualLinDirection = (rightPosition.indexOf(this.position) !== -1) ? 'Auto' : 'Right'; + break; + case 'Left': + this.actualLinDirection = (leftPosition.indexOf(this.position) !== -1) ? 'Auto' : 'Left'; + break; + case 'Auto': + default: + this.actualLinDirection = 'Auto'; + break; + } + this.isVertical = !((this.actualLinDirection === 'Left') || (this.actualLinDirection === 'Right')); + }; + SpeedDial.prototype.setMaxSize = function () { + var top = this.element.offsetTop; + var left = this.element.offsetLeft; + var bottom = (this.isFixed ? window.innerHeight : this.targetEle.clientHeight) - + this.element.offsetTop - this.element.offsetHeight; + var right = (this.isFixed ? window.innerWidth : this.targetEle.clientWidth) - + this.element.offsetLeft - this.element.offsetWidth; + var limit = 0; + var popupUlEle = this.popupEle.querySelector('.' + SDUL); + if (this.isVertical) { + limit = ((this.actualLinDirection === 'Up') || ((this.actualLinDirection === 'Auto') && (topPosition.indexOf(this.position) === -1))) ? top : bottom; + if (limit < popupUlEle.offsetHeight) { + this.popupEle.classList.add(SDOVERFLOW, SDVERTOVERFLOW); + popupUlEle.style.setProperty(SDOVERFLOWLIMIT, limit + 'px'); + } + } + else { + limit = (this.direction === 'Right') ? right : left; + if (limit < popupUlEle.offsetWidth) { + this.popupEle.classList.add(SDOVERFLOW, SDHORZOVERFLOW); + popupUlEle.style.setProperty(SDOVERFLOWLIMIT, limit + 'px'); + } + } + }; + SpeedDial.prototype.setLinearPosition = function () { + var vertDist = 0; + //Check whether the position value should be in top + var isTop = (this.actualLinDirection === 'Down') || ((this.actualLinDirection === 'Auto') && (topPosition.indexOf(this.position) !== -1)) || + (!this.isVertical && (bottomPosition.indexOf(this.position) === -1)); + if (isTop) { + vertDist = this.element.offsetTop + (this.isVertical ? this.element.offsetHeight : 0); + if (!this.isVertical) { + this.popupEle.classList.add(SDHORIZONTALTOP); + } + } + else { + vertDist = this.isFixed ? window.innerHeight : this.targetEle.clientHeight; + vertDist = (vertDist - this.element.offsetTop - (this.isVertical ? 0 : this.element.offsetHeight)); + if (this.isVertical) { + this.popupEle.classList.add(SDVERTICALBOTTOM); + } + } + this.popupEle.classList.add(isTop ? SDTOP : SDBOTTOM); + this.popupEle.style.setProperty(SDVERTDIST, vertDist + 'px'); + this.setLinearHorizontalPosition(); + }; + SpeedDial.prototype.setLinearHorizontalPosition = function () { + //Check whether the position value should be in left + if ((this.actualLinDirection === 'Right') || (this.isVertical && (rightPosition.indexOf(this.position) === -1))) { + if (this.enableRtl) { + this.setRight(); + } + else { + this.setLeft(); + } //reverse the direction when RTL enabled + if (!this.isVertical) { + this.popupEle.classList.add(SDHORIZONTALLEFT); + } + } + else { + if (this.enableRtl) { + this.setLeft(); + } + else { + this.setRight(); + } //reverse the direction when RTL enabled + this.popupEle.classList.add(this.isVertical ? SDVERTICALRIGHT : SDHORIZONTALRIGHT); + } + }; + SpeedDial.prototype.setLeft = function () { + var horzDist = this.element.offsetLeft + (this.isVertical ? 0 : this.element.offsetWidth); + this.popupEle.style.setProperty(SDHORZDIST, horzDist + 'px'); + this.popupEle.classList.add(SDLEFT); + }; + SpeedDial.prototype.setRight = function () { + var horzDist = this.isFixed ? window.innerWidth : this.targetEle.clientWidth; + horzDist = (horzDist - this.element.offsetLeft - (this.isVertical ? this.element.offsetWidth : 0)); + this.popupEle.style.setProperty(SDHORZDIST, horzDist + 'px'); + this.popupEle.classList.add(SDRIGHT); + }; + SpeedDial.prototype.setPosition = function () { + //Check for middle Position + if (['MiddleLeft', 'MiddleRight', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(SDMIDDLE); + var yoffset = ((this.isFixed ? window.innerHeight : this.targetEle.clientHeight) - this.popupEle.offsetHeight) / 2; + this.popupEle.style.setProperty(SDVERTDIST, yoffset + 'px'); + } + this.popupEle.classList.add((bottomPosition.indexOf(this.position) === -1) ? SDTOP : SDBOTTOM); + this.setHorizontalPosition(); + }; + SpeedDial.prototype.setHorizontalPosition = function () { + //Check for Center Position + if (['TopCenter', 'BottomCenter', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(SDCENTER); + var xoffset = ((this.isFixed ? window.innerWidth : this.targetEle.clientWidth) - this.popupEle.offsetWidth) / 2; + this.popupEle.style.setProperty(SDHORZDIST, xoffset + 'px'); + } + var isRight = rightPosition.indexOf(this.position) !== -1; + this.popupEle.classList.add((!(this.enableRtl || isRight) || (this.enableRtl && isRight)) ? SDLEFT : SDRIGHT); + }; + SpeedDial.prototype.setRadialPosition = function () { + this.setRadialCorner(); + var range = this.getActualRange(); + this.isClock = range.direction === 'Clockwise'; + var offset = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(range.offset); + var li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + this.popupEle.style.setProperty(SDRADICALOFFSET, offset); + this.popupEle.style.setProperty(SDRADICALMINHEIGHT, li[0].offsetHeight + 'px'); + this.popupEle.style.setProperty(SDRADICALMINWIDTH, li[0].offsetWidth + 'px'); + var availableAngle = Math.abs(range.endAngle - range.startAngle); + //Start and end will be same for Middle Center position, hence available angle will 0 or 360. + var gaps = ((availableAngle === 360) || (availableAngle === 0)) ? li.length : li.length - 1; + var perAngle = availableAngle / gaps; + for (var i = 0; i < li.length; i++) { + var ele = li[parseInt(i.toString(), 10)]; + var angle = this.isClock ? (range.startAngle + (perAngle * i)) : (range.startAngle - (perAngle * i)); + angle = angle % 360; // removing the Zerp crossing changes. + ele.style.setProperty(SDRADICALANGLE, angle + 'deg'); + } + }; + SpeedDial.prototype.setRadialCorner = function () { + //topLeftPosition + if (['TopLeft', 'TopCenter', 'MiddleLeft', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(this.enableRtl ? SDTOPRIGHT : SDTOPLEFT); + } + //topRightPosition + if (['TopRight', 'TopCenter', 'MiddleRight', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(this.enableRtl ? SDTOPLEFT : SDTOPRIGHT); + } + //bottpmLeftPosition + if (['BottomLeft', 'BottomCenter', 'MiddleLeft', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(this.enableRtl ? SDBOTTOMRIGHT : SDBOTTOMLEFT); + } + //bottomRightPosition + if (['BottomRight', 'BottomCenter', 'MiddleRight', 'MiddleCenter'].indexOf(this.position) !== -1) { + this.popupEle.classList.add(this.enableRtl ? SDBOTTOMLEFT : SDBOTTOMRIGHT); + } + }; + // 0,360 is at right, 90 is at Bottom, 180 is at left, 270 is at top + SpeedDial.prototype.getActualRange = function () { + var range = { offset: this.radialSettings.offset }; + var start = this.radialSettings.startAngle; + var end = this.radialSettings.endAngle; + var isClockwise; + switch (this.position) { + case 'TopLeft': + case 'TopRight': + // Switch Left and Right for RTL mode. + if (('TopLeft' === this.position) !== this.enableRtl) { + //TopLeft + isClockwise = this.radialSettings.direction === 'Clockwise'; + this.checkAngleRange(start, end, range, isClockwise, 0, 90, false); + } + else { + //TopRight + isClockwise = this.radialSettings.direction !== 'AntiClockwise'; + this.checkAngleRange(start, end, range, isClockwise, 90, 180, false); + } + break; + case 'TopCenter': + isClockwise = this.radialSettings.direction === 'Clockwise'; + this.checkAngleRange(start, end, range, isClockwise, 0, 180, false); + break; + case 'MiddleLeft': + case 'MiddleRight': + // Switch Left and Right for RTL mode. + if (('MiddleLeft' === this.position) !== this.enableRtl) { + //MiddleLeft + isClockwise = this.radialSettings.direction === 'Clockwise'; + /**Replace the value if not defined or greater than 360 or less than 0 or between 91 and 269*/ + start = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(start) || (start < 0) || (start > 360) || ((start > 90) && (start < 270))) ? + (isClockwise ? 270 : 90) : start; + end = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(end) || (end < 0) || (end > 360) || ((end > 90) && (end < 270))) ? + (isClockwise ? 90 : 270) : end; + /**update for Zero Crossing */ + start = start < 91 ? start + 360 : start; + end = end < 91 ? end + 360 : end; + var switchVal = (isClockwise && (end < start)) || (!isClockwise && (end > start)); + range.startAngle = switchVal ? end : start; + range.endAngle = switchVal ? start : end; + } + else { + //MiddleRight + isClockwise = this.radialSettings.direction !== 'AntiClockwise'; + this.checkAngleRange(start, end, range, isClockwise, 90, 270, false); + } + break; + case 'MiddleCenter': + isClockwise = this.radialSettings.direction !== 'AntiClockwise'; + /**Replace the value if not defined or greater than 360 or less than 0 */ + start = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(start) || (start < 0) || (start > 360)) ? (isClockwise ? 0 : 360) : start; + end = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(end) || (end < 0) || (end > 360)) ? (isClockwise ? 360 : 0) : end; + /**update for Zero Crossing */ + range.startAngle = (!isClockwise && (start <= end)) ? (start + 360) : start; + range.endAngle = (isClockwise && (end <= start)) ? (end + 360) : end; + break; + case 'BottomLeft': + case 'BottomRight': + // Switch Left and Right for RTL mode. + if (('BottomLeft' === this.position) !== this.enableRtl) { + //BottomLeft + isClockwise = this.radialSettings.direction === 'Clockwise'; + this.checkAngleRange(start, end, range, isClockwise, 270, 360, true); + } + else { + //BottomRight + isClockwise = this.radialSettings.direction !== 'AntiClockwise'; + this.checkAngleRange(start, end, range, isClockwise, 180, 270, true); + } + break; + case 'BottomCenter': + isClockwise = this.radialSettings.direction !== 'AntiClockwise'; + this.checkAngleRange(start, end, range, isClockwise, 180, 360, true); + break; + } + range.direction = isClockwise ? 'Clockwise' : 'AntiClockwise'; + return range; + }; + SpeedDial.prototype.checkAngleRange = function (start, end, range, isClockwise, min, max, check0) { + start = this.checkAngle(start, isClockwise, min, max, check0); + end = this.checkAngle(end, !isClockwise, min, max, check0); + /**Switch the values if both are values are in the range but not as per direction*/ + var switchVal = (isClockwise && (end < start)) || (!isClockwise && (end > start)); + range.startAngle = switchVal ? end : start; + range.endAngle = switchVal ? start : end; + }; + SpeedDial.prototype.checkAngle = function (val, isStart, min, max, check0) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(val) || (val < 0) || (val > 360)) { + return isStart ? min : max; + } + else { + val = check0 ? ((val === 0) ? 360 : val) : ((val === 360) ? 0 : val); + /**check whether the value is in the range if not replace them */ + return ((val >= min) && (val <= max)) ? val : isStart ? min : max; + } + }; + SpeedDial.prototype.clearPosition = function () { + this.popupEle.style.removeProperty(SDRADICALOFFSET); + this.popupEle.style.removeProperty(SDRADICALMINHEIGHT); + this.popupEle.style.removeProperty(SDRADICALMINWIDTH); + this.popupEle.classList.remove(SDTOPLEFT, SDTOPRIGHT, SDBOTTOMLEFT, SDBOTTOMRIGHT); + this.popupEle.classList.remove(SDTOP, SDBOTTOM, SDMIDDLE); + this.popupEle.classList.remove(SDHORIZONTALTOP, SDVERTICALBOTTOM); + this.popupEle.style.removeProperty(SDVERTDIST); + this.clearHorizontalPosition(); + this.clearOverflow(); + }; + SpeedDial.prototype.clearHorizontalPosition = function () { + this.popupEle.style.removeProperty(SDHORZDIST); + this.popupEle.classList.remove(SDRIGHT, SDLEFT, SDCENTER); + this.popupEle.classList.remove(SDVERTICALRIGHT, SDHORIZONTALLEFT, SDHORIZONTALRIGHT); + }; + SpeedDial.prototype.clearOverflow = function () { + this.popupEle.classList.remove(SDOVERFLOW, SDVERTOVERFLOW, SDHORZOVERFLOW); + this.popupEle.style.removeProperty(SDOVERFLOWLIMIT); + }; + SpeedDial.prototype.hidePopupEle = function (e) { + var _this = this; + if (!this.popupEle || !this.isMenuOpen) { + return; + } + var eventArgs = { element: this.popupEle, event: e, cancel: false }; + this.trigger('beforeClose', eventArgs, function (args) { + if (args.cancel) { + return; + } + if (_this.animation.effect !== 'None') { + var closeAnimation_1 = { + name: (_this.animation.effect + 'Out'), + timingFunction: 'easeOut' + }; + var eleArray_1 = _this.popupTemplate ? [_this.popupEle.firstElementChild] : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, _this.popupEle); + var timeOutInterval_1 = _this.animation.duration / (eleArray_1.length + 1); + closeAnimation_1.duration = 2 * timeOutInterval_1; + /* To keep the animation smooth, start the animation of the second element when animation first element is half completed */ + var animateElement_1 = function (curIndex) { + var ele = eleArray_1[parseInt(curIndex.toString(), 10)]; + closeAnimation_1.delay = (curIndex === eleArray_1.length - 1) ? _this.animation.delay : 0; + closeAnimation_1.begin = function () { if (curIndex === eleArray_1.length - 1) { + _this.startHide(); + } }; + closeAnimation_1.end = function () { + ele.classList.add(SDHIDDEN); + if (curIndex === 0) { + _this.endHide(); + } + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](closeAnimation_1).animate(ele); + if (curIndex !== 0) { + var index_1 = curIndex - 1; + setTimeout(function () { + animateElement_1(index_1); + }, timeOutInterval_1); + } + }; + animateElement_1(eleArray_1.length - 1); + } + else { + _this.startHide(); + if (!_this.popupTemplate) { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, _this.popupEle); + ele.forEach(function (element) { element.classList.add(SDHIDDEN); }); + } + _this.endHide(); + } + }); + }; + SpeedDial.prototype.startHide = function () { + this.element.setAttribute('aria-expanded', 'false'); + this.removeFocus(); + this.isMenuOpen = false; + }; + SpeedDial.prototype.endHide = function () { + this.fab.setProperties({ iconCss: this.openIconCss }); + this.popupEle.classList.add(SDHIDDEN); + if (this.popupTemplate) { + this.setVisibility(true); + } + this.toggleOverlay(); + if (this.popupTemplate) { + this.popupEle.removeAttribute('tabindex'); + } + this.trigger('onClose', { element: this.popupEle }); + }; + SpeedDial.prototype.showPopupEle = function (e) { + var _this = this; + if (!this.popupEle || this.isMenuOpen) { + return; + } + var eventArgs = { element: this.popupEle, event: e, cancel: false }; + this.trigger('beforeOpen', eventArgs, function (args) { + if (args.cancel) { + return; + } + if (_this.animation.effect !== 'None') { + var openAnimation_1 = { + name: (_this.animation.effect + 'In'), + timingFunction: 'easeIn' + }; + var eleArray_2 = _this.popupTemplate ? [_this.popupEle.firstElementChild] : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, _this.popupEle); + var timeOutInterval_2 = _this.animation.duration / (eleArray_2.length + 1); + openAnimation_1.duration = 2 * timeOutInterval_2; + /* To keep the animation smooth, start the animation of the second element when animation first element is half completed */ + var animateElement_2 = function (curIndex) { + var ele = eleArray_2[parseInt(curIndex.toString(), 10)]; + openAnimation_1.delay = (curIndex === 0) ? _this.animation.delay : 0; + openAnimation_1.begin = function () { + if (curIndex === 0) { + _this.startShow(); + } + ele.classList.remove(SDHIDDEN); + }; + openAnimation_1.end = function () { if (curIndex === eleArray_2.length - 1) { + _this.endShow(); + } }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](openAnimation_1).animate(ele); + if (curIndex !== eleArray_2.length - 1) { + var index_2 = curIndex + 1; + setTimeout(function () { + animateElement_2(index_2); + }, timeOutInterval_2); + } + }; + animateElement_2(0); + } + else { + _this.startShow(); + if (!_this.popupTemplate) { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, _this.popupEle); + ele.forEach(function (element) { element.classList.remove(SDHIDDEN); }); + } + _this.endShow(); + } + }); + }; + SpeedDial.prototype.startShow = function () { + this.element.setAttribute('aria-expanded', 'true'); + this.isMenuOpen = true; + this.toggleOverlay(); + this.popupEle.classList.remove(SDHIDDEN); + if (this.popupTemplate) { + this.setVisibility(false); + } + }; + SpeedDial.prototype.endShow = function () { + if (this.closeIconCss) { + this.fab.setProperties({ iconCss: this.closeIconCss }); + } + if (this.popupTemplate) { + this.popupEle.setAttribute('tabindex', '1'); + this.popupEle.focus(); + } + this.trigger('onOpen', { element: this.popupEle }); + }; + SpeedDial.prototype.toggleOverlay = function () { + if (!this.overlayEle) { + return; + } + this.overlayEle.classList[this.isMenuOpen ? 'remove' : 'add'](SDHIDDEN); + }; + SpeedDial.prototype.removeOverlayEle = function () { + if (!this.overlayEle) { + return; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.overlayEle); + this.overlayEle = undefined; + }; + SpeedDial.prototype.updatePopupItems = function () { + if (this.popupEle) { + this.hidePopupEle(); + this.clearItems(); + this.createItems(); + this.updatePositionProperties(); + } + else { + this.createPopup(); + } + }; + SpeedDial.prototype.handleResize = function (e) { + if (!this.popupEle) { + return; + } + this.hidePopupEle(e); + this.clearOverflow(); + this.setPositionProps(); + }; + SpeedDial.prototype.triggerItemClick = function (e, item) { + var target = e.target; + target = target.classList.contains(SDLI) ? target : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + SDLI); + var eventArgs = { element: target, item: item, event: e }; + this.trigger('clicked', eventArgs); + this.hidePopupEle(e); + }; + /** + * Opens the SpeedDial popup to display to display the speed dial items or the popupTemplate. + * + * @returns {void} + */ + SpeedDial.prototype.show = function () { + this.showPopupEle(); + }; + /** + * Closes the SpeedDial popup. + * + *@returns {void} + */ + SpeedDial.prototype.hide = function () { + this.hidePopupEle(); + }; + /** + * Refreshes the button position of speed dial. You can call this method to re-position button when the target is resized. + * + *@returns {void} + */ + SpeedDial.prototype.refreshPosition = function () { + this.fab.refreshPosition(); + this.resizeHandler(); + }; + SpeedDial.prototype.resizeHandler = function (e) { + this.handleResize(e); + }; + SpeedDial.prototype.clearItems = function () { + var liList = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SDLI, this.popupEle); + liList.forEach(function (element) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(element); + }); + }; + SpeedDial.prototype.unwireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'resize', this.resizeHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document.body, 'click', this.bodyClickHandler); + if (this.opensOnHover) { + this.unwireFabHover(); + } + else { + this.unwireFabClick(); + } + }; + SpeedDial.prototype.unwireFabClick = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.fab.element, 'click', this.fabClick); + }; + SpeedDial.prototype.unwireFabHover = function () { + this.popupEle.classList.remove(HOVERSD); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.fab.element, 'mouseover', this.mouseOverHandle); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseleave', this.mouseLeaveHandle); + }; + SpeedDial.prototype.unwirePopupEvents = function () { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + this.removeRippleEffect(); + } + this.removeRippleEffect = null; + this.keyboardModule.destroy(); + this.popupKeyboardModule.destroy(); + this.keyboardModule = null; + this.popupKeyboardModule = null; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.popupEle, 'click', this.popupClick); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.popupEle, 'mouseleave', this.popupMouseLeaveHandle); + }; + SpeedDial.prototype.destroy = function () { + var _this = this; + _super.prototype.destroy.call(this); + this.unwireEvents(); + ['aria-expanded', 'aria-haspopup', 'aria-controls'].forEach(function (attr) { + _this.element.removeAttribute(attr); + }); + if (this.popupEle) { + this.unwirePopupEvents(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.popupEle); + this.popupEle = undefined; + } + this.removeOverlayEle(); + this.fab.destroy(); + this.fab = undefined; + }; + /** + * Called internally if any of the property value changed. + * + * @param {SpeedDialModel} newProp - Specifies new properties + * @param {SpeedDialModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + SpeedDial.prototype.onPropertyChanged = function (newProp, oldProp) { + var fabProplist = ['content', 'cssClass', 'disabled', 'enablePersistence', 'enableRtl', 'iconPosition', 'position', 'target', 'template', 'title', 'visible']; + var fabModel = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, newProp); + for (var _i = 0, _a = Object.keys(fabModel); _i < _a.length; _i++) { + var prop = _a[_i]; + if ((fabProplist).indexOf(prop) < 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["deleteObject"])(fabModel, prop); + } + } + this.fab.setProperties(fabModel); + for (var _b = 0, _c = Object.keys(newProp); _b < _c.length; _b++) { + var prop = _c[_b]; + switch (prop) { + case 'cssClass': + if (!this.popupEle) { + break; + } + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(this.overlayEle ? [this.popupEle, this.overlayEle] : [this.popupEle], newProp.cssClass.split(' ')); + } + break; + case 'visible': + case 'disabled': + this.hide(); + break; + case 'enableRtl': + if (!this.popupEle) { + break; + } + this.setRTL(); + break; + case 'openIconCss': + if (!this.isMenuOpen) { + this.fab.setProperties({ iconCss: this.openIconCss }); + } + break; + case 'closeIconCss': + if (this.isMenuOpen) { + this.fab.setProperties({ iconCss: this.closeIconCss }); + } + break; + case 'position': + if (!this.popupEle) { + break; + } + this.updatePositionProperties(); + break; + case 'direction': + if (!this.popupEle || this.popupTemplate) { + break; + } + this.updatePositionProperties(); + break; + case 'popupTemplate': + this.updatePopupTemplate(); + break; + case 'target': + this.hidePopupEle(); + this.checkTarget(); + if (this.overlayEle) { + this.element.insertAdjacentElement('beforebegin', this.overlayEle); + } + if (!this.popupEle) { + break; + } + this.element.insertAdjacentElement('afterend', this.popupEle); + this.updatePositionProperties(); + break; + case 'items': + case 'itemTemplate': + if (this.popupTemplate) { + break; + } + this.updatePopupItems(); + break; + case 'modal': + if (newProp.modal) { + this.createOverlay(); + } + else { + this.removeOverlayEle(); + } + break; + case 'mode': + if (!this.popupEle || this.popupTemplate) { + break; + } + this.popupEle.classList.remove(RADIALSD, LINEARSD); + this.popupEle.classList.add((this.mode === 'Radial') ? RADIALSD : LINEARSD); + this.updatePositionProperties(); + break; + case 'radialSettings': + if (this.popupEle && (this.mode === 'Radial') && !this.popupTemplate) { + this.setRadialPosition(); + } + break; + case 'opensOnHover': + if (this.opensOnHover) { + this.unwireFabClick(); + this.wireFabHover(); + } + else { + this.unwireFabHover(); + this.wireFabClick(); + } + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, SpeedDialAnimationSettings) + ], SpeedDial.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "closeIconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], SpeedDial.prototype, "direction", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SpeedDial.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], SpeedDial.prototype, "iconPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], SpeedDialItem) + ], SpeedDial.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "itemTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Linear') + ], SpeedDial.prototype, "mode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "openIconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SpeedDial.prototype, "opensOnHover", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('BottomRight') + ], SpeedDial.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SpeedDial.prototype, "modal", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "popupTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, RadialSettings) + ], SpeedDial.prototype, "radialSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SpeedDial.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], SpeedDial.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "clicked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "onClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SpeedDial.prototype, "onOpen", void 0); + SpeedDial = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], SpeedDial); + return SpeedDial; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/switch/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/switch/index.js ***! + \*******************************************************************/ +/*! exports provided: Switch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _switch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switch */ "./ej2-resources/22.1.37/scripts/ej2-buttons/switch/switch.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return _switch__WEBPACK_IMPORTED_MODULE_0__["Switch"]; }); + +/** + * Switch modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-buttons/switch/switch.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-buttons/switch/switch.js ***! + \********************************************************************/ +/*! exports provided: Switch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Switch", function() { return Switch; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../common/common */ "./ej2-resources/22.1.37/scripts/ej2-buttons/common/common.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +var DISABLED = 'e-switch-disabled'; +var RIPPLE = 'e-ripple-container'; +var RIPPLE_CHECK = 'e-ripple-check'; +var RTL = 'e-rtl'; +var WRAPPER = 'e-switch-wrapper'; +var ACTIVE = 'e-switch-active'; +var ATTRIBUTES = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value', 'aria-label', 'id', 'role']; +/** + * The Switch is a graphical user interface element that allows you to toggle between checked and unchecked states. + * ```html + * + * + * ``` + */ +var Switch = /** @__PURE__ @class */ (function (_super) { + __extends(Switch, _super); + /** + * Constructor for creating the widget. + * + * @private + * + * @param {SwitchModel} options switch model + * @param {string | HTMLInputElement} element target element + * + */ + function Switch(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isFocused = false; + _this.isDrag = false; + _this.isWireEvents = false; + return _this; + } + Switch.prototype.changeState = function (state) { + var ariaState; + var rippleSpan; + var wrapper = this.getWrapper(); + var bar = wrapper.querySelector('.e-switch-inner'); + var handle = wrapper.querySelector('.e-switch-handle'); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + rippleSpan = wrapper.getElementsByClassName(RIPPLE)[0]; + } + if (state) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([bar, handle], ACTIVE); + ariaState = 'true'; + this.element.checked = true; + this.checked = true; + if (rippleSpan) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([rippleSpan], [RIPPLE_CHECK]); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([bar, handle], ACTIVE); + ariaState = 'false'; + this.element.checked = false; + this.checked = false; + if (rippleSpan) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([rippleSpan], [RIPPLE_CHECK]); + } + } + }; + Switch.prototype.clickHandler = function (evt) { + this.isDrag = false; + this.focusOutHandler(); + this.changeState(!this.checked); + this.element.focus(); + var changeEventArgs = { checked: this.element.checked, event: evt }; + this.trigger('change', changeEventArgs); + }; + /** + * Destroys the Switch widget. + * + * @returns {void} + */ + Switch.prototype.destroy = function () { + _super.prototype.destroy.call(this); + if (!this.disabled) { + this.unWireEvents(); + } + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["destroy"])(this, this.getWrapper(), this.tagName); + }; + Switch.prototype.focusHandler = function () { + this.isFocused = true; + }; + Switch.prototype.focusOutHandler = function () { + this.getWrapper().classList.remove('e-focus'); + }; + /** + * Gets the module name. + * + * @private + * @returns {string} - Module Name + */ + Switch.prototype.getModuleName = function () { + return 'switch'; + }; + /** + * Gets the properties to be maintained in the persistence state. + * + * @private + * @returns {string} - Persist data + */ + Switch.prototype.getPersistData = function () { + return this.addOnPersist(['checked']); + }; + Switch.prototype.getWrapper = function () { + return this.element.parentElement; + }; + Switch.prototype.initialize = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initialSwitchCheckedValue)) { + this.initialSwitchCheckedValue = this.checked; + } + if (this.name) { + this.element.setAttribute('name', this.name); + } + if (this.value) { + this.element.setAttribute('value', this.value); + } + if (this.checked) { + this.changeState(true); + } + if (this.disabled) { + this.setDisabled(); + } + if (this.onLabel || this.offLabel) { + this.setLabel(this.onLabel, this.offLabel); + } + }; + Switch.prototype.initWrapper = function () { + var wrapper = this.element.parentElement; + if (!wrapper.classList.contains(WRAPPER)) { + wrapper = this.createElement('div', { + className: WRAPPER + }); + this.element.parentNode.insertBefore(wrapper, this.element); + } + var switchInner = this.createElement('span', { className: 'e-switch-inner' }); + var onLabel = this.createElement('span', { className: 'e-switch-on' }); + var offLabel = this.createElement('span', { className: 'e-switch-off' }); + var handle = this.createElement('span', { className: 'e-switch-handle' }); + wrapper.appendChild(this.element); + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["setHiddenInput"])(this, wrapper); + switchInner.appendChild(onLabel); + switchInner.appendChild(offLabel); + wrapper.appendChild(switchInner); + wrapper.appendChild(handle); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + var rippleSpan = this.createElement('span', { className: RIPPLE }); + handle.appendChild(rippleSpan); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(rippleSpan, { duration: 400, isCenterRipple: true }); + } + wrapper.classList.add('e-wrapper'); + if (this.enableRtl) { + wrapper.classList.add(RTL); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + }; + /** + * Called internally if any of the property value changes. + * + * @private + * @param {SwitchModel} newProp - Specifies New Properties + * @param {SwitchModel} oldProp - Specifies Old Properties + * @returns {void} + */ + Switch.prototype.onPropertyChanged = function (newProp, oldProp) { + var wrapper = this.getWrapper(); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'checked': + this.changeState(newProp.checked); + break; + case 'disabled': + if (newProp.disabled) { + this.setDisabled(); + this.unWireEvents(); + this.isWireEvents = false; + } + else { + this.element.disabled = false; + wrapper.classList.remove(DISABLED); + wrapper.setAttribute('aria-disabled', 'false'); + if (!this.isWireEvents) { + this.wireEvents(); + this.isWireEvents = true; + } + } + break; + case 'value': + this.element.setAttribute('value', newProp.value); + break; + case 'name': + this.element.setAttribute('name', newProp.name); + break; + case 'onLabel': + case 'offLabel': + this.setLabel(newProp.onLabel, newProp.offLabel); + break; + case 'enableRtl': + if (newProp.enableRtl) { + wrapper.classList.add(RTL); + } + else { + wrapper.classList.remove(RTL); + } + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([wrapper], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + break; + case 'htmlAttributes': + this.updateHtmlAttribute(); + break; + } + } + }; + /** + * Initialize Angular, React and Unique ID support. + * + * @private + * @returns {void} + */ + Switch.prototype.preRender = function () { + var element = this.element; + this.formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + this.tagName = this.element.tagName; + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["preRender"])(this, 'EJS-SWITCH', WRAPPER, element, this.getModuleName()); + }; + /** + * Initialize control rendering. + * + * @private + * @returns {void} + */ + Switch.prototype.render = function () { + this.initWrapper(); + this.initialize(); + if (!this.disabled) { + this.wireEvents(); + } + this.renderComplete(); + this.updateHtmlAttribute(); + }; + Switch.prototype.rippleHandler = function (e) { + var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0]; + Object(_common_common__WEBPACK_IMPORTED_MODULE_1__["rippleMouseHandler"])(e, rippleSpan); + if (e.type === 'mousedown' && e.currentTarget.classList.contains('e-switch-wrapper') && e.which === 1) { + this.isDrag = true; + this.isFocused = false; + } + }; + Switch.prototype.rippleTouchHandler = function (eventType) { + var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0]; + if (rippleSpan) { + var event_1 = document.createEvent('MouseEvents'); + event_1.initEvent(eventType, false, true); + rippleSpan.dispatchEvent(event_1); + } + }; + Switch.prototype.setDisabled = function () { + var wrapper = this.getWrapper(); + this.element.disabled = true; + wrapper.classList.add(DISABLED); + wrapper.setAttribute('aria-disabled', 'true'); + }; + Switch.prototype.setLabel = function (onText, offText) { + var wrapper = this.getWrapper(); + if (onText) { + wrapper.querySelector('.e-switch-on').textContent = onText; + } + if (offText) { + wrapper.querySelector('.e-switch-off').textContent = offText; + } + }; + Switch.prototype.updateHtmlAttribute = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (ATTRIBUTES.indexOf(key) > -1) { + var wrapper = this.getWrapper(); + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.htmlAttributes["" + key].split(' ')); + } + else if (key === 'title') { + wrapper.setAttribute(key, this.htmlAttributes["" + key]); + } + else if (key === 'style') { + wrapper.setAttribute(key, this.htmlAttributes["" + key]); + } + else if (key === 'disabled') { + if (this.htmlAttributes["" + key] === 'true') { + this.setDisabled(); + } + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + else { + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + } + }; + Switch.prototype.switchFocusHandler = function () { + if (this.isFocused) { + this.getWrapper().classList.add('e-focus'); + } + }; + Switch.prototype.switchMouseUp = function (e) { + var target = e.target; + if (e.type === 'touchmove') { + e.preventDefault(); + } + if (e.type === 'touchstart') { + this.isDrag = true; + this.rippleTouchHandler('mousedown'); + } + if (this.isDrag) { + if ((e.type === 'mouseup' && target.className.indexOf('e-switch') < 0) || e.type === 'touchend') { + this.clickHandler(e); + this.rippleTouchHandler('mouseup'); + e.preventDefault(); + } + } + }; + Switch.prototype.formResetHandler = function () { + this.checked = this.initialSwitchCheckedValue; + this.element.checked = this.initialSwitchCheckedValue; + }; + /** + * Toggle the Switch component state into checked/unchecked. + * + * @returns {void} + */ + Switch.prototype.toggle = function () { + this.clickHandler(); + }; + Switch.prototype.wireEvents = function () { + var wrapper = this.getWrapper(); + this.delegateMouseUpHandler = this.switchMouseUp.bind(this); + this.delegateKeyUpHandler = this.switchFocusHandler.bind(this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(wrapper, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', this.focusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.focusOutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseup', this.delegateMouseUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', this.delegateKeyUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(wrapper, 'mousedown mouseup', this.rippleHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(wrapper, 'touchstart touchmove touchend', this.switchMouseUp, this); + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.formResetHandler, this); + } + }; + Switch.prototype.unWireEvents = function () { + var wrapper = this.getWrapper(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(wrapper, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', this.focusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusout', this.focusOutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseup', this.delegateMouseUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', this.delegateKeyUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(wrapper, 'mousedown mouseup', this.rippleHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(wrapper, 'touchstart touchmove touchend', this.switchMouseUp); + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', this.formResetHandler); + } + }; + /** + * Click the switch element + * its native method + * + * @public + * @returns {void} + */ + Switch.prototype.click = function () { + this.element.click(); + }; + /** + * Sets the focus to Switch + * its native method + * + * @public + */ + Switch.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Switch.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Switch.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Switch.prototype, "checked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Switch.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Switch.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Switch.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Switch.prototype, "onLabel", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Switch.prototype, "offLabel", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Switch.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], Switch.prototype, "htmlAttributes", void 0); + Switch = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Switch); + return Switch; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-data/adaptors.js": +/*!************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-data/adaptors.js ***! + \************************************************************/ +/*! exports provided: Adaptor, JsonAdaptor, UrlAdaptor, ODataAdaptor, ODataV4Adaptor, WebApiAdaptor, WebMethodAdaptor, RemoteSaveAdaptor, CustomDataAdaptor, GraphQLAdaptor, CacheAdaptor */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Adaptor", function() { return Adaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonAdaptor", function() { return JsonAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UrlAdaptor", function() { return UrlAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ODataAdaptor", function() { return ODataAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ODataV4Adaptor", function() { return ODataV4Adaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebApiAdaptor", function() { return WebApiAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebMethodAdaptor", function() { return WebMethodAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RemoteSaveAdaptor", function() { return RemoteSaveAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomDataAdaptor", function() { return CustomDataAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GraphQLAdaptor", function() { return GraphQLAdaptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CacheAdaptor", function() { return CacheAdaptor; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-data/util.js"); +/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query */ "./ej2-resources/22.1.37/scripts/ej2-data/query.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + +var consts = { GroupGuid: '{271bbba0-1ee7}' }; +/** + * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource. + * This is the base adaptor class that other adaptors can extend. + * + * @hidden + */ +var Adaptor = /** @__PURE__ @class */ (function () { + /** + * Constructor for Adaptor class + * + * @param {DataOptions} ds? + * @param ds + * @hidden + * @returns aggregates + */ + function Adaptor(ds) { + // common options for all the adaptors + this.options = { + from: 'table', + requestType: 'json', + sortBy: 'sorted', + select: 'select', + skip: 'skip', + group: 'group', + take: 'take', + search: 'search', + count: 'requiresCounts', + where: 'where', + aggregates: 'aggregates', + expand: 'expand' + }; + /** + * Specifies the type of adaptor. + * + * @default Adaptor + */ + this.type = Adaptor; + this.dataSource = ds; + this.pvt = {}; + } + /** + * Returns the data from the query processing. + * + * @param {Object} data + * @param {DataOptions} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param ds + * @param query + * @param xhr + * @returns Object + */ + Adaptor.prototype.processResponse = function (data, ds, query, xhr) { + return data; + }; + return Adaptor; +}()); + +/** + * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries. + * + * @hidden + */ +var JsonAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(JsonAdaptor, _super); + function JsonAdaptor() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Process the JSON data based on the provided queries. + * + * @param {DataManager} dataManager + * @param {Query} query + * @returns Object + */ + JsonAdaptor.prototype.processQuery = function (dataManager, query) { + var result = dataManager.dataSource.json.slice(0); + var count = result.length; + var countFlg = true; + var ret; + var key; + var lazyLoad = {}; + var keyCount = 0; + var group = []; + var page; + for (var i = 0; i < query.lazyLoad.length; i++) { + keyCount++; + lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value; + } + var agg = {}; + for (var i = 0; i < query.queries.length; i++) { + key = query.queries[i]; + if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) { + if (key.fn === 'onGroup') { + group.push(key.e); + } + if (key.fn === 'onPage') { + page = key.e; + } + continue; + } + ret = this[key.fn].call(this, result, key.e, query); + if (key.fn === 'onAggregates') { + agg[key.e.field + ' - ' + key.e.type] = ret; + } + else { + result = ret !== undefined ? ret : result; + } + if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') { + countFlg = false; + } + if (countFlg) { + count = result.length; + } + } + if (keyCount) { + var args = { + query: query, lazyLoad: lazyLoad, result: result, group: group, page: page + }; + var lazyLoadData = this.lazyLoadGroup(args); + result = lazyLoadData.result; + count = lazyLoadData.count; + } + if (query.isCountRequired) { + result = { + result: result, + count: count, + aggregates: agg + }; + } + return result; + }; + /** + * Perform lazy load grouping in JSON array based on the given query and lazy load details. + * + * @param {LazyLoadGroupArgs} args + */ + JsonAdaptor.prototype.lazyLoadGroup = function (args) { + var count = 0; + var agg = this.getAggregate(args.query); + var result = args.result; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.lazyLoad.onDemandGroupInfo)) { + var req = args.lazyLoad.onDemandGroupInfo; + for (var i = req.where.length - 1; i >= 0; i--) { + result = this.onWhere(result, req.where[i]); + } + if (args.group.length !== req.level) { + var field = args.group[req.level].fieldName; + result = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].group(result, field, agg, null, null, args.group[0].comparer, true); + } + count = result.length; + var data = result; + result = result.slice(req.skip); + result = result.slice(0, req.take); + if (args.group.length !== req.level) { + this.formGroupResult(result, data); + } + } + else { + var field = args.group[0].fieldName; + result = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].group(result, field, agg, null, null, args.group[0].comparer, true); + count = result.length; + var data = result; + if (args.page) { + result = this.onPage(result, args.page, args.query); + } + this.formGroupResult(result, data); + } + return { result: result, count: count }; + }; + JsonAdaptor.prototype.formGroupResult = function (result, data) { + if (result.length && data.length) { + var uid = 'GroupGuid'; + var childLevel = 'childLevels'; + var level = 'level'; + var records = 'records'; + result[uid] = data[uid]; + result[childLevel] = data[childLevel]; + result[level] = data[level]; + result[records] = data[records]; + } + return result; + }; + /** + * Separate the aggregate query from the given queries + * + * @param {Query} query + */ + JsonAdaptor.prototype.getAggregate = function (query) { + var aggQuery = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onAggregates'); + var agg = []; + if (aggQuery.length) { + var tmp = void 0; + for (var i = 0; i < aggQuery.length; i++) { + tmp = aggQuery[i].e; + agg.push({ type: tmp.type, field: _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(tmp.field, query) }); + } + } + return agg; + }; + /** + * Performs batch update in the JSON array which add, remove and update records. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {RemoteArgs} e + */ + JsonAdaptor.prototype.batchRequest = function (dm, changes, e) { + var i; + var deletedRecordsLen = changes.deletedRecords.length; + for (i = 0; i < changes.addedRecords.length; i++) { + this.insert(dm, changes.addedRecords[i]); + } + for (i = 0; i < changes.changedRecords.length; i++) { + this.update(dm, e.key, changes.changedRecords[i]); + } + for (i = 0; i < deletedRecordsLen; i++) { + this.remove(dm, e.key, changes.deletedRecords[i]); + } + return changes; + }; + /** + * Performs filter operation with the given data and where query. + * + * @param {Object[]} ds + * @param {{validate:Function}} e + * @param e.validate + */ + JsonAdaptor.prototype.onWhere = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + return ds.filter(function (obj) { + if (e) { + return e.validate(obj); + } + }); + }; + /** + * Returns aggregate function based on the aggregate type. + * + * @param {Object[]} ds + * @param e + * @param {string} } type + * @param e.field + * @param e.type + */ + JsonAdaptor.prototype.onAggregates = function (ds, e) { + var fn = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].aggregates[e.type]; + if (!ds || !fn || ds.length === 0) { + return null; + } + return fn(ds, e.field); + }; + /** + * Performs search operation based on the given query. + * + * @param {Object[]} ds + * @param {QueryOptions} e + */ + JsonAdaptor.prototype.onSearch = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + if (e.fieldNames.length === 0) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getFieldList(ds[0], e.fieldNames); + } + return ds.filter(function (obj) { + for (var j = 0; j < e.fieldNames.length; j++) { + if (e.comparer.call(obj, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) { + return true; + } + } + return false; + }); + }; + /** + * Sort the data with given direction and field. + * + * @param {Object[]} ds + * @param e + * @param {Object} b + * @param e.comparer + * @param e.fieldName + * @param query + */ + JsonAdaptor.prototype.onSortBy = function (ds, e, query) { + if (!ds || !ds.length) { + return ds; + } + var fnCompare; + var field = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.fieldName, query); + if (!field) { + return ds.sort(e.comparer); + } + if (field instanceof Array) { + field = field.slice(0); + for (var i = field.length - 1; i >= 0; i--) { + if (!field[i]) { + continue; + } + fnCompare = e.comparer; + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].endsWith(field[i], ' desc')) { + fnCompare = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].fnSort('descending'); + field[i] = field[i].replace(' desc', ''); + } + ds = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].sort(ds, field[i], fnCompare); + } + return ds; + } + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].sort(ds, field, e.comparer); + }; + /** + * Group the data based on the given query. + * + * @param {Object[]} ds + * @param {QueryOptions} e + * @param {Query} query + */ + JsonAdaptor.prototype.onGroup = function (ds, e, query) { + if (!ds || !ds.length) { + return ds; + } + var agg = this.getAggregate(query); + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].group(ds, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.fieldName, query), agg, null, null, e.comparer); + }; + /** + * Retrieves records based on the given page index and size. + * + * @param {Object[]} ds + * @param e + * @param {number} } pageIndex + * @param e.pageSize + * @param {Query} query + * @param e.pageIndex + */ + JsonAdaptor.prototype.onPage = function (ds, e, query) { + var size = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.pageSize, query); + var start = (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.pageIndex, query) - 1) * size; + var end = start + size; + if (!ds || !ds.length) { + return ds; + } + return ds.slice(start, end); + }; + /** + * Retrieves records based on the given start and end index from query. + * + * @param {Object[]} ds + * @param e + * @param {number} } end + * @param e.start + * @param e.end + */ + JsonAdaptor.prototype.onRange = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + return ds.slice(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.start), _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.end)); + }; + /** + * Picks the given count of records from the top of the datasource. + * + * @param {Object[]} ds + * @param {{nos:number}} e + * @param e.nos + */ + JsonAdaptor.prototype.onTake = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + return ds.slice(0, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.nos)); + }; + /** + * Skips the given count of records from the data source. + * + * @param {Object[]} ds + * @param {{nos:number}} e + * @param e.nos + */ + JsonAdaptor.prototype.onSkip = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + return ds.slice(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.nos)); + }; + /** + * Selects specified columns from the data source. + * + * @param {Object[]} ds + * @param {{fieldNames:string}} e + * @param e.fieldNames + */ + JsonAdaptor.prototype.onSelect = function (ds, e) { + if (!ds || !ds.length) { + return ds; + } + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].select(ds, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(e.fieldNames)); + }; + /** + * Inserts new record in the table. + * + * @param {DataManager} dm + * @param {Object} data + * @param tableName + * @param query + * @param {number} position + */ + JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(position)) { + return dm.dataSource.json.push(data); + } + else { + return dm.dataSource.json.splice(position, 0, data); + } + }; + /** + * Remove the data from the dataSource based on the key field value. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName? + * @param tableName + * @returns null + */ + JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) { + var ds = dm.dataSource.json; + var i; + if (typeof value === 'object' && !(value instanceof Date)) { + value = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(keyField, value); + } + for (i = 0; i < ds.length; i++) { + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(keyField, ds[i]) === value) { + break; + } + } + return i !== ds.length ? ds.splice(i, 1) : null; + }; + /** + * Updates existing record and saves the changes to the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName? + * @param tableName + * @returns null + */ + JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) { + var ds = dm.dataSource.json; + var i; + var key; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(keyField)) { + key = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(keyField, value); + } + for (i = 0; i < ds.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(keyField) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(keyField, ds[i])) === key) { + break; + } + } + return i < ds.length ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(ds[i], value) : null; + }; + return JsonAdaptor; +}(Adaptor)); + +/** + * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data. + * It interacts with server-side for all DataManager Queries and CRUD operations. + * + * @hidden + */ +var UrlAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(UrlAdaptor, _super); + function UrlAdaptor() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Process the query to generate request body. + * + * @param {DataManager} dm + * @param {Query} query + * @param {Object[]} hierarchyFilters? + * @param hierarchyFilters + * @returns p + */ + // tslint:disable-next-line:max-func-body-length + UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) { + var queries = this.getQueryRequest(query); + var singles = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']); + var params = query.params; + var url = dm.dataSource.url; + var temp; + var skip; + var take = null; + var options = this.options; + var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] }; + // calc Paging & Range + if ('onPage' in singles) { + temp = singles.onPage; + skip = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(temp.pageIndex, query); + take = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(temp.pageSize, query); + skip = (skip - 1) * take; + } + else if ('onRange' in singles) { + temp = singles.onRange; + skip = temp.start; + take = temp.end - temp.start; + } + // Sorting + for (var i = 0; i < queries.sorts.length; i++) { + temp = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(queries.sorts[i].e.fieldName, query); + request.sorts.push(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query)); + } + // hierarchy + if (hierarchyFilters) { + temp = this.getFiltersFrom(hierarchyFilters, query); + if (temp) { + request.filters.push(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query)); + } + } + // Filters + for (var i = 0; i < queries.filters.length; i++) { + var res = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query); + if ((this.getModuleName && + this.getModuleName() === 'ODataV4Adaptor') && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(queries.filters[i].e.key) && queries.filters.length > 1) { + res = '(' + res + ')'; + } + request.filters.push(res); + var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : []; + for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) { + var prop = keys_1[_i]; + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull((request)[prop])) { + delete request[prop]; + } + } + } + // Searches + for (var i = 0; i < queries.searches.length; i++) { + temp = queries.searches[i].e; + request.searches.push(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onEachSearch', { + fields: temp.fieldNames, + operator: temp.operator, + key: temp.searchKey, + ignoreCase: temp.ignoreCase + }, query)); + } + // Grouping + for (var i = 0; i < queries.groups.length; i++) { + request.groups.push(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(queries.groups[i].e.fieldName, query)); + } + // aggregates + for (var i = 0; i < queries.aggregates.length; i++) { + temp = queries.aggregates[i].e; + request.aggregates.push({ type: temp.type, field: _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(temp.field, query) }); + } + var req = {}; + this.getRequestQuery(options, query, singles, request, req); + // Params + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req }); + if (query.lazyLoad.length) { + for (var i = 0; i < query.lazyLoad.length; i++) { + req[query.lazyLoad[i].key] = query.lazyLoad[i].value; + } + } + // cleanup + var keys = Object.keys(req); + for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) { + var prop = keys_2[_a]; + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) { + delete req[prop]; + } + } + if (!(options.skip in req && options.take in req) && take !== null) { + req[options.skip] = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onSkip', skip, query); + req[options.take] = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onTake', take, query); + } + var p = this.pvt; + this.pvt = {}; + if (this.options.requestType === 'json') { + return { + data: JSON.stringify(req, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.jsonDateReplacer), + url: url, + pvtData: p, + type: 'POST', + contentType: 'application/json; charset=utf-8' + }; + } + temp = this.convertToQueryString(req, query, dm); + temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp; + return { + type: 'GET', url: temp.length ? url.replace(/\/*$/, temp) : url, pvtData: p + }; + }; + UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) { + var param = 'param'; + var req = request1; + req[options.from] = query.fromTable; + if (options.apply && query.distincts.length) { + req[options.apply] = 'onDistinct' in this ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onDistinct', query.distincts) : ''; + } + if (!query.distincts.length && options.expand) { + req[options.expand] = 'onExpand' in this && 'onSelect' in singles ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onExpand', { selects: _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands; + } + req[options.select] = 'onSelect' in singles && !query.distincts.length ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onSelect', _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(singles.onSelect.fieldNames, query), query) : ''; + req[options.count] = query.isCountRequired ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : ''; + req[options.search] = request.searches.length ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onSearch', request.searches, query) : ''; + req[options.skip] = 'onSkip' in singles ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onSkip', _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(singles.onSkip.nos, query), query) : ''; + req[options.take] = 'onTake' in singles ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onTake', _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getValue(singles.onTake.nos, query), query) : ''; + req[options.where] = request.filters.length || request.searches.length ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onWhere', request.filters, query) : ''; + req[options.sortBy] = request.sorts.length ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onSortBy', request.sorts, query) : ''; + req[options.group] = request.groups.length ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onGroup', request.groups, query) : ''; + req[options.aggregates] = request.aggregates.length ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : ''; + req[param] = []; + }; + /** + * Convert the object from processQuery to string which can be added query string. + * + * @param {Object} req + * @param request + * @param {Query} query + * @param {DataManager} dm + */ + UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) { + return ''; + // this needs to be overridden + }; + /** + * Return the data from the data manager processing. + * + * @param {DataResult} data + * @param {DataOptions} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Object} request? + * @param {CrudOptions} changes? + * @param ds + * @param query + * @param xhr + * @param request + * @param changes + */ + UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) { + if (xhr && xhr.getResponseHeader('Content-Type') && + xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) { + var handleTimeZone = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].timeZoneHandling; + if (ds && !ds.timeZoneHandling) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].timeZoneHandling = false; + } + data = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(data); + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].timeZoneHandling = handleTimeZone; + } + var requests = request; + var pvt = requests.pvtData || {}; + var groupDs = data ? data.groupDs : []; + if (xhr && xhr.getResponseHeader('Content-Type') && + xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) { + return (query.isCountRequired ? { result: [], count: 0 } : []); + } + var d = JSON.parse(requests.data); + if (d && d.action === 'batch' && data && data.addedRecords) { + changes.addedRecords = data.addedRecords; + return changes; + } + if (data && data.d) { + data = data.d; + } + var args = {}; + if (data && 'count' in data) { + args.count = data.count; + } + args.result = data && data.result ? data.result : data; + var isExpand = false; + if (Array.isArray(data.result) && data.result.length) { + var key = 'key'; + var val = 'value'; + var level = 'level'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.result[0][key])) { + args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1); + } + if (query && query.lazyLoad.length && pvt.groups.length) { + for (var i = 0; i < query.lazyLoad.length; i++) { + if (query.lazyLoad[i][key] === 'onDemandGroupInfo') { + var value = query.lazyLoad[i][val][level]; + if (pvt.groups.length === value) { + isExpand = true; + } + } + } + } + } + if (!isExpand) { + this.getAggregateResult(pvt, data, args, groupDs, query); + } + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates }; + }; + UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) { + for (var i = 0; i < data.length; i++) { + if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) { + this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1); + } + } + var uid = 'GroupGuid'; + var childLvl = 'childLevels'; + var lvl = 'level'; + var records = 'records'; + data[uid] = consts[uid]; + data[lvl] = level; + data[childLvl] = childLevel; + data[records] = data[0].items.length ? this.getGroupedRecords(data, !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data[0].items[records])) : []; + return data; + }; + UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) { + var childGroupedRecords = []; + var records = 'records'; + for (var i = 0; i < data.length; i++) { + if (!hasRecords) { + for (var j = 0; j < data[i].items.length; j++) { + childGroupedRecords.push(data[i].items[j]); + } + } + else { + childGroupedRecords = childGroupedRecords.concat(data[i].items[records]); + } + } + return childGroupedRecords; + }; + /** + * Add the group query to the adaptor`s option. + * + * @param {Object[]} e + * @returns void + */ + UrlAdaptor.prototype.onGroup = function (e) { + this.pvt.groups = e; + return e; + }; + /** + * Add the aggregate query to the adaptor`s option. + * + * @param {Aggregates[]} e + * @returns void + */ + UrlAdaptor.prototype.onAggregates = function (e) { + this.pvt.aggregates = e; + }; + /** + * Prepare the request body based on the newly added, removed and updated records. + * The result is used by the batch request. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {Object} e + * @param query + * @param original + */ + UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) { + var url; + var key; + return { + type: 'POST', + url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url, + contentType: 'application/json; charset=utf-8', + dataType: 'json', + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + changed: changes.changedRecords, + added: changes.addedRecords, + deleted: changes.deletedRecords, + action: 'batch', + table: e[url], + key: e[key] + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + /** + * Method will trigger before send the request to server side. + * Used to set the custom header or modify the request options. + * + * @param {DataManager} dm + * @param {XMLHttpRequest} request + * @returns void + */ + UrlAdaptor.prototype.beforeSend = function (dm, request) { + // need to extend this method + }; + /** + * Prepare and returns request body which is used to insert a new record in the table. + * + * @param {DataManager} dm + * @param {Object} data + * @param {string} tableName + * @param query + */ + UrlAdaptor.prototype.insert = function (dm, data, tableName, query) { + return { + url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + value: data, + table: tableName, + action: 'insert' + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + /** + * Prepare and return request body which is used to remove record from the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {number|string} value + * @param {string} tableName + * @param query + */ + UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) { + return { + type: 'POST', + url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + key: value, + keyColumn: keyField, + table: tableName, + action: 'remove' + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + /** + * Prepare and return request body which is used to update record. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName + * @param query + */ + UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) { + return { + type: 'POST', + url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + value: value, + action: 'update', + keyColumn: keyField, + key: _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(keyField, value), + table: tableName + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + /** + * To generate the predicate based on the filtered query. + * + * @param {Object[]|string[]|number[]} data + * @param {Query} query + * @hidden + */ + UrlAdaptor.prototype.getFiltersFrom = function (data, query) { + var key = query.fKey; + var value; + var prop = key; + var pKey = query.key; + var predicats = []; + if (typeof data[0] !== 'object') { + prop = null; + } + for (var i = 0; i < data.length; i++) { + if (typeof data[0] === 'object') { + value = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(pKey || prop, data[i]); + } + else { + value = data[i]; + } + predicats.push(new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](key, 'equal', value)); + } + return _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].or(predicats); + }; + UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) { + var pData = data; + if (data && data.result) { + pData = data.result; + } + if (pvt && pvt.aggregates && pvt.aggregates.length) { + var agg = pvt.aggregates; + var fn = void 0; + var aggregateData = pData; + var res = {}; + if (data.aggregate) { + aggregateData = data.aggregate; + } + for (var i = 0; i < agg.length; i++) { + fn = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].aggregates[agg[i].type]; + if (fn) { + res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field); + } + } + args.aggregates = res; + } + var key = 'key'; + var isServerGrouping = Array.isArray(data.result) && data.result.length && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.result[0][key]); + if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) { + var groups = pvt.groups; + for (var i = 0; i < groups.length; i++) { + var level = null; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(groupDs)) { + groupDs = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].group(groupDs, groups[i]); + } + var groupQuery = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onGroup')[i].e; + pData = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer); + } + args.result = pData; + } + return args; + }; + UrlAdaptor.prototype.getQueryRequest = function (query) { + var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] }; + req.sorts = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onSortBy'); + req.groups = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onGroup'); + req.filters = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onWhere'); + req.searches = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onSearch'); + req.aggregates = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueries(query.queries, 'onAggregates'); + return req; + }; + UrlAdaptor.prototype.addParams = function (options) { + var req = options.reqParams; + if (options.params.length) { + req.params = {}; + } + for (var _i = 0, _a = options.params; _i < _a.length; _i++) { + var tmp = _a[_i]; + if (req[tmp.key]) { + throw new Error('Query() - addParams: Custom Param is conflicting other request arguments'); + } + req[tmp.key] = tmp.value; + if (tmp.fn) { + req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm); + } + req.params[tmp.key] = req[tmp.key]; + } + }; + return UrlAdaptor; +}(Adaptor)); + +/** + * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service. + * + * @hidden + */ +var ODataAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(ODataAdaptor, _super); + function ODataAdaptor(props) { + var _this = _super.call(this) || this; + // options replaced the default adaptor options + _this.options = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, _this.options, { + requestType: 'get', + accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5', + multipartAccept: 'multipart/mixed', + sortBy: '$orderby', + select: '$select', + skip: '$skip', + take: '$top', + count: '$inlinecount', + where: '$filter', + expand: '$expand', + batch: '$batch', + changeSet: '--changeset_', + batchPre: 'batch_', + contentId: 'Content-Id: ', + batchContent: 'Content-Type: multipart/mixed; boundary=', + changeSetContent: 'Content-Type: application/http\nContent-Transfer-Encoding: binary ', + batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ', + updateType: 'PUT' + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(_this.options, props || {}); + return _this; + } + ODataAdaptor.prototype.getModuleName = function () { + return 'ODataAdaptor'; + }; + /** + * Generate request string based on the filter criteria from query. + * + * @param {Predicate} pred + * @param {boolean} requiresCast? + * @param predicate + * @param query + * @param requiresCast + */ + ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) { + var returnValue = ''; + var operator; + var guid; + var val = predicate.value; + var type = typeof val; + var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null; + if (val instanceof Date) { + val = 'datetime\'' + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.replacer(val) + '\''; + } + if (type === 'string') { + val = val.replace(/'/g, '\'\''); + if (predicate.ignoreCase) { + val = val.toLowerCase(); + } + if (predicate.operator !== 'like') { + val = encodeURIComponent(val); + } + if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') { + val = '\'' + val + '\''; + } + if (requiresCast) { + field = 'cast(' + field + ', \'Edm.String\')'; + } + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(val)) { + guid = 'guid'; + } + if (predicate.ignoreCase) { + if (!guid) { + field = 'tolower(' + field + ')'; + } + val = val.toLowerCase(); + } + } + if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' || + predicate.operator === 'isnotnull') { + operator = predicate.operator.indexOf('isnot') !== -1 ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odBiOperator['notequal'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odBiOperator['equal']; + val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\'\''; + } + else { + operator = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odBiOperator[predicate.operator]; + } + if (operator) { + returnValue += field; + returnValue += operator; + if (guid) { + returnValue += guid; + } + return returnValue + val; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') { + operator = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator[predicate.operator]; + } + else { + operator = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator[predicate.operator]; + } + if (operator === 'like') { + val = val; + if (val.indexOf('%') !== -1) { + if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) { + val = val.substring(1, val.length); + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['startswith'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['startswith']; + } + else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) { + val = val.substring(0, val.length - 1); + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['endswith'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['endswith']; + } + else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) { + val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%')); + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['contains'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['contains']; + } + else { + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['contains'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['contains']; + } + } + val = encodeURIComponent(val); + val = '\'' + val + '\''; + } + else if (operator === 'wildcard') { + val = val; + if (val.indexOf('*') !== -1) { + var splittedStringValue = val.split('*'); + var splittedValue = void 0; + var count = 0; + if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 && + splittedStringValue[0].indexOf('?') === -1) { + splittedValue = splittedStringValue[0]; + splittedValue = '\'' + splittedValue + '\''; + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['startswith'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['startswith']; + returnValue += operator + '('; + returnValue += field + ','; + if (guid) { + returnValue += guid; + } + returnValue += splittedValue + ')'; + count++; + } + if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 && + splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) { + splittedValue = splittedStringValue[splittedStringValue.length - 1]; + splittedValue = '\'' + splittedValue + '\''; + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['endswith'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['endswith']; + if (count > 0) { + returnValue += ' and '; + } + returnValue += operator + '('; + returnValue += field + ','; + if (guid) { + returnValue += guid; + } + returnValue += splittedValue + ')'; + count++; + } + if (splittedStringValue.length > 2) { + for (var i = 1; i < splittedStringValue.length - 1; i++) { + if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) { + splittedValue = splittedStringValue[i]; + splittedValue = '\'' + splittedValue + '\''; + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['contains'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['contains']; + if (count > 0) { + returnValue += ' and '; + } + if (operator === 'substringof' || operator === 'not substringof') { + var temp = splittedValue; + splittedValue = field; + field = temp; + } + returnValue += operator + '('; + returnValue += field + ','; + if (guid) { + returnValue += guid; + } + returnValue += splittedValue + ')'; + count++; + } + } + } + if (count === 0) { + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['contains'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['contains']; + if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) { + val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join(''); + } + val = '\'' + val + '\''; + } + else { + operator = 'wildcard'; + } + } + else { + operator = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ? + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odv4UniOperator['contains'] : _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].odUniOperator['contains']; + if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) { + val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join(''); + } + val = '\'' + val + '\''; + } + } + if (operator === 'substringof' || operator === 'not substringof') { + var temp = val; + val = field; + field = temp; + } + if (operator !== 'wildcard') { + returnValue += operator + '('; + returnValue += field + ','; + if (guid) { + returnValue += guid; + } + returnValue += val + ')'; + } + return returnValue; + }; + ODataAdaptor.prototype.addParams = function (options) { + _super.prototype.addParams.call(this, options); + delete options.reqParams.params; + }; + /** + * Generate request string based on the multiple filter criteria from query. + * + * @param {Predicate} pred + * @param {boolean} requiresCast? + * @param predicate + * @param query + * @param requiresCast + */ + ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) { + var res = []; + for (var i = 0; i < predicate.predicates.length; i++) { + res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')'); + } + return res.join(' ' + predicate.condition + ' '); + }; + /** + * Generate query string based on the multiple filter criteria from query. + * + * @param {Predicate} filter + * @param {boolean} requiresCast? + * @param query + * @param requiresCast + */ + ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) { + return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast); + }; + /** + * Generate query string based on the multiple filter criteria from query. + * + * @param {string[]} filters + */ + ODataAdaptor.prototype.onWhere = function (filters) { + if (this.pvt.search) { + filters.push(this.onEachWhere(this.pvt.search, null, true)); + } + return filters.join(' and '); + }; + /** + * Generate query string based on the multiple search criteria from query. + * + * @param e + * @param {string} operator + * @param {string} key + * @param {boolean} } ignoreCase + * @param e.fields + * @param e.operator + * @param e.key + * @param e.ignoreCase + */ + ODataAdaptor.prototype.onEachSearch = function (e) { + if (e.fields && e.fields.length === 0) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].throwError('Query() - Search : oData search requires list of field names to search'); + } + var filter = this.pvt.search || []; + for (var i = 0; i < e.fields.length; i++) { + filter.push(new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](e.fields[i], e.operator, e.key, e.ignoreCase)); + } + this.pvt.search = filter; + }; + /** + * Generate query string based on the search criteria from query. + * + * @param {Object} e + */ + ODataAdaptor.prototype.onSearch = function (e) { + this.pvt.search = _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].or(this.pvt.search); + return ''; + }; + /** + * Generate query string based on multiple sort criteria from query. + * + * @param {QueryOptions} e + */ + ODataAdaptor.prototype.onEachSort = function (e) { + var res = []; + if (e.name instanceof Array) { + for (var i = 0; i < e.name.length; i++) { + res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : '')); + } + } + else { + res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : '')); + } + return res.join(','); + }; + /** + * Returns sort query string. + * + * @param {string[]} e + */ + ODataAdaptor.prototype.onSortBy = function (e) { + return e.reverse().join(','); + }; + /** + * Adds the group query to the adaptor option. + * + * @param {Object[]} e + * @returns string + */ + ODataAdaptor.prototype.onGroup = function (e) { + this.pvt.groups = e; + return []; + }; + /** + * Returns the select query string. + * + * @param {string[]} e + */ + ODataAdaptor.prototype.onSelect = function (e) { + for (var i = 0; i < e.length; i++) { + e[i] = ODataAdaptor.getField(e[i]); + } + return e.join(','); + }; + /** + * Add the aggregate query to the adaptor option. + * + * @param {Object[]} e + * @returns string + */ + ODataAdaptor.prototype.onAggregates = function (e) { + this.pvt.aggregates = e; + return ''; + }; + /** + * Returns the query string which requests total count from the data source. + * + * @param {boolean} e + * @returns string + */ + ODataAdaptor.prototype.onCount = function (e) { + return e === true ? 'allpages' : ''; + }; + /** + * Method will trigger before send the request to server side. + * Used to set the custom header or modify the request options. + * + * @param {DataManager} dm + * @param {XMLHttpRequest} request + * @param {Ajax} settings? + * @param settings + */ + ODataAdaptor.prototype.beforeSend = function (dm, request, settings) { + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') { + request.setRequestHeader('Accept', this.options.multipartAccept); + request.setRequestHeader('DataServiceVersion', '2.0'); + request.overrideMimeType('text/plain; charset=x-user-defined'); + } + else { + request.setRequestHeader('Accept', this.options.accept); + } + request.setRequestHeader('DataServiceVersion', '2.0'); + request.setRequestHeader('MaxDataServiceVersion', '2.0'); + }; + /** + * Returns the data from the query processing. + * + * @param {DataResult} data + * @param {DataOptions} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Ajax} request? + * @param {CrudOptions} changes? + * @param ds + * @param query + * @param xhr + * @param request + * @param changes + * @returns aggregateResult + */ + ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) { + var metaCheck = 'odata.metadata'; + if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) { + var dataUrls = data[metaCheck].split('/$metadata#'); + this.rootUrl = dataUrls[0]; + this.resourceTableName = dataUrls[1]; + } + var pvtData = 'pvtData'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.d)) { + var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d); + var metaData = '__metadata'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataCopy)) { + for (var i = 0; i < dataCopy.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataCopy[i][metaData])) { + delete dataCopy[i][metaData]; + } + } + } + } + var pvt = request && request[pvtData]; + var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes); + if (emptyAndBatch) { + return emptyAndBatch; + } + var versionCheck = xhr && request.getResponseHeader('DataServiceVersion'); + var count = null; + var version = (versionCheck && parseInt(versionCheck, 10)) || 2; + if (query && query.isCountRequired) { + var oDataCount = '__count'; + if (data[oDataCount] || data['odata.count']) { + count = data[oDataCount] || data['odata.count']; + } + if (data.d) { + data = data.d; + } + if (data[oDataCount] || data['odata.count']) { + count = data[oDataCount] || data['odata.count']; + } + } + if (version === 3 && data.value) { + data = data.value; + } + if (data.d) { + data = data.d; + } + if (version < 3 && data.results) { + data = data.results; + } + var args = {}; + args.count = count; + args.result = data; + this.getAggregateResult(pvt, data, args, null, query); + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates }; + }; + /** + * Converts the request object to query string. + * + * @param {Object} req + * @param request + * @param {Query} query + * @param {DataManager} dm + * @returns tableName + */ + ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) { + var res = []; + var table = 'table'; + var tableName = request[table] || ''; + var format = '$format'; + delete request[table]; + if (dm.dataSource.requiresFormat) { + request[format] = 'json'; + } + var keys = Object.keys(request); + for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) { + var prop = keys_4[_i]; + res.push(prop + '=' + request[prop]); + } + res = res.join('&'); + if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) { + return res; + } + return res.length ? tableName + '?' + res : tableName || ''; + }; + ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) { + for (var _i = 0, _a = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) { + var prop = _a[_i]; + if ((convertObj[prop] instanceof Date)) { + convertObj[prop] = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].dateParse.toLocalTime(convertObj[prop]); + } + } + return convertObj; + }; + /** + * Prepare and returns request body which is used to insert a new record in the table. + * + * @param {DataManager} dm + * @param {Object} data + * @param {string} tableName? + * @param tableName + */ + ODataAdaptor.prototype.insert = function (dm, data, tableName) { + return { + url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\/*$/, tableName ? '/' + tableName : ''), + data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null) + }; + }; + /** + * Prepare and return request body which is used to remove record from the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {number} value + * @param {string} tableName? + * @param tableName + */ + ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) { + var url; + if (typeof value === 'string' && !_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(value)) { + url = "('" + value + "')"; + } + else { + url = "(" + value + ")"; + } + return { + type: 'DELETE', + url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\/*$/, tableName ? '/' + tableName : '') + url + }; + }; + /** + * Updates existing record and saves the changes to the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName? + * @param tableName + * @param query + * @param original + * @returns this + */ + ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) { + if (this.options.updateType === 'PATCH' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(original)) { + value = this.compareAndRemove(value, original, keyField); + } + var url; + if (typeof value[keyField] === 'string' && !_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(value[keyField])) { + url = "('" + value[keyField] + "')"; + } + else { + url = "(" + value[keyField] + ")"; + } + return { + type: this.options.updateType, + url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\/*$/, tableName ? '/' + tableName : '') + url, + data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null), + accept: this.options.accept + }; + }; + /** + * Prepare the request body based on the newly added, removed and updated records. + * The result is used by the batch request. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {RemoteArgs} e + * @param query + * @param original + * @returns {Object} + */ + ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) { + var initialGuid = e.guid = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getGuid(this.options.batchPre); + var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch : + dm.dataSource.url.replace(/\/*$/, '/' + this.options.batch); + e.url = this.resourceTableName ? this.resourceTableName : e.url; + var args = { + url: e.url, + key: e.key, + cid: 1, + cSet: _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getGuid(this.options.changeSet) + }; + var req = '--' + initialGuid + '\n'; + req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\n'; + this.pvt.changeSet = 0; + req += this.generateInsertRequest(changes.addedRecords, args, dm); + req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []); + req += this.generateDeleteRequest(changes.deletedRecords, args, dm); + req += args.cSet + '--\n'; + req += '--' + initialGuid + '--'; + return { + type: 'POST', + url: url, + dataType: 'json', + contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid, + data: req + }; + }; + /** + * Generate the string content from the removed records. + * The result will be send during batch update. + * + * @param {Object[]} arr + * @param {RemoteArgs} e + * @param dm + * @returns this + */ + ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) { + if (!arr) { + return ''; + } + var req = ''; + var stat = { + 'method': 'DELETE ', + 'url': function (data, i, key) { + var url = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(key, data[i]); + if (typeof url === 'number' || _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(url)) { + return '(' + url + ')'; + } + else if (url instanceof Date) { + var dateTime = data[i][key]; + return '(' + dateTime.toJSON() + ')'; + } + else { + return "('" + url + "')"; + } + }, + 'data': function (data, i) { return ''; } + }; + req = this.generateBodyContent(arr, e, stat, dm); + return req + '\n'; + }; + /** + * Generate the string content from the inserted records. + * The result will be send during batch update. + * + * @param {Object[]} arr + * @param {RemoteArgs} e + * @param dm + */ + ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) { + if (!arr) { + return ''; + } + var req = ''; + var stat = { + 'method': 'POST ', + 'url': function (data, i, key) { return ''; }, + 'data': function (data, i) { return JSON.stringify(data[i]) + '\n\n'; } + }; + req = this.generateBodyContent(arr, e, stat, dm); + return req; + }; + /** + * Generate the string content from the updated records. + * The result will be send during batch update. + * + * @param {Object[]} arr + * @param {RemoteArgs} e + * @param dm + * @param org + */ + ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) { + var _this = this; + if (!arr) { + return ''; + } + var req = ''; + arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(e.key, o) === _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(e.key, change); })[0], e.key); }); + var stat = { + 'method': this.options.updateType + ' ', + 'url': function (data, i, key) { + if (typeof data[i][key] === 'number' || _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(data[i][key])) { + return '(' + data[i][key] + ')'; + } + else if (data[i][key] instanceof Date) { + var date = data[i][key]; + return '(' + date.toJSON() + ')'; + } + else { + return "('" + data[i][key] + "')"; + } + }, + 'data': function (data, i) { return JSON.stringify(data[i]) + '\n\n'; } + }; + req = this.generateBodyContent(arr, e, stat, dm); + return req; + }; + ODataAdaptor.getField = function (prop) { + return prop.replace(/\./g, '/'); + }; + ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) { + var req = ''; + for (var i = 0; i < arr.length; i++) { + req += '\n' + e.cSet + '\n'; + req += this.options.changeSetContent + '\n\n'; + req += stat.method; + if (stat.method === 'POST ') { + req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\n'; + } + else if (stat.method === 'PUT ' || stat.method === 'PATCH ') { + req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\n'; + } + else if (stat.method === 'DELETE ') { + req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\n'; + } + req += 'Accept: ' + this.options.accept + '\n'; + req += 'Content-Id: ' + this.pvt.changeSet++ + '\n'; + req += this.options.batchChangeSetContentType + '\n'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(arr[i]['@odata.etag'])) { + req += 'If-Match: ' + arr[i]['@odata.etag'] + '\n\n'; + delete arr[i]['@odata.etag']; + } + else { + req += '\n'; + } + req += stat.data(arr, i); + } + return req; + }; + ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) { + if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) { + return (query.isCountRequired ? { result: [], count: 0 } : []); + } + if (request && this.options.batch && _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') { + var guid = xhr.getResponseHeader('Content-Type'); + var cIdx = void 0; + var jsonObj = void 0; + var d = data + ''; + guid = guid.substring(guid.indexOf('=batchresponse') + 1); + d = d.split(guid); + if (d.length < 2) { + return {}; + } + d = d[1]; + var exVal = /(?:\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d); + if (exVal) { + d.replace(exVal[0], ''); + } + var changeGuid = exVal ? exVal[1] : ''; + d = d.split(changeGuid); + for (var i = d.length; i > -1; i--) { + if (!/\bContent-ID:/i.test(d[i]) || !/\bHTTP.+201/.test(d[i])) { + continue; + } + cIdx = parseInt(/\bContent-ID: (\d+)/i.exec(d[i])[1], 10); + if (changes.addedRecords[cIdx]) { + jsonObj = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(/^\{.+\}/m.exec(d[i])[0]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, changes.addedRecords[cIdx], this.processResponse(jsonObj)); + } + } + return changes; + } + return null; + }; + ODataAdaptor.prototype.compareAndRemove = function (data, original, key) { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(original)) { + return data; + } + Object.keys(data).forEach(function (prop) { + if (prop !== key && prop !== '@odata.etag') { + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isPlainObject(data[prop])) { + _this.compareAndRemove(data[prop], original[prop]); + var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; }); + if (final.length === 0) { + delete data[prop]; + } + } + else if (data[prop] === original[prop]) { + delete data[prop]; + } + else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) { + delete data[prop]; + } + } + }); + return data; + }; + return ODataAdaptor; +}(UrlAdaptor)); + +/** + * The OData v4 is an improved version of OData protocols. + * The DataManager uses the ODataV4Adaptor to consume OData v4 services. + * + * @hidden + */ +var ODataV4Adaptor = /** @__PURE__ @class */ (function (_super) { + __extends(ODataV4Adaptor, _super); + function ODataV4Adaptor(props) { + var _this = _super.call(this, props) || this; + // options replaced the default adaptor options + _this.options = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, _this.options, { + requestType: 'get', + accept: 'application/json, text/javascript, */*; q=0.01', + multipartAccept: 'multipart/mixed', + sortBy: '$orderby', + select: '$select', + skip: '$skip', + take: '$top', + count: '$count', + search: '$search', + where: '$filter', + expand: '$expand', + batch: '$batch', + changeSet: '--changeset_', + batchPre: 'batch_', + contentId: 'Content-Id: ', + batchContent: 'Content-Type: multipart/mixed; boundary=', + changeSetContent: 'Content-Type: application/http\nContent-Transfer-Encoding: binary ', + batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ', + updateType: 'PATCH', + localTime: false, + apply: '$apply' + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(_this.options, props || {}); + return _this; + } + /** + * @hidden + */ + ODataV4Adaptor.prototype.getModuleName = function () { + return 'ODataV4Adaptor'; + }; + /** + * Returns the query string which requests total count from the data source. + * + * @param {boolean} e + * @returns string + */ + ODataV4Adaptor.prototype.onCount = function (e) { + return e === true ? 'true' : ''; + }; + /** + * Generate request string based on the filter criteria from query. + * + * @param {Predicate} pred + * @param {boolean} requiresCast? + * @param predicate + * @param query + * @param requiresCast + */ + ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) { + var returnValue = ''; + var val = predicate.value; + var isDate = val instanceof Date; + if (query instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"]) { + var queries = this.getQueryRequest(query); + for (var i = 0; i < queries.filters.length; i++) { + if (queries.filters[i].e.key === predicate.value) { + requiresCast = true; + } + } + } + returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast); + if (isDate) { + returnValue = returnValue.replace(/datetime'(.*)'$/, '$1'); + } + if (_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(val)) { + returnValue = returnValue.replace('guid', '').replace(/'/g, ''); + } + return returnValue; + }; + /** + * Generate query string based on the multiple search criteria from query. + * + * @param e + * @param {string} operator + * @param {string} key + * @param {boolean} } ignoreCase + * @param e.fields + * @param e.operator + * @param e.key + * @param e.ignoreCase + */ + ODataV4Adaptor.prototype.onEachSearch = function (e) { + var search = this.pvt.searches || []; + search.push(e.key); + this.pvt.searches = search; + }; + /** + * Generate query string based on the search criteria from query. + * + * @param {Object} e + */ + ODataV4Adaptor.prototype.onSearch = function (e) { + return this.pvt.searches.join(' OR '); + }; + /** + * Returns the expand query string. + * + * @param {string} e + * @param e.selects + * @param e.expands + */ + ODataV4Adaptor.prototype.onExpand = function (e) { + var _this = this; + var selected = {}; + var expanded = {}; + var expands = e.expands.slice(); + var exArr = []; + var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; }); + selects.forEach(function (select) { + var splits = select.split('.'); + if (!(splits[0] in selected)) { + selected[splits[0]] = []; + } + if (splits.length === 2) { + if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) { + if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) { + selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1]; + } + else { + selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1]; + } + } + else { + selected[splits[0]].push('$select=' + splits[1]); + } + } + else { + var sel = '$select=' + splits[splits.length - 1]; + var exp = ''; + var close_1 = ''; + for (var i = 1; i < splits.length - 1; i++) { + exp = exp + '$expand=' + splits[i] + '('; + close_1 = close_1 + ')'; + } + var combineVal = exp + sel + close_1; + if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 && + _this.expandQueryIndex(selected[splits[0]], true)) { + var idx = _this.expandQueryIndex(selected[splits[0]]); + selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ','); + } + else { + selected[splits[0]].push(combineVal); + } + } + }); + //Auto expand from select query + Object.keys(selected).forEach(function (expand) { + if ((expands.indexOf(expand) === -1)) { + expands.push(expand); + } + }); + expands.forEach(function (expand) { + expanded[expand] = expand in selected ? expand + "(" + selected[expand].join(';') + ")" : expand; + }); + Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); }); + return exArr.join(','); + }; + ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) { + for (var i = 0; i < query.length; i++) { + if (query[i].indexOf('$expand') !== -1) { + return isExpand ? true : i; + } + } + return isExpand ? false : 0; + }; + /** + * Returns the groupby query string. + * + * @param {string} e + * @param distinctFields + */ + ODataV4Adaptor.prototype.onDistinct = function (distinctFields) { + var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(','); + return "groupby((" + fields + "))"; + }; + /** + * Returns the select query string. + * + * @param {string[]} e + */ + ODataV4Adaptor.prototype.onSelect = function (e) { + return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; })); + }; + /** + * Method will trigger before send the request to server side. + * Used to set the custom header or modify the request options. + * + * @param {DataManager} dm + * @param {XMLHttpRequest} request + * @param {Ajax} settings + * @returns void + */ + ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) { + if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') { + request.setRequestHeader('Prefer', 'return=representation'); + } + request.setRequestHeader('Accept', this.options.accept); + }; + /** + * Returns the data from the query processing. + * + * @param {DataResult} data + * @param {DataOptions} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Ajax} request? + * @param {CrudOptions} changes? + * @param ds + * @param query + * @param xhr + * @param request + * @param changes + * @returns aggregateResult + */ + ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) { + var metaName = '@odata.context'; + var metaV4Name = '@context'; + if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) { + var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].split('/$metadata#'); + this.rootUrl = dataUrl[0]; + this.resourceTableName = dataUrl[1]; + } + var pvtData = 'pvtData'; + var pvt = request && request[pvtData]; + var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes); + if (emptyAndBatch) { + return emptyAndBatch; + } + var count = null; + var dataCount = '@odata.count'; + var dataV4Count = '@count'; + if (query && query.isCountRequired) { + if (dataCount in data) { + count = data[dataCount]; + } + else if (dataV4Count in data) { + count = data[dataV4Count]; + } + } + data = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.value) ? data.value : data; + var args = {}; + args.count = count; + args.result = data; + this.getAggregateResult(pvt, data, args, null, query); + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates }; + }; + return ODataV4Adaptor; +}(ODataAdaptor)); + +/** + * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML. + * The DataManager uses the WebApiAdaptor to consume Web API. + * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor + * + * @hidden + */ +var WebApiAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(WebApiAdaptor, _super); + function WebApiAdaptor() { + return _super !== null && _super.apply(this, arguments) || this; + } + WebApiAdaptor.prototype.getModuleName = function () { + return 'WebApiAdaptor'; + }; + /** + * Prepare and returns request body which is used to insert a new record in the table. + * + * @param {DataManager} dm + * @param {Object} data + * @param {string} tableName? + * @param tableName + */ + WebApiAdaptor.prototype.insert = function (dm, data, tableName) { + return { + type: 'POST', + url: dm.dataSource.url, + data: JSON.stringify(data) + }; + }; + /** + * Prepare and return request body which is used to remove record from the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {number} value + * @param {string} tableName? + * @param tableName + */ + WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) { + return { + type: 'DELETE', + url: dm.dataSource.url + '/' + value, + data: JSON.stringify(value) + }; + }; + /** + * Prepare and return request body which is used to update record. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName? + * @param tableName + */ + WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) { + return { + type: 'PUT', + url: dm.dataSource.url, + data: JSON.stringify(value) + }; + }; + WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) { + var _this = this; + var initialGuid = e.guid = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getGuid(this.options.batchPre); + var url = dm.dataSource.url.replace(/\/*$/, '/' + this.options.batch); + e.url = this.resourceTableName ? this.resourceTableName : e.url; + var req = []; + var _loop_1 = function (i, x) { + changes.addedRecords.forEach(function (j, d) { + var stat = { + 'method': 'POST ', + 'url': function (data, i, key) { return ''; }, + 'data': function (data, i) { return JSON.stringify(data[i]) + '\n\n'; } + }; + req.push('--' + initialGuid); + req.push('Content-Type: application/http; msgtype=request', ''); + req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1'); + req.push('Content-Type: ' + 'application/json; charset=utf-8'); + req.push('Host: ' + location.host); + req.push('', j ? JSON.stringify(j) : ''); + }); + }; + //insertion + for (var i = 0, x = changes.addedRecords.length; i < x; i++) { + _loop_1(i, x); + } + var _loop_2 = function (i, x) { + changes.changedRecords.forEach(function (j, d) { + var stat = { + 'method': _this.options.updateType + ' ', + 'url': function (data, i, key) { return ''; }, + 'data': function (data, i) { return JSON.stringify(data[i]) + '\n\n'; } + }; + req.push('--' + initialGuid); + req.push('Content-Type: application/http; msgtype=request', ''); + req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1'); + req.push('Content-Type: ' + 'application/json; charset=utf-8'); + req.push('Host: ' + location.host); + req.push('', j ? JSON.stringify(j) : ''); + }); + }; + //updation + for (var i = 0, x = changes.changedRecords.length; i < x; i++) { + _loop_2(i, x); + } + var _loop_3 = function (i, x) { + changes.deletedRecords.forEach(function (j, d) { + var state = { + 'mtd': 'DELETE ', + 'url': function (data, i, key) { + var url = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(key, data[i]); + if (typeof url === 'number' || _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.isGuid(url)) { + return '/' + url; + } + else if (url instanceof Date) { + var datTime = data[i][key]; + return '/' + datTime.toJSON(); + } + else { + return "/'" + url + "'"; + } + }, + 'data': function (data, i) { return ''; } + }; + req.push('--' + initialGuid); + req.push('Content-Type: application/http; msgtype=request', ''); + req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1'); + req.push('Content-Type: ' + 'application/json; charset=utf-8'); + req.push('Host: ' + location.host); + req.push('', j ? JSON.stringify(j) : ''); + }); + }; + //deletion + for (var i = 0, x = changes.deletedRecords.length; i < x; i++) { + _loop_3(i, x); + } + req.push('--' + initialGuid + '--', ''); + return { + type: 'POST', + url: url, + contentType: 'multipart/mixed; boundary=' + initialGuid, + data: req.join('\r\n') + }; + }; + /** + * Method will trigger before send the request to server side. + * Used to set the custom header or modify the request options. + * + * @param {DataManager} dm + * @param {XMLHttpRequest} request + * @param {Ajax} settings + * @returns void + */ + WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) { + request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01'); + }; + /** + * Returns the data from the query processing. + * + * @param {DataResult} data + * @param {DataOptions} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Ajax} request? + * @param {CrudOptions} changes? + * @param ds + * @param query + * @param xhr + * @param request + * @param changes + * @returns aggregateResult + */ + WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) { + var pvtData = 'pvtData'; + var pvt = request && request[pvtData]; + var count = null; + var args = {}; + if (request && request.type.toLowerCase() !== 'post') { + var versionCheck = xhr && request.getResponseHeader('DataServiceVersion'); + var version = (versionCheck && parseInt(versionCheck, 10)) || 2; + if (query && query.isCountRequired) { + if (!_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(data.Count)) { + count = data.Count; + } + } + if (version < 3 && data.Items) { + data = data.Items; + } + args.count = count; + args.result = data; + this.getAggregateResult(pvt, data, args, null, query); + } + args.result = args.result || data; + return _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates }; + }; + return WebApiAdaptor; +}(ODataAdaptor)); + +/** + * WebMethodAdaptor can be used by DataManager to interact with web method. + * + * @hidden + */ +var WebMethodAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(WebMethodAdaptor, _super); + function WebMethodAdaptor() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Prepare the request body based on the query. + * The query information can be accessed at the WebMethod using variable named `value`. + * + * @param {DataManager} dm + * @param {Query} query + * @param {Object[]} hierarchyFilters? + * @param hierarchyFilters + * @returns application + */ + WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) { + var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters); + var getData = 'data'; + var data = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(obj[getData]); + var result = {}; + var value = 'value'; + if (data.param) { + for (var i = 0; i < data.param.length; i++) { + var param = data.param[i]; + var key = Object.keys(param)[0]; + result[key] = param[key]; + } + } + result[value] = data; + var pvtData = 'pvtData'; + var url = 'url'; + return { + data: JSON.stringify(result), + url: obj[url], + pvtData: obj[pvtData], + type: 'POST', + contentType: 'application/json; charset=utf-8' + }; + }; + return WebMethodAdaptor; +}(UrlAdaptor)); + +/** + * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side. + * It interacts with server-side only for CRUD operations. + * + * @hidden + */ +var RemoteSaveAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(RemoteSaveAdaptor, _super); + /** + * @hidden + */ + function RemoteSaveAdaptor() { + var _this = _super.call(this) || this; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('beforeSend', UrlAdaptor.prototype.beforeSend, _this); + return _this; + } + RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) { + this.pvt.position = position; + this.updateType = 'add'; + return { + url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + value: data, + table: tableName, + action: 'insert' + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) { + _super.prototype.remove.call(this, dm, keyField, val); + return { + type: 'POST', + url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + key: val, + keyColumn: keyField, + table: tableName, + action: 'remove' + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) { + this.updateType = 'update'; + this.updateKey = keyField; + return { + type: 'POST', + url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url, + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + value: val, + action: 'update', + keyColumn: keyField, + key: val[keyField], + table: tableName + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) { + var i; + var newData = request ? JSON.parse(request.data) : data; + data = newData.action === 'batch' ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(data) : data; + if (this.updateType === 'add') { + _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position); + } + if (this.updateType === 'update') { + _super.prototype.update.call(this, ds, this.updateKey, data); + } + this.updateType = undefined; + if (data.added) { + for (i = 0; i < data.added.length; i++) { + _super.prototype.insert.call(this, ds, data.added[i]); + } + } + if (data.changed) { + for (i = 0; i < data.changed.length; i++) { + _super.prototype.update.call(this, ds, e.key, data.changed[i]); + } + } + if (data.deleted) { + for (i = 0; i < data.deleted.length; i++) { + _super.prototype.remove.call(this, ds, e.key, data.deleted[i]); + } + } + return data; + }; + /** + * Prepare the request body based on the newly added, removed and updated records. + * Also perform the changes in the locally cached data to sync with the remote data. + * The result is used by the batch request. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {RemoteArgs} e + * @param query + * @param original + */ + RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) { + return { + type: 'POST', + url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url, + contentType: 'application/json; charset=utf-8', + dataType: 'json', + data: JSON.stringify(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + changed: changes.changedRecords, + added: changes.addedRecords, + deleted: changes.deletedRecords, + action: 'batch', + table: e.url, + key: e.key + }, _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getAddParams(this, dm, query))) + }; + }; + RemoteSaveAdaptor.prototype.addParams = function (options) { + var urlParams = new UrlAdaptor(); + urlParams.addParams(options); + }; + return RemoteSaveAdaptor; +}(JsonAdaptor)); + +/** + * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions. + * + * @hidden + */ +var CustomDataAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(CustomDataAdaptor, _super); + function CustomDataAdaptor(props) { + var _this = _super.call(this) || this; + // options replaced the default adaptor options + _this.options = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, _this.options, { + getData: function () { }, + addRecord: function () { }, + updateRecord: function () { }, + deleteRecord: function () { }, + batchUpdate: function () { } + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(_this.options, props || {}); + return _this; + } + CustomDataAdaptor.prototype.getModuleName = function () { + return 'CustomDataAdaptor'; + }; + return CustomDataAdaptor; +}(UrlAdaptor)); + +/** + * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server. + * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations. + * + * @hidden + */ +var GraphQLAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(GraphQLAdaptor, _super); + function GraphQLAdaptor(options) { + var _this = _super.call(this) || this; + _this.opt = options; + _this.schema = _this.opt.response; + _this.query = _this.opt.query; + /* eslint-disable @typescript-eslint/no-empty-function */ + // tslint:disable-next-line:no-empty + _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { }; + /* eslint-enable @typescript-eslint/no-empty-function */ + _this.getQuery = function () { return _this.query; }; + return _this; + } + GraphQLAdaptor.prototype.getModuleName = function () { + return 'GraphQLAdaptor'; + }; + /** + * Process the JSON data based on the provided queries. + * + * @param {DataManager} dm + * @param {Query} query? + * @param datamanager + * @param query + */ + GraphQLAdaptor.prototype.processQuery = function (datamanager, query) { + var urlQuery = _super.prototype.processQuery.apply(this, arguments); + var dm = JSON.parse(urlQuery.data); + // constructing GraphQL parameters + var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where', + 'search', 'requiresCounts', 'aggregates', 'params']; + var temp = {}; + var str = 'searchwhereparams'; + keys.filter(function (e) { + temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e]; + }); + var vars = this.getVariables() || {}; + // tslint:disable-next-line:no-string-literal + vars['datamanager'] = temp; + var data = JSON.stringify({ + query: this.getQuery(), + variables: vars + }); + urlQuery.data = data; + return urlQuery; + }; + /** + * Returns the data from the query processing. + * It will also cache the data for later usage. + * + * @param {DataResult} data + * @param {DataManager} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Object} request? + * @param resData + * @param ds + * @param query + * @param xhr + * @param request + * @returns DataResult + */ + GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) { + var res = resData; + var count; + var aggregates; + var result = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.schema.result, res.data); + if (this.schema.count) { + count = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.schema.count, res.data); + } + if (this.schema.aggregates) { + aggregates = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.schema.aggregates, res.data); + aggregates = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(aggregates) ? _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(aggregates) : aggregates; + } + var pvt = request.pvtData || {}; + var args = { result: result, aggregates: aggregates }; + var data = args; + if (pvt && pvt.groups && pvt.groups.length) { + this.getAggregateResult(pvt, data, args, null, query); + } + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result; + }; + /** + * Prepare and returns request body which is used to insert a new record in the table. + */ + GraphQLAdaptor.prototype.insert = function () { + var inserted = _super.prototype.insert.apply(this, arguments); + return this.generateCrudData(inserted, 'insert'); + }; + /** + * Prepare and returns request body which is used to update a new record in the table. + */ + GraphQLAdaptor.prototype.update = function () { + var inserted = _super.prototype.update.apply(this, arguments); + return this.generateCrudData(inserted, 'update'); + }; + /** + * Prepare and returns request body which is used to remove a new record in the table. + */ + GraphQLAdaptor.prototype.remove = function () { + var inserted = _super.prototype.remove.apply(this, arguments); + return this.generateCrudData(inserted, 'remove'); + }; + /** + * Prepare the request body based on the newly added, removed and updated records. + * The result is used by the batch request. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {Object} e + * @param e.key + * @param {Query} query + * @param {Object} original + */ + GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) { + var batch = _super.prototype.batchRequest.apply(this, arguments); + // tslint:disable-next-line:typedef + var bData = JSON.parse(batch.data); + bData.key = e.key; + batch.data = JSON.stringify(bData); + return this.generateCrudData(batch, 'batch'); + }; + GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) { + var parsed = JSON.parse(crudData.data); + crudData.data = JSON.stringify({ + query: this.opt.getMutation(action), + variables: parsed + }); + return crudData; + }; + return GraphQLAdaptor; +}(UrlAdaptor)); + +/** + * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages. + * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager + * + * @hidden + */ +var CacheAdaptor = /** @__PURE__ @class */ (function (_super) { + __extends(CacheAdaptor, _super); + /** + * Constructor for CacheAdaptor class. + * + * @param {CacheAdaptor} adaptor? + * @param {number} timeStamp? + * @param {number} pageSize? + * @param adaptor + * @param timeStamp + * @param pageSize + * @hidden + */ + function CacheAdaptor(adaptor, timeStamp, pageSize) { + var _this = _super.call(this) || this; + _this.isCrudAction = false; + _this.isInsertAction = false; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(adaptor)) { + _this.cacheAdaptor = adaptor; + } + _this.pageSize = pageSize; + _this.guidId = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getGuid('cacheAdaptor'); + var obj = { keys: [], results: [] }; + window.localStorage.setItem(_this.guidId, JSON.stringify(obj)); + var guid = _this.guidId; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(timeStamp)) { + setInterval(function () { + var data = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(window.localStorage.getItem(guid)); + var forDel = []; + for (var i = 0; i < data.results.length; i++) { + var currentTime = +new Date(); + var requestTime = +new Date(data.results[i].timeStamp); + data.results[i].timeStamp = currentTime - requestTime; + if (currentTime - requestTime > timeStamp) { + forDel.push(i); + } + } + for (var i = 0; i < forDel.length; i++) { + data.results.splice(forDel[i], 1); + data.keys.splice(forDel[i], 1); + } + window.localStorage.removeItem(guid); + window.localStorage.setItem(guid, JSON.stringify(data)); + }, timeStamp); + } + return _this; + } + /** + * It will generate the key based on the URL when we send a request to server. + * + * @param {string} url + * @param {Query} query? + * @param query + * @hidden + */ + CacheAdaptor.prototype.generateKey = function (url, query) { + var queries = this.getQueryRequest(query); + var singles = _query__WEBPACK_IMPORTED_MODULE_2__["Query"].filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']); + var key = url; + var page = 'onPage'; + if (page in singles) { + key += singles[page].pageIndex; + } + queries.sorts.forEach(function (obj) { + key += obj.e.direction + obj.e.fieldName; + }); + queries.groups.forEach(function (obj) { + key += obj.e.fieldName; + }); + queries.searches.forEach(function (obj) { + key += obj.e.searchKey; + }); + for (var filter = 0; filter < queries.filters.length; filter++) { + var currentFilter = queries.filters[filter]; + if (currentFilter.e.isComplex) { + var newQuery = query.clone(); + newQuery.queries = []; + for (var i = 0; i < currentFilter.e.predicates.length; i++) { + newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter }); + } + key += currentFilter.e.condition + this.generateKey(url, newQuery); + } + else { + key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value; + } + } + return key; + }; + /** + * Process the query to generate request body. + * If the data is already cached, it will return the cached data. + * + * @param {DataManager} dm + * @param {Query} query? + * @param {Object[]} hierarchyFilters? + * @param query + * @param hierarchyFilters + */ + CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) { + var key = this.generateKey(dm.dataSource.url, query); + var cachedItems = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(window.localStorage.getItem(this.guidId)); + var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null; + if (data != null && !this.isCrudAction && !this.isInsertAction) { + return data; + } + this.isCrudAction = null; + this.isInsertAction = null; + /* eslint-disable prefer-spread */ + return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0)); + /* eslint-enable prefer-spread */ + }; + /** + * Returns the data from the query processing. + * It will also cache the data for later usage. + * + * @param {DataResult} data + * @param {DataManager} ds? + * @param {Query} query? + * @param {XMLHttpRequest} xhr? + * @param {Ajax} request? + * @param {CrudOptions} changes? + * @param ds + * @param query + * @param xhr + * @param request + * @param changes + */ + CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) { + if (this.isInsertAction || (request && this.cacheAdaptor.options.batch && + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) { + return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes); + } + /* eslint-disable prefer-spread */ + data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0)); + /* eslint-enable prefer-spread */ + var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url; + var obj = {}; + obj = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(window.localStorage.getItem(this.guidId)); + var index = obj.keys.indexOf(key); + if (index !== -1) { + obj.results.splice(index, 1); + obj.keys.splice(index, 1); + } + obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count }; + while (obj.results.length > this.pageSize) { + obj.results.splice(0, 1); + obj.keys.splice(0, 1); + } + window.localStorage.setItem(this.guidId, JSON.stringify(obj)); + return data; + }; + /** + * Method will trigger before send the request to server side. Used to set the custom header or modify the request options. + * + * @param {DataManager} dm + * @param {XMLHttpRequest} request + * @param {Ajax} settings? + * @param settings + */ + CacheAdaptor.prototype.beforeSend = function (dm, request, settings) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cacheAdaptor.options.batch) && _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].endsWith(settings.url, this.cacheAdaptor.options.batch) + && settings.type.toLowerCase() === 'post') { + request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept); + } + if (!dm.dataSource.crossDomain) { + request.setRequestHeader('Accept', this.cacheAdaptor.options.accept); + } + }; + /** + * Updates existing record and saves the changes to the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName + */ + CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) { + this.isCrudAction = true; + return this.cacheAdaptor.update(dm, keyField, value, tableName); + }; + /** + * Prepare and returns request body which is used to insert a new record in the table. + * + * @param {DataManager} dm + * @param {Object} data + * @param {string} tableName? + * @param tableName + */ + CacheAdaptor.prototype.insert = function (dm, data, tableName) { + this.isInsertAction = true; + return this.cacheAdaptor.insert(dm, data, tableName); + }; + /** + * Prepare and return request body which is used to remove record from the table. + * + * @param {DataManager} dm + * @param {string} keyField + * @param {Object} value + * @param {string} tableName? + * @param tableName + */ + CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) { + this.isCrudAction = true; + return this.cacheAdaptor.remove(dm, keyField, value, tableName); + }; + /** + * Prepare the request body based on the newly added, removed and updated records. + * The result is used by the batch request. + * + * @param {DataManager} dm + * @param {CrudOptions} changes + * @param {RemoteArgs} e + */ + CacheAdaptor.prototype.batchRequest = function (dm, changes, e) { + return this.cacheAdaptor.batchRequest(dm, changes, e); + }; + return CacheAdaptor; +}(UrlAdaptor)); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-data/index.js": +/*!*********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-data/index.js ***! + \*********************************************************/ +/*! exports provided: DataManager, Deferred, Query, Predicate, Adaptor, JsonAdaptor, UrlAdaptor, ODataAdaptor, ODataV4Adaptor, WebApiAdaptor, WebMethodAdaptor, RemoteSaveAdaptor, CustomDataAdaptor, GraphQLAdaptor, CacheAdaptor, DataUtil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _manager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./manager */ "./ej2-resources/22.1.37/scripts/ej2-data/manager.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataManager", function() { return _manager__WEBPACK_IMPORTED_MODULE_0__["DataManager"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Deferred", function() { return _manager__WEBPACK_IMPORTED_MODULE_0__["Deferred"]; }); + +/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./query */ "./ej2-resources/22.1.37/scripts/ej2-data/query.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Query", function() { return _query__WEBPACK_IMPORTED_MODULE_1__["Query"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Predicate", function() { return _query__WEBPACK_IMPORTED_MODULE_1__["Predicate"]; }); + +/* harmony import */ var _adaptors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./adaptors */ "./ej2-resources/22.1.37/scripts/ej2-data/adaptors.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Adaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["Adaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["JsonAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UrlAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["UrlAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ODataAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["ODataAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ODataV4Adaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["ODataV4Adaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebApiAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["WebApiAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebMethodAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["WebMethodAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RemoteSaveAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["RemoteSaveAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomDataAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["CustomDataAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GraphQLAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["GraphQLAdaptor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CacheAdaptor", function() { return _adaptors__WEBPACK_IMPORTED_MODULE_2__["CacheAdaptor"]; }); + +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-data/util.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataUtil", function() { return _util__WEBPACK_IMPORTED_MODULE_3__["DataUtil"]; }); + +/** + * Data modules + */ + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-data/manager.js": +/*!***********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-data/manager.js ***! + \***********************************************************/ +/*! exports provided: DataManager, Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataManager", function() { return DataManager; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Deferred", function() { return Deferred; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-data/util.js"); +/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query */ "./ej2-resources/22.1.37/scripts/ej2-data/query.js"); +/* harmony import */ var _adaptors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./adaptors */ "./ej2-resources/22.1.37/scripts/ej2-data/adaptors.js"); +/* eslint-disable valid-jsdoc */ +/* eslint-disable security/detect-object-injection */ + + + + + +/** + * DataManager is used to manage and manipulate relational data. + */ +var DataManager = /** @__PURE__ @class */ (function () { + /** + * Constructor for DataManager class + * + * @param {DataOptions|JSON[]} dataSource? + * @param {Query} query? + * @param {AdaptorOptions|string} adaptor? + * @param dataSource + * @param query + * @param adaptor + * @hidden + */ + function DataManager(dataSource, query, adaptor) { + var _this = this; + /** @hidden */ + this.dateParse = true; + /** @hidden */ + this.timeZoneHandling = true; + this.persistQuery = {}; + this.isInitialLoad = false; + this.requests = []; + this.isInitialLoad = true; + if (!dataSource && !this.dataSource) { + dataSource = []; + } + adaptor = adaptor || dataSource.adaptor; + if (dataSource && dataSource.timeZoneHandling === false) { + this.timeZoneHandling = dataSource.timeZoneHandling; + } + var data; + if (dataSource instanceof Array) { + data = { + json: dataSource, + offline: true + }; + } + else if (typeof dataSource === 'object') { + if (!dataSource.json) { + dataSource.json = []; + } + if (!dataSource.enablePersistence) { + dataSource.enablePersistence = false; + } + if (!dataSource.id) { + dataSource.id = ''; + } + if (!dataSource.ignoreOnPersist) { + dataSource.ignoreOnPersist = []; + } + data = { + url: dataSource.url, + insertUrl: dataSource.insertUrl, + removeUrl: dataSource.removeUrl, + updateUrl: dataSource.updateUrl, + crudUrl: dataSource.crudUrl, + batchUrl: dataSource.batchUrl, + json: dataSource.json, + headers: dataSource.headers, + accept: dataSource.accept, + data: dataSource.data, + timeTillExpiration: dataSource.timeTillExpiration, + cachingPageSize: dataSource.cachingPageSize, + enableCaching: dataSource.enableCaching, + requestType: dataSource.requestType, + key: dataSource.key, + crossDomain: dataSource.crossDomain, + jsonp: dataSource.jsonp, + dataType: dataSource.dataType, + offline: dataSource.offline !== undefined ? dataSource.offline + : dataSource.adaptor instanceof _adaptors__WEBPACK_IMPORTED_MODULE_3__["RemoteSaveAdaptor"] || dataSource.adaptor instanceof _adaptors__WEBPACK_IMPORTED_MODULE_3__["CustomDataAdaptor"] ? + false : dataSource.url ? false : true, + requiresFormat: dataSource.requiresFormat, + enablePersistence: dataSource.enablePersistence, + id: dataSource.id, + ignoreOnPersist: dataSource.ignoreOnPersist + }; + } + else { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].throwError('DataManager: Invalid arguments'); + } + if (data.requiresFormat === undefined && !_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].isCors()) { + data.requiresFormat = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.crossDomain) ? true : data.crossDomain; + } + if (data.dataType === undefined) { + data.dataType = 'json'; + } + this.dataSource = data; + this.defaultQuery = query; + if (this.dataSource.enablePersistence && this.dataSource.id) { + window.addEventListener('unload', this.setPersistData.bind(this)); + } + if (data.url && data.offline && !data.json.length) { + this.isDataAvailable = false; + this.adaptor = adaptor || new _adaptors__WEBPACK_IMPORTED_MODULE_3__["ODataAdaptor"](); + this.dataSource.offline = false; + this.ready = this.executeQuery(query || new _query__WEBPACK_IMPORTED_MODULE_2__["Query"]()); + this.ready.then(function (e) { + _this.dataSource.offline = true; + _this.isDataAvailable = true; + data.json = e.result; + _this.adaptor = new _adaptors__WEBPACK_IMPORTED_MODULE_3__["JsonAdaptor"](); + }); + } + else { + this.adaptor = data.offline ? new _adaptors__WEBPACK_IMPORTED_MODULE_3__["JsonAdaptor"]() : new _adaptors__WEBPACK_IMPORTED_MODULE_3__["ODataAdaptor"](); + } + if (!data.jsonp && this.adaptor instanceof _adaptors__WEBPACK_IMPORTED_MODULE_3__["ODataAdaptor"]) { + data.jsonp = 'callback'; + } + this.adaptor = adaptor || this.adaptor; + if (data.enableCaching) { + this.adaptor = new _adaptors__WEBPACK_IMPORTED_MODULE_3__["CacheAdaptor"](this.adaptor, data.timeTillExpiration, data.cachingPageSize); + } + return this; + } + /** + * Get the queries maintained in the persisted state. + * @param {string} id - The identifier of the persisted query to retrieve. + * @returns {object} The persisted data object. + */ + DataManager.prototype.getPersistedData = function (id) { + var persistedData = localStorage.getItem(id || this.dataSource.id); + return JSON.parse(persistedData); + }; + /** + * Set the queries to be maintained in the persisted state. + * @param {Event} e - The event parameter that triggers the setPersistData method. + * @param {string} id - The identifier of the persisted query to set. + * @param {object} persistData - The data to be persisted. + * @returns {void} . + */ + DataManager.prototype.setPersistData = function (e, id, persistData) { + localStorage.setItem(id || this.dataSource.id, JSON.stringify(persistData || this.persistQuery)); + }; + DataManager.prototype.setPersistQuery = function (query) { + var _this = this; + var persistedQuery = this.getPersistedData(); + if (this.isInitialLoad && persistedQuery && Object.keys(persistedQuery).length) { + this.persistQuery = persistedQuery; + this.persistQuery.queries = this.persistQuery.queries.filter(function (query) { + if (_this.dataSource.ignoreOnPersist && _this.dataSource.ignoreOnPersist.length) { + if (query.fn && _this.dataSource.ignoreOnPersist.some(function (keyword) { return query.fn === keyword; })) { + return false; // Exclude the matching query + } + } + if (query.fn === 'onWhere') { + var e = query.e; + if (e && e.isComplex && e.predicates instanceof Array) { + var predicates = e.predicates.map(function (predicateObj) { + var field = predicateObj.field, operator = predicateObj.operator, value = predicateObj.value, ignoreCase = predicateObj.ignoreCase, ignoreAccent = predicateObj.ignoreAccent, matchCase = predicateObj.matchCase; + return new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](field, operator, value, ignoreCase, ignoreAccent, matchCase); + }); + query.e = new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](predicates[0], e.condition, predicates.slice(1)); + } + } + return true; // Keep all other queries + }); + var newQuery = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(new _query__WEBPACK_IMPORTED_MODULE_2__["Query"](), this.persistQuery); + this.isInitialLoad = false; + return (newQuery); + } + else { + this.persistQuery = query; + this.isInitialLoad = false; + return query; + } + }; + /** + * Overrides DataManager's default query with given query. + * + * @param {Query} query - Defines the new default query. + */ + DataManager.prototype.setDefaultQuery = function (query) { + this.defaultQuery = query; + return this; + }; + /** + * Executes the given query with local data source. + * + * @param {Query} query - Defines the query to retrieve data. + */ + DataManager.prototype.executeLocal = function (query) { + if (!this.defaultQuery && !(query instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"])) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].throwError('DataManager - executeLocal() : A query is required to execute'); + } + if (!this.dataSource.json) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].throwError('DataManager - executeLocal() : Json data is required to execute'); + } + if (this.dataSource.enablePersistence && this.dataSource.id) { + query = this.setPersistQuery(query); + } + query = query || this.defaultQuery; + var result = this.adaptor.processQuery(this, query); + if (query.subQuery) { + var from = query.subQuery.fromTable; + var lookup = query.subQuery.lookups; + var res = query.isCountRequired ? result.result : + result; + if (lookup && lookup instanceof Array) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key); + } + for (var j = 0; j < res.length; j++) { + if (res[j][from] instanceof Array) { + res[j] = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, {}, res[j]); + res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query); + } + } + } + return this.adaptor.processResponse(result, this, query); + }; + /** + * Executes the given query with either local or remote data source. + * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed. + * + * @param {Query|Function} query - Defines the query to retrieve data. + * @param {Function} done - Defines the callback function and triggers when the Promise is resolved. + * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected. + * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected. + */ + DataManager.prototype.executeQuery = function (query, done, fail, always) { + var _this = this; + var makeRequest = 'makeRequest'; + if (this.dataSource.enablePersistence && this.dataSource.id) { + query = this.setPersistQuery(query); + } + if (typeof query === 'function') { + always = fail; + fail = done; + done = query; + query = null; + } + if (!query) { + query = this.defaultQuery; + } + if (!(query instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"])) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].throwError('DataManager - executeQuery() : A query is required to execute'); + } + var deffered = new Deferred(); + var args = { query: query }; + if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '') + || (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) { + var result = this.adaptor.processQuery(this, query); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[makeRequest])) { + this.adaptor[makeRequest](result, deffered, args, query); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(result.url) || this.isCustomDataAdaptor(this.adaptor)) { + this.requests = []; + this.makeRequest(result, deffered, args, query); + } + else { + args = DataManager.getDeferedArgs(query, result, args); + deffered.resolve(args); + } + } + else { + DataManager.nextTick(function () { + var res = _this.executeLocal(query); + args = DataManager.getDeferedArgs(query, res, args); + deffered.resolve(args); + }); + } + if (done || fail) { + deffered.promise.then(done, fail); + } + if (always) { + deffered.promise.then(always, always); + } + return deffered.promise; + }; + DataManager.getDeferedArgs = function (query, result, args) { + if (query.isCountRequired) { + args.result = result.result; + args.count = result.count; + args.aggregates = result.aggregates; + } + else { + args.result = result; + } + return args; + }; + DataManager.nextTick = function (fn) { + /* eslint-disable @typescript-eslint/no-explicit-any */ + // tslint:disable-next-line:no-any + (window.setImmediate || window.setTimeout)(fn, 0); + /* eslint-enable @typescript-eslint/no-explicit-any */ + }; + DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + type: 'GET', + dataType: this.dataSource.dataType, + crossDomain: this.dataSource.crossDomain, + jsonp: this.dataSource.jsonp, + cache: true, + processData: false, + onSuccess: fnSuccess, + onFailure: fnFail + }, url); + }; + // tslint:disable-next-line:max-func-body-length + DataManager.prototype.makeRequest = function (url, deffered, args, query) { + var _this = this; + var isSelector = !!query.subQuerySelector; + var fnFail = function (e) { + args.error = e; + deffered.reject(args); + }; + var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) { + args.xhr = xhr; + args.count = count ? parseInt(count.toString(), 10) : 0; + args.result = data; + args.request = request; + args.aggregates = aggregates; + args.actual = actual; + args.virtualSelectRecords = virtualSelectRecords; + deffered.resolve(args); + }; + var fnQueryChild = function (data, selector) { + var subDeffer = new Deferred(); + var childArgs = { parent: args }; + query.subQuery.isChild = true; + var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector); + var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery); + if (!isSelector) { + subDeffer.then(function (subData) { + if (data) { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key); + process(data, subData.count, subData.xhr); + } + }, fnFail); + } + return childReq; + }; + var fnSuccess = function (data, request) { + if (_this.isGraphQLAdaptor(_this.adaptor)) { + // tslint:disable-next-line:no-string-literal + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data['errors'])) { + // tslint:disable-next-line:no-string-literal + return fnFail(data['errors'], request); + } + } + if (_this.isCustomDataAdaptor(_this.adaptor)) { + request = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, _this.ajaxReqOption, request); + } + if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) { + data = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(data); + } + var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request); + var count = 0; + var aggregates = null; + var virtualSelectRecords = 'virtualSelectRecords'; + var virtualRecords = data[virtualSelectRecords]; + if (query.isCountRequired) { + count = result.count; + aggregates = result.aggregates; + result = result.result; + } + if (!query.subQuery) { + process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords); + return; + } + if (!isSelector) { + fnQueryChild(result, request); + } + }; + var req = this.extendRequest(url, fnSuccess, fnFail); + if (!this.isCustomDataAdaptor(this.adaptor)) { + var ajax_1 = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](req); + ajax_1.beforeSend = function () { + _this.beforeSend(ajax_1.httpRequest, ajax_1); + }; + req = ajax_1.send(); + req.catch(function (e) { return true; }); // to handle failure remote requests. + this.requests.push(ajax_1); + } + else { + this.ajaxReqOption = req; + var request = req; + this.adaptor.options.getData({ + data: request.data, + onSuccess: request.onSuccess, onFailure: request.onFailure + }); + } + if (isSelector) { + var promise = void 0; + var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query }); + if (res && res.length) { + promise = Promise.all([req, fnQueryChild(null, res)]); + promise.then(function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var result = args[0]; + var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]); + var count = 0; + if (query.isCountRequired) { + count = pResult.count; + pResult = pResult.result; + } + var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]); + count = 0; + if (query.subQuery.isCountRequired) { + count = cResult.count; + cResult = cResult.result; + } + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key); + isSelector = false; + process(pResult, count, _this.requests[0].httpRequest); + }); + } + else { + isSelector = false; + } + } + return req; + }; + DataManager.prototype.beforeSend = function (request, settings) { + this.adaptor.beforeSend(this, request, settings); + var headers = this.dataSource.headers; + var props; + for (var i = 0; headers && i < headers.length; i++) { + props = []; + var keys = Object.keys(headers[i]); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var prop = keys_1[_i]; + props.push(prop); + request.setRequestHeader(prop, headers[i][prop]); + } + } + }; + /** + * Save bulk changes to the given table name. + * User can add a new record, edit an existing record, and delete a record at the same time. + * If the datasource from remote, then updated in a single post. + * + * @param {Object} changes - Defines the CrudOptions. + * @param {string} key - Defines the column field. + * @param {string|Query} tableName - Defines the table name. + * @param {Query} query - Sets default query for the DataManager. + * @param original + */ + DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) { + var _this = this; + if (tableName instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"]) { + query = tableName; + tableName = null; + } + var args = { + url: tableName, + key: key || this.dataSource.key + }; + var req = this.adaptor.batchRequest(this, changes, args, query || new _query__WEBPACK_IMPORTED_MODULE_2__["Query"](), original); + var doAjaxRequest = 'doAjaxRequest'; + if (this.dataSource.offline) { + return req; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[doAjaxRequest])) { + return this.adaptor[doAjaxRequest](req); + } + else if (!this.isCustomDataAdaptor(this.adaptor)) { + var deff_1 = new Deferred(); + var ajax_2 = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](req); + ajax_2.beforeSend = function () { + _this.beforeSend(ajax_2.httpRequest, ajax_2); + }; + ajax_2.onSuccess = function (data, request) { + if (_this.isGraphQLAdaptor(_this.adaptor)) { + // tslint:disable-next-line:no-string-literal + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data['errors'])) { + // tslint:disable-next-line:no-string-literal + ajax_2.onFailure(JSON.stringify(data['errors'])); + } + } + deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args)); + }; + ajax_2.onFailure = function (e) { + deff_1.reject([{ error: e }]); + }; + ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests. + return deff_1.promise; + } + else { + return this.doAjaxRequest(req, this.adaptor.options.batchUpdate); + } + }; + /** + * Inserts new record in the given table. + * + * @param {Object} data - Defines the data to insert. + * @param {string|Query} tableName - Defines the table name. + * @param {Query} query - Sets default query for the DataManager. + * @param position + */ + DataManager.prototype.insert = function (data, tableName, query, position) { + if (tableName instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"]) { + query = tableName; + tableName = null; + } + var req = this.adaptor.insert(this, data, tableName, query, position); + var doAjaxRequest = 'doAjaxRequest'; + if (this.dataSource.offline) { + return req; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[doAjaxRequest])) { + return this.adaptor[doAjaxRequest](req); + } + else { + return this.doAjaxRequest(req, this.adaptor.options.addRecord); + } + }; + /** + * Removes data from the table with the given key. + * + * @param {string} keyField - Defines the column field. + * @param {Object} value - Defines the value to find the data in the specified column. + * @param {string|Query} tableName - Defines the table name + * @param {Query} query - Sets default query for the DataManager. + */ + DataManager.prototype.remove = function (keyField, value, tableName, query) { + if (typeof value === 'object') { + value = _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].getObject(keyField, value); + } + if (tableName instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"]) { + query = tableName; + tableName = null; + } + var res = this.adaptor.remove(this, keyField, value, tableName, query); + var doAjaxRequest = 'doAjaxRequest'; + if (this.dataSource.offline) { + return res; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[doAjaxRequest])) { + return this.adaptor[doAjaxRequest](res); + } + else { + var remove = this.adaptor.options.deleteRecord; + return this.doAjaxRequest(res, remove); + } + }; + /** + * Updates existing record in the given table. + * + * @param {string} keyField - Defines the column field. + * @param {Object} value - Defines the value to find the data in the specified column. + * @param {string|Query} tableName - Defines the table name + * @param {Query} query - Sets default query for the DataManager. + * @param original + */ + DataManager.prototype.update = function (keyField, value, tableName, query, original) { + if (tableName instanceof _query__WEBPACK_IMPORTED_MODULE_2__["Query"]) { + query = tableName; + tableName = null; + } + var res = this.adaptor.update(this, keyField, value, tableName, query, original); + var doAjaxRequest = 'doAjaxRequest'; + if (this.dataSource.offline) { + return res; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.adaptor[doAjaxRequest])) { + return this.adaptor[doAjaxRequest](res); + } + else { + var update = this.adaptor.options.updateRecord; + return this.doAjaxRequest(res, update); + } + }; + DataManager.prototype.isCustomDataAdaptor = function (dataSource) { + return this.adaptor.getModuleName && + this.adaptor.getModuleName() === 'CustomDataAdaptor'; + }; + DataManager.prototype.isGraphQLAdaptor = function (dataSource) { + return this.adaptor.getModuleName && + this.adaptor.getModuleName() === 'GraphQLAdaptor'; + }; + DataManager.prototype.successFunc = function (record, request) { + if (this.isGraphQLAdaptor(this.adaptor)) { + var data = JSON.parse(record); + // tslint:disable-next-line:no-string-literal + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data['errors'])) { + // tslint:disable-next-line:no-string-literal + this.failureFunc(JSON.stringify(data['errors'])); + } + } + if (this.isCustomDataAdaptor(this.adaptor)) { + request = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, this.ajaxReqOption, request); + } + try { + _util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(record); + } + catch (e) { + record = []; + } + record = this.adaptor.processResponse(_util__WEBPACK_IMPORTED_MODULE_1__["DataUtil"].parse.parseJson(record), this, null, request.httpRequest, request); + this.ajaxDeffered.resolve(record); + }; + DataManager.prototype.failureFunc = function (e) { + this.ajaxDeffered.reject([{ error: e }]); + }; + DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) { + var _this = this; + res = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, { + type: 'POST', + contentType: 'application/json; charset=utf-8', + processData: false + }, res); + this.ajaxDeffered = new Deferred(); + if (!this.isCustomDataAdaptor(this.adaptor)) { + var ajax_3 = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](res); + ajax_3.beforeSend = function () { + _this.beforeSend(ajax_3.httpRequest, ajax_3); + }; + ajax_3.onSuccess = this.successFunc.bind(this); + ajax_3.onFailure = this.failureFunc.bind(this); + ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests. + } + else { + this.ajaxReqOption = res; + ajaxFunc.call(this, { + data: res.data, onSuccess: this.successFunc.bind(this), + onFailure: this.failureFunc.bind(this) + }); + } + return this.ajaxDeffered.promise; + }; + DataManager.prototype.clearPersistence = function () { + window.removeEventListener('unload', this.setPersistData.bind(this)); + this.dataSource.enablePersistence = false; + this.persistQuery = {}; + window.localStorage.setItem(this.dataSource.id, '[]'); + }; + return DataManager; +}()); + +/** + * Deferred is used to handle asynchronous operation. + */ +var Deferred = /** @__PURE__ @class */ (function () { + function Deferred() { + var _this = this; + /** + * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future. + */ + this.promise = new Promise(function (resolve, reject) { + _this.resolve = resolve; + _this.reject = reject; + }); + /** + * Defines the callback function triggers when the Deferred object is resolved. + */ + this.then = this.promise.then.bind(this.promise); + /** + * Defines the callback function triggers when the Deferred object is rejected. + */ + this.catch = this.promise.catch.bind(this.promise); + } + return Deferred; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-data/query.js": +/*!*********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-data/query.js ***! + \*********************************************************/ +/*! exports provided: Query, Predicate */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Query", function() { return Query; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Predicate", function() { return Predicate; }); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./ej2-resources/22.1.37/scripts/ej2-data/util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* eslint-disable valid-jsdoc */ +/* eslint-disable security/detect-object-injection */ + + +/** + * Query class is used to build query which is used by the DataManager to communicate with datasource. + */ +var Query = /** @__PURE__ @class */ (function () { + /** + * Constructor for Query class. + * + * @param {string|string[]} from? + * @param from + * @hidden + */ + function Query(from) { + /** @hidden */ + this.subQuery = null; + /** @hidden */ + this.isChild = false; + /** @hidden */ + this.distincts = []; + this.queries = []; + this.key = ''; + this.fKey = ''; + if (typeof from === 'string') { + this.fromTable = from; + } + else if (from && from instanceof Array) { + this.lookups = from; + } + this.expands = []; + this.sortedColumns = []; + this.groupedColumns = []; + this.subQuery = null; + this.isChild = false; + this.params = []; + this.lazyLoad = []; + return this; + } + /** + * Sets the primary key. + * + * @param {string} field - Defines the column field. + */ + Query.prototype.setKey = function (field) { + this.key = field; + return this; + }; + /** + * Sets default DataManager to execute query. + * + * @param {DataManager} dataManager - Defines the DataManager. + */ + Query.prototype.using = function (dataManager) { + this.dataManager = dataManager; + return this; + }; + /** + * Executes query with the given DataManager. + * + * @param {DataManager} dataManager - Defines the DataManager. + * @param {Function} done - Defines the success callback. + * @param {Function} fail - Defines the failure callback. + * @param {Function} always - Defines the callback which will be invoked on either success or failure. + * + *
+     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);
+     * let query: Query = new Query();
+     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });
+     * let promise: Promise< Object > = query.execute(dataManager);
+     * promise.then((e: { result: Object }) => { });
+     * 
+ */ + Query.prototype.execute = function (dataManager, done, fail, always) { + dataManager = dataManager || this.dataManager; + if (dataManager) { + return dataManager.executeQuery(this, done, fail, always); + } + return _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].throwError('Query - execute() : dataManager needs to be is set using "using" function or should be passed as argument'); + }; + /** + * Executes query with the local datasource. + * + * @param {DataManager} dataManager - Defines the DataManager. + */ + Query.prototype.executeLocal = function (dataManager) { + dataManager = dataManager || this.dataManager; + if (dataManager) { + return dataManager.executeLocal(this); + } + return _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].throwError('Query - executeLocal() : dataManager needs to be is set using "using" function or should be passed as argument'); + }; + /** + * Creates deep copy of the Query object. + */ + Query.prototype.clone = function () { + var cloned = new Query(); + cloned.queries = this.queries.slice(0); + cloned.key = this.key; + cloned.isChild = this.isChild; + cloned.dataManager = this.dataManager; + cloned.fromTable = this.fromTable; + cloned.params = this.params.slice(0); + cloned.expands = this.expands.slice(0); + cloned.sortedColumns = this.sortedColumns.slice(0); + cloned.groupedColumns = this.groupedColumns.slice(0); + cloned.subQuerySelector = this.subQuerySelector; + cloned.subQuery = this.subQuery; + cloned.fKey = this.fKey; + cloned.isCountRequired = this.isCountRequired; + cloned.distincts = this.distincts.slice(0); + cloned.lazyLoad = this.lazyLoad.slice(0); + return cloned; + }; + /** + * Specifies the name of table to retrieve data in query execution. + * + * @param {string} tableName - Defines the table name. + */ + Query.prototype.from = function (tableName) { + this.fromTable = tableName; + return this; + }; + /** + * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute. + * + * @param {string} key - Defines the key of additional parameter. + * @param {Function|string} value - Defines the value for the key. + */ + Query.prototype.addParams = function (key, value) { + if (typeof value === 'function') { + this.params.push({ key: key, fn: value }); + } + else { + this.params.push({ key: key, value: value }); + } + return this; + }; + /** + * @param fields + * @hidden + */ + Query.prototype.distinct = function (fields) { + if (typeof fields === 'string') { + this.distincts = [].slice.call([fields], 0); + } + else { + this.distincts = fields.slice(0); + } + return this; + }; + /** + * Expands the related table. + * + * @param {string|Object[]} tables + */ + Query.prototype.expand = function (tables) { + if (typeof tables === 'string') { + this.expands = [].slice.call([tables], 0); + } + else { + this.expands = tables.slice(0); + } + return this; + }; + /** + * Filter data with given filter criteria. + * + * @param {string|Predicate} fieldName - Defines the column field or Predicate. + * @param {string} operator - Defines the operator how to filter data. + * @param {string|number|boolean} value - Defines the values to match with data. + * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreAccent + * @param matchCase + */ + Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent, matchCase) { + operator = operator ? (operator).toLowerCase() : null; + var predicate = null; + if (typeof fieldName === 'string') { + predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent, matchCase); + } + else if (fieldName instanceof Predicate) { + predicate = fieldName; + } + this.queries.push({ + fn: 'onWhere', + e: predicate + }); + return this; + }; + /** + * Search data with given search criteria. + * + * @param {string|number|boolean} searchKey - Defines the search key. + * @param {string|string[]} fieldNames - Defines the collection of column fields. + * @param {string} operator - Defines the operator how to search data. + * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreAccent + */ + Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) { + if (typeof fieldNames === 'string') { + fieldNames = [fieldNames]; + } + if (!operator || operator === 'none') { + operator = 'contains'; + } + var comparer = _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].fnOperators[operator]; + this.queries.push({ + fn: 'onSearch', + e: { + fieldNames: fieldNames, + operator: operator, + searchKey: searchKey, + ignoreCase: ignoreCase, + ignoreAccent: ignoreAccent, + comparer: comparer + } + }); + return this; + }; + /** + * Sort the data with given sort criteria. + * By default, sort direction is ascending. + * + * @param {string|string[]} fieldName - Defines the single or collection of column fields. + * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function. + * @param isFromGroup + */ + Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) { + return this.sortByForeignKey(fieldName, comparer, isFromGroup); + }; + /** + * Sort the data with given sort criteria. + * By default, sort direction is ascending. + * + * @param {string|string[]} fieldName - Defines the single or collection of column fields. + * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function. + * @param isFromGroup + * @param {string} direction - Defines the sort direction . + */ + Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) { + var order = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(direction) ? direction : 'ascending'; + var sorts; + var temp; + if (typeof fieldName === 'string' && _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].endsWith(fieldName.toLowerCase(), ' desc')) { + fieldName = fieldName.replace(/ desc$/i, ''); + comparer = 'descending'; + } + if (!comparer || typeof comparer === 'string') { + order = comparer ? comparer.toLowerCase() : 'ascending'; + comparer = _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].fnSort(comparer); + } + if (isFromGroup) { + sorts = Query.filterQueries(this.queries, 'onSortBy'); + for (var i = 0; i < sorts.length; i++) { + temp = sorts[i].e.fieldName; + if (typeof temp === 'string') { + if (temp === fieldName) { + return this; + } + } + else if (temp instanceof Array) { + for (var j = 0; j < temp.length; j++) { + if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') { + return this; + } + } + } + } + } + this.queries.push({ + fn: 'onSortBy', + e: { + fieldName: fieldName, + comparer: comparer, + direction: order + } + }); + return this; + }; + /** + * Sorts data in descending order. + * + * @param {string} fieldName - Defines the column field. + */ + Query.prototype.sortByDesc = function (fieldName) { + return this.sortBy(fieldName, 'descending'); + }; + /** + * Groups data with the given field name. + * + * @param {string} fieldName - Defines the column field. + * @param fn + * @param format + */ + Query.prototype.group = function (fieldName, fn, format) { + this.sortBy(fieldName, null, true); + this.queries.push({ + fn: 'onGroup', + e: { + fieldName: fieldName, + comparer: fn ? fn : null, + format: format ? format : null + } + }); + return this; + }; + /** + * Gets data based on the given page index and size. + * + * @param {number} pageIndex - Defines the current page index. + * @param {number} pageSize - Defines the no of records per page. + */ + Query.prototype.page = function (pageIndex, pageSize) { + this.queries.push({ + fn: 'onPage', + e: { + pageIndex: pageIndex, + pageSize: pageSize + } + }); + return this; + }; + /** + * Gets data based on the given start and end index. + * + * @param {number} start - Defines the start index of the datasource. + * @param {number} end - Defines the end index of the datasource. + */ + Query.prototype.range = function (start, end) { + this.queries.push({ + fn: 'onRange', + e: { + start: start, + end: end + } + }); + return this; + }; + /** + * Gets data from the top of the data source based on given number of records count. + * + * @param {number} nos - Defines the no of records to retrieve from datasource. + */ + Query.prototype.take = function (nos) { + this.queries.push({ + fn: 'onTake', + e: { + nos: nos + } + }); + return this; + }; + /** + * Skips data with given number of records count from the top of the data source. + * + * @param {number} nos - Defines the no of records skip in the datasource. + */ + Query.prototype.skip = function (nos) { + this.queries.push({ + fn: 'onSkip', + e: { nos: nos } + }); + return this; + }; + /** + * Selects specified columns from the data source. + * + * @param {string|string[]} fieldNames - Defines the collection of column fields. + */ + Query.prototype.select = function (fieldNames) { + if (typeof fieldNames === 'string') { + fieldNames = [].slice.call([fieldNames], 0); + } + this.queries.push({ + fn: 'onSelect', + e: { fieldNames: fieldNames } + }); + return this; + }; + /** + * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables. + * + * @param {Query} query - Defines the query to relate two tables. + * @param {Function} selectorFn - Defines the custom function to select records. + */ + Query.prototype.hierarchy = function (query, selectorFn) { + this.subQuerySelector = selectorFn; + this.subQuery = query; + return this; + }; + /** + * Sets the foreign key which is used to get data from the related table. + * + * @param {string} key - Defines the foreign key. + */ + Query.prototype.foreignKey = function (key) { + this.fKey = key; + return this; + }; + /** + * It is used to get total number of records in the DataManager execution result. + */ + Query.prototype.requiresCount = function () { + this.isCountRequired = true; + return this; + }; + //type - sum, avg, min, max + /** + * Aggregate the data with given type and field name. + * + * @param {string} type - Defines the aggregate type. + * @param {string} field - Defines the column field to aggregate. + */ + Query.prototype.aggregate = function (type, field) { + this.queries.push({ + fn: 'onAggregates', + e: { field: field, type: type } + }); + return this; + }; + /** + * Pass array of filterColumn query for performing filter operation. + * + * @param {QueryOptions[]} queries + * @param {string} name + * @hidden + */ + Query.filterQueries = function (queries, name) { + return queries.filter(function (q) { + return q.fn === name; + }); + }; + /** + * To get the list of queries which is already filtered in current data source. + * + * @param {Object[]} queries + * @param {string[]} singles + * @hidden + */ + Query.filterQueryLists = function (queries, singles) { + var filtered = queries.filter(function (q) { + return singles.indexOf(q.fn) !== -1; + }); + var res = {}; + for (var i = 0; i < filtered.length; i++) { + if (!res[filtered[i].fn]) { + res[filtered[i].fn] = filtered[i].e; + } + } + return res; + }; + return Query; +}()); + +/** + * Predicate class is used to generate complex filter criteria. + * This will be used by DataManager to perform multiple filtering operation. + */ +var Predicate = /** @__PURE__ @class */ (function () { + /** + * Constructor for Predicate class. + * + * @param {string|Predicate} field + * @param {string} operator + * @param {string|number|boolean|Predicate|Predicate[]} value + * @param {boolean=false} ignoreCase + * @param ignoreAccent + * @param {boolean} matchCase + * @hidden + */ + function Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase) { + if (ignoreCase === void 0) { ignoreCase = false; } + /** @hidden */ + this.ignoreAccent = false; + /** @hidden */ + this.isComplex = false; + if (typeof field === 'string') { + this.field = field; + this.operator = operator.toLowerCase(); + this.value = value; + this.matchCase = matchCase; + this.ignoreCase = ignoreCase; + this.ignoreAccent = ignoreAccent; + this.isComplex = false; + this.comparer = _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].fnOperators.processOperator(this.operator); + } + else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) { + this.isComplex = true; + this.condition = operator.toLowerCase(); + this.predicates = [field]; + this.matchCase = field.matchCase; + this.ignoreCase = field.ignoreCase; + this.ignoreAccent = field.ignoreAccent; + if (value instanceof Array) { + [].push.apply(this.predicates, value); + } + else { + this.predicates.push(value); + } + } + return this; + } + /** + * Adds n-number of new predicates on existing predicate with “and” condition. + * + * @param {Object[]} args - Defines the collection of predicates. + */ + Predicate.and = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return Predicate.combinePredicates([].slice.call(args, 0), 'and'); + }; + /** + * Adds new predicate on existing predicate with “and” condition. + * + * @param {string} field - Defines the column field. + * @param {string} operator - Defines the operator how to filter data. + * @param {string} value - Defines the values to match with data. + * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreCase + * @param ignoreAccent + */ + Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) { + return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent); + }; + /** + * Adds n-number of new predicates on existing predicate with “or” condition. + * + * @param {Object[]} args - Defines the collection of predicates. + */ + Predicate.or = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return Predicate.combinePredicates([].slice.call(args, 0), 'or'); + }; + /** + * Adds new predicate on existing predicate with “or” condition. + * + * @param {string} field - Defines the column field. + * @param {string} operator - Defines the operator how to filter data. + * @param {string} value - Defines the values to match with data. + * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreCase + * @param ignoreAccent + */ + Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) { + return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent); + }; + /** + * Adds n-number of new predicates on existing predicate with “and not” condition. + * + * @param {Object[]} args - Defines the collection of predicates. + */ + Predicate.ornot = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return Predicate.combinePredicates([].slice.call(args, 0), 'or not'); + }; + /** + * Adds new predicate on existing predicate with “and not” condition. + * + * @param {string} field - Defines the column field. + * @param {string} operator - Defines the operator how to filter data. + * @param {string} value - Defines the values to match with data. + * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreCase + * @param ignoreAccent + */ + Predicate.prototype.ornot = function (field, operator, value, ignoreCase, ignoreAccent) { + return Predicate.combine(this, field, operator, value, 'ornot', ignoreCase, ignoreAccent); + }; + /** + * Adds n-number of new predicates on existing predicate with “and not” condition. + * + * @param {Object[]} args - Defines the collection of predicates. + */ + Predicate.andnot = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return Predicate.combinePredicates([].slice.call(args, 0), 'and not'); + }; + /** + * Adds new predicate on existing predicate with “and not” condition. + * + * @param {string} field - Defines the column field. + * @param {string} operator - Defines the operator how to filter data. + * @param {string} value - Defines the values to match with data. + * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else + * filter data with case insensitive. + * @param ignoreCase + * @param ignoreAccent + */ + Predicate.prototype.andnot = function (field, operator, value, ignoreCase, ignoreAccent) { + return Predicate.combine(this, field, operator, value, 'andnot', ignoreCase, ignoreAccent); + }; + /** + * Converts plain JavaScript object to Predicate object. + * + * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate. + */ + Predicate.fromJson = function (json) { + if (json instanceof Array) { + var res = []; + for (var i = 0, len = json.length; i < len; i++) { + res.push(this.fromJSONData(json[i])); + } + return res; + } + var pred = json; + return this.fromJSONData(pred); + }; + /** + * Validate the record based on the predicates. + * + * @param {Object} record - Defines the datasource record. + */ + Predicate.prototype.validate = function (record) { + var predicate = this.predicates ? this.predicates : []; + var ret; + var isAnd; + if (!this.isComplex && this.comparer) { + if (this.condition && this.condition.indexOf('not') !== -1) { + this.condition = this.condition.split('not')[0] === '' ? undefined : this.condition.split('not')[0]; + return !this.comparer.call(this, _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent); + } + else { + return this.comparer.call(this, _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent); + } + } + if (this.condition && this.condition.indexOf('not') !== -1) { + isAnd = this.condition.indexOf('and') !== -1; + } + else { + isAnd = this.condition === 'and'; + } + for (var i = 0; i < predicate.length; i++) { + if (i > 0 && this.condition && this.condition.indexOf('not') !== -1) { + predicate[i].condition = predicate[i].condition ? predicate[i].condition + 'not' : 'not'; + } + ret = predicate[i].validate(record); + if (isAnd) { + if (!ret) { + return false; + } + } + else { + if (ret) { + return true; + } + } + } + return isAnd; + }; + /** + * Converts predicates to plain JavaScript. + * This method is uses Json stringify when serializing Predicate object. + */ + Predicate.prototype.toJson = function () { + var predicates; + var p; + if (this.isComplex) { + predicates = []; + p = this.predicates; + for (var i = 0; i < p.length; i++) { + predicates.push(p[i].toJson()); + } + } + return { + isComplex: this.isComplex, + field: this.field, + operator: this.operator, + value: this.value, + ignoreCase: this.ignoreCase, + ignoreAccent: this.ignoreAccent, + condition: this.condition, + predicates: predicates, + matchCase: this.matchCase + }; + }; + Predicate.combinePredicates = function (predicates, operator) { + if (predicates.length === 1) { + if (!(predicates[0] instanceof Array)) { + return predicates[0]; + } + predicates = predicates[0]; + } + return new Predicate(predicates[0], operator, predicates.slice(1)); + }; + Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) { + if (field instanceof Predicate) { + return Predicate[condition](pred, field); + } + if (typeof field === 'string') { + return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent)); + } + return _util__WEBPACK_IMPORTED_MODULE_0__["DataUtil"].throwError('Predicate - ' + condition + ' : invalid arguments'); + }; + Predicate.fromJSONData = function (json) { + var preds = json.predicates || []; + var len = preds.length; + var predicates = []; + var result; + for (var i = 0; i < len; i++) { + predicates.push(this.fromJSONData(preds[i])); + } + if (!json.isComplex) { + result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent); + } + else { + result = new Predicate(predicates[0], json.condition, predicates.slice(1)); + } + return result; + }; + return Predicate; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-data/util.js": +/*!********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-data/util.js ***! + \********************************************************/ +/*! exports provided: DataUtil */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataUtil", function() { return DataUtil; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _manager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./manager */ "./ej2-resources/22.1.37/scripts/ej2-data/manager.js"); +/* harmony import */ var _query__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./query */ "./ej2-resources/22.1.37/scripts/ej2-data/query.js"); +/* eslint-disable valid-jsdoc */ +/* eslint-disable security/detect-object-injection */ + + + +var consts = { GroupGuid: '{271bbba0-1ee7}' }; +/** + * Data manager common utility methods. + * + * @hidden + */ +var DataUtil = /** @__PURE__ @class */ (function () { + function DataUtil() { + } + /** + * Returns the value by invoking the provided parameter function. + * If the paramater is not of type function then it will be returned as it is. + * + * @param {Function|string|string[]|number} value + * @param {Object} inst? + * @param inst + * @hidden + */ + DataUtil.getValue = function (value, inst) { + if (typeof value === 'function') { + return value.call(inst || {}); + } + return value; + }; + /** + * Returns true if the input string ends with given string. + * + * @param {string} input + * @param {string} substr + */ + DataUtil.endsWith = function (input, substr) { + return input.slice && input.slice(-substr.length) === substr; + }; + /** + * Returns true if the input string not ends with given string. + * + * @param {string} input + * @param {string} substr + */ + DataUtil.notEndsWith = function (input, substr) { + return input.slice && input.slice(-substr.length) !== substr; + }; + /** + * Returns true if the input string starts with given string. + * + * @param {string} str + * @param {string} startstr + * @param input + * @param start + */ + DataUtil.startsWith = function (input, start) { + return input.slice(0, start.length) === start; + }; + /** + * Returns true if the input string not starts with given string. + * + * @param {string} str + * @param {string} startstr + * @param input + * @param start + */ + DataUtil.notStartsWith = function (input, start) { + return input.slice(0, start.length) !== start; + }; + /** + * Returns true if the input string pattern(wildcard) matches with given string. + * + * @param {string} str + * @param {string} startstr + * @param input + * @param pattern + */ + DataUtil.wildCard = function (input, pattern) { + var asteriskSplit; + var optionalSplit; + // special character allowed search + if (pattern.indexOf('(') !== -1) { + pattern = pattern.split('(').join('[(]'); + } + if (pattern.indexOf(')') !== -1) { + pattern = pattern.split(')').join('[)]'); + } + if (pattern.indexOf('*') !== -1) { + if (pattern.charAt(0) !== '*') { + pattern = '^' + pattern; + } + if (pattern.charAt(pattern.length - 1) !== '*') { + pattern = pattern + '$'; + } + asteriskSplit = pattern.split('*'); + for (var i = 0; i < asteriskSplit.length; i++) { + if (asteriskSplit[i].indexOf('.') === -1) { + asteriskSplit[i] = asteriskSplit[i] + '.*'; + } + else { + asteriskSplit[i] = asteriskSplit[i] + '*'; + } + } + pattern = asteriskSplit.join(''); + } + if (pattern.indexOf('%3f') !== -1 || pattern.indexOf('?') !== -1) { + optionalSplit = pattern.indexOf('%3f') !== -1 ? pattern.split('%3f') : pattern.split('?'); + pattern = optionalSplit.join('.'); + } + // eslint-disable-next-line security/detect-non-literal-regexp + var regexPattern = new RegExp(pattern, 'g'); + return regexPattern.test(input); + }; + /** + * Returns true if the input string pattern(like) matches with given string. + * + * @param {string} str + * @param {string} startstr + * @param input + * @param pattern + */ + DataUtil.like = function (input, pattern) { + if (pattern.indexOf('%') !== -1) { + if (pattern.charAt(0) === '%' && pattern.lastIndexOf('%') < 2) { + pattern = pattern.substring(1, pattern.length); + return DataUtil.startsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern)); + } + else if (pattern.charAt(pattern.length - 1) === '%' && pattern.indexOf('%') > pattern.length - 3) { + pattern = pattern.substring(0, pattern.length - 1); + return DataUtil.endsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern)); + } + else if (pattern.lastIndexOf('%') !== pattern.indexOf('%') && pattern.lastIndexOf('%') > pattern.indexOf('%') + 1) { + pattern = pattern.substring(pattern.indexOf('%') + 1, pattern.lastIndexOf('%')); + return input.indexOf(pattern) !== -1; + } + else { + return input.indexOf(pattern) !== -1; + } + } + else { + return false; + } + }; + /** + * To return the sorting function based on the string. + * + * @param {string} order + * @hidden + */ + DataUtil.fnSort = function (order) { + order = order ? DataUtil.toLowerCase(order) : 'ascending'; + if (order === 'ascending') { + return this.fnAscending; + } + return this.fnDescending; + }; + /** + * Comparer function which is used to sort the data in ascending order. + * + * @param {string|number} x + * @param {string|number} y + * @returns number + */ + DataUtil.fnAscending = function (x, y) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(x) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(y)) { + return -1; + } + if (y === null || y === undefined) { + return -1; + } + if (typeof x === 'string') { + return x.localeCompare(y); + } + if (x === null || x === undefined) { + return 1; + } + return x - y; + }; + /** + * Comparer function which is used to sort the data in descending order. + * + * @param {string|number} x + * @param {string|number} y + * @returns number + */ + DataUtil.fnDescending = function (x, y) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(x) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(y)) { + return -1; + } + if (y === null || y === undefined) { + return 1; + } + if (typeof x === 'string') { + return x.localeCompare(y) * -1; + } + if (x === null || x === undefined) { + return -1; + } + return y - x; + }; + DataUtil.extractFields = function (obj, fields) { + var newObj = {}; + for (var i = 0; i < fields.length; i++) { + newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj); + } + return newObj; + }; + /** + * Select objects by given fields from jsonArray. + * + * @param {Object[]} jsonArray + * @param {string[]} fields + */ + DataUtil.select = function (jsonArray, fields) { + var newData = []; + for (var i = 0; i < jsonArray.length; i++) { + newData.push(this.extractFields(jsonArray[i], fields)); + } + return newData; + }; + /** + * Group the input data based on the field name. + * It also performs aggregation of the grouped records based on the aggregates paramater. + * + * @param {Object[]} jsonArray + * @param {string} field? + * @param {Object[]} agg? + * @param {number} level? + * @param {Object[]} groupDs? + * @param field + * @param aggregates + * @param level + * @param groupDs + * @param format + * @param isLazyLoad + */ + DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) { + level = level || 1; + var jsonData = jsonArray; + var guid = 'GroupGuid'; + if (jsonData.GroupGuid === consts[guid]) { + var _loop_1 = function (j) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(groupDs)) { + var indx = -1; + var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; }); + indx = groupDs.indexOf(temp[0]); + jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad); + jsonData[j].count = groupDs[indx].count; + } + else { + jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad); + jsonData[j].count = jsonData[j].items.length; + } + }; + var this_1 = this; + for (var j = 0; j < jsonData.length; j++) { + _loop_1(j); + } + jsonData.childLevels += 1; + return jsonData; + } + var grouped = {}; + var groupedArray = []; + groupedArray.GroupGuid = consts[guid]; + groupedArray.level = level; + groupedArray.childLevels = 0; + groupedArray.records = jsonData; + var _loop_2 = function (i) { + var val = this_2.getVal(jsonData, i, field); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(format)) { + val = format(val, field); + } + if (!grouped[val]) { + grouped[val] = { + key: val, + count: 0, + items: [], + aggregates: {}, + field: field + }; + groupedArray.push(grouped[val]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(groupDs)) { + var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; }); + grouped[val].count = tempObj[0].count; + } + } + grouped[val].count = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(groupDs) ? grouped[val].count : grouped[val].count += 1; + if (!isLazyLoad || (isLazyLoad && aggregates.length)) { + grouped[val].items.push(jsonData[i]); + } + }; + var this_2 = this; + for (var i = 0; i < jsonData.length; i++) { + _loop_2(i); + } + if (aggregates && aggregates.length) { + var _loop_3 = function (i) { + var res = {}; + var fn = void 0; + var aggs = aggregates; + for (var j = 0; j < aggregates.length; j++) { + fn = DataUtil.aggregates[aggregates[j].type]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(groupDs)) { + var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; }); + if (fn) { + res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field); + } + } + else { + if (fn) { + res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field); + } + } + } + groupedArray[i].aggregates = res; + }; + for (var i = 0; i < groupedArray.length; i++) { + _loop_3(i); + } + } + if (isLazyLoad && groupedArray.length && aggregates.length) { + for (var i = 0; i < groupedArray.length; i++) { + groupedArray[i].items = []; + } + } + return jsonData.length && groupedArray || jsonData; + }; + /** + * It is used to categorize the multiple items based on a specific field in jsonArray. + * The hierarchical queries are commonly required when you use foreign key binding. + * + * @param {string} fKey + * @param {string} from + * @param {Object[]} source + * @param {Group} lookup? + * @param {string} pKey? + * @param lookup + * @param pKey + * @hidden + */ + DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) { + var i; + var grp = {}; + var temp; + if (lookup.result) { + lookup = lookup.result; + } + if (lookup.GroupGuid) { + this.throwError('DataManager: Do not have support Grouping in hierarchy'); + } + for (i = 0; i < lookup.length; i++) { + var fKeyData = this.getObject(fKey, lookup[i]); + temp = grp[fKeyData] || (grp[fKeyData] = []); + temp.push(lookup[i]); + } + for (i = 0; i < source.length; i++) { + var fKeyData = this.getObject(pKey || fKey, source[i]); + source[i][from] = grp[fKeyData]; + } + }; + /** + * The method used to get the field names which started with specified characters. + * + * @param {Object} obj + * @param {string[]} fields? + * @param {string} prefix? + * @param fields + * @param prefix + * @hidden + */ + DataUtil.getFieldList = function (obj, fields, prefix) { + if (prefix === undefined) { + prefix = ''; + } + if (fields === undefined || fields === null) { + return this.getFieldList(obj, [], prefix); + } + var copyObj = obj; + var keys = Object.keys(obj); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var prop = keys_1[_i]; + if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) { + this.getFieldList(copyObj[prop], fields, prefix + prop + '.'); + } + else { + fields.push(prefix + prop); + } + } + return fields; + }; + /** + * Gets the value of the property in the given object. + * The complex object can be accessed by providing the field names concatenated with dot(.). + * + * @param {string} nameSpace - The name of the property to be accessed. + * @param {Object} from - Defines the source object. + */ + DataUtil.getObject = function (nameSpace, from) { + if (!nameSpace) { + return from; + } + if (!from) { + return undefined; + } + if (nameSpace.indexOf('.') === -1) { + var lowerCaseNameSpace = nameSpace.charAt(0).toLowerCase() + nameSpace.slice(1); + var upperCaseNameSpace = nameSpace.charAt(0).toUpperCase() + nameSpace.slice(1); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(from[nameSpace])) { + return from[nameSpace]; + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(from[lowerCaseNameSpace])) { + return from[lowerCaseNameSpace]; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(from[upperCaseNameSpace])) { + return from[upperCaseNameSpace]; + } + else { + return null; + } + } + } + var value = from; + var splits = nameSpace.split('.'); + for (var i = 0; i < splits.length; i++) { + if (value == null) { + break; + } + value = value[splits[i]]; + if (value === undefined) { + var casing = splits[i].charAt(0).toUpperCase() + splits[i].slice(1); + value = from[casing] || from[casing.charAt(0).toLowerCase() + casing.slice(1)] || null; + } + from = value; + } + return value; + }; + /** + * To set value for the nameSpace in desired object. + * + * @param {string} nameSpace - String value to the get the inner object. + * @param {Object} value - Value that you need to set. + * @param {Object} obj - Object to get the inner object value. + * @return { [key: string]: Object; } | Object + * @hidden + */ + DataUtil.setValue = function (nameSpace, value, obj) { + var keys = nameSpace.toString().split('.'); + var start = obj || {}; + var fromObj = start; + var i; + var length = keys.length; + var key; + for (i = 0; i < length; i++) { + key = keys[i]; + if (i + 1 === length) { + fromObj[key] = value === undefined ? undefined : value; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fromObj[key])) { + fromObj[key] = {}; + } + fromObj = fromObj[key]; + } + return start; + }; + /** + * Sort the given data based on the field and comparer. + * + * @param {Object[]} ds - Defines the input data. + * @param {string} field - Defines the field to be sorted. + * @param {Function} comparer - Defines the comparer function used to sort the records. + */ + DataUtil.sort = function (ds, field, comparer) { + if (ds.length <= 1) { + return ds; + } + var middle = parseInt((ds.length / 2).toString(), 10); + var left = ds.slice(0, middle); + var right = ds.slice(middle); + left = this.sort(left, field, comparer); + right = this.sort(right, field, comparer); + return this.merge(left, right, field, comparer); + }; + DataUtil.ignoreDiacritics = function (value) { + if (typeof value !== 'string') { + return value; + } + var result = value.split(''); + var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; }); + return newValue.join(''); + }; + DataUtil.merge = function (left, right, fieldName, comparer) { + var result = []; + var current; + while (left.length > 0 || right.length > 0) { + if (left.length > 0 && right.length > 0) { + if (comparer) { + current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right; + } + else { + current = left[0][fieldName] < left[0][fieldName] ? left : right; + } + } + else { + current = left.length > 0 ? left : right; + } + result.push(current.shift()); + } + return result; + }; + DataUtil.getVal = function (array, index, field) { + return field ? this.getObject(field, array[index]) : array[index]; + }; + DataUtil.toLowerCase = function (val) { + return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : ''; + }; + /** + * To perform the filter operation with specified adaptor and returns the result. + * + * @param {Object} adaptor + * @param {string} fnName + * @param {Object} param1? + * @param {Object} param2? + * @param param1 + * @param param2 + * @hidden + */ + DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) { + if (fnName in adaptor) { + var res = adaptor[fnName](param1, param2); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(res)) { + param1 = res; + } + } + return param1; + }; + DataUtil.getAddParams = function (adp, dm, query) { + var req = {}; + DataUtil.callAdaptorFunction(adp, 'addParams', { + dm: dm, + query: query, + params: query.params, + reqParams: req + }); + return req; + }; + /** + * Checks wheather the given input is a plain object or not. + * + * @param {Object|Object[]} obj + */ + DataUtil.isPlainObject = function (obj) { + return (!!obj) && (obj.constructor === Object); + }; + /** + * Returns true when the browser cross origin request. + */ + DataUtil.isCors = function () { + var xhr = null; + var request = 'XMLHttpRequest'; + try { + xhr = new window[request](); + } + catch (e) { + // No exception handling + } + return !!xhr && ('withCredentials' in xhr); + }; + /** + * Generate random GUID value which will be prefixed with the given value. + * + * @param {string} prefix + */ + DataUtil.getGuid = function (prefix) { + var hexs = '0123456789abcdef'; + var rand; + return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) { + if ('crypto' in window && 'getRandomValues' in crypto) { + var arr = new Uint8Array(1); + window.crypto.getRandomValues(arr); + rand = arr[0] % 16 | 0; + } + else { + rand = Math.random() * 16 | 0; + } + return hexs[i === 19 ? rand & 0x3 | 0x8 : rand]; + }); + }; + /** + * Checks wheather the given value is null or not. + * + * @param {string|Object} val + * @returns boolean + */ + DataUtil.isNull = function (val) { + return val === undefined || val === null; + }; + /** + * To get the required items from collection of objects. + * + * @param {Object[]} array + * @param {string} field + * @param {Function} comparer + * @returns Object + * @hidden + */ + DataUtil.getItemFromComparer = function (array, field, comparer) { + var keyVal; + var current; + var key; + var i = 0; + var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string'; + if (array.length) { + while (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(keyVal) && i < array.length) { + keyVal = DataUtil.getVal(array, i, field); + key = array[i++]; + } + } + for (; i < array.length; i++) { + current = DataUtil.getVal(array, i, field); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(current)) { + continue; + } + if (castRequired) { + keyVal = +keyVal; + current = +current; + } + if (comparer(keyVal, current) > 0) { + keyVal = current; + key = array[i]; + } + } + return key; + }; + /** + * To get distinct values of Array or Array of Objects. + * + * @param {Object[]} json + * @param {string} field + * @param fieldName + * @param {boolean} requiresCompleteRecord + * @returns Object[] + * * distinct array of objects is return when requiresCompleteRecord set as true. + * @hidden + */ + DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) { + requiresCompleteRecord = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(requiresCompleteRecord) ? false : requiresCompleteRecord; + var result = []; + var val; + var tmp = {}; + json.forEach(function (data, index) { + val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index]; + if (!(val in tmp)) { + result.push(!requiresCompleteRecord ? val : json[index]); + tmp[val] = 1; + } + }); + return result; + }; + /** + * Process the given records based on the datamanager string. + * + * @param {string} datamanager + * @param dm + * @param {Object[]} records + */ + DataUtil.processData = function (dm, records) { + var query = this.prepareQuery(dm); + var sampledata = new _manager__WEBPACK_IMPORTED_MODULE_1__["DataManager"](records); + if (dm.requiresCounts) { + query.requiresCount(); + } + /* eslint-disable @typescript-eslint/no-explicit-any */ + // tslint:disable-next-line:no-any + var result = sampledata.executeLocal(query); + /* eslint-enable @typescript-eslint/no-explicit-any */ + var returnValue = { + result: dm.requiresCounts ? result.result : result, + count: result.count, + aggregates: JSON.stringify(result.aggregates) + }; + return dm.requiresCounts ? returnValue : result; + }; + DataUtil.prepareQuery = function (dm) { + var _this = this; + var query = new _query__WEBPACK_IMPORTED_MODULE_2__["Query"](); + if (dm.select) { + query.select(dm.select); + } + if (dm.where) { + var where = DataUtil.parse.parseJson(dm.where); + where.filter(function (pred) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(pred.condition)) { + query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent); + } + else { + var predicateList = []; + if (pred.field) { + predicateList.push(new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent)); + } + else { + predicateList = predicateList.concat(_this.getPredicate(pred.predicates)); + } + if (pred.condition === 'or') { + query.where(_query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].or(predicateList)); + } + else if (pred.condition === 'and') { + query.where(_query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].and(predicateList)); + } + } + }); + } + if (dm.search) { + var search = DataUtil.parse.parseJson(dm.search); + // tslint:disable-next-line:no-string-literal + search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], + // tslint:disable-next-line:no-string-literal + e['ignoreCase'], e['ignoreAccent']); }); + } + if (dm.aggregates) { + dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); }); + } + if (dm.sorted) { + dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); }); + } + if (dm.skip) { + query.skip(dm.skip); + } + if (dm.take) { + query.take(dm.take); + } + if (dm.group) { + dm.group.filter(function (grp) { return query.group(grp); }); + } + return query; + }; + DataUtil.getPredicate = function (pred) { + var mainPred = []; + for (var i = 0; i < pred.length; i++) { + var e = pred[i]; + if (e.field) { + mainPred.push(new _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"](e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent)); + } + else { + var childPred = []; + // tslint:disable-next-line:typedef + var cpre = this.getPredicate(e.predicates); + for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) { + var prop = _a[_i]; + childPred.push(cpre[prop]); + } + mainPred.push(e.condition === 'or' ? _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].or(childPred) : _query__WEBPACK_IMPORTED_MODULE_2__["Predicate"].and(childPred)); + } + } + return mainPred; + }; + /** + * Specifies the value which will be used to adjust the date value to server timezone. + * + * @default null + */ + DataUtil.serverTimezoneOffset = null; + /** + * Species whether are not to be parsed with serverTimezoneOffset value. + * + * @hidden + */ + DataUtil.timeZoneHandling = true; + /** + * Throw error with the given string as message. + * + * @param {string} er + * @param error + */ + DataUtil.throwError = function (error) { + try { + throw new Error(error); + } + catch (e) { + // eslint-disable-next-line no-throw-literal + throw e.message + '\n' + e.stack; + } + }; + DataUtil.aggregates = { + /** + * Calculate sum of the given field in the data. + * + * @param {Object[]} ds + * @param {string} field + */ + sum: function (ds, field) { + var result = 0; + var val; + var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number'; + for (var i = 0; i < ds.length; i++) { + val = DataUtil.getVal(ds, i, field); + if (!isNaN(val) && val !== null) { + if (castRequired) { + val = +val; + } + result += val; + } + } + return result; + }, + /** + * Calculate average value of the given field in the data. + * + * @param {Object[]} ds + * @param {string} field + */ + average: function (ds, field) { + return DataUtil.aggregates.sum(ds, field) / ds.length; + }, + /** + * Returns the min value of the data based on the field. + * + * @param {Object[]} ds + * @param {string|Function} field + */ + min: function (ds, field) { + var comparer; + if (typeof field === 'function') { + comparer = field; + field = null; + } + return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending)); + }, + /** + * Returns the max value of the data based on the field. + * + * @param {Object[]} ds + * @param {string} field + * @returns number + */ + max: function (ds, field) { + var comparer; + if (typeof field === 'function') { + comparer = field; + field = null; + } + return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending)); + }, + /** + * Returns the total number of true value present in the data based on the given boolean field name. + * + * @param {Object[]} ds + * @param {string} field + */ + truecount: function (ds, field) { + return new _manager__WEBPACK_IMPORTED_MODULE_1__["DataManager"](ds).executeLocal(new _query__WEBPACK_IMPORTED_MODULE_2__["Query"]().where(field, 'equal', true, true)).length; + }, + /** + * Returns the total number of false value present in the data based on the given boolean field name. + * + * @param {Object[]} ds + * @param {string} field + */ + falsecount: function (ds, field) { + return new _manager__WEBPACK_IMPORTED_MODULE_1__["DataManager"](ds).executeLocal(new _query__WEBPACK_IMPORTED_MODULE_2__["Query"]().where(field, 'equal', false, true)).length; + }, + /** + * Returns the length of the given data. + * + * @param {Object[]} ds + * @param {string} field? + * @param field + * @returns number + */ + count: function (ds, field) { + return ds.length; + } + }; + /** + * Specifies the Object with filter operators. + */ + DataUtil.operatorSymbols = { + '<': 'lessthan', + '>': 'greaterthan', + '<=': 'lessthanorequal', + '>=': 'greaterthanorequal', + '==': 'equal', + '!=': 'notequal', + '*=': 'contains', + '$=': 'endswith', + '^=': 'startswith' + }; + /** + * Specifies the Object with filter operators which will be used for OData filter query generation. + * * It will be used for date/number type filter query. + */ + DataUtil.odBiOperator = { + '<': ' lt ', + '>': ' gt ', + '<=': ' le ', + '>=': ' ge ', + '==': ' eq ', + '!=': ' ne ', + 'lessthan': ' lt ', + 'lessthanorequal': ' le ', + 'greaterthan': ' gt ', + 'greaterthanorequal': ' ge ', + 'equal': ' eq ', + 'notequal': ' ne ' + }; + /** + * Specifies the Object with filter operators which will be used for OData filter query generation. + * It will be used for string type filter query. + */ + DataUtil.odUniOperator = { + '$=': 'endswith', + '^=': 'startswith', + '*=': 'substringof', + 'endswith': 'endswith', + 'startswith': 'startswith', + 'contains': 'substringof', + 'doesnotendwith': 'not endswith', + 'doesnotstartwith': 'not startswith', + 'doesnotcontain': 'not substringof', + 'wildcard': 'wildcard', + 'like': 'like' + }; + /** + * Specifies the Object with filter operators which will be used for ODataV4 filter query generation. + * It will be used for string type filter query. + */ + DataUtil.odv4UniOperator = { + '$=': 'endswith', + '^=': 'startswith', + '*=': 'contains', + 'endswith': 'endswith', + 'startswith': 'startswith', + 'contains': 'contains', + 'doesnotendwith': 'not endswith', + 'doesnotstartwith': 'not startswith', + 'doesnotcontain': 'not contains', + 'wildcard': 'wildcard', + 'like': 'like' + }; + DataUtil.diacritics = { + '\u24B6': 'A', + '\uFF21': 'A', + '\u00C0': 'A', + '\u00C1': 'A', + '\u00C2': 'A', + '\u1EA6': 'A', + '\u1EA4': 'A', + '\u1EAA': 'A', + '\u1EA8': 'A', + '\u00C3': 'A', + '\u0100': 'A', + '\u0102': 'A', + '\u1EB0': 'A', + '\u1EAE': 'A', + '\u1EB4': 'A', + '\u1EB2': 'A', + '\u0226': 'A', + '\u01E0': 'A', + '\u00C4': 'A', + '\u01DE': 'A', + '\u1EA2': 'A', + '\u00C5': 'A', + '\u01FA': 'A', + '\u01CD': 'A', + '\u0200': 'A', + '\u0202': 'A', + '\u1EA0': 'A', + '\u1EAC': 'A', + '\u1EB6': 'A', + '\u1E00': 'A', + '\u0104': 'A', + '\u023A': 'A', + '\u2C6F': 'A', + '\uA732': 'AA', + '\u00C6': 'AE', + '\u01FC': 'AE', + '\u01E2': 'AE', + '\uA734': 'AO', + '\uA736': 'AU', + '\uA738': 'AV', + '\uA73A': 'AV', + '\uA73C': 'AY', + '\u24B7': 'B', + '\uFF22': 'B', + '\u1E02': 'B', + '\u1E04': 'B', + '\u1E06': 'B', + '\u0243': 'B', + '\u0182': 'B', + '\u0181': 'B', + '\u24B8': 'C', + '\uFF23': 'C', + '\u0106': 'C', + '\u0108': 'C', + '\u010A': 'C', + '\u010C': 'C', + '\u00C7': 'C', + '\u1E08': 'C', + '\u0187': 'C', + '\u023B': 'C', + '\uA73E': 'C', + '\u24B9': 'D', + '\uFF24': 'D', + '\u1E0A': 'D', + '\u010E': 'D', + '\u1E0C': 'D', + '\u1E10': 'D', + '\u1E12': 'D', + '\u1E0E': 'D', + '\u0110': 'D', + '\u018B': 'D', + '\u018A': 'D', + '\u0189': 'D', + '\uA779': 'D', + '\u01F1': 'DZ', + '\u01C4': 'DZ', + '\u01F2': 'Dz', + '\u01C5': 'Dz', + '\u24BA': 'E', + '\uFF25': 'E', + '\u00C8': 'E', + '\u00C9': 'E', + '\u00CA': 'E', + '\u1EC0': 'E', + '\u1EBE': 'E', + '\u1EC4': 'E', + '\u1EC2': 'E', + '\u1EBC': 'E', + '\u0112': 'E', + '\u1E14': 'E', + '\u1E16': 'E', + '\u0114': 'E', + '\u0116': 'E', + '\u00CB': 'E', + '\u1EBA': 'E', + '\u011A': 'E', + '\u0204': 'E', + '\u0206': 'E', + '\u1EB8': 'E', + '\u1EC6': 'E', + '\u0228': 'E', + '\u1E1C': 'E', + '\u0118': 'E', + '\u1E18': 'E', + '\u1E1A': 'E', + '\u0190': 'E', + '\u018E': 'E', + '\u24BB': 'F', + '\uFF26': 'F', + '\u1E1E': 'F', + '\u0191': 'F', + '\uA77B': 'F', + '\u24BC': 'G', + '\uFF27': 'G', + '\u01F4': 'G', + '\u011C': 'G', + '\u1E20': 'G', + '\u011E': 'G', + '\u0120': 'G', + '\u01E6': 'G', + '\u0122': 'G', + '\u01E4': 'G', + '\u0193': 'G', + '\uA7A0': 'G', + '\uA77D': 'G', + '\uA77E': 'G', + '\u24BD': 'H', + '\uFF28': 'H', + '\u0124': 'H', + '\u1E22': 'H', + '\u1E26': 'H', + '\u021E': 'H', + '\u1E24': 'H', + '\u1E28': 'H', + '\u1E2A': 'H', + '\u0126': 'H', + '\u2C67': 'H', + '\u2C75': 'H', + '\uA78D': 'H', + '\u24BE': 'I', + '\uFF29': 'I', + '\u00CC': 'I', + '\u00CD': 'I', + '\u00CE': 'I', + '\u0128': 'I', + '\u012A': 'I', + '\u012C': 'I', + '\u0130': 'I', + '\u00CF': 'I', + '\u1E2E': 'I', + '\u1EC8': 'I', + '\u01CF': 'I', + '\u0208': 'I', + '\u020A': 'I', + '\u1ECA': 'I', + '\u012E': 'I', + '\u1E2C': 'I', + '\u0197': 'I', + '\u24BF': 'J', + '\uFF2A': 'J', + '\u0134': 'J', + '\u0248': 'J', + '\u24C0': 'K', + '\uFF2B': 'K', + '\u1E30': 'K', + '\u01E8': 'K', + '\u1E32': 'K', + '\u0136': 'K', + '\u1E34': 'K', + '\u0198': 'K', + '\u2C69': 'K', + '\uA740': 'K', + '\uA742': 'K', + '\uA744': 'K', + '\uA7A2': 'K', + '\u24C1': 'L', + '\uFF2C': 'L', + '\u013F': 'L', + '\u0139': 'L', + '\u013D': 'L', + '\u1E36': 'L', + '\u1E38': 'L', + '\u013B': 'L', + '\u1E3C': 'L', + '\u1E3A': 'L', + '\u0141': 'L', + '\u023D': 'L', + '\u2C62': 'L', + '\u2C60': 'L', + '\uA748': 'L', + '\uA746': 'L', + '\uA780': 'L', + '\u01C7': 'LJ', + '\u01C8': 'Lj', + '\u24C2': 'M', + '\uFF2D': 'M', + '\u1E3E': 'M', + '\u1E40': 'M', + '\u1E42': 'M', + '\u2C6E': 'M', + '\u019C': 'M', + '\u24C3': 'N', + '\uFF2E': 'N', + '\u01F8': 'N', + '\u0143': 'N', + '\u00D1': 'N', + '\u1E44': 'N', + '\u0147': 'N', + '\u1E46': 'N', + '\u0145': 'N', + '\u1E4A': 'N', + '\u1E48': 'N', + '\u0220': 'N', + '\u019D': 'N', + '\uA790': 'N', + '\uA7A4': 'N', + '\u01CA': 'NJ', + '\u01CB': 'Nj', + '\u24C4': 'O', + '\uFF2F': 'O', + '\u00D2': 'O', + '\u00D3': 'O', + '\u00D4': 'O', + '\u1ED2': 'O', + '\u1ED0': 'O', + '\u1ED6': 'O', + '\u1ED4': 'O', + '\u00D5': 'O', + '\u1E4C': 'O', + '\u022C': 'O', + '\u1E4E': 'O', + '\u014C': 'O', + '\u1E50': 'O', + '\u1E52': 'O', + '\u014E': 'O', + '\u022E': 'O', + '\u0230': 'O', + '\u00D6': 'O', + '\u022A': 'O', + '\u1ECE': 'O', + '\u0150': 'O', + '\u01D1': 'O', + '\u020C': 'O', + '\u020E': 'O', + '\u01A0': 'O', + '\u1EDC': 'O', + '\u1EDA': 'O', + '\u1EE0': 'O', + '\u1EDE': 'O', + '\u1EE2': 'O', + '\u1ECC': 'O', + '\u1ED8': 'O', + '\u01EA': 'O', + '\u01EC': 'O', + '\u00D8': 'O', + '\u01FE': 'O', + '\u0186': 'O', + '\u019F': 'O', + '\uA74A': 'O', + '\uA74C': 'O', + '\u01A2': 'OI', + '\uA74E': 'OO', + '\u0222': 'OU', + '\u24C5': 'P', + '\uFF30': 'P', + '\u1E54': 'P', + '\u1E56': 'P', + '\u01A4': 'P', + '\u2C63': 'P', + '\uA750': 'P', + '\uA752': 'P', + '\uA754': 'P', + '\u24C6': 'Q', + '\uFF31': 'Q', + '\uA756': 'Q', + '\uA758': 'Q', + '\u024A': 'Q', + '\u24C7': 'R', + '\uFF32': 'R', + '\u0154': 'R', + '\u1E58': 'R', + '\u0158': 'R', + '\u0210': 'R', + '\u0212': 'R', + '\u1E5A': 'R', + '\u1E5C': 'R', + '\u0156': 'R', + '\u1E5E': 'R', + '\u024C': 'R', + '\u2C64': 'R', + '\uA75A': 'R', + '\uA7A6': 'R', + '\uA782': 'R', + '\u24C8': 'S', + '\uFF33': 'S', + '\u1E9E': 'S', + '\u015A': 'S', + '\u1E64': 'S', + '\u015C': 'S', + '\u1E60': 'S', + '\u0160': 'S', + '\u1E66': 'S', + '\u1E62': 'S', + '\u1E68': 'S', + '\u0218': 'S', + '\u015E': 'S', + '\u2C7E': 'S', + '\uA7A8': 'S', + '\uA784': 'S', + '\u24C9': 'T', + '\uFF34': 'T', + '\u1E6A': 'T', + '\u0164': 'T', + '\u1E6C': 'T', + '\u021A': 'T', + '\u0162': 'T', + '\u1E70': 'T', + '\u1E6E': 'T', + '\u0166': 'T', + '\u01AC': 'T', + '\u01AE': 'T', + '\u023E': 'T', + '\uA786': 'T', + '\uA728': 'TZ', + '\u24CA': 'U', + '\uFF35': 'U', + '\u00D9': 'U', + '\u00DA': 'U', + '\u00DB': 'U', + '\u0168': 'U', + '\u1E78': 'U', + '\u016A': 'U', + '\u1E7A': 'U', + '\u016C': 'U', + '\u00DC': 'U', + '\u01DB': 'U', + '\u01D7': 'U', + '\u01D5': 'U', + '\u01D9': 'U', + '\u1EE6': 'U', + '\u016E': 'U', + '\u0170': 'U', + '\u01D3': 'U', + '\u0214': 'U', + '\u0216': 'U', + '\u01AF': 'U', + '\u1EEA': 'U', + '\u1EE8': 'U', + '\u1EEE': 'U', + '\u1EEC': 'U', + '\u1EF0': 'U', + '\u1EE4': 'U', + '\u1E72': 'U', + '\u0172': 'U', + '\u1E76': 'U', + '\u1E74': 'U', + '\u0244': 'U', + '\u24CB': 'V', + '\uFF36': 'V', + '\u1E7C': 'V', + '\u1E7E': 'V', + '\u01B2': 'V', + '\uA75E': 'V', + '\u0245': 'V', + '\uA760': 'VY', + '\u24CC': 'W', + '\uFF37': 'W', + '\u1E80': 'W', + '\u1E82': 'W', + '\u0174': 'W', + '\u1E86': 'W', + '\u1E84': 'W', + '\u1E88': 'W', + '\u2C72': 'W', + '\u24CD': 'X', + '\uFF38': 'X', + '\u1E8A': 'X', + '\u1E8C': 'X', + '\u24CE': 'Y', + '\uFF39': 'Y', + '\u1EF2': 'Y', + '\u00DD': 'Y', + '\u0176': 'Y', + '\u1EF8': 'Y', + '\u0232': 'Y', + '\u1E8E': 'Y', + '\u0178': 'Y', + '\u1EF6': 'Y', + '\u1EF4': 'Y', + '\u01B3': 'Y', + '\u024E': 'Y', + '\u1EFE': 'Y', + '\u24CF': 'Z', + '\uFF3A': 'Z', + '\u0179': 'Z', + '\u1E90': 'Z', + '\u017B': 'Z', + '\u017D': 'Z', + '\u1E92': 'Z', + '\u1E94': 'Z', + '\u01B5': 'Z', + '\u0224': 'Z', + '\u2C7F': 'Z', + '\u2C6B': 'Z', + '\uA762': 'Z', + '\u24D0': 'a', + '\uFF41': 'a', + '\u1E9A': 'a', + '\u00E0': 'a', + '\u00E1': 'a', + '\u00E2': 'a', + '\u1EA7': 'a', + '\u1EA5': 'a', + '\u1EAB': 'a', + '\u1EA9': 'a', + '\u00E3': 'a', + '\u0101': 'a', + '\u0103': 'a', + '\u1EB1': 'a', + '\u1EAF': 'a', + '\u1EB5': 'a', + '\u1EB3': 'a', + '\u0227': 'a', + '\u01E1': 'a', + '\u00E4': 'a', + '\u01DF': 'a', + '\u1EA3': 'a', + '\u00E5': 'a', + '\u01FB': 'a', + '\u01CE': 'a', + '\u0201': 'a', + '\u0203': 'a', + '\u1EA1': 'a', + '\u1EAD': 'a', + '\u1EB7': 'a', + '\u1E01': 'a', + '\u0105': 'a', + '\u2C65': 'a', + '\u0250': 'a', + '\uA733': 'aa', + '\u00E6': 'ae', + '\u01FD': 'ae', + '\u01E3': 'ae', + '\uA735': 'ao', + '\uA737': 'au', + '\uA739': 'av', + '\uA73B': 'av', + '\uA73D': 'ay', + '\u24D1': 'b', + '\uFF42': 'b', + '\u1E03': 'b', + '\u1E05': 'b', + '\u1E07': 'b', + '\u0180': 'b', + '\u0183': 'b', + '\u0253': 'b', + '\u24D2': 'c', + '\uFF43': 'c', + '\u0107': 'c', + '\u0109': 'c', + '\u010B': 'c', + '\u010D': 'c', + '\u00E7': 'c', + '\u1E09': 'c', + '\u0188': 'c', + '\u023C': 'c', + '\uA73F': 'c', + '\u2184': 'c', + '\u24D3': 'd', + '\uFF44': 'd', + '\u1E0B': 'd', + '\u010F': 'd', + '\u1E0D': 'd', + '\u1E11': 'd', + '\u1E13': 'd', + '\u1E0F': 'd', + '\u0111': 'd', + '\u018C': 'd', + '\u0256': 'd', + '\u0257': 'd', + '\uA77A': 'd', + '\u01F3': 'dz', + '\u01C6': 'dz', + '\u24D4': 'e', + '\uFF45': 'e', + '\u00E8': 'e', + '\u00E9': 'e', + '\u00EA': 'e', + '\u1EC1': 'e', + '\u1EBF': 'e', + '\u1EC5': 'e', + '\u1EC3': 'e', + '\u1EBD': 'e', + '\u0113': 'e', + '\u1E15': 'e', + '\u1E17': 'e', + '\u0115': 'e', + '\u0117': 'e', + '\u00EB': 'e', + '\u1EBB': 'e', + '\u011B': 'e', + '\u0205': 'e', + '\u0207': 'e', + '\u1EB9': 'e', + '\u1EC7': 'e', + '\u0229': 'e', + '\u1E1D': 'e', + '\u0119': 'e', + '\u1E19': 'e', + '\u1E1B': 'e', + '\u0247': 'e', + '\u025B': 'e', + '\u01DD': 'e', + '\u24D5': 'f', + '\uFF46': 'f', + '\u1E1F': 'f', + '\u0192': 'f', + '\uA77C': 'f', + '\u24D6': 'g', + '\uFF47': 'g', + '\u01F5': 'g', + '\u011D': 'g', + '\u1E21': 'g', + '\u011F': 'g', + '\u0121': 'g', + '\u01E7': 'g', + '\u0123': 'g', + '\u01E5': 'g', + '\u0260': 'g', + '\uA7A1': 'g', + '\u1D79': 'g', + '\uA77F': 'g', + '\u24D7': 'h', + '\uFF48': 'h', + '\u0125': 'h', + '\u1E23': 'h', + '\u1E27': 'h', + '\u021F': 'h', + '\u1E25': 'h', + '\u1E29': 'h', + '\u1E2B': 'h', + '\u1E96': 'h', + '\u0127': 'h', + '\u2C68': 'h', + '\u2C76': 'h', + '\u0265': 'h', + '\u0195': 'hv', + '\u24D8': 'i', + '\uFF49': 'i', + '\u00EC': 'i', + '\u00ED': 'i', + '\u00EE': 'i', + '\u0129': 'i', + '\u012B': 'i', + '\u012D': 'i', + '\u00EF': 'i', + '\u1E2F': 'i', + '\u1EC9': 'i', + '\u01D0': 'i', + '\u0209': 'i', + '\u020B': 'i', + '\u1ECB': 'i', + '\u012F': 'i', + '\u1E2D': 'i', + '\u0268': 'i', + '\u0131': 'i', + '\u24D9': 'j', + '\uFF4A': 'j', + '\u0135': 'j', + '\u01F0': 'j', + '\u0249': 'j', + '\u24DA': 'k', + '\uFF4B': 'k', + '\u1E31': 'k', + '\u01E9': 'k', + '\u1E33': 'k', + '\u0137': 'k', + '\u1E35': 'k', + '\u0199': 'k', + '\u2C6A': 'k', + '\uA741': 'k', + '\uA743': 'k', + '\uA745': 'k', + '\uA7A3': 'k', + '\u24DB': 'l', + '\uFF4C': 'l', + '\u0140': 'l', + '\u013A': 'l', + '\u013E': 'l', + '\u1E37': 'l', + '\u1E39': 'l', + '\u013C': 'l', + '\u1E3D': 'l', + '\u1E3B': 'l', + '\u017F': 'l', + '\u0142': 'l', + '\u019A': 'l', + '\u026B': 'l', + '\u2C61': 'l', + '\uA749': 'l', + '\uA781': 'l', + '\uA747': 'l', + '\u01C9': 'lj', + '\u24DC': 'm', + '\uFF4D': 'm', + '\u1E3F': 'm', + '\u1E41': 'm', + '\u1E43': 'm', + '\u0271': 'm', + '\u026F': 'm', + '\u24DD': 'n', + '\uFF4E': 'n', + '\u01F9': 'n', + '\u0144': 'n', + '\u00F1': 'n', + '\u1E45': 'n', + '\u0148': 'n', + '\u1E47': 'n', + '\u0146': 'n', + '\u1E4B': 'n', + '\u1E49': 'n', + '\u019E': 'n', + '\u0272': 'n', + '\u0149': 'n', + '\uA791': 'n', + '\uA7A5': 'n', + '\u01CC': 'nj', + '\u24DE': 'o', + '\uFF4F': 'o', + '\u00F2': 'o', + '\u00F3': 'o', + '\u00F4': 'o', + '\u1ED3': 'o', + '\u1ED1': 'o', + '\u1ED7': 'o', + '\u1ED5': 'o', + '\u00F5': 'o', + '\u1E4D': 'o', + '\u022D': 'o', + '\u1E4F': 'o', + '\u014D': 'o', + '\u1E51': 'o', + '\u1E53': 'o', + '\u014F': 'o', + '\u022F': 'o', + '\u0231': 'o', + '\u00F6': 'o', + '\u022B': 'o', + '\u1ECF': 'o', + '\u0151': 'o', + '\u01D2': 'o', + '\u020D': 'o', + '\u020F': 'o', + '\u01A1': 'o', + '\u1EDD': 'o', + '\u1EDB': 'o', + '\u1EE1': 'o', + '\u1EDF': 'o', + '\u1EE3': 'o', + '\u1ECD': 'o', + '\u1ED9': 'o', + '\u01EB': 'o', + '\u01ED': 'o', + '\u00F8': 'o', + '\u01FF': 'o', + '\u0254': 'o', + '\uA74B': 'o', + '\uA74D': 'o', + '\u0275': 'o', + '\u01A3': 'oi', + '\u0223': 'ou', + '\uA74F': 'oo', + '\u24DF': 'p', + '\uFF50': 'p', + '\u1E55': 'p', + '\u1E57': 'p', + '\u01A5': 'p', + '\u1D7D': 'p', + '\uA751': 'p', + '\uA753': 'p', + '\uA755': 'p', + '\u24E0': 'q', + '\uFF51': 'q', + '\u024B': 'q', + '\uA757': 'q', + '\uA759': 'q', + '\u24E1': 'r', + '\uFF52': 'r', + '\u0155': 'r', + '\u1E59': 'r', + '\u0159': 'r', + '\u0211': 'r', + '\u0213': 'r', + '\u1E5B': 'r', + '\u1E5D': 'r', + '\u0157': 'r', + '\u1E5F': 'r', + '\u024D': 'r', + '\u027D': 'r', + '\uA75B': 'r', + '\uA7A7': 'r', + '\uA783': 'r', + '\u24E2': 's', + '\uFF53': 's', + '\u00DF': 's', + '\u015B': 's', + '\u1E65': 's', + '\u015D': 's', + '\u1E61': 's', + '\u0161': 's', + '\u1E67': 's', + '\u1E63': 's', + '\u1E69': 's', + '\u0219': 's', + '\u015F': 's', + '\u023F': 's', + '\uA7A9': 's', + '\uA785': 's', + '\u1E9B': 's', + '\u24E3': 't', + '\uFF54': 't', + '\u1E6B': 't', + '\u1E97': 't', + '\u0165': 't', + '\u1E6D': 't', + '\u021B': 't', + '\u0163': 't', + '\u1E71': 't', + '\u1E6F': 't', + '\u0167': 't', + '\u01AD': 't', + '\u0288': 't', + '\u2C66': 't', + '\uA787': 't', + '\uA729': 'tz', + '\u24E4': 'u', + '\uFF55': 'u', + '\u00F9': 'u', + '\u00FA': 'u', + '\u00FB': 'u', + '\u0169': 'u', + '\u1E79': 'u', + '\u016B': 'u', + '\u1E7B': 'u', + '\u016D': 'u', + '\u00FC': 'u', + '\u01DC': 'u', + '\u01D8': 'u', + '\u01D6': 'u', + '\u01DA': 'u', + '\u1EE7': 'u', + '\u016F': 'u', + '\u0171': 'u', + '\u01D4': 'u', + '\u0215': 'u', + '\u0217': 'u', + '\u01B0': 'u', + '\u1EEB': 'u', + '\u1EE9': 'u', + '\u1EEF': 'u', + '\u1EED': 'u', + '\u1EF1': 'u', + '\u1EE5': 'u', + '\u1E73': 'u', + '\u0173': 'u', + '\u1E77': 'u', + '\u1E75': 'u', + '\u0289': 'u', + '\u24E5': 'v', + '\uFF56': 'v', + '\u1E7D': 'v', + '\u1E7F': 'v', + '\u028B': 'v', + '\uA75F': 'v', + '\u028C': 'v', + '\uA761': 'vy', + '\u24E6': 'w', + '\uFF57': 'w', + '\u1E81': 'w', + '\u1E83': 'w', + '\u0175': 'w', + '\u1E87': 'w', + '\u1E85': 'w', + '\u1E98': 'w', + '\u1E89': 'w', + '\u2C73': 'w', + '\u24E7': 'x', + '\uFF58': 'x', + '\u1E8B': 'x', + '\u1E8D': 'x', + '\u24E8': 'y', + '\uFF59': 'y', + '\u1EF3': 'y', + '\u00FD': 'y', + '\u0177': 'y', + '\u1EF9': 'y', + '\u0233': 'y', + '\u1E8F': 'y', + '\u00FF': 'y', + '\u1EF7': 'y', + '\u1E99': 'y', + '\u1EF5': 'y', + '\u01B4': 'y', + '\u024F': 'y', + '\u1EFF': 'y', + '\u24E9': 'z', + '\uFF5A': 'z', + '\u017A': 'z', + '\u1E91': 'z', + '\u017C': 'z', + '\u017E': 'z', + '\u1E93': 'z', + '\u1E95': 'z', + '\u01B6': 'z', + '\u0225': 'z', + '\u0240': 'z', + '\u2C6C': 'z', + '\uA763': 'z', + '\u0386': '\u0391', + '\u0388': '\u0395', + '\u0389': '\u0397', + '\u038A': '\u0399', + '\u03AA': '\u0399', + '\u038C': '\u039F', + '\u038E': '\u03A5', + '\u03AB': '\u03A5', + '\u038F': '\u03A9', + '\u03AC': '\u03B1', + '\u03AD': '\u03B5', + '\u03AE': '\u03B7', + '\u03AF': '\u03B9', + '\u03CA': '\u03B9', + '\u0390': '\u03B9', + '\u03CC': '\u03BF', + '\u03CD': '\u03C5', + '\u03CB': '\u03C5', + '\u03B0': '\u03C5', + '\u03C9': '\u03C9', + '\u03C2': '\u03C3' + }; + DataUtil.fnOperators = { + /** + * Returns true when the actual input is equal to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param {boolean} ignoreAccent? + * @param ignoreCase + * @param ignoreAccent + */ + equal: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected); + } + return actual === expected; + }, + /** + * Returns true when the actual input is not equal to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + * @param ignoreAccent + */ + notequal: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + return !DataUtil.fnOperators.equal(actual, expected, ignoreCase); + }, + /** + * Returns true when the actual input is less than to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + */ + lessthan: function (actual, expected, ignoreCase) { + if (ignoreCase) { + return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual)) { + actual = undefined; + } + return actual < expected; + }, + /** + * Returns true when the actual input is greater than to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + */ + greaterthan: function (actual, expected, ignoreCase) { + if (ignoreCase) { + return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected); + } + return actual > expected; + }, + /** + * Returns true when the actual input is less than or equal to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + */ + lessthanorequal: function (actual, expected, ignoreCase) { + if (ignoreCase) { + return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual)) { + actual = undefined; + } + return actual <= expected; + }, + /** + * Returns true when the actual input is greater than or equal to the given input. + * + * @param {string|number|boolean} actual + * @param {string|number|boolean} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + */ + greaterthanorequal: function (actual, expected, ignoreCase) { + if (ignoreCase) { + return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected); + } + return actual >= expected; + }, + /** + * Returns true when the actual input contains the given string. + * + * @param {string|number} actual + * @param {string|number} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + * @param ignoreAccent + */ + contains: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expected) && + DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1; + } + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expected) && + actual.toString().indexOf(expected) !== -1; + }, + /** + * Returns true when the actual input not contains the given string. + * + * @param {string|number} actual + * @param {string|number} expected + * @param {boolean} ignoreCase? + */ + doesnotcontain: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expected) && + DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) === -1; + } + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actual) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expected) && + actual.toString().indexOf(expected) === -1; + }, + /** + * Returns true when the given input value is not null. + * + * @param {string|number} actual + * @returns boolean + */ + isnotnull: function (actual) { + return actual !== null && actual !== undefined; + }, + /** + * Returns true when the given input value is null. + * + * @param {string|number} actual + * @returns boolean + */ + isnull: function (actual) { + return actual === null || actual === undefined; + }, + /** + * Returns true when the actual input starts with the given string + * + * @param {string} actual + * @param {string} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + * @param ignoreAccent + */ + startswith: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return actual && expected && DataUtil.startsWith(actual, expected); + }, + /** + * Returns true when the actual input not starts with the given string + * + * @param {string} actual + * @param {string} expected + * @param {boolean} ignoreCase? + */ + doesnotstartwith: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return actual && expected && DataUtil.notStartsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return actual && expected && DataUtil.notStartsWith(actual, expected); + }, + /** + * Returns true when the actual input like with the given string. + * + * @param {string} actual + * @param {string} expected + * @param {boolean} ignoreCase? + */ + like: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return actual && expected && DataUtil.like(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return actual && expected && DataUtil.like(actual, expected); + }, + /** + * Returns true when the given input value is empty. + * + * @param {string|number} actual + * @returns boolean + */ + isempty: function (actual) { + return actual === undefined || actual === ''; + }, + /** + * Returns true when the given input value is not empty. + * + * @param {string|number} actual + * @returns boolean + */ + isnotempty: function (actual) { + return actual !== undefined && actual !== ''; + }, + /** + * Returns true when the actual input pattern(wildcard) matches with the given string. + * + * @param {string|Date} actual + * @param {string} expected + * @param {boolean} ignoreCase? + */ + wildcard: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return (actual || typeof actual === 'boolean') && expected && typeof actual !== 'object' && + DataUtil.wildCard(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return (actual || typeof actual === 'boolean') && expected && DataUtil.wildCard(actual, expected); + }, + /** + * Returns true when the actual input ends with the given string. + * + * @param {string} actual + * @param {string} expected + * @param {boolean} ignoreCase? + * @param ignoreCase + * @param ignoreAccent + */ + endswith: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return actual && expected && DataUtil.endsWith(actual, expected); + }, + /** + * Returns true when the actual input not ends with the given string. + * + * @param {string} actual + * @param {string} expected + * @param {boolean} ignoreCase? + */ + doesnotendwith: function (actual, expected, ignoreCase, ignoreAccent) { + if (ignoreAccent) { + actual = DataUtil.ignoreDiacritics(actual); + expected = DataUtil.ignoreDiacritics(expected); + } + if (ignoreCase) { + return actual && expected && DataUtil.notEndsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected)); + } + return actual && expected && DataUtil.notEndsWith(actual, expected); + }, + /** + * It will return the filter operator based on the filter symbol. + * + * @param {string} operator + * @hidden + */ + processSymbols: function (operator) { + var fnName = DataUtil.operatorSymbols[operator]; + if (fnName) { + var fn = DataUtil.fnOperators[fnName]; + return fn; + } + return DataUtil.throwError('Query - Process Operator : Invalid operator'); + }, + /** + * It will return the valid filter operator based on the specified operators. + * + * @param {string} operator + * @hidden + */ + processOperator: function (operator) { + var fn = DataUtil.fnOperators[operator]; + if (fn) { + return fn; + } + return DataUtil.fnOperators.processSymbols(operator); + } + }; + /** + * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string. + */ + DataUtil.parse = { + /** + * Parse the given string to the plain JavaScript object. + * + * @param {string|Object|Object[]} jsonText + */ + parseJson: function (jsonText) { + if (typeof jsonText === 'string') { + jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver); + } + else if (jsonText instanceof Array) { + DataUtil.parse.iterateAndReviveArray(jsonText); + } + else if (typeof jsonText === 'object' && jsonText !== null) { + DataUtil.parse.iterateAndReviveJson(jsonText); + } + return jsonText; + }, + /** + * It will perform on array of values. + * + * @param {string[]|Object[]} array + * @hidden + */ + iterateAndReviveArray: function (array) { + for (var i = 0; i < array.length; i++) { + if (typeof array[i] === 'object' && array[i] !== null) { + DataUtil.parse.iterateAndReviveJson(array[i]); + // eslint-disable-next-line no-useless-escape + } + else if (typeof array[i] === 'string' && !/^[\s]*\[|^[\s]*\{(.)+:|\"/g.test(array[i])) { + array[i] = DataUtil.parse.jsonReviver('', array[i]); + } + else { + array[i] = DataUtil.parse.parseJson(array[i]); + } + } + }, + /** + * It will perform on JSON values + * + * @param {JSON} json + * @hidden + */ + iterateAndReviveJson: function (json) { + var value; + var keys = Object.keys(json); + for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) { + var prop = keys_2[_i]; + if (DataUtil.startsWith(prop, '__')) { + continue; + } + value = json[prop]; + if (typeof value === 'object') { + if (value instanceof Array) { + DataUtil.parse.iterateAndReviveArray(value); + } + else if (value) { + DataUtil.parse.iterateAndReviveJson(value); + } + } + else { + json[prop] = DataUtil.parse.jsonReviver(json[prop], value); + } + } + }, + /** + * It will perform on JSON values + * + * @param {string} field + * @param {string|Date} value + * @hidden + */ + jsonReviver: function (field, value) { + if (typeof value === 'string') { + // eslint-disable-next-line security/detect-unsafe-regex + var ms = /^\/Date\(([+-]?[0-9]+)([+-][0-9]{4})?\)\/$/.exec(value); + var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null; + if (ms) { + return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true); + // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex + } + else if (/^(\d{4}\-\d\d\-\d\d([tT][\d:\.]*){1})([zZ]|([+\-])(\d\d):?(\d\d))?$/.test(value)) { + var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1; + var arr = value.split(/[^0-9.]/); + if (isUTC) { + if (arr[5].indexOf('.') > -1) { + var secondsMs = arr[5].split('.'); + arr[5] = secondsMs[0]; + arr[6] = new Date(value).getUTCMilliseconds().toString(); + } + else { + arr[6] = '00'; + } + value = DataUtil.dateParse + .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10), parseInt(arr[6], 10)), DataUtil.serverTimezoneOffset, false); + } + else { + var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)); + var hrs = parseInt(arr[6], 10); + var mins = parseInt(arr[7], 10); + if (isNaN(hrs) && isNaN(mins)) { + return utcFormat; + } + if (value.indexOf('+') > -1) { + utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins); + } + else { + utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins); + } + value = DataUtil.dateParse + .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false); + } + if (DataUtil.serverTimezoneOffset == null) { + value = DataUtil.dateParse.addSelfOffset(value); + } + } + else if (/^\d{4}-\d{2}-\d{2}$/.test(value)) { + var arr = value.split(/[^0-9.]/); + return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10)); + } + } + return value; + }, + /** + * Check wheather the given value is JSON or not. + * + * @param {Object[]} jsonData + */ + isJson: function (jsonData) { + if (typeof jsonData[0] === 'string') { + return jsonData; + } + return DataUtil.parse.parseJson(jsonData); + }, + /** + * Checks wheather the given value is GUID or not. + * + * @param {string} value + */ + isGuid: function (value) { + // eslint-disable-next-line security/detect-unsafe-regex + var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i; + var match = regex.exec(value); + return match != null; + }, + /** + * The method used to replace the value based on the type. + * + * @param {Object} value + * @param {boolean} stringify + * @hidden + */ + replacer: function (value, stringify) { + if (DataUtil.isPlainObject(value)) { + return DataUtil.parse.jsonReplacer(value, stringify); + } + if (value instanceof Array) { + return DataUtil.parse.arrayReplacer(value); + } + if (value instanceof Date) { + return DataUtil.parse.jsonReplacer({ val: value }, stringify).val; + } + return value; + }, + /** + * It will replace the JSON value. + * + * @param {string} key + * @param {Object} val + * @param stringify + * @hidden + */ + jsonReplacer: function (val, stringify) { + var value; + var keys = Object.keys(val); + for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) { + var prop = keys_3[_i]; + value = val[prop]; + if (!(value instanceof Date)) { + continue; + } + var d = value; + if (DataUtil.serverTimezoneOffset == null) { + val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON(); + } + else { + d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000); + val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON(); + } + } + return val; + }, + /** + * It will replace the Array of value. + * + * @param {string} key + * @param {Object[]} val + * @hidden + */ + arrayReplacer: function (val) { + for (var i = 0; i < val.length; i++) { + if (DataUtil.isPlainObject(val[i])) { + val[i] = DataUtil.parse.jsonReplacer(val[i]); + } + else if (val[i] instanceof Date) { + val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date; + } + } + return val; + }, + /** + * It will replace the Date object with respective to UTC format value. + * + * @param {string} key + * @param {any} value + * @hidden + */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + /* tslint:disable-next-line:no-any */ + jsonDateReplacer: function (key, value) { + /* eslint-enable @typescript-eslint/no-explicit-any */ + if (key === 'value' && value) { + if (typeof value === 'string') { + // eslint-disable-next-line security/detect-unsafe-regex + var ms = /^\/Date\(([+-]?[0-9]+)([+-][0-9]{4})?\)\/$/.exec(value); + if (ms) { + value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true); + // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex + } + else if (/^(\d{4}\-\d\d\-\d\d([tT][\d:\.]*){1})([zZ]|([+\-])(\d\d):?(\d\d))?$/.test(value)) { + var arr = value.split(/[^0-9]/); + value = DataUtil.dateParse + .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true); + } + } + if (value instanceof Date) { + value = DataUtil.dateParse.addSelfOffset(value); + if (DataUtil.serverTimezoneOffset === null) { + return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON(); + } + else { + value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2) + - DataUtil.serverTimezoneOffset), false); + return value.toJSON(); + } + } + } + return value; + } + }; + /** + * @hidden + */ + DataUtil.dateParse = { + addSelfOffset: function (input) { + return new Date(+input - (input.getTimezoneOffset() * 60000)); + }, + toUTC: function (input) { + return new Date(+input + (input.getTimezoneOffset() * 60000)); + }, + toTimeZone: function (input, offset, utc) { + if (offset === null) { + return input; + } + var unix = utc ? DataUtil.dateParse.toUTC(input) : input; + return new Date(+unix - (offset * 3600000)); + }, + toLocalTime: function (input) { + var datefn = input; + var timeZone = -datefn.getTimezoneOffset(); + var differenceString = timeZone >= 0 ? '+' : '-'; + var localtimefn = function (num) { + var norm = Math.floor(Math.abs(num)); + return (norm < 10 ? '0' : '') + norm; + }; + var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) + + 'T' + localtimefn(datefn.getHours()) + + ':' + localtimefn(datefn.getMinutes()) + + ':' + localtimefn(datefn.getSeconds()) + + differenceString + localtimefn(timeZone / 60) + + ':' + localtimefn(timeZone % 60); + return val; + } + }; + return DataUtil; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/blazor-Tooltip.js": +/*!*********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/blazor-Tooltip.js ***! + \*********************************************************************************************/ +/*! exports provided: BlazorAnimation, BlazorTooltip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BlazorAnimation", function() { return BlazorAnimation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BlazorTooltip", function() { return BlazorTooltip; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./position */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/position.js"); +/* harmony import */ var _collision__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./collision */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/collision.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/ban-types */ + + + + + + +/** + * Animation options that are common for both open and close actions of the Tooltip + * + * @private + */ +var BlazorAnimation = /** @__PURE__ @class */ (function (_super) { + __extends(BlazorAnimation, _super); + function BlazorAnimation() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ effect: 'FadeIn', duration: 150, delay: 0 }) + ], BlazorAnimation.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ effect: 'FadeOut', duration: 150, delay: 0 }) + ], BlazorAnimation.prototype, "close", void 0); + return BlazorAnimation; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var SHOW_POINTER_TIP_GAP = 0; +var HIDE_POINTER_TIP_GAP = 8; +var POINTER_ADJUST = 2; +var ROOT = 'e-tooltip'; +var RTL = 'e-rtl'; +var DEVICE = 'e-bigger'; +var CLOSE = 'e-tooltip-close'; +var TOOLTIP_WRAP = 'e-tooltip-wrap'; +var CONTENT = 'e-tip-content'; +var ARROW_TIP = 'e-arrow-tip'; +var ARROW_TIP_OUTER = 'e-arrow-tip-outer'; +var ARROW_TIP_INNER = 'e-arrow-tip-inner'; +var TIP_BOTTOM = 'e-tip-bottom'; +var TIP_TOP = 'e-tip-top'; +var TIP_LEFT = 'e-tip-left'; +var TIP_RIGHT = 'e-tip-right'; +var POPUP_ROOT = 'e-popup'; +var POPUP_OPEN = 'e-popup-open'; +var POPUP_CLOSE = 'e-popup-close'; +var POPUP_LIB = 'e-lib'; +var HIDE_POPUP = 'e-hidden'; +var CLASSNAMES = { + ROOT: 'e-popup', + RTL: 'e-rtl', + OPEN: 'e-popup-open', + CLOSE: 'e-popup-close' +}; +/** + * @private + */ +var BlazorTooltip = /** @__PURE__ @class */ (function () { + function BlazorTooltip(diagram) { + this.isBlazorTooltip = false; + this.contentEvent = null; + /** @private */ + this.width = 'auto'; + /** @private */ + this.height = 'auto'; + /** @private */ + this.content = ''; + /** @private */ + this.target = ''; + /** @private */ + this.position = 'TopCenter'; + /** @private */ + this.offsetX = 0; + /** @private */ + this.offsetY = 0; + /** @private */ + this.tipPointerPosition = 'Auto'; + /** @private */ + this.openDelay = 0; + /** @private */ + this.closeDelay = 0; + /** @private */ + this.cssClass = ''; + this.element = diagram; + this.tipClass = TIP_BOTTOM; + this.tooltipPositionX = 'Center'; + this.tooltipPositionY = 'Top'; + this.isHidden = true; + this.showTipPointer = true; + } + /** + * @private + */ + BlazorTooltip.prototype.open = function (target, showAnimation, e) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.animation.open)) { + this.animation.open = this.element.tooltip && this.element.tooltip.animation && + this.element.tooltip.animation.open; + } + this.showTooltip(target, showAnimation); + }; + /** + * @private + */ + BlazorTooltip.prototype.updateTooltip = function (target) { + if (this.tooltipEle) { + this.addDescribedBy(target, this.ctrlId + '_content'); + this.renderContent(target); + this.reposition(target); + this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY); + } + }; + BlazorTooltip.prototype.formatPosition = function () { + var _a, _b; + if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) { + _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1]; + } + else { + _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1]; + } + }; + /** + * @private + */ + BlazorTooltip.prototype.destroy = function () { + //No code + }; + /** + * @private + */ + BlazorTooltip.prototype.close = function () { + if (this.tooltipEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], POPUP_CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], POPUP_OPEN); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(this.tooltipEle); + var animationOptions = void 0; + // eslint-disable-next-line @typescript-eslint/no-this-alias + var currentTooltip_1 = this; + currentTooltip_1.isHidden = true; + if (this.animation.close) { + animationOptions = { + name: this.animation.close.effect, + duration: this.animation.close.duration || 0, + delay: this.animation.close.delay || 0, + timingFunction: 'easeOut' + }; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animationOptions)) { + animationOptions.end = function () { + if (currentTooltip_1.isHidden) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(currentTooltip_1.tooltipEle); + currentTooltip_1.tooltipEle = null; + } + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animationOptions).animate(this.tooltipEle); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], CLASSNAMES.OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], CLASSNAMES.CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.tooltipEle); + this.tooltipEle = null; + } + } + }; + /** + * @private + */ + BlazorTooltip.prototype.showTooltip = function (target, showAnimation, e) { + var _this = this; + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + this.tooltipEventArgs = { + type: e ? e.type : null, cancel: false, target: target, event: e ? e : null, + element: this.tooltipEle, isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) + }; + var observeCallback = function (beforeRenderArgs) { + _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation); + }; + this.element.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this)); + }; + BlazorTooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) { + this.formatPosition(); + var isBlazorTooltipRendered = false; + if (beforeRenderArgs.cancel) { + this.isHidden = true; + // this.clear(); + } + else { + this.isHidden = false; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltipEle)) { + this.ctrlId = this.element.element.id; + this.tooltipEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { + className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: { + role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content' + }, styles: 'width:' + + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width) + ';height:' + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height) + ';position:absolute; pointer-events:none;' + }); + this.beforeRenderBlazor(target, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(this.tooltipEle); + this.afterRenderBlazor(target, e, showAnimation, this); + } + else { + if (target) { + this.addDescribedBy(target, this.ctrlId + '_content'); + this.renderContent(target); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(this.tooltipEle); + this.reposition(target); + this.afterRenderBlazor(target, e, showAnimation, this); + this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY); + } + } + } + }; + BlazorTooltip.prototype.afterRenderBlazor = function (target, e, showAnimation, ctrlObj) { + var _this = this; + if (target) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_CLOSE); + ctrlObj.tooltipEventArgs = { + type: e ? e.type : null, cancel: false, target: target, event: e ? e : null, + element: ctrlObj.tooltipEle, isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) + }; + var animation = void 0; + if (this.animation.open) { + animation = { + name: this.animation.open.effect, + duration: this.animation.open.duration || 0, + delay: this.animation.open.delay || 0, + timingFunction: 'easeIn' + }; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animation)) { + animation.begin = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], CLASSNAMES.CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], CLASSNAMES.OPEN); + }; + animation.end = function () { + _this.element.trigger('open'); + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animation).animate(this.tooltipEle); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], POPUP_CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + } + } + }; + BlazorTooltip.prototype.setTipClass = function (position) { + if (position.indexOf('Right') === 0) { + this.tipClass = TIP_LEFT; + } + else if (position.indexOf('Bottom') === 0) { + this.tipClass = TIP_TOP; + } + else if (position.indexOf('Left') === 0) { + this.tipClass = TIP_RIGHT; + } + else { + this.tipClass = TIP_BOTTOM; + } + }; + BlazorTooltip.prototype.renderArrow = function () { + this.setTipClass(this.position); + var tip = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: ARROW_TIP + ' ' + this.tipClass }); + tip.appendChild(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass })); + tip.appendChild(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass })); + this.tooltipEle.appendChild(tip); + }; + BlazorTooltip.prototype.getTooltipPosition = function (target) { + this.tooltipEle.style.display = 'block'; + var pos = Object(_position__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"])(target, this.tooltipPositionX, this.tooltipPositionY); + var offsetPos = this.calculateTooltipOffset(this.position); + var elePos = this.collisionFlipFit(target, pos.left + offsetPos.left, pos.top + offsetPos.top); + this.tooltipEle.style.display = ''; + return elePos; + }; + BlazorTooltip.prototype.checkCollision = function (target, x, y) { + var elePos = { + left: x, top: y, position: this.position, + horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY + }; + var affectedPos = Object(_collision__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(this.tooltipEle, (this.target ? this.element.element : null), x, y); + if (affectedPos.length > 0) { + elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' : + this.tooltipPositionX; + elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' : + this.tooltipPositionY; + } + return elePos; + }; + BlazorTooltip.prototype.collisionFlipFit = function (target, x, y) { + var elePos = this.checkCollision(target, x, y); + var newpos = elePos.position; + if (this.tooltipPositionY !== elePos.vertical) { + newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ? + elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical); + } + if (this.tooltipPositionX !== elePos.horizontal) { + if (newpos.indexOf('Left') === 0) { + elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom'; + newpos = (elePos.vertical + 'Left'); + } + if (newpos.indexOf('Right') === 0) { + elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom'; + newpos = (elePos.vertical + 'Right'); + } + elePos.horizontal = this.tooltipPositionX; + } + this.tooltipEventArgs = { + type: null, cancel: false, target: target, event: null, + element: this.tooltipEle, collidedPosition: newpos + }; + this.element.trigger('beforeCollision', this.tooltipEventArgs); + if (elePos.position !== newpos) { + var pos = Object(_position__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"])(target, elePos.horizontal, elePos.vertical); + this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical); + var offsetPos = this.calculateTooltipOffset(newpos); + offsetPos.top -= (('TopBottom'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) && + ('TopBottom'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetY) : 0; + offsetPos.left -= (('RightLeft'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) && + ('RightLeft'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetX) : 0; + elePos.position = newpos; + elePos.left = pos.left + offsetPos.left; + elePos.top = pos.top + offsetPos.top; + } + else { + this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical); + } + var eleOffset = { left: elePos.left, top: elePos.top }; + var left = Object(_collision__WEBPACK_IMPORTED_MODULE_2__["fit"])(this.tooltipEle, (this.target ? this.element.element : null), { X: true, Y: false }, eleOffset).left; + this.tooltipEle.style.display = 'block'; + if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) { + var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP); + var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left); + if (arrowleft < 0) { + arrowleft = 0; + } + else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) { + arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth; + } + arrowEle.style.left = arrowleft.toString() + 'px'; + } + this.tooltipEle.style.display = ''; + eleOffset.left = left; + return eleOffset; + }; + BlazorTooltip.prototype.calculateTooltipOffset = function (position) { + var pos = { top: 0, left: 0 }; + var tooltipEleWidth = this.tooltipEle.offsetWidth; + var tooltipEleHeight = this.tooltipEle.offsetHeight; + var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP); + var tipWidth = arrowEle ? arrowEle.offsetWidth : 0; + var tipHeight = arrowEle ? arrowEle.offsetHeight : 0; + var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP); + var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight); + var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth); + switch (position) { + case 'RightTop': + pos.left += tipWidth + tipAdjust; + pos.top -= tooltipEleHeight - tipHeightAdjust; + break; + case 'RightCenter': + pos.left += tipWidth + tipAdjust; + pos.top -= (tooltipEleHeight / 2); + break; + case 'RightBottom': + pos.left += tipWidth + tipAdjust; + pos.top -= (tipHeightAdjust); + break; + case 'BottomRight': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tipWidthAdjust); + break; + case 'BottomCenter': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth / 2); + break; + case 'BottomLeft': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth - tipWidthAdjust); + break; + case 'LeftBottom': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tipHeightAdjust); + break; + case 'LeftCenter': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tooltipEleHeight / 2); + break; + case 'LeftTop': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tooltipEleHeight - tipHeightAdjust); + break; + case 'TopLeft': + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth - tipWidthAdjust); + break; + case 'TopRight': + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tipWidthAdjust); + break; + default: + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth / 2); + break; + } + pos.left += this.offsetX; + pos.top += this.offsetY; + return pos; + }; + BlazorTooltip.prototype.reposition = function (target) { + var elePos = this.getTooltipPosition(target); + this.tooltipEle.style.left = elePos.left + 'px'; + this.tooltipEle.style.top = elePos.top + 'px'; + }; + BlazorTooltip.prototype.beforeRenderBlazor = function (target, ctrlObj) { + if (target) { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], DEVICE); + } + if (ctrlObj.width !== 'auto') { + ctrlObj.tooltipEle.style.maxWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(ctrlObj.width); + } + ctrlObj.tooltipEle.appendChild(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CONTENT + ' ' + 'e-diagramTooltip-content' })); + document.body.appendChild(ctrlObj.tooltipEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], HIDE_POPUP); + ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content'); + ctrlObj.renderContent(target); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + if (this.showTipPointer) { + ctrlObj.renderArrow(); + } + var elePos = this.getTooltipPosition(target); + this.tooltipEle.classList.remove(POPUP_LIB); + this.tooltipEle.style.left = elePos.left + 'px'; + this.tooltipEle.style.top = elePos.top + 'px'; + ctrlObj.reposition(target); + ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY); + } + }; + BlazorTooltip.prototype.addDescribedBy = function (target, id) { + var describedby = (target.getAttribute('aria-describedby') || '').split(/\s+/); + if (describedby.indexOf(id) < 0) { + describedby.push(id); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id }); + }; + BlazorTooltip.prototype.renderContent = function (target) { + var tooltipContent = this.tooltipEle.querySelector('.' + CONTENT); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], this.cssClass.split(' ')); + } + if (target && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target.getAttribute('title'))) { + target.setAttribute('data-content', target.getAttribute('title')); + target.removeAttribute('title'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content)) { + if (this.isBlazorTooltip || !(false)) { + tooltipContent.innerHTML = ''; + if (this.content instanceof HTMLElement) { + tooltipContent.appendChild(this.content); + } + else if (typeof this.content === 'string' && this.content.indexOf('
Blazor') < 0) { + tooltipContent.innerHTML = this.content; + } + else { + var templateFunction = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(this.content); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(templateFunction({}, null, null, this.element.element.id + 'content'), tooltipContent); + if (typeof this.content === 'string' && this.content.indexOf('
Blazor') >= 0) { + this.isBlazorTemplate = true; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])(this.element.element.id + 'content', 'Content', this); + } + } + } + } + else { + if (target && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target.getAttribute('data-content'))) { + tooltipContent.innerHTML = target.getAttribute('data-content'); + } + } + }; + BlazorTooltip.prototype.updateTipPosition = function (position) { + var selEle = this.tooltipEle.querySelectorAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER); + var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT]; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(selEle, removeList); + this.setTipClass(position); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(selEle, this.tipClass); + }; + BlazorTooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) { + if (!this.showTipPointer) { + return; + } + this.updateTipPosition(position); + var leftValue; + var topValue; + this.tooltipEle.style.display = 'block'; + var tooltipWidth = this.tooltipEle.clientWidth; + var tooltipHeight = this.tooltipEle.clientHeight; + var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP); + var arrowInnerELe = this.tooltipEle.querySelector('.' + ARROW_TIP_INNER); + var tipWidth = arrowEle.offsetWidth; + var tipHeight = arrowEle.offsetHeight; + this.tooltipEle.style.display = ''; + if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) { + if (this.tipClass === TIP_BOTTOM) { + topValue = '99.9%'; + // Arrow icon aligned -2px height from ArrowOuterTip div + arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px'; + } + else { + topValue = -(tipHeight - 1) + 'px'; + // Arrow icon aligned -6px height from ArrowOuterTip div + arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px'; + } + if (target) { + var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth); + if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) { + leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px'; + } + else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) { + leftValue = POINTER_ADJUST + 'px'; + } + else { + leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px'; + } + } + } + else { + if (this.tipClass === TIP_RIGHT) { + leftValue = '99.9%'; + // Arrow icon aligned -2px left from ArrowOuterTip div + arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px'; + } + else { + leftValue = -(tipWidth - 1) + 'px'; + // Arrow icon aligned -2px from ArrowOuterTip width + arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px'; + } + var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight); + if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) { + topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px'; + } + else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) { + topValue = POINTER_ADJUST + 'px'; + } + else { + topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px'; + } + } + arrowEle.style.top = topValue; + arrowEle.style.left = leftValue; + }; + /** + * Returns the module name of the blazor tooltip + * + * @returns {string} Returns the module name of the blazor tooltip + */ + BlazorTooltip.prototype.getModuleName = function () { + return 'BlazorTooltip'; + }; + return BlazorTooltip; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/collision.js": +/*!****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/collision.js ***! + \****************************************************************************************/ +/*! exports provided: fit, isCollide, flip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fit", function() { return fit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCollide", function() { return isCollide; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flip", function() { return flip; }); +/* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./position */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/position.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* eslint-disable valid-jsdoc */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable jsdoc/require-param */ +/** + * Collision module. + */ + + +var parentDocument; +var targetContainer; +/** + * @private + */ +function fit(element, viewPortElement, axis, position) { + if (viewPortElement === void 0) { viewPortElement = null; } + if (axis === void 0) { axis = { X: false, Y: false }; } + if (!axis.Y && !axis.X) { + return { left: 0, top: 0 }; + } + var elemData = element.getBoundingClientRect(); + targetContainer = viewPortElement; + parentDocument = element.ownerDocument; + if (!position) { + position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element, 'left', 'top'); + } + if (axis.X) { + var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth(); + var containerLeft = ContainerLeft(); + var containerRight = ContainerRight(); + var overLeft = containerLeft - position.left; + var overRight = position.left + elemData.width - containerRight; + if (elemData.width > containerWidth) { + if (overLeft > 0 && overRight <= 0) { + position.left = containerRight - elemData.width; + } + else if (overRight > 0 && overLeft <= 0) { + position.left = containerLeft; + } + else { + position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft; + } + } + else if (overLeft > 0) { + position.left += overLeft; + } + else if (overRight > 0) { + position.left -= overRight; + } + } + if (axis.Y) { + var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight(); + var containerTop = ContainerTop(); + var containerBottom = ContainerBottom(); + var overTop = containerTop - position.top; + var overBottom = position.top + elemData.height - containerBottom; + if (elemData.height > containerHeight) { + if (overTop > 0 && overBottom <= 0) { + position.top = containerBottom - elemData.height; + } + else if (overBottom > 0 && overTop <= 0) { + position.top = containerTop; + } + else { + position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop; + } + } + else if (overTop > 0) { + position.top += overTop; + } + else if (overBottom > 0) { + position.top -= overBottom; + } + } + return position; +} +/** + * @private + */ +function isCollide(element, viewPortElement, x, y) { + if (viewPortElement === void 0) { viewPortElement = null; } + var elemOffset = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element, 'left', 'top'); + if (x) { + elemOffset.left = x; + } + if (y) { + elemOffset.top = y; + } + var data = []; + targetContainer = viewPortElement; + parentDocument = element.ownerDocument; + var elementRect = element.getBoundingClientRect(); + var top = elemOffset.top; + var left = elemOffset.left; + var right = elemOffset.left + elementRect.width; + var bottom = elemOffset.top + elementRect.height; + var topData = ''; + var leftData = ''; + var yAxis = topCollideCheck(top, bottom); + var xAxis = leftCollideCheck(left, right); + if (yAxis.topSide) { + data.push('top'); + } + if (xAxis.rightSide) { + data.push('right'); + } + if (xAxis.leftSide) { + data.push('left'); + } + if (yAxis.bottomSide) { + data.push('bottom'); + } + return data; +} +/** + * @private + */ +function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, axis, +// eslint-disable-next-line @typescript-eslint/ban-types +fixedParent) { + if (viewPortElement === void 0) { viewPortElement = null; } + if (axis === void 0) { axis = { X: true, Y: true }; } + if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) { + return; + } + var tEdge = { TL: null, + TR: null, + BL: null, + BR: null }; + var eEdge = { + TL: null, + TR: null, + BL: null, + BR: null + }; + var elementRect = element.getBoundingClientRect(); + var pos = { + posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 } + }; + targetContainer = viewPortElement; + parentDocument = target.ownerDocument; + updateElementData(target, tEdge, pos, fixedParent, elementRect); + setPosition(eEdge, pos, elementRect); + if (axis.X) { + leftFlip(target, eEdge, tEdge, pos, elementRect, true); + } + if (axis.Y && tEdge.TL.top > -1) { + topFlip(target, eEdge, tEdge, pos, elementRect, true); + } + setPopup(element, pos, elementRect); +} +/** + * @private + */ +function setPopup(element, pos, elementRect) { + var left = 0; + var top = 0; + if (element.offsetParent != null + && (getComputedStyle(element.offsetParent).position === 'absolute' || + getComputedStyle(element.offsetParent).position === 'relative')) { + var data = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element.offsetParent, 'left', 'top', false, elementRect); + left = data.left; + top = data.top; + } + element.style.top = (pos.position.top + pos.offsetY - (top)) + 'px'; + element.style.left = (pos.position.left + pos.offsetX - (left)) + 'px'; +} +/** + * @private + */ +function updateElementData(target, edge, pos, +// eslint-disable-next-line @typescript-eslint/ban-types +fixedParent, elementRect) { + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, fixedParent, elementRect); + edge.TL = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'left', 'top', fixedParent, elementRect); + edge.TR = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'right', 'top', fixedParent, elementRect); + edge.BR = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'left', 'bottom', fixedParent, elementRect); + edge.BL = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'right', 'bottom', fixedParent, elementRect); +} +/** + * @private + */ +function setPosition(eStatus, pos, elementRect) { + eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX }; + eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width }; + eStatus.BL = { top: eStatus.TL.top + elementRect.height, + left: eStatus.TL.left }; + eStatus.BR = { top: eStatus.TL.top + elementRect.height, + left: eStatus.TL.left + elementRect.width }; +} +/** + * @private + */ +function leftCollideCheck(left, right) { + var leftSide = false; + var rightSide = false; + if (((left - getBodyScrollLeft()) < ContainerLeft())) { + leftSide = true; + } + if (right > ContainerRight()) { + rightSide = true; + } + return { leftSide: leftSide, rightSide: rightSide }; +} +/** + * @private + */ +function leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) { + var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left); + if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) { + collideSide.leftSide = false; + } + if (tEdge.TR.left >= ContainerRight()) { + collideSide.rightSide = false; + } + if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) { + if (pos.posX === 'right') { + pos.posX = 'left'; + } + else { + pos.posX = 'right'; + } + pos.offsetX = pos.offsetX + elementRect.width; + pos.offsetX = -1 * pos.offsetX; + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, false); + setPosition(edge, pos, elementRect); + if (deepCheck) { + leftFlip(target, edge, tEdge, pos, elementRect, false); + } + } +} +/** + * @private + */ +function topFlip(target, edge, tEdge, pos, elementRect, deepCheck) { + var collideSide = topCollideCheck(edge.TL.top, edge.BL.top); + if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) { + collideSide.topSide = false; + } + if (tEdge.BL.top >= ContainerBottom()) { + collideSide.bottomSide = false; + } + if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) { + if (pos.posY === 'top') { + pos.posY = 'bottom'; + } + else { + pos.posY = 'top'; + } + pos.offsetY = pos.offsetY + elementRect.height; + pos.offsetY = -1 * pos.offsetY; + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, false, elementRect); + setPosition(edge, pos, elementRect); + if (deepCheck) { + topFlip(target, edge, tEdge, pos, elementRect, false); + } + } +} +/** + * @private + */ +function topCollideCheck(top, bottom) { + var topSide = false; + var bottomSide = false; + if ((top - getBodyScrollTop()) < ContainerTop()) { + topSide = true; + } + if (bottom > ContainerBottom()) { + bottomSide = true; + } + return { topSide: topSide, bottomSide: bottomSide }; +} +/** + * @private + */ +function getTargetContainerWidth() { + return targetContainer.getBoundingClientRect().width; +} +/** + * @private + */ +function getTargetContainerHeight() { + return targetContainer.getBoundingClientRect().height; +} +/** + * @private + */ +function getTargetContainerLeft() { + return targetContainer.getBoundingClientRect().left; +} +/** + * @private + */ +function getTargetContainerTop() { + return targetContainer.getBoundingClientRect().top; +} +/** + * @private + */ +function ContainerTop() { + if (targetContainer) { + return getTargetContainerTop(); + } + return 0; +} +/** + * @private + */ +function ContainerLeft() { + if (targetContainer) { + return getTargetContainerLeft(); + } + return 0; +} +/** + * @private + */ +function ContainerRight() { + if (targetContainer) { + return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth()); + } + return (getBodyScrollLeft() + getViewPortWidth()); +} +/** + * @private + */ +function ContainerBottom() { + if (targetContainer) { + return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight()); + } + return (getBodyScrollTop() + getViewPortHeight()); +} +/** + * @private + */ +function getBodyScrollTop() { + // if(targetContainer) + // return targetContainer.scrollTop; + return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop; +} +/** + * @private + */ +function getBodyScrollLeft() { + // if(targetContainer) + // return targetContainer.scrollLeft; + return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft; +} +/** + * @private + */ +function getViewPortHeight() { + return window.innerHeight; +} +/** + * @private + */ +function getViewPortWidth() { + var windowWidth = window.innerWidth; + var offsetWidth = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(document.documentElement)) ? 0 : document.documentElement.offsetWidth; + return windowWidth - (windowWidth - offsetWidth); +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/position.js": +/*!***************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/position.js ***! + \***************************************************************************************/ +/*! exports provided: calculateRelativeBasedPosition, calculatePosition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateRelativeBasedPosition", function() { return calculateRelativeBasedPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculatePosition", function() { return calculatePosition; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable jsdoc/require-param */ +/** + * Position library + */ + +var elementRect; +var popupRect; +var element; +var parentDocument; +// eslint-disable-next-line @typescript-eslint/ban-types +var fixedParent = false; +/** + * @private + */ +function calculateRelativeBasedPosition(anchor, element) { + // eslint-disable-next-line @typescript-eslint/ban-types + var fixedElement = false; + var anchorPos = { left: 0, top: 0 }; + var tempAnchor = anchor; + if (!anchor || !element) { + return anchorPos; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element.offsetParent) && element.style.position === 'fixed') { + fixedElement = true; + } + while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) { + anchorPos.left += anchor.offsetLeft; + anchorPos.top += anchor.offsetTop; + anchor = anchor.offsetParent; + } + anchor = tempAnchor; + while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) { + anchorPos.left -= anchor.scrollLeft; + anchorPos.top -= anchor.scrollTop; + anchor = anchor.parentElement; + } + return anchorPos; +} +/** + * @private + */ +function calculatePosition( +// eslint-disable-next-line @typescript-eslint/ban-types +currentElement, positionX, positionY, parentElement, targetValues) { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (positionY + positionX === 'topright') ? popupRect = undefined : popupRect = targetValues; + popupRect = targetValues; + fixedParent = parentElement ? true : false; + if (!currentElement) { + return { left: 0, top: 0 }; + } + if (!positionX) { + positionX = 'left'; + } + if (!positionY) { + positionY = 'top'; + } + parentDocument = currentElement.ownerDocument; + element = currentElement; + var pos = { left: 0, top: 0 }; + return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos); +} +/** + * @private + */ +function setPosx(value, pos) { + pos.left = value; +} +/** + * @private + */ +function setPosy(value, pos) { + pos.top = value; +} +/** + * @private + */ +function updatePosition(posX, posY, pos) { + elementRect = element.getBoundingClientRect(); + switch (posY + posX) { + case 'topcenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementTop(), pos); + break; + case 'topright': + setPosx(getElementRight(), pos); + setPosy(getElementTop(), pos); + break; + case 'centercenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'centerright': + setPosx(getElementRight(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'centerleft': + setPosx(getElementLeft(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'bottomcenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementBottom(), pos); + break; + case 'bottomright': + setPosx(getElementRight(), pos); + setPosy(getElementBottom(), pos); + break; + case 'bottomleft': + setPosx(getElementLeft(), pos); + setPosy(getElementBottom(), pos); + break; + default: + case 'topleft': + setPosx(getElementLeft(), pos); + setPosy(getElementTop(), pos); + break; + } + return pos; +} +/** + * @private + */ +function getBodyScrollTop() { + return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop; +} +/** + * @private + */ +function getBodyScrollLeft() { + return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft; +} +/** + * @private + */ +function getElementBottom() { + return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop(); +} +/** + * @private + */ +function getElementVCenter() { + return getElementTop() + (elementRect.height / 2); +} +/** + * @private + */ +function getElementTop() { + return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop(); +} +/** + * @private + */ +function getElementLeft() { + return elementRect.left + getBodyScrollLeft(); +} +/** + * @private + */ +function getElementRight() { + return elementRect.right + getBodyScrollLeft() - (popupRect ? popupRect.width : 0); +} +/** + * @private + */ +function getElementHCenter() { + return getElementLeft() + (elementRect.width / 2); +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js ***! + \*******************************************************************************/ +/*! exports provided: Thickness, Margin, Shadow, Stop, Gradient, DiagramGradient, LinearGradient, RadialGradient, ShapeStyle, StrokeStyle, TextStyle, DiagramShapeStyle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Thickness", function() { return Thickness; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Margin", function() { return Margin; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Shadow", function() { return Shadow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Stop", function() { return Stop; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Gradient", function() { return Gradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramGradient", function() { return DiagramGradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return LinearGradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return RadialGradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShapeStyle", function() { return ShapeStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StrokeStyle", function() { return StrokeStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextStyle", function() { return TextStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramShapeStyle", function() { return DiagramShapeStyle; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable @typescript-eslint/ban-types */ + +/** @private */ +// eslint-disable-next-line prefer-const +var getGradientType = function (obj) { + if (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + return DiagramGradient; + } + switch (obj.type) { + case 'Linear': + return LinearGradient; + case 'Radial': + return RadialGradient; + default: + return LinearGradient; + } + } + return LinearGradient; +}; +/** + * Layout Model module defines the styles and types to arrange objects in containers + */ +var Thickness = /** @__PURE__ @class */ (function () { + function Thickness(left, right, top, bottom) { + this.left = left; + this.right = right; + this.top = top; + this.bottom = bottom; + } + return Thickness; +}()); + +/** + * Defines the space to be left between an object and its immediate parent + */ +var Margin = /** @__PURE__ @class */ (function (_super) { + __extends(Margin, _super); + function Margin() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Margin.prototype, "left", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Margin.prototype, "right", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Margin.prototype, "top", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Margin.prototype, "bottom", void 0); + return Margin; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the Shadow appearance of the objects + * ```html + *
+ * ``` + * ```typescript + * let nodes: NodeModel[] = [{ id: 'node2', width: 100, height: 100, + * constraints: NodeConstraints.Default | NodeConstraints.Shadow, + * shadow: { angle: 45, distance: 5, opacity: 0.7, color: 'grey'} + * }]; + * let diagram: Diagram = new Diagram({ + * ... + * nodes: nodes, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +var Shadow = /** @__PURE__ @class */ (function (_super) { + __extends(Shadow, _super); + function Shadow() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(45) + ], Shadow.prototype, "angle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], Shadow.prototype, "distance", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.7) + ], Shadow.prototype, "opacity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('lightgrey') + ], Shadow.prototype, "color", void 0); + return Shadow; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the different colors and the region of color transitions + * ```html + *
+ * ``` + * ```typescript + * let stopscol: StopModel[] = []; + * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 }; + * stopscol.push(stops1); + * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 }; + * stopscol.push(stops2); + * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' }; + * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100, + * style: { gradient: gradient } + * }]; + * let diagram: Diagram = new Diagram({ + * ... + * nodes: nodes, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +var Stop = /** @__PURE__ @class */ (function (_super) { + __extends(Stop, _super); + function Stop() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @private + * Returns the name of class Stop + */ + Stop.prototype.getClassName = function () { + return 'Stop'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Stop.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Stop.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], Stop.prototype, "opacity", void 0); + return Stop; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Paints the node with a smooth transition from one color to another color + */ +var Gradient = /** @__PURE__ @class */ (function (_super) { + __extends(Gradient, _super); + function Gradient() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Stop) + ], Gradient.prototype, "stops", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Gradient.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Gradient.prototype, "id", void 0); + return Gradient; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the linear gradient of styles + * ```html + *
+ * ``` + * ```typescript + * let stopscol: StopModel[] = []; + * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 }; + * stopscol.push(stops1); + * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 }; + * stopscol.push(stops2); + * let gradient: LinearGradientModel = { x1: 0, x2: 50, y1: 0, y2: 50, stops: stopscol, type: 'Linear' }; + * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100, + * style: { gradient: gradient } + * }]; + * let diagram: Diagram = new Diagram({ + * ... + * nodes: nodes, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +/** + * Paints the node with linear color transitions + */ +var DiagramGradient = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramGradient, _super); + function DiagramGradient() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "x1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "x2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "y1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "y2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "cx", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "cy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "fx", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramGradient.prototype, "fy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(50) + ], DiagramGradient.prototype, "r", void 0); + return DiagramGradient; +}(Gradient)); + +/** + * Paints the node with linear color transitions + */ +var LinearGradient = /** @__PURE__ @class */ (function (_super) { + __extends(LinearGradient, _super); + function LinearGradient() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], LinearGradient.prototype, "x1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], LinearGradient.prototype, "x2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], LinearGradient.prototype, "y1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], LinearGradient.prototype, "y2", void 0); + return LinearGradient; +}(Gradient)); + +/** + * A focal point defines the beginning of the gradient, and a circle defines the end point of the gradient + * ```html + *
+ * ``` + * ```typescript + * let stopscol: StopModel[] = []; + * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 }; + * stopscol.push(stops1); + * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 }; + * stopscol.push(stops2); + * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' }; + * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100, + * style: { gradient: gradient } + * }]; + * let diagram: Diagram = new Diagram({ + * ... + * nodes: nodes, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +var RadialGradient = /** @__PURE__ @class */ (function (_super) { + __extends(RadialGradient, _super); + function RadialGradient() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], RadialGradient.prototype, "cx", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], RadialGradient.prototype, "cy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], RadialGradient.prototype, "fx", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], RadialGradient.prototype, "fy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(50) + ], RadialGradient.prototype, "r", void 0); + return RadialGradient; +}(Gradient)); + +/** + * Defines the style of shape/path + */ +var ShapeStyle = /** @__PURE__ @class */ (function (_super) { + __extends(ShapeStyle, _super); + function ShapeStyle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('white') + ], ShapeStyle.prototype, "fill", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('black') + ], ShapeStyle.prototype, "strokeColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ShapeStyle.prototype, "strokeDashArray", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], ShapeStyle.prototype, "strokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], ShapeStyle.prototype, "opacity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ComplexFactory"])(getGradientType) + ], ShapeStyle.prototype, "gradient", void 0); + return ShapeStyle; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the stroke style of a path + */ +var StrokeStyle = /** @__PURE__ @class */ (function (_super) { + __extends(StrokeStyle, _super); + function StrokeStyle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], StrokeStyle.prototype, "fill", void 0); + return StrokeStyle; +}(ShapeStyle)); + +/** + * Defines the appearance of text + * ```html + *
+ * ``` + * ```typescript + * let style: TextStyleModel = { strokeColor: 'black', opacity: 0.5, whiteSpace:'CollapseSpace', strokeWidth: 1 }; + * let node: NodeModel; + * node = { + * ... + * id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100, + * annotations : [{ + * content: 'text', style: style }]; + * ... + * }; + * let diagram: Diagram = new Diagram({ + * ... + * nodes: [node], + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +var TextStyle = /** @__PURE__ @class */ (function (_super) { + __extends(TextStyle, _super); + function TextStyle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('black') + ], TextStyle.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Arial') + ], TextStyle.prototype, "fontFamily", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(12) + ], TextStyle.prototype, "fontSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextStyle.prototype, "italic", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextStyle.prototype, "bold", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('CollapseSpace') + ], TextStyle.prototype, "whiteSpace", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('WrapWithOverflow') + ], TextStyle.prototype, "textWrapping", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], TextStyle.prototype, "textAlign", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], TextStyle.prototype, "textDecoration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Wrap') + ], TextStyle.prototype, "textOverflow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], TextStyle.prototype, "fill", void 0); + return TextStyle; +}(ShapeStyle)); + +/** + * Defines the style of shape/path + */ +var DiagramShapeStyle = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramShapeStyle, _super); + function DiagramShapeStyle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('white') + ], DiagramShapeStyle.prototype, "fill", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Wrap') + ], DiagramShapeStyle.prototype, "textOverflow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], DiagramShapeStyle.prototype, "strokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ComplexFactory"])(getGradientType) + ], DiagramShapeStyle.prototype, "gradient", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], DiagramShapeStyle.prototype, "opacity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], DiagramShapeStyle.prototype, "italic", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramShapeStyle.prototype, "strokeDashArray", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('black') + ], DiagramShapeStyle.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(12) + ], DiagramShapeStyle.prototype, "fontSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Arial') + ], DiagramShapeStyle.prototype, "fontFamily", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('CollapseSpace') + ], DiagramShapeStyle.prototype, "whiteSpace", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], DiagramShapeStyle.prototype, "textAlign", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], DiagramShapeStyle.prototype, "textDecoration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], DiagramShapeStyle.prototype, "bold", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('black') + ], DiagramShapeStyle.prototype, "strokeColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('WrapWithOverflow') + ], DiagramShapeStyle.prototype, "textWrapping", void 0); + return DiagramShapeStyle; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js": +/*!**************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js ***! + \**************************************************************************************/ +/*! exports provided: Canvas */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Canvas", function() { return Canvas; }); +/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _elements_text_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable valid-jsdoc */ + + + + + + +/** + * Canvas module is used to define a plane(canvas) and to arrange the children based on margin + */ +var Canvas = /** @__PURE__ @class */ (function (_super) { + __extends(Canvas, _super); + function Canvas() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /** + * Not applicable for canvas + * + * @private + */ + _this.measureChildren = undefined; + return _this; + } + /** + * Measures the minimum space that the canvas requires \ + * + * @returns { Size } Measures the minimum space that the canvas requires .\ + * @param {string} id - provide the id value. + * @param {Function} callback - provide the Connector value. + * + * @private + */ + Canvas.prototype.measure = function (availableSize, id, callback) { + var desired = undefined; + var desiredBounds = undefined; + if (this.hasChildren()) { + //Measuring the children + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"]) { + if (child.canMeasure) { + availableSize.width = availableSize.width || this.maxWidth || this.minWidth; + child.measure(availableSize); + } + } + else if (!(child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"])) { + child.measure(availableSize, id, callback); + } + var childSize = child.desiredSize.clone(); + if (child.rotateAngle !== 0) { + childSize = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["rotateSize"])(childSize, child.rotateAngle); + } + var right = childSize.width + child.margin.right; + var bottom = childSize.height + child.margin.bottom; + var childBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](child.margin.left, child.margin.top, right, bottom); + if (child.float) { + var position = child.getAbsolutePosition(childSize); + if (position !== undefined) { + continue; + } + } + if ((!(child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"])) || (child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"] && child.canConsiderBounds)) { + if (desiredBounds === undefined) { + desiredBounds = childBounds; + } + else { + desiredBounds.uniteRect(childBounds); + } + } + } + if (desiredBounds) { + var leftMargin = 0; + var topMargin = 0; + leftMargin = Math.max(desiredBounds.left, 0); + topMargin = Math.max(desiredBounds.top, 0); + desired = new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](desiredBounds.width + leftMargin, desiredBounds.height + topMargin); + } + } + desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize); + _super.prototype.stretchChildren.call(this, desired); + //Considering padding values + desired.width += this.padding.left + this.padding.right; + desired.height += this.padding.top + this.padding.bottom; + this.desiredSize = desired; + return desired; + }; + /** + * Arranges the child elements of the canvas + */ + Canvas.prototype.arrange = function (desiredSize, isStack) { + this.outerBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](); + if (this.hasChildren()) { + //let y: number; + //let x: number; + var y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top; + var x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left; + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + if ((child.transform & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["Transform"].Parent) !== 0) { + child.parentTransform = this.parentTransform + this.rotateAngle; + if (this.flip !== 'None' || this.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["ElementAction"].ElementIsGroup) { + child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ? + -child.parentTransform : child.parentTransform; + } + var childSize = child.desiredSize.clone(); + var topLeft = void 0; + var center = { x: 0, y: 0 }; + var childX = x; + var childY = y; + if (child.relativeMode === 'Point') { + var position = child.getAbsolutePosition(desiredSize); + if (position !== undefined) { + childX += position.x; + childY += position.y; + } + } + if (child.relativeMode === 'Object') { + topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY); + } + else { + topLeft = this.alignChildBasedOnaPoint(child, childX, childY); + } + center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 }; + _super.prototype.findChildOffsetFromCenter.call(this, child, center); + } + if (isStack && (child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) { + child.arrange(desiredSize); + } + else { + if (child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"] && child.canMeasure) { + child.arrange(child.desiredSize); + this.outerBounds.uniteRect(child.outerBounds); + } + else if (!(child instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"])) { + child.arrange(child.desiredSize); + this.outerBounds.uniteRect(child.outerBounds); + } + } + } + } + this.actualSize = desiredSize; + this.updateBounds(); + this.outerBounds.uniteRect(this.bounds); + return desiredSize; + }; + //Aligns the child element based on its parent + Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) { + switch (child.horizontalAlignment) { + case 'Auto': + case 'Left': + x += child.margin.left; + break; + case 'Right': + x += parentSize.width - childSize.width - child.margin.right; + break; + case 'Stretch': + case 'Center': + x += parentSize.width / 2 - childSize.width / 2; + break; + } + switch (child.verticalAlignment) { + case 'Auto': + case 'Top': + y += child.margin.top; + break; + case 'Bottom': + y += parentSize.height - childSize.height - child.margin.bottom; + break; + case 'Stretch': + case 'Center': + y += parentSize.height / 2 - childSize.height / 2; + break; + } + return { x: x, y: y }; + }; + //Aligns the child elements based on a point + Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) { + x += child.margin.left - child.margin.right; + y += child.margin.top - child.margin.bottom; + switch (child.horizontalAlignment) { + case 'Auto': + case 'Left': + x = child.inversedAlignment ? x : (x - child.desiredSize.width); + break; + case 'Stretch': + case 'Center': + x -= child.desiredSize.width * child.pivot.x; + break; + case 'Right': + x = child.inversedAlignment ? (x - child.desiredSize.width) : x; + break; + } + switch (child.verticalAlignment) { + case 'Auto': + case 'Top': + y = child.inversedAlignment ? y : (y - child.desiredSize.height); + break; + case 'Stretch': + case 'Center': + y -= child.desiredSize.height * child.pivot.y; + break; + case 'Bottom': + y = child.inversedAlignment ? (y - child.desiredSize.height) : y; + break; + } + return { x: x, y: y }; + }; + return Canvas; +}(_container__WEBPACK_IMPORTED_MODULE_0__["Container"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js ***! + \*****************************************************************************************/ +/*! exports provided: Container */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Container", function() { return Container; }); +/* harmony import */ var _elements_diagram_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _appearance__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable @typescript-eslint/no-unused-vars */ + + + + + + +/** + * Container module is used to group related objects + */ +var Container = /** @__PURE__ @class */ (function (_super) { + __extends(Container, _super); + function Container() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /** + * Gets/Sets the space between the container and its immediate children + */ + _this.padding = new _appearance__WEBPACK_IMPORTED_MODULE_2__["Thickness"](0, 0, 0, 0); + //private members + _this.desiredBounds = undefined; + /** @private */ + _this.measureChildren = true; + /** @private */ + _this.prevRotateAngle = 0; + return _this; + } + /** + * returns whether the container has child elements or not + */ + Container.prototype.hasChildren = function () { + if (this.children !== undefined && this.children.length > 0) { + return true; + } + return false; + }; + /** + * Measures the minimum space that the container requires + * + * @param {Size} availableSize + * @param {string} id + * @param {Function} callback + */ + Container.prototype.measure = function (availableSize, id, callback) { + // measure the element and find the desired size + this.desiredBounds = undefined; + var desired = undefined; + var child; + var center = { x: 0, y: 0 }; + var y; + var x; + var childBounds; + if (this.hasChildren()) { + //Measuring the children + for (var i = 0; i < this.children.length; i++) { + child = this.children[parseInt(i.toString(), 10)]; + if (child.horizontalAlignment === 'Stretch' && !availableSize.width) { + availableSize.width = child.bounds.width; + } + if (child.verticalAlignment === 'Stretch' && !availableSize.height) { + availableSize.height = child.bounds.height; + } + var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch'; + if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) { + child.measure(availableSize, id, callback); + } + childBounds = this.GetChildrenBounds(child); + if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') { + if (this.desiredBounds === undefined) { + this.desiredBounds = childBounds; + } + else { + this.desiredBounds.uniteRect(childBounds); + } + } + else if (this.actualSize && !this.actualSize.width && !this.actualSize.height && + !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') { + if (this.desiredBounds === undefined) { + this.desiredBounds = child.bounds; + } + else { + this.desiredBounds.uniteRect(child.bounds); + } + } + } + if (this.desiredBounds !== undefined && this.rotateAngle !== 0) { + var offsetPt = { + x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x, + y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y + }; + var newPoint = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(this.rotateAngle, undefined, undefined, offsetPt); + this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x; + this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y; + } + /** + * Adding padding to the group bounds during initial rendering and for the group selection + */ + if (this.desiredBounds !== undefined) { + this.desiredBounds.width += this.padding.left + this.padding.right; + this.desiredBounds.height += this.padding.top + this.padding.bottom; + this.desiredBounds.x -= this.padding.left; + this.desiredBounds.y -= this.padding.top; + } + if (this.desiredBounds) { + desired = new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.desiredBounds.width, this.desiredBounds.height); + } + } + desired = this.validateDesiredSize(desired, availableSize); + this.stretchChildren(desired); + this.desiredSize = desired; + return desired; + }; + /** + * Arranges the container and its children + * + * @param {Size} desiredSize - provide the desiredSize value + */ + Container.prototype.arrange = function (desiredSize) { + var child; + var bounds; + var childBounds = this.desiredBounds; + if (childBounds) { + var x = this.offsetX; + var y = this.offsetY; + this.offsetX = childBounds.x + childBounds.width * this.pivot.x; + this.offsetY = childBounds.y + childBounds.height * this.pivot.y; + // container has rotateAngle + if (this.hasChildren()) { + //Measuring the children + for (var i = 0; i < this.children.length; i++) { + child = this.children[parseInt(i.toString(), 10)]; + var arrange = false; + if (child.horizontalAlignment === 'Stretch') { + child.offsetX = this.offsetX; + child.parentTransform = this.parentTransform + this.rotateAngle; + if (this.flip && (this.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ElementAction"].ElementIsGroup)) { + child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ? + -child.parentTransform : child.parentTransform; + } + arrange = true; + } + if (child.verticalAlignment === 'Stretch') { + child.offsetY = this.offsetY; + child.parentTransform = this.parentTransform + this.rotateAngle; + arrange = true; + } + if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) { + child.arrange(child.desiredSize); + } + } + } + } + this.actualSize = desiredSize; + this.updateBounds(); + this.prevRotateAngle = this.rotateAngle; + return desiredSize; + }; + //protected methods + /** + * Stretches the child elements based on the size of the container + * + * @param {Size} size - provide the size value + */ + Container.prototype.stretchChildren = function (size) { + if (this.hasChildren()) { + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) { + child.desiredSize.width = size.width - child.margin.left - child.margin.right; + } + if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) { + child.desiredSize.height = size.height - child.margin.top - child.margin.bottom; + } + if (child instanceof Container) { + child.stretchChildren(child.desiredSize); + } + } + } + }; + /** + * Considers the padding of the element when measuring its desired size + * @param {Size} size - provide the size value + */ + Container.prototype.applyPadding = function (size) { + size.width += this.padding.left + this.padding.right; + size.height += this.padding.top + this.padding.bottom; + }; + /** + * Finds the offset of the child element with respect to the container + * + * @param {DiagramElement} child - provide the child value + * @param {PointModel} center - provide the center value + */ + Container.prototype.findChildOffsetFromCenter = function (child, center) { + var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 }; + var offset = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getOffset"])(topLeft, child); + //Rotate based on child rotate angle + offset = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(child.rotateAngle, center.x, center.y, offset); + //Rotate based on parent pivot + offset = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset); + child.offsetX = offset.x; + child.offsetY = offset.y; + }; + //private methods - check its need + Container.prototype.GetChildrenBounds = function (child) { + var childBounds; + var childSize = child.desiredSize.clone(); + var diffAngle = child.rotateAngle - this.rotateAngle; + var refPoint = { x: child.offsetX, y: child.offsetY }; + var left = refPoint.x - childSize.width * child.pivot.x; + var top = refPoint.y - childSize.height * child.pivot.y; + var right = left + childSize.width; + var bottom = top + childSize.height; + var topLeft = { x: left, y: top }; + var topRight = { x: right, y: top }; + var bottomLeft = { x: left, y: bottom }; + var bottomRight = { x: right, y: bottom }; + topLeft = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(child.rotateAngle, child.offsetX, child.offsetY, topLeft); + topRight = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(child.rotateAngle, child.offsetX, child.offsetY, topRight); + bottomLeft = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft); + bottomRight = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(child.rotateAngle, child.offsetX, child.offsetY, bottomRight); + if (this.rotateAngle !== 0) { + topLeft = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(-this.rotateAngle, undefined, undefined, topLeft); + topRight = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(-this.rotateAngle, undefined, undefined, topRight); + bottomLeft = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(-this.rotateAngle, undefined, undefined, bottomLeft); + bottomRight = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["rotatePoint"])(-this.rotateAngle, undefined, undefined, bottomRight); + } + return _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"].toBounds([topLeft, topRight, bottomLeft, bottomRight]); + }; + return Container; +}(_elements_diagram_element__WEBPACK_IMPORTED_MODULE_0__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js ***! + \************************************************************************************/ +/*! exports provided: GridPanel, RowDefinition, ColumnDefinition, GridRow, GridCell */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridPanel", function() { return GridPanel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDefinition", function() { return RowDefinition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnDefinition", function() { return ColumnDefinition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridRow", function() { return GridRow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return GridCell; }); +/* harmony import */ var _elements_diagram_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _canvas__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _elements_text_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +/* eslint-disable no-self-assign */ + + + + + + +/** + * Grid panel is used to arrange the children in a table like structure + */ +var GridPanel = /** @__PURE__ @class */ (function (_super) { + __extends(GridPanel, _super); + function GridPanel() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.childTable = []; + _this.cellStyle = {}; + _this.desiredRowHeight = []; + _this.desiredCellWidth = []; + return _this; + } + /** + * rowDefinitions method \ + * + * @returns { RowDefinition[] } columnDefinitions method .\ + * + * @private + */ + GridPanel.prototype.rowDefinitions = function () { + return this.rowDefns; + }; + /** + * columnDefinitions method \ + * + * @returns { ColumnDefinition[] } columnDefinitions method .\ + * + * @private + */ + GridPanel.prototype.columnDefinitions = function () { + return this.colDefns; + }; + GridPanel.prototype.addObject = function (obj, rowId, columnId, rowSpan, columnSpan) { + //check if exists + if (this.rows.length >= rowId) { + var row = this.rows[parseInt(rowId.toString(), 10)]; + if (row.cells.length > columnId) { + columnSpan = columnSpan || 1; + rowSpan = rowSpan || 1; + var cell = row.cells[parseInt(columnId.toString(), 10)]; + cell.columnSpan = Math.max(columnSpan, cell.columnSpan); + cell.rowSpan = Math.max(rowSpan, cell.rowSpan); + var object = new GridCellItem(); + object = obj; + object.rowId = rowId; + object.columnId = columnId; + object.columnSpan = columnSpan; + this.childTable[object.id] = object; + this.addObjectToCell(object, cell); + } + } + }; + // public setCellStyle(rowId: number, columnId: number, cellStyle: ShapeStyleModel): void { + // if (this.rows.length > rowId) { + // let row: GridRow = this.rows[rowId]; + // if (row.cells.length > columnId) { + // let cell: GridCell = row.cells[columnId]; + // cell.style = cellStyle; + // } + // } + // } + // public getRowId(obj: DiagramElement): number { + // return (this.childTable[obj.id] as GridCellItem).rowId; + // } + // public getColumnId(obj: DiagramElement): number { + // return (this.childTable[obj.id] as GridCellItem).columnId; + // } + // public getRowSpan(obj: DiagramElement): number { + // return (this.childTable[obj.id] as GridCellItem).rowSpan; + // } + // public getColumnSpan(obj: DiagramElement): number { + // return (this.childTable[obj.id] as GridCellItem).columnSpan; + // } + GridPanel.prototype.addObjectToCell = function (obj, cell) { + if (!cell.children) { + cell.children = []; + } + // obj.minWidth = cell.desiredCellWidth; obj.minHeight = cell.desiredCellHeight; + obj.style.strokeColor = 'black'; + obj.style.strokeWidth = 1; + obj.style.fill = 'white'; + cell.children.push(obj); + }; + /** + * updateProperties method \ + * + * @returns { void } updateProperties method .\ + * @param {number} offsetX - provide the Connector value. + * @param {number} offsetY - provide the Connector value. + * @param {number} width - provide the Connector value. + * @param {number} height - provide the Connector value. + * + * @private + */ + GridPanel.prototype.updateProperties = function (offsetX, offsetY, width, height) { + this.offsetX = offsetX; + this.offsetY = offsetY; + this.width = width; + this.height = height; + }; + /** + * setDefinitions method \ + * + * @returns { void } setDefinitions method .\ + * @param {RowDefinition[]} rows - provide the rows value. + * @param {ColumnDefinition[]} columns - provide the Connector value. + * + * @private + */ + GridPanel.prototype.setDefinitions = function (rows, columns) { + this.rowDefns = rows; + this.colDefns = columns; + this.children = []; + this.rows = this.rows || []; + for (var i = 0; i < rows.length; i++) { + var rowDefn = rows[parseInt(i.toString(), 10)]; + var row = new GridRow(); + row.cells = []; + var defaultCell = new ColumnDefinition(); + //replace this 100 with a proper property + defaultCell.width = this.width; + var columns_1 = this.colDefns; + if (columns_1 === undefined || columns_1.length < 1) { + columns_1 = [defaultCell]; + } + this.addCellInRow(columns_1, rowDefn, row); + this.rows.push(row); + } + }; + /** + * addCellInRow method \ + * + * @returns { void } addCellInRow method .\ + * @param {ColumnDefinition[]} columns - provide the rows value. + * @param {RowDefinition} rowDefn - provide the Connector value. + * @param {GridRow} row - provide the Connector value. + * + * @private + */ + GridPanel.prototype.addCellInRow = function (columns, rowDefn, row) { + for (var j = 0; j < columns.length; j++) { + var colDefn = columns[parseInt(j.toString(), 10)]; + var cell = new GridCell(); + cell.children = []; + this.cellStyle.fill = 'none'; + this.cellStyle.strokeColor = 'none'; + cell.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["randomId"])(); + cell.style = this.cellStyle; + cell.desiredCellWidth = cell.minWidth = colDefn.width; + cell.desiredCellHeight = cell.minHeight = rowDefn.height; + row.cells.push(cell); + this.children.push(cell); + } + }; + /** + * calculateSize method \ + * + * @returns { void } calculateSize method .\ + * + * @private + */ + GridPanel.prototype.calculateSize = function () { + var rows = this.rows || []; + var calculateHeight = 0; + var calculateWidth = 0; + for (var i = 0; i < rows.length; i++) { + var row = this.rows[parseInt(i.toString(), 10)]; + calculateWidth = 0; + for (var j = 0; j < row.cells.length; j++) { + calculateWidth += row.cells[parseInt(j.toString(), 10)].desiredCellWidth; + if (j === row.cells.length - 1) { + if (this.width && this.width !== calculateWidth) { + row.cells[parseInt(j.toString(), 10)].desiredCellWidth += (this.width - calculateWidth); + row.cells[parseInt(j.toString(), 10)].minWidth = row.cells[parseInt(j.toString(), 10)].desiredCellWidth; + if (row.cells[parseInt(j.toString(), 10)].children && row.cells[parseInt(j.toString(), 10)].children.length) { + row.cells[parseInt(j.toString(), 10)].children[0].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth; + } + this.colDefns[parseInt(j.toString(), 10)].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth; + } + calculateHeight += row.cells[parseInt(j.toString(), 10)].desiredCellHeight; + if (i === rows.length - 1) { + if (this.height && this.height !== calculateHeight) { + var height = (this.height - calculateHeight); + if (height > 0) { + for (var k = 0; k < row.cells.length; k++) { + row.cells[parseInt(k.toString(), 10)].desiredCellHeight += height; + row.cells[parseInt(k.toString(), 10)].minHeight = row.cells[parseInt(k.toString(), 10)].desiredCellHeight = row.cells[parseInt(k.toString(), 10)].desiredCellHeight; + if (row.cells[parseInt(k.toString(), 10)].children && row.cells[parseInt(k.toString(), 10)].children.length) { + row.cells[parseInt(k.toString(), 10)].children[0].height = row.cells[parseInt(k.toString(), 10)].desiredCellHeight; + } + } + this.rowDefns[parseInt(i.toString(), 10)].height += height; + } + } + } + } + } + } + }; + /** + * updateRowHeight method \ + * + * @returns { void } updateRowHeight method .\ + * @param {number} rowId - provide the rows value. + * @param {number} height - provide the Connector value. + * @param {boolean} isConsiderChild - provide the Connector value. + * @param {number} padding - provide the Connector value. + * + * @private + */ + GridPanel.prototype.updateRowHeight = function (rowId, height, isConsiderChild, padding) { + var row = this.rows[parseInt(rowId.toString(), 10)]; + this.rowDefns[parseInt(rowId.toString(), 10)].height = height; + if (this.height !== undefined) { + this.height += height - row.cells[0].desiredCellHeight; + } + for (var i = 0; i < row.cells.length; i++) { + row.cells[parseInt(i.toString(), 10)].desiredCellHeight = row.cells[parseInt(i.toString(), 10)].minHeight = height; + if (row.cells[parseInt(i.toString(), 10)].children && row.cells[parseInt(i.toString(), 10)].children.length) { + row.cells[parseInt(i.toString(), 10)].children[0].height = height; + this.setTextRefresh(row.cells[parseInt(i.toString(), 10)].children[0]); + } + } + this.desiredRowHeight[parseInt(rowId.toString(), 10)] = height; + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + if (isConsiderChild) { + var minHeight = (padding !== undefined) ? this.calculateCellHeightBasedOnChildren(rowId, padding) : + this.calculateCellHeight(rowId); + if (minHeight > height) { + this.updateRowHeight(rowId, minHeight, false); + } + } + }; + GridPanel.prototype.setTextRefresh = function (canvas) { + if (canvas.children && canvas.children.length) { + // eslint-disable-next-line @typescript-eslint/ban-types + var children = canvas.children; + for (var i = 0; i < children.length; i++) { + if (children[parseInt(i.toString(), 10)] instanceof _elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"]) { + children[parseInt(i.toString(), 10)].refreshTextElement(); + } + if (children[parseInt(i.toString(), 10)] instanceof _canvas__WEBPACK_IMPORTED_MODULE_1__["Canvas"]) { + this.setTextRefresh(children[parseInt(i.toString(), 10)]); + } + } + } + }; + /** + * updateColumnWidth method \ + * + * @returns { void } updateColumnWidth method .\ + * @param {number} colId - provide the rows value. + * @param {number} width - provide the Connector value. + * @param {boolean} isConsiderChild - provide the Connector value. + * @param {number} padding - provide the Connector value. + * + * @private + */ + GridPanel.prototype.updateColumnWidth = function (colId, width, isConsiderChild, padding) { + this.colDefns[parseInt(colId.toString(), 10)].width = width; + if (this.width !== undefined) { + this.width += width - this.rows[this.rows.length - 1].cells[parseInt(colId.toString(), 10)].desiredCellWidth; + } + for (var i = 0; i < this.rows.length; i++) { + this.setTextRefresh(this.rows[parseInt(i.toString(), 10)].cells[0]); + this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].desiredCellWidth = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].minWidth = width; + if (this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children && this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children.length) { + this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children[0].width = width; + } + } + this.desiredCellWidth[parseInt(colId.toString(), 10)] = width; + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + if (isConsiderChild) { + var minWidth = (padding !== undefined) ? this.calculateCellWidthBasedOnChildren(colId, padding) : + this.calculateCellWidth(colId); + if (minWidth > width) { + this.updateColumnWidth(colId, minWidth, false); + } + } + }; + GridPanel.prototype.calculateCellWidth = function (colIndex) { + var maxWidth; + var width; + var cell; + for (var i = 0; i < this.rows.length; i++) { + cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)]; + if (cell.columnSpan === 1) { + width = (cell.outerBounds.width > cell.bounds.width && + (cell.children.length === 0 || cell.children[0].maxWidth === undefined)) ? cell.outerBounds.width : cell.bounds.width; + if (maxWidth) { + maxWidth = (maxWidth < width) ? width : maxWidth; + } + else { + maxWidth = width; + } + } + } + return maxWidth; + }; + GridPanel.prototype.calculateCellHeight = function (rowIndex) { + var maxHeight; + var height; + var cell; + var row = this.rows[parseInt(rowIndex.toString(), 10)]; + for (var i = 0; i < row.cells.length; i++) { + cell = row.cells[parseInt(i.toString(), 10)]; + height = (cell.outerBounds.height > cell.bounds.height) ? cell.outerBounds.height : cell.bounds.height; + if (maxHeight) { + maxHeight = (maxHeight < height) ? height : maxHeight; + } + else { + maxHeight = height; + } + } + return maxHeight; + }; + GridPanel.prototype.calculateCellSizeBasedOnChildren = function (cell, option, padding, maxSize) { + var maxBounds; + var canvas = (cell && cell.children.length > 0) ? cell.children[0] : undefined; + if (canvas && cell.columnSpan === 1) { + maxBounds = (option === 'Width') ? canvas.bounds.right : canvas.bounds.bottom; + if (!maxSize) { + maxSize = (option === 'Width') ? canvas.bounds.width : canvas.bounds.height; + } + for (var j = 0; j < canvas.children.length; j++) { + var children = canvas.children[parseInt(j.toString(), 10)]; + if (children instanceof _canvas__WEBPACK_IMPORTED_MODULE_1__["Canvas"]) { + if (children.id.indexOf('header') === -1) { + var bounds = ((option === 'Width') ? children.bounds.right : children.bounds.bottom) + padding; + if (bounds > maxBounds) { + var size = (bounds - maxBounds) + ((option === 'Width') ? canvas.bounds.width : canvas.bounds.height); + if (maxSize) { + maxSize = (maxSize < size) ? size : maxSize; + } + } + } + } + } + } + return maxSize; + }; + GridPanel.prototype.calculateCellWidthBasedOnChildren = function (colIndex, padding) { + var maxWidth; //let width: number; let maxBounds: number; let canvas: Canvas; + var cell; + for (var i = 0; i < this.rows.length; i++) { + cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)]; + maxWidth = this.calculateCellSizeBasedOnChildren(cell, 'Width', padding, maxWidth); + } + return maxWidth; + }; + GridPanel.prototype.calculateCellHeightBasedOnChildren = function (rowIndex, padding) { + var maxHeight; + var cell; + // let maxBounds: number; let canvas: Canvas; + var row = this.rows[parseInt(rowIndex.toString(), 10)]; + for (var i = 0; i < row.cells.length; i++) { + cell = row.cells[parseInt(i.toString(), 10)]; + maxHeight = this.calculateCellSizeBasedOnChildren(cell, 'Height', padding, maxHeight); + } + return maxHeight; + }; + /** + * addRow method \ + * + * @returns { void } addRow method .\ + * @param {number} rowId - provide the rowId value. + * @param {number} rowDefn - provide the rowDefn value. + * @param {boolean} isMeasure - provide the isMeasure value. + * + * @private + */ + GridPanel.prototype.addRow = function (rowId, rowDefn, isMeasure) { + if (this.rowDefns.length > 0) { + this.rowDefns.splice(rowId, 0, rowDefn); + } + else { + this.rowDefns.push(rowDefn); + } + var row = new GridRow(); + row.cells = []; + var defaultCell = new ColumnDefinition(); + defaultCell.width = this.width; + var columns = this.colDefns; + this.addCellInRow(columns, rowDefn, row); + if (rowId > this.rows.length - 1) { + this.rows.push(row); + } + else { + this.rows.splice(rowId, 0, row); + } + if (isMeasure) { + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + } + }; + /** + * addColumn method \ + * + * @returns { void } addColumn method .\ + * @param {number} columnId - provide the rowId value. + * @param {number} column - provide the rowDefn value. + * @param {boolean} isMeasure - provide the isMeasure value. + * + * @private + */ + GridPanel.prototype.addColumn = function (columnId, column, isMeasure) { + var row; + var rowDefn; + var colDefn; + var cell; + var rows = this.rows; + if (this.colDefns.length > 0) { + this.colDefns.splice(columnId, 0, column); + } + else { + this.colDefns.push(column); + } + if (this.width !== undefined) { + this.width += column.width; + } + for (var i = 0; i < rows.length; i++) { + row = rows[parseInt(i.toString(), 10)]; + rowDefn = this.rowDefns[parseInt(i.toString(), 10)]; + colDefn = column; + cell = new GridCell(); + cell.style = this.cellStyle; + cell.desiredCellWidth = cell.minWidth = colDefn.width; + cell.desiredCellHeight = cell.minHeight = rowDefn.height; + cell.children = []; + if (columnId > row.cells.length - 1) { + row.cells.push(cell); + } + else { + row.cells.splice(columnId, 0, cell); + } + this.children.push(cell); + } + if (isMeasure) { + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + } + }; + /** + * removeRow method \ + * + * @returns { void } removeRow method .\ + * @param {number} rowId - provide the rowId value. + * + * @private + */ + GridPanel.prototype.removeRow = function (rowId) { + var cell; + var element; + var rows = this.rows; + var removeRow = rows[parseInt(rowId.toString(), 10)]; + this.height -= this.rowDefns[parseInt(rowId.toString(), 10)].height; + for (var i = 0; i < removeRow.cells.length; i++) { + cell = removeRow.cells[parseInt(i.toString(), 10)]; + this.children.splice(this.children.indexOf(cell), 1); + element = document.getElementById(cell.id + '_groupElement'); + if (element && element.parentElement) { + element.parentElement.removeChild(element); + } + } + this.rows.splice(rowId, 1); + this.rowDefns.splice(rowId, 1); + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + }; + /** + * removeColumn method \ + * + * @returns { void } removeColumn method .\ + * @param {number} columnId - provide the rowId value. + * + * @private + */ + GridPanel.prototype.removeColumn = function (columnId) { + var cell; + var element; + var rows = this.rows; + this.width -= this.colDefns[parseInt(columnId.toString(), 10)].width; + for (var i = 0; i < rows.length; i++) { + cell = rows[parseInt(i.toString(), 10)].cells[parseInt(columnId.toString(), 10)]; + this.children.splice(this.children.indexOf(cell), 1); + element = document.getElementById(cell.id + '_groupElement'); + if (element && element.parentElement) { + element.parentElement.removeChild(element); + } + rows[parseInt(i.toString(), 10)].cells.splice(columnId, 1); + } + this.colDefns.splice(columnId, 1); + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + }; + /** + * updateRowIndex method \ + * + * @returns { void } updateRowIndex method .\ + * @param {number} currentIndex - provide the rowId value. + * @param {number} newIndex - provide the rowId value. + * + * @private + */ + GridPanel.prototype.updateRowIndex = function (currentIndex, newIndex) { + //const rows: GridRow[] = this.rows; + var temp = this.rows[parseInt(currentIndex.toString(), 10)]; + this.rows.splice(currentIndex, 1); + this.rows.splice(newIndex, 0, temp); + var tempRow = this.rowDefns[parseInt(currentIndex.toString(), 10)]; + this.rowDefns.splice(currentIndex, 1); + this.rowDefns.splice(newIndex, 0, tempRow); + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + }; + /** + * updateColumnIndex method \ + * + * @returns { void } updateColumnIndex method .\ + * @param {number} startRowIndex - provide the startRowIndex value. + * @param {number} currentIndex - provide the currentIndex value. + * @param {number} newIndex - provide the newIndex value. + * + * @private + */ + GridPanel.prototype.updateColumnIndex = function (startRowIndex, currentIndex, newIndex) { + var temp; + var cell; + for (var i = startRowIndex; i < this.rows.length; i++) { + temp = this.rows[parseInt(i.toString(), 10)]; + cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(currentIndex.toString(), 10)]; + temp.cells.splice(currentIndex, 1); + temp.cells.splice(newIndex, 0, cell); + } + var tempCol = this.colDefns[parseInt(currentIndex.toString(), 10)]; + this.colDefns.splice(currentIndex, 1); + this.colDefns.splice(newIndex, 0, tempCol); + var tempSize = this.desiredCellWidth[parseInt(currentIndex.toString(), 10)]; + this.desiredCellWidth.splice(currentIndex, 1); + this.desiredCellWidth.splice(newIndex, 0, tempSize); + this.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width, this.height)); + this.arrange(this.desiredSize); + }; + /** + * measure method \ + * + * @returns { Size } measure method .\ + * @param {Size} availableSize - provide the startRowIndex value. + * + * @private + */ + GridPanel.prototype.measure = function (availableSize) { + var desired = undefined; + if (this.rows !== undefined && this.rows.length > 0) { + var i = 0; + var j = 0; + desired = new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](0, 0); + this.calculateSize(); + for (var _i = 0, _a = this.rows; _i < _a.length; _i++) { + var row = _a[_i]; + j = 0; + for (var _b = 0, _c = row.cells; _b < _c.length; _b++) { + var cell = _c[_b]; + var size = cell.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](cell.desiredCellWidth, cell.desiredCellHeight)); + if (cell.rowSpan === 1) { + if (j === 0 || this.desiredRowHeight[parseInt(i.toString(), 10)] === undefined) { + this.desiredRowHeight[parseInt(i.toString(), 10)] = size.height; + } + else { + this.desiredRowHeight[parseInt(i.toString(), 10)] = Math.max(size.height, this.desiredRowHeight[parseInt(i.toString(), 10)]); + } + } + if (cell.columnSpan === 1) { + if (i === 0 || this.desiredCellWidth[parseInt(j.toString(), 10)] === undefined) { + this.desiredCellWidth[parseInt(j.toString(), 10)] = size.width; + } + else { + this.desiredCellWidth[parseInt(j.toString(), 10)] = Math.max(size.width, this.desiredCellWidth[parseInt(j.toString(), 10)]); + } + if (i === this.rows.length - 1) { + desired.width += this.desiredCellWidth[parseInt(j.toString(), 10)]; + } + } + j++; + } + desired.height += this.desiredRowHeight[parseInt(i.toString(), 10)]; + i++; + } + //to-do update definitions + i = j = 0; + var rowIndex = 0; + for (var _d = 0, _e = this.rows; _d < _e.length; _d++) { + var row = _e[_d]; + j = 0; + var cellIndex = 0; + for (var _f = 0, _g = row.cells; _f < _g.length; _f++) { + var cell = _g[_f]; + if (cell.columnSpan !== 1) { + cell.desiredSize.width = 0; + for (var start = 0; start < cell.columnSpan; start++) { + if ((start + j) < row.cells.length) { + cell.desiredSize.width += this.desiredCellWidth[start + j]; + cell.minWidth = cell.desiredSize.width; + cell.measure(cell.desiredSize); + } + } + j++; + } + else { + cell.desiredSize.width = this.desiredCellWidth[parseInt(cellIndex.toString(), 10)]; + cell.measure(cell.desiredSize); + } + if (cell.rowSpan !== 1) { + cell.desiredSize.height = 0; + for (var start = 0; start < cell.rowSpan; start++) { + if ((start + rowIndex) < this.rows.length) { + cell.desiredSize.height += this.desiredRowHeight[start + rowIndex]; + cell.minHeight = cell.desiredSize.height; + cell.measure(cell.desiredSize); + } + } + } + else { + cell.desiredSize.height = this.desiredRowHeight[parseInt(rowIndex.toString(), 10)]; + cell.measure(cell.desiredSize); + } + i++; + cellIndex++; + } + rowIndex++; + } + } + if (desired === undefined) { + desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize); + } + _super.prototype.stretchChildren.call(this, desired); + this.desiredSize = desired; + return desired; + }; + /** + * arrange method \ + * + * @returns { Size } arrange method .\ + * @param {Size} desiredSize - provide the startRowIndex value. + * @param {boolean} isChange - provide the startRowIndex value. + * + * @private + */ + GridPanel.prototype.arrange = function (desiredSize, isChange) { + var j = 0; + var i = 0; + if (this.rows !== undefined && this.rows.length > 0) { + var x = this.offsetX - desiredSize.width * this.pivot.x; + var y = this.offsetY - desiredSize.height * this.pivot.y; + var cellX = x; + for (var _i = 0, _a = this.rows; _i < _a.length; _i++) { + var row = _a[_i]; + cellX = x; + j = 0; + for (var _b = 0, _c = row.cells; _b < _c.length; _b++) { + var cell = _c[_b]; + var cellWidth = Math.max(this.desiredCellWidth[parseInt(j.toString(), 10)], cell.desiredSize.width); + var cellHeight = Math.max(this.desiredRowHeight[parseInt(i.toString(), 10)], cell.desiredSize.height); + cell.offsetX = cellX + cellWidth * cell.pivot.x; + cell.offsetY = y + cellHeight * cell.pivot.y; + cellX += this.desiredCellWidth[parseInt(j.toString(), 10)]; + cell.arrange(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](cellWidth, cellHeight)); + j++; + } + y += this.desiredRowHeight[parseInt(i.toString(), 10)]; + i++; + } + if (isChange) { + // Need to remove the unwanted the child elements in the grid + // Used for row span and column span. + var cell = void 0; + var row = void 0; + var k = void 0; + var z = void 0; + var removeCell = void 0; + for (i = 0; i < this.rows.length; i++) { + row = this.rows[parseInt(i.toString(), 10)]; + for (j = 0; j < row.cells.length; j++) { + cell = row.cells[parseInt(j.toString(), 10)]; + if (cell.columnSpan > 1) { + // remove a child element when a column span is greater than 1 + this.children.splice((this.children.indexOf(cell)) + 1, cell.columnSpan - 1); + } + if (cell.rowSpan > 1) { + for (k = i, z = 0; ((k + cell.rowSpan - 1) < this.rows.length && z < cell.rowSpan - 1); k++, z++) { + removeCell = this.rows[k + 1].cells[parseInt(j.toString(), 10)]; + // remove a child element when a row span is greater than 1 + this.children.splice(this.children.indexOf(removeCell), 1); + } + } + } + } + } + } + this.actualSize = desiredSize; + this.updateBounds(); + return desiredSize; + }; + return GridPanel; +}(_container__WEBPACK_IMPORTED_MODULE_2__["Container"])); + +/** + * Defines the behavior of the RowDefinition of node + */ +var RowDefinition = /** @__PURE__ @class */ (function () { + function RowDefinition() { + /** returns the height of node */ + this.height = undefined; + } + return RowDefinition; +}()); + +/** + * Defines the behavior of the ColumnDefinition of node + */ +var ColumnDefinition = /** @__PURE__ @class */ (function () { + function ColumnDefinition() { + /** returns the width of node */ + this.width = undefined; + } + return ColumnDefinition; +}()); + +/** @private */ +var GridRow = /** @__PURE__ @class */ (function () { + function GridRow() { + this.cells = null; + } + return GridRow; +}()); + +/** @private */ +var GridCell = /** @__PURE__ @class */ (function (_super) { + __extends(GridCell, _super); + function GridCell() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.columnSpan = 1; + _this.rowSpan = 1; + return _this; + } + return GridCell; +}(_canvas__WEBPACK_IMPORTED_MODULE_1__["Canvas"])); + +var GridCellItem = /** @__PURE__ @class */ (function (_super) { + __extends(GridCellItem, _super); + function GridCellItem() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.rowId = 0; + _this.columnId = 0; + _this.rowSpan = 1; + _this.columnSpan = 1; + return _this; + } + return GridCellItem; +}(_elements_diagram_element__WEBPACK_IMPORTED_MODULE_0__["DiagramElement"])); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/stack-panel.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/stack-panel.js ***! + \*******************************************************************************************/ +/*! exports provided: StackPanel */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StackPanel", function() { return StackPanel; }); +/* harmony import */ var _container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + +/** + * StackPanel module is used to arrange its children in a line + */ +var StackPanel = /** @__PURE__ @class */ (function (_super) { + __extends(StackPanel, _super); + function StackPanel() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /** + * Gets/Sets the orientation of the stack panel + */ + _this.orientation = 'Vertical'; + /** + * Not applicable for canvas + * to avoid the child size updation with respect to parent ser true + * + * @private + */ + _this.measureChildren = undefined; + /** + * Sets or gets whether the padding of the element needs to be measured + * + * @private + */ + _this.considerPadding = true; + return _this; + } + /** + * Measures the minimum space that the panel needs \ + * + * @returns { Size } Measures the minimum space that the panel needs.\ + * @param {Size} availableSize - provide the id value. + * + * @private + */ + StackPanel.prototype.measure = function (availableSize) { + var updateSize = this.orientation === 'Horizontal' ? this.updateHorizontalStack : this.updateVerticalStack; + this.desiredSize = this.measureStackPanel(availableSize, updateSize); + return this.desiredSize; + }; + /** + * Arranges the child elements of the stack panel \ + * + * @returns { Size } Arranges the child elements of the stack panel.\ + * @param {Size} desiredSize - provide the id value. + * + * @private + */ + StackPanel.prototype.arrange = function (desiredSize) { + var updateSize = this.orientation === 'Horizontal' ? this.arrangeHorizontalStack : this.arrangeVerticalStack; + this.actualSize = this.arrangeStackPanel(desiredSize, updateSize); + this.updateBounds(); + return this.actualSize; + }; + /** + * Measures the minimum space that the panel needs \ + * + * @returns { Size } Measures the minimum space that the panel needs.\ + * @param {Size} availableSize - provide the id value. + * @param {Function} updateSize - provide the id value. + * + * @private + */ + StackPanel.prototype.measureStackPanel = function (availableSize, updateSize) { + var desired = undefined; + if (this.children !== undefined && this.children.length > 0) { + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + child.parentTransform = this.rotateAngle + this.parentTransform; + //Measure children + if (this.measureChildren) { + child.measure(child.desiredSize); + } + else { + child.measure(availableSize); + } + var childSize = child.desiredSize.clone(); + //Consider Child's margin + this.applyChildMargin(child, childSize); + //Consider children's rotation + if (child.rotateAngle !== 0) { + childSize = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["rotateSize"])(childSize, child.rotateAngle); + } + //Measure stack panel + if (desired === undefined) { + desired = childSize; + } + else { + if (!child.preventContainer) { + updateSize(childSize, desired); + } + } + } + } + desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize); + this.stretchChildren(desired); + //Considering padding values + if (this.considerPadding) { + this.applyPadding(desired); + } + return desired; + }; + StackPanel.prototype.arrangeStackPanel = function (desiredSize, updatePosition) { + if (this.children !== undefined && this.children.length > 0) { + var x = void 0; + var y = void 0; + x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left; + y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top; + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + var childSize = child.desiredSize.clone(); + var rotatedSize = childSize; + if (this.orientation === 'Vertical') { + y += child.margin.top; + } + else { + x += child.margin.left; + } + if (child.rotateAngle !== 0) { + rotatedSize = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["rotateSize"])(childSize, child.rotateAngle); + } + var center = updatePosition(x, y, child, this, desiredSize, rotatedSize); + _super.prototype.findChildOffsetFromCenter.call(this, child, center); + child.arrange(childSize, true); + if (this.orientation === 'Vertical') { + y += rotatedSize.height + child.margin.bottom; + } + else { + x += rotatedSize.width + child.margin.right; + } + } + } + return desiredSize; + }; + StackPanel.prototype.updateHorizontalStack = function (child, parent) { + parent.height = Math.max(child.height, parent.height); + parent.width += child.width; + }; + StackPanel.prototype.updateVerticalStack = function (child, parent) { + parent.width = Math.max(child.width, parent.width); + parent.height += child.height; + }; + StackPanel.prototype.arrangeHorizontalStack = function (x, y, child, parent, parenBounds, childBounds) { + var centerY = 0; + if (child.verticalAlignment === 'Top') { + centerY = y + child.margin.top + childBounds.height / 2; + } + else if (child.verticalAlignment === 'Bottom') { + var parentBottom = parent.offsetY + parenBounds.height * (1 - parent.pivot.y); + centerY = parentBottom - parent.padding.bottom - child.margin.bottom - childBounds.height / 2; + } + else { + centerY = parent.offsetY - parenBounds.height * parent.pivot.y + parenBounds.height / 2; + if (child.margin.top) { + centerY = y + child.margin.top + childBounds.height / 2; + } + } + return { x: x + childBounds.width / 2, y: centerY }; + }; + StackPanel.prototype.arrangeVerticalStack = function (x, y, child, parent, parentSize, childSize) { + var centerX = 0; + if (child.horizontalAlignment === 'Left') { + centerX = x + child.margin.left + childSize.width / 2; + } + else if (child.horizontalAlignment === 'Right') { + var parentRight = parent.offsetX + parentSize.width * (1 - parent.pivot.x); + centerX = parentRight - parent.padding.right - child.margin.right - childSize.width / 2; + } + else { + centerX = parent.offsetX - parentSize.width * parent.pivot.x + parentSize.width / 2; + if (child.margin.left) { + centerX = x + child.margin.left + childSize.width / 2; + } + } + return { x: centerX, y: y + childSize.height / 2 }; + }; + StackPanel.prototype.stretchChildren = function (size) { + if (this.children !== undefined && this.children.length > 0) { + for (var _i = 0, _a = this.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (this.orientation === 'Vertical') { + if (child.horizontalAlignment === 'Stretch') { + child.desiredSize.width = size.width - (child.margin.left + child.margin.right); + } + } + else { + if (child.verticalAlignment === 'Stretch') { + child.desiredSize.height = size.height - (child.margin.top + child.margin.bottom); + } + } + } + } + }; + StackPanel.prototype.applyChildMargin = function (child, size) { + size.height += child.margin.top + child.margin.bottom; + size.width += child.margin.left + child.margin.right; + }; + return StackPanel; +}(_container__WEBPACK_IMPORTED_MODULE_0__["Container"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js": +/*!*********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js ***! + \*********************************************************************************************/ +/*! exports provided: DiagramElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramElement", function() { return DiagramElement; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); + + + + +/** + * DiagramElement module defines the basic unit of diagram + */ +var DiagramElement = /** @__PURE__ @class */ (function () { + function DiagramElement() { + /** + * Sets/Gets the reference point of the element + * ```html + *
+ * ``` + * ```typescript + * let stackPanel: StackPanel = new StackPanel(); + * stackPanel.offsetX = 300; stackPanel.offsetY = 200; + * stackPanel.width = 100; stackPanel.height = 100; + * stackPanel.style.fill = 'red'; + * stackPanel.pivot = { x: 0.5, y: 0.5 }; + * let diagram: Diagram = new Diagram({ + * ... + * basicElements: [stackPanel], + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ + this.pivot = { x: 0.5, y: 0.5 }; + /** + * Sets or gets whether the content of the element needs to be measured + */ + this.isDirt = true; + /** + * set to true during print and eport + */ + /** @private */ + this.isExport = false; + /** + * set scaling value for print and export + */ + /** @private */ + this.exportScaleValue = { x: 0, y: 0 }; + /** + * set scaling value for print and export + */ + /** @private */ + this.exportScaleOffset = { x: 0, y: 0 }; + /** + * Check whether style need to be apply or not + */ + /** @private */ + this.canApplyStyle = true; + /** + * Sets or gets whether the content of the element to be visible + */ + this.visible = true; + /** + * Sets/Gets the x-coordinate of the element + */ + this.offsetX = 0; + /** + * Sets/Gets the y-coordinate of the element + */ + this.offsetY = 0; + /** + * Set the corner of the element + */ + this.cornerRadius = 0; + /** + * Sets/Gets the minimum height of the element + */ + this.minHeight = undefined; + /** + * Sets/Gets the minimum width of the element + */ + this.minWidth = undefined; + /** + * Sets/Gets the maximum width of the element + */ + this.maxWidth = undefined; + /** + * Sets/Gets the maximum height of the element + */ + this.maxHeight = undefined; + /** + * Sets/Gets the width of the element + */ + this.width = undefined; + /** + * Sets/Gets the height of the element + */ + this.height = undefined; + /** + * Sets/Gets the rotate angle of the element + */ + this.rotateAngle = 0; + /** + * Sets/Gets the margin of the element + */ + this.margin = { left: 0, right: 0, top: 0, bottom: 0 }; + /** + * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent + * * Stretch - Stretches the diagram element throughout its immediate parent + * * Left - Aligns the diagram element at the left of its immediate parent + * * Right - Aligns the diagram element at the right of its immediate parent + * * Center - Aligns the diagram element at the center of its immediate parent + * * Auto - Aligns the diagram element based on the characteristics of its immediate parent + */ + this.horizontalAlignment = 'Auto'; + /** + * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent + * * Stretch - Stretches the diagram element throughout its immediate parent + * * Top - Aligns the diagram element at the top of its immediate parent + * * Bottom - Aligns the diagram element at the bottom of its immediate parent + * * Center - Aligns the diagram element at the center of its immediate parent + * * Auto - Aligns the diagram element based on the characteristics of its immediate parent + */ + this.verticalAlignment = 'Auto'; + /** + * Sets/Gets the mirror image of diagram element in both horizontal and vertical directions + * * FlipHorizontal - Translate the diagram element throughout its immediate parent + * * FlipVertical - Rotate the diagram element throughout its immediate parent + */ + this.flip = 'None'; + /** + * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent + * * Point - Diagram elements will be aligned with respect to a point + * * Object - Diagram elements will be aligned with respect to its immediate parent + */ + this.relativeMode = 'Point'; + /** + * Sets whether the element has to be transformed based on its parent or not + * * Self - Sets the transform type as Self + * * Parent - Sets the transform type as Parent + */ + this.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["Transform"].Self | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["Transform"].Parent; + /** + * Sets the style of the element + */ + this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 }; + /** + * Gets the minimum size that is required by the element + */ + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](); + /** + * Gets the size that the element will be rendered + */ + this.actualSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](); + /** + * Gets the rotate angle that is set to the immediate parent of the element + */ + this.parentTransform = 0; + /** @private */ + this.preventContainer = false; + /** + * Gets/Set the boolean value for the element + */ + this.isSvgRender = false; + /** + * Gets/Sets the boundary of the element + */ + this.bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](0, 0, 0, 0); + /** + * Defines the appearance of the shadow of the element + */ + this.shadow = null; + /** + * Defines the description of the diagram element + */ + this.description = ''; + /** + * Defines whether the element has to be measured or not + */ + this.staticSize = false; + /** + * Defines the shape of the diagram element + */ + this.shapeType = ''; + /** + * check whether the element is rect or not + */ + this.isRectElement = false; + /** @private */ + this.isCalculateDesiredSize = true; + /** + * Set the offset values for container in flipping + */ + /** @private */ + this.flipOffset = { x: 0, y: 0 }; + /** + * Defines whether the element is group or port + */ + /** @private */ + this.elementActions = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ElementAction"].None; + /** @private */ + this.inversedAlignment = true; + //private variables + this.position = undefined; + this.unitMode = undefined; + /** @private */ + this.float = false; + this.floatingBounds = undefined; + } + // public constructor() { + // this.id = randomId(); + // } + /** + * Sets the offset of the element with respect to its parent \ + * + * @returns { void }Sets the offset of the element with respect to its parent\ + * @param {number} x - provide the x value. + * @param {number} y - provide the y value. + * @param {UnitMode} mode - provide the id value. + * + * @private + */ + DiagramElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) { + this.unitMode = mode; + this.position = { x: x, y: y }; + }; + /** + * Gets the position of the element with respect to its parent \ + * + * @returns { PointModel } Gets the position of the element with respect to its parent\ + * @param {Size} size - provide the x value. + * + * @private + */ + DiagramElement.prototype.getAbsolutePosition = function (size) { + if (this.position !== undefined) { + if (this.unitMode === 'Absolute') { + return this.position; + } + else { + return { + x: this.position.x * size.width, y: this.position.y * size.height + }; + } + } + return undefined; + }; + Object.defineProperty(DiagramElement.prototype, "outerBounds", { + get: function () { + return this.floatingBounds || this.bounds; + }, + /** + * used to set the outer bounds value \ + * + * @returns { void } used to set the outer bounds value.\ + * @param {Rect} bounds - provide the id value. + * + * @private + */ + set: function (bounds) { + this.floatingBounds = bounds; + }, + enumerable: true, + configurable: true + }); + /** + * Measures the minimum space that the element requires \ + * + * @returns { void } Measures the minimum space that the element requires.\ + * @param {Size} availableSize - provide the id value. + * @param {Object} obj - provide the id value. + * @param {Function} callback - provide the id value. + * + * @private + */ + // eslint-disable-next-line @typescript-eslint/ban-types + DiagramElement.prototype.measure = function (availableSize, obj, callback) { + var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right; + var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom; + if (this.id) { + if (height === 0 && (this.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ElementAction"].HorizontalLaneHeader)) { + height = this.actualSize.height; + } + } + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](width, height); + if (this.isCalculateDesiredSize) { + this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize); + } + return this.desiredSize; + }; + /** + * Arranges the element \ + * + * @returns { PointModel } Arranges the element\ + * @param {Size} desiredSize - provide the x value. + * + * @private + */ + DiagramElement.prototype.arrange = function (desiredSize) { + this.actualSize = desiredSize; + this.updateBounds(); + return this.actualSize; + }; + /** + * Updates the bounds of the element \ + * + * @returns { void } Updates the bounds of the element\ + * + * @private + */ + DiagramElement.prototype.updateBounds = function () { + this.bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getBounds"])(this); + }; + /** + * Validates the size of the element with respect to its minimum and maximum size \ + * + * @returns { Size } Validates the size of the element with respect to its minimum and maximum size.\ + * @param {Size} desiredSize - provide the id value. + * @param {Size} availableSize - provide the id value. + * + * @private + */ + DiagramElement.prototype.validateDesiredSize = function (desiredSize, availableSize) { + //Empty canvas + if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) { + desiredSize.width = 50; + } + if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) { + desiredSize.height = 50; + } + if (desiredSize === undefined || this.width !== undefined && + this.height !== undefined) { + desiredSize = desiredSize || new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](); + desiredSize.width = this.width === undefined ? (availableSize.width || 0) + - this.margin.left - this.margin.right : this.width; + desiredSize.height = this.height === undefined ? (availableSize.height || 0) + - this.margin.top - this.margin.bottom : this.height; + } + //Considering min values + if (this.minWidth !== undefined) { + desiredSize.width = Math.max(desiredSize.width, this.minWidth); + } + if (this.minHeight !== undefined) { + desiredSize.height = Math.max(desiredSize.height, this.minHeight); + } + //Considering max values + if (this.maxWidth !== undefined && this.maxWidth !== 0) { + desiredSize.width = Math.min(desiredSize.width, this.maxWidth); + } + if (this.maxHeight !== undefined && this.maxHeight !== 0) { + desiredSize.height = Math.min(desiredSize.height, this.maxHeight); + } + return desiredSize; + }; + return DiagramElement; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js": +/*!******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js ***! + \******************************************************************************************/ +/*! exports provided: DiagramHtmlElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramHtmlElement", function() { return DiagramHtmlElement; }); +/* harmony import */ var _diagram_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + +/** + * HTMLElement defines the basic html elements + */ +var DiagramHtmlElement = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramHtmlElement, _super); + /** + * set the id for each element \ + * + * @returns { void }set the id for each element\ + * @param {string} nodeId - provide the x value. + * @param {string} diagramId - provide the y value. + * @param {string} annotationId - provide the id value. + * @param {string} nodeTemplate - provide the id value. + * + * @private + */ + function DiagramHtmlElement(nodeId, diagramId, annotationId, nodeTemplate) { + var _this = _super.call(this) || this; + _this.data = ''; + /** + * Gets the node id for the element + */ + _this.nodeId = ''; + /** + * defines the id of the annotation on rendering template on label. + * @private + */ + _this.annotationId = ''; + /** + * Gets the diagram id for the html element + */ + _this.diagramId = ''; + _this.diagramId = diagramId; + _this.nodeId = nodeId; + _this.annotationId = annotationId; + _this.templateFn = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["templateCompiler"])(nodeTemplate); + return _this; + } + /** + * getNodeTemplate method \ + * + * @returns { Function } getNodeTemplate method .\ + * + * @private + */ + DiagramHtmlElement.prototype.getNodeTemplate = function () { + return this.templateFn; + }; + Object.defineProperty(DiagramHtmlElement.prototype, "content", { + /** + * Gets or sets the geometry of the html element \ + * + * @returns { string | HTMLElement } Gets or sets the geometry of the html element \ + * + * @private + */ + get: function () { + return this.data; + }, + /** + * Gets or sets the value of the html element \ + * + * @returns { void }Gets or sets the value of the html element\ + * @param {string | HTMLElement} value - provide the value value. + * + * @private + */ + set: function (value) { + this.data = value; + if (!this.canReset) { + this.canReset = true; + if (!this.isTemplate) { + this.template = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["getContent"])(this, true); + } + this.canReset = false; + this.isDirt = true; + } + }, + enumerable: true, + configurable: true + }); + return DiagramHtmlElement; +}(_diagram_element__WEBPACK_IMPORTED_MODULE_0__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js ***! + \*******************************************************************************************/ +/*! exports provided: ImageElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImageElement", function() { return ImageElement; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + +/** + * ImageElement defines a basic image elements + */ +var ImageElement = /** @__PURE__ @class */ (function (_super) { + __extends(ImageElement, _super); + /** + * set the id for each element + */ + function ImageElement() { + var _this = _super.call(this) || this; + /** + * sets or gets the image source + */ + _this.imageSource = ''; + /** + * sets scaling factor of the image + */ + _this.imageScale = 'None'; + /** + * sets the alignment of the image + */ + _this.imageAlign = 'None'; + /** + * Sets how to stretch the image + */ + _this.stretch = 'Stretch'; + return _this; + } + Object.defineProperty(ImageElement.prototype, "source", { + /** + * Gets the source for the image element + */ + /** + * Gets the source for the image element \ + * + * @returns { void }Gets the source for the image element.\ + * + * @private + */ + get: function () { + return this.imageSource; + }, + /** + * Sets the source for the image element \ + * + * @returns { void }Sets the source for the image element.\ + * @param {string} value - provide the id value. + * + * @private + */ + set: function (value) { + this.imageSource = value; + this.isDirt = true; + }, + enumerable: true, + configurable: true + }); + /** + * Measures minimum space that is required to render the image \ + * + * @returns { Size }Measures minimum space that is required to render the image.\ + * @param {Size} availableSize - provide the id value. + * @param {Object} id - provide the id value. + * @param {Function} callback - provide the id value. + * + * @private + */ + ImageElement.prototype.measure = function (availableSize, id, callback) { + if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) { + this.contentSize = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_2__["measureImage"])(this.source, this.contentSize, id, callback); + this.isDirt = false; + } + if (this.width !== undefined && this.height !== undefined) { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.width, this.height); + this.contentSize = this.desiredSize; + } + else { + this.desiredSize = this.contentSize; + } + this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize); + return this.desiredSize; + }; + /** + * Arranges the image + * @param {Size} desiredSize + */ + /** + * Arranges the image \ + * + * @returns { Size }Arranges the image.\ + * @param {Size} desiredSize - provide the id value. + * + * @private + */ + ImageElement.prototype.arrange = function (desiredSize) { + this.actualSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.desiredSize.width, this.desiredSize.height); + this.updateBounds(); + return this.actualSize; + }; + return ImageElement; +}(_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js": +/*!********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js ***! + \********************************************************************************************/ +/*! exports provided: DiagramNativeElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramNativeElement", function() { return DiagramNativeElement; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + +/** + * NativeElement defines the basic native elements + */ +var DiagramNativeElement = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramNativeElement, _super); + /** + * set the id for each element \ + * + * @returns { void } set the id for each element.\ + * @param {string} nodeId - provide the id value. + * @param {string} diagramId - provide the id value. + * + * @private + */ + function DiagramNativeElement(nodeId, diagramId) { + var _this = _super.call(this) || this; + _this.data = ''; + /** + * set the node id + */ + _this.nodeId = ''; + /** + * set the diagram id + */ + _this.diagramId = ''; + /** + * sets scaling factor of the Native Element + */ + _this.scale = 'Stretch'; + _this.diagramId = diagramId; + _this.nodeId = nodeId; + return _this; + } + Object.defineProperty(DiagramNativeElement.prototype, "content", { + /** + * get the id for each element \ + * + * @returns { string | SVGElement } get the id for each element.\ + * + * @private + */ + get: function () { + return this.data; + }, + /** + * sets the geometry of the native element \ + * + * @returns { void } sets the geometry of the native element.\ + * @param {string | SVGElement} value - provide the id value. + * + * @private + */ + set: function (value) { + this.data = value; + if (!this.canReset) { + this.canReset = true; + this.template = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_2__["getContent"])(this, false); + this.canReset = false; + this.isDirt = true; + } + }, + enumerable: true, + configurable: true + }); + /** + *Measures minimum space that is required to render the Native Element \ + * + * @returns { Size }Measures minimum space that is required to render the Native Element.\ + * @param {Size} availableSize - provide the id value. + * + * @private + */ + DiagramNativeElement.prototype.measure = function (availableSize) { + if (this.isDirt) { + var rect = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_2__["measureNativeContent"])(this.template); + this.contentSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](); + this.contentSize.width = rect.width; + this.contentSize.height = rect.height; + var x = rect.x; + var y = rect.y; + this.templatePosition = { x: x, y: y }; + this.isDirt = false; + } + if (this.width === undefined || this.height === undefined) { + var getAvailableSize = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_2__["measureNativeSvg"])(this.template); + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](getAvailableSize.width, getAvailableSize.height); + } + else { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.width, this.height); + } + this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize); + return this.desiredSize; + }; + /** + *Arranges the Native Element \ + * + * @returns { Size }Arranges the Native Element.\ + * @param {Size} desiredSize - provide the id value. + * + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + DiagramNativeElement.prototype.arrange = function (desiredSize) { + this.actualSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.desiredSize.width, this.desiredSize.height); + this.updateBounds(); + return this.actualSize; + }; + return DiagramNativeElement; +}(_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js": +/*!******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js ***! + \******************************************************************************************/ +/*! exports provided: PathElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PathElement", function() { return PathElement; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + + + +/** + * PathElement takes care of how to align the path based on offsetX and offsetY + */ +var PathElement = /** @__PURE__ @class */ (function (_super) { + __extends(PathElement, _super); + /** + * set the id for each element + */ + function PathElement() { + var _this = _super.call(this) || this; + /** + * Gets or sets the geometry of the path element + */ + _this.pathData = ''; + /** + * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height + */ + _this.transformPath = true; + /** + * Gets/Sets the equivalent path, that will have the origin as 0,0 + */ + _this.absolutePath = ''; + /** @private */ + _this.canMeasurePath = false; + //Private variables + /** @private */ + _this.absoluteBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](); + return _this; + } + Object.defineProperty(PathElement.prototype, "data", { + /** + * Gets the geometry of the path element\ + * + * @returns { string | SVGElement } Gets the geometry of the path element.\ + * + * @private + */ + get: function () { + return this.pathData; + }, + /** + * Sets the geometry of the path element \ + * + * @returns { void } Sets the geometry of the path element.\ + * @param {string} value - provide the id value. + * + * @private + */ + set: function (value) { + if (this.pathData !== value) { + this.pathData = value; + this.isDirt = true; + } + }, + enumerable: true, + configurable: true + }); + /** + * getPoints methods \ + * + * @returns { PointModel[] } Sets the geometry of the path element.\ + * + * @private + */ + PathElement.prototype.getPoints = function () { + var _this = this; + if (!this.pointTimer) { + this.pointTimer = setTimeout(function () { + _this.points = null; + _this.pointTimer = null; + }, 200); + } + this.points = this.points || Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["findSegmentPoints"])(this); + return Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["translatePoints"])(this, this.points); + }; + /** + * Measures the minimum space that is required to render the element \ + * + * @returns { Size } Measures the minimum space that is required to render the element.\ + * @param {Size} availableSize - provide the id value. + * + * @private + */ + PathElement.prototype.measure = function (availableSize) { + //Performance issue - Avoiding measuring the connector path + if (this.staticSize && this.width !== undefined && this.height !== undefined) { + this.absoluteBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height); + } + else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined)) + && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) { + //Measure the element only whent the path data is changed/ size is not specified + this.absoluteBounds = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["measurePath"])(this.data ? this.data : ''); + } + if (this.width === undefined) { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.absoluteBounds.width, this.height || this.absoluteBounds.height); + } + else if (this.height === undefined) { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.width || this.absoluteBounds.width, this.absoluteBounds.height); + } + else { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.width, this.height); + } + this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize); + this.canMeasurePath = false; + return this.desiredSize; + }; + /** + * Arranges the path element \ + * + * @returns { Size } Arranges the path element.\ + * @param {Size} desiredSize - provide the id value. + * + * @private + */ + PathElement.prototype.arrange = function (desiredSize) { + if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) { + this.isDirt = true; + this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize); + if (!this.staticSize) { + this.points = null; + } + } + this.actualSize = this.desiredSize; + this.updateBounds(); + this.isDirt = false; + return this.actualSize; + }; + /** + * Translates the path to 0,0 and scales the path based on the actual size \ + * + * @returns { Size } Arranges the path element.\ + * @param {string} pathData - provide the id value. + * @param {Rect} bounds - provide the id value. + * @param {Size} actualSize - provide the id value. + * + * @private + */ + PathElement.prototype.updatePath = function (pathData, bounds, actualSize) { + var isScale = false; + var newPathString = ''; + var scaleX = -bounds.x; + var scaleY = -bounds.y; + var arrayCollection = []; + if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) { + scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1); + scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1); + isScale = true; + } + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_4__["processPathData"])(pathData); + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_4__["splitArrayCollection"])(arrayCollection); + if ((isScale || this.isDirt) && this.transformPath) { + newPathString = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_4__["transformPath"])(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0); + } + else { + newPathString = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_4__["getPathString"])(arrayCollection); + } + isScale = false; + return newPathString; + }; + return PathElement; +}(_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js": +/*!******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js ***! + \******************************************************************************************/ +/*! exports provided: TextElement */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextElement", function() { return TextElement; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + +/** + * TextElement is used to display text/annotations + */ +var TextElement = /** @__PURE__ @class */ (function (_super) { + __extends(TextElement, _super); + /** + * set the id for each element + */ + function TextElement() { + var _this = _super.call(this) || this; + /** + * sets or gets the image source + */ + _this.textContent = ''; + /** @private */ + _this.canMeasure = true; + /** @private */ + _this.isLaneOrientation = false; + /** @private */ + _this.canConsiderBounds = true; + /** + * sets the hyperlink color to blue + */ + _this.hyperlink = { + color: 'blue' + }; + /** @private */ + _this.doWrap = true; + _this.textNodes = []; + /** + * Defines the appearance of the text element + */ + _this.style = { + color: 'black', fill: 'transparent', strokeColor: 'black', + strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace', + textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false, + textDecoration: 'None', strokeDashArray: '', opacity: 5, gradient: null, + textOverflow: 'Wrap' + }; + _this.style.fill = 'transparent'; + _this.style.strokeColor = 'transparent'; + return _this; + } + Object.defineProperty(TextElement.prototype, "content", { + /** + * gets the content for the text element \ + * + * @returns { string | SVGElement } gets the content for the text element.\ + * + * @private + */ + get: function () { + return this.textContent; + }, + /** + * sets the content for the text element \ + * + * @returns { void } sets the content for the text element.\ + * @param {string} value - provide the id value. + * + * @private + */ + set: function (value) { + if (this.textContent !== value) { + this.textContent = value; + this.isDirt = true; + this.doWrap = true; + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TextElement.prototype, "childNodes", { + /** + * gets the content for the text element \ + * + * @returns { string | SVGElement } gets the content for the text element.\ + * + * @private + */ + get: function () { + return this.textNodes; + }, + /** + * sets the content for the text element \ + * + * @returns { void } sets the content for the text element.\ + * @param {SubTextElement[]} value - provide the id value. + * + * @private + */ + set: function (value) { + this.textNodes = value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TextElement.prototype, "wrapBounds", { + /** + * gets the wrapBounds for the text \ + * + * @returns { string | SVGElement } gets the wrapBounds for the text.\ + * + * @private + */ + get: function () { + return this.textWrapBounds; + }, + /** + * sets the wrapBounds for the text \ + * + * @returns { void } sets the wrapBounds for the text.\ + * @param {TextBounds} value - provide the id value. + * + * @private + */ + set: function (value) { + this.textWrapBounds = value; + }, + enumerable: true, + configurable: true + }); + /** + * sets the wrapBounds for the text \ + * + * @returns { void } sets the wrapBounds for the text.\ + * + * @private + */ + TextElement.prototype.refreshTextElement = function () { + this.isDirt = true; + }; + /** + *Measures the minimum size that is required for the text element\ + * + * @returns { Size } Measures the minimum size that is required for the text element.\ + * @param {Size} availableSize - provide the id value. + * + * @private + */ + TextElement.prototype.measure = function (availableSize) { + var size; + if (this.isDirt && this.canMeasure) { + size = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_2__["measureText"])(this, this.style, this.content, this.isLaneOrientation ? + availableSize.height : (this.width || availableSize.width)); + } + else { + size = this.desiredSize; + } + if (this.width === undefined || this.height === undefined) { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](size.width, size.height); + } + else { + this.desiredSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](this.width, this.height); + } + this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize); + return this.desiredSize; + }; + /** + * Arranges the text element\ + * + * @returns { Size } Arranges the text element.\ + * @param {Size} desiredSize - provide the id value. + * + * @private + */ + TextElement.prototype.arrange = function (desiredSize) { + if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) { + this.doWrap = true; + } + this.actualSize = desiredSize; + this.updateBounds(); + this.isDirt = false; + return this.actualSize; + }; + return TextElement; +}(_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/data-binding/data-binding.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/data-binding/data-binding.js ***! + \*****************************************************************************************/ +/*! exports provided: DataBinding */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataBinding", function() { return DataBinding; }); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _ej2_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + + + + + + + +/** + * data source defines the basic unit of diagram + */ +var DataBinding = /** @__PURE__ @class */ (function () { + /** + * Constructor for the data binding module. + * @private + */ + function DataBinding() { + /** @private */ + this.dataTable = {}; + //constructs the data binding module + } + /** + * To destroy the data binding module + * + * @returns {void} + * @private + */ + DataBinding.prototype.destroy = function () { + /** + * Destroy method performed here + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + DataBinding.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'DataBinding'; + }; + /** + * Initialize nodes and connectors when we have a data as JSON + * + * @param {DataSourceModel} data + * @param {Diagram} diagram + * @private + */ + DataBinding.prototype.initData = function (data, diagram) { + var dataSource; + var dataProp = 'data'; + var jsonProp = 'json'; + var dataManager = data.dataManager || data.dataSource || {}; + dataSource = dataManager["" + dataProp] || dataManager["" + jsonProp] || + (dataManager.dataSource ? dataManager.dataSource.json : undefined); + if (dataSource && dataSource.length === 0 && dataManager.dataSource.data) { + dataSource = dataManager.dataSource.data; + } + if (dataSource && dataSource.length) { + this.applyDataSource(data, dataSource, diagram); + diagram.trigger('dataLoaded', { diagram: (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])()) ? null : Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["cloneBlazorObject"])(diagram) }); + } + }; + /** + * Initialize nodes and connector when we have a data as remote url + * + * @param {DataSourceModel} data + * @param {Diagram} diagram + * @private + */ + DataBinding.prototype.initSource = function (data, diagram) { + var _this = this; + var dataSource = data; + var result; + var mapper = data; + if (dataSource.dataManager instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_2__["DataManager"] || dataSource.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_2__["DataManager"]) { + var tempObj = mapper.dataManager || mapper.dataSource; + var query = tempObj.defaultQuery || new _ej2_data__WEBPACK_IMPORTED_MODULE_2__["Query"](); + var dataManager = data.dataManager || data.dataSource; + dataManager.executeQuery(query).then(function (e) { + var prop = 'result'; + result = e["" + prop]; + if (!diagram.isDestroyed) { + diagram.protectPropertyChange(true); + _this.applyDataSource(data, result, diagram); + diagram.refreshDiagram(); + diagram.protectPropertyChange(false); + diagram.trigger('dataLoaded', { diagram: (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])()) ? null : Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["cloneBlazorObject"])(diagram) }); + } + }); + } + }; + DataBinding.prototype.applyDataSource = function (mapper, data, diagram) { + this.dataTable = {}; + var obj; + var firstNode; + var node; + var rootNodes = []; + var firstLevel = []; + var item; + var nextLevel; + if (data !== undefined) { + for (var r = 0; r < data.length; r++) { + obj = data[parseInt(r.toString(), 10)]; + if (obj[mapper.parentId] === undefined || obj[mapper.parentId] === null || + typeof obj[mapper.parentId] !== 'object') { + if (rootNodes[obj[mapper.parentId]] !== undefined) { + rootNodes[obj[mapper.parentId]].items.push(obj); + } + else { + rootNodes[obj[mapper.parentId]] = { items: [obj] }; + } + } + else { + rootNodes = this.updateMultipleRootNodes(obj, rootNodes, mapper, data); + } + if (mapper.root === obj[mapper.id]) { + firstNode = { items: [obj] }; + } + } + if (firstNode) { + firstLevel.push(firstNode); + } + else { + for (var _i = 0, _a = Object.keys(rootNodes); _i < _a.length; _i++) { + var n = _a[_i]; + if (!n || n === 'undefined' || n === '\'\'' || n === 'null') { + firstLevel.push(rootNodes["" + n]); + } + } + } + for (var i = 0; i < firstLevel.length; i++) { + for (var j = 0; j < firstLevel[parseInt(i.toString(), 10)].items.length; j++) { + item = firstLevel[parseInt(i.toString(), 10)].items[parseInt(j.toString(), 10)]; + node = this.applyNodeTemplate(mapper, item, diagram); + diagram.nodes.push(node); + this.dataTable[item[mapper.id]] = node; + nextLevel = rootNodes[node.data[mapper.id]]; + if (nextLevel !== undefined) { + this.renderChildNodes(mapper, nextLevel, node.id, rootNodes, diagram); + } + } + } + } + this.dataTable = null; + }; + /** + * updateMultipleRootNodes method is used to update the multiple Root Nodes + * + * @param {Object} object + * @param {Object[]} rootnodes + * @param {DataSourceModel} mapper + * @param {Object[]} data + */ + DataBinding.prototype.updateMultipleRootNodes = function (obj, rootNodes, mapper, data) { + var parents = obj[mapper.parentId]; + var parent; + for (var i = 0; i < parents.length; i++) { + parent = parents[parseInt(i.toString(), 10)]; + if (rootNodes["" + parent]) { + rootNodes["" + parent].items.push(obj); + } + else { + rootNodes["" + parent] = { items: [obj] }; + } + } + return rootNodes; + }; + /** + * Get the node values\ + * + * @returns { Node } Get the node values.\ + * @param {DataSourceModel} mapper - provide the id value. + * @param {Object} item - provide the id value. + * @param {Diagram} diagram - provide the id value. + * + * @private + */ + DataBinding.prototype.applyNodeTemplate = function (mapper, item, diagram) { + //const root: Object = item; + var id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + //const blazor: string = 'Blazor'; + var nodeModel = { id: id, data: item }; + // eslint-disable-next-line @typescript-eslint/ban-types + var doBinding = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(mapper.doBinding); + if (doBinding) { + doBinding(nodeModel, item, diagram); + } + var obj = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"](diagram, 'nodes', nodeModel, true); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["updateDefaultValues"])(obj, nodeModel, diagram.nodeDefaults); + if (mapper.dataMapSettings) { + var index = void 0; + var arrayProperty = []; + var innerProperty = []; + for (var i = 0; i < mapper.dataMapSettings.length; i++) { + if (mapper.dataMapSettings[parseInt(i.toString(), 10)].property.indexOf('.') !== -1) { + innerProperty = this.splitString(mapper.dataMapSettings[parseInt(i.toString(), 10)].property); + for (var p = 0; p < innerProperty.length; p++) { + if (innerProperty[parseInt(p.toString(), 10)].indexOf('[') !== -1) { + index = innerProperty[parseInt(p.toString(), 10)].indexOf('['); + arrayProperty = innerProperty[parseInt(p.toString(), 10)].split('['); + } + } + if (index) { + if (innerProperty[2]) { + obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]][innerProperty[2]] = + item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field]; + } + else { + var value = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field]; + obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]] = value; + } + } + else { + if (innerProperty[2]) { + obj[innerProperty[0]][innerProperty[1]][innerProperty[2]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field]; + } + else { + obj[innerProperty[0]][innerProperty[1]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field]; + } + } + } + else { + var property = mapper.dataMapSettings[parseInt(i.toString(), 10)].property; + property = property.charAt(0).toLowerCase() + property.slice(1); + obj["" + property] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field]; + } + index = 0; + arrayProperty = []; + innerProperty = []; + } + } + if (!this.collectionContains(obj, diagram, mapper.id, mapper.parentId)) { + return obj; + } + else { + return this.dataTable[item[mapper.id]]; + } + }; + DataBinding.prototype.splitString = function (property) { + var temp = []; + temp = property.split('.'); + for (var i = 0; i < temp.length; i++) { + temp[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)].charAt(0).toLowerCase() + temp[parseInt(i.toString(), 10)].slice(1); + } + return temp; + }; + DataBinding.prototype.renderChildNodes = function (mapper, parent, value, rtNodes, diagram) { + var child; + var nextLevel; + var node; + for (var j = 0; j < parent.items.length; j++) { + child = parent.items[parseInt(j.toString(), 10)]; + node = this.applyNodeTemplate(mapper, child, diagram); + var canBreak = false; + if (!this.collectionContains(node, diagram, mapper.id, mapper.parentId)) { + this.dataTable[child[mapper.id]] = node; + diagram.nodes.push(node); + } + else { + canBreak = true; + } + if (!this.containsConnector(diagram, value, node.id)) { + diagram.connectors.push(this.applyConnectorTemplate(value, node.id, diagram)); + } + if (!canBreak) { + nextLevel = rtNodes[node.data[mapper.id]]; + if (nextLevel !== undefined) { + this.renderChildNodes(mapper, nextLevel, node.id, rtNodes, diagram); + } + } + } + }; + // Bug 832897: Need to improve performance while rendering layout with large number of nodes. + // Replaced for loop with some() method to improve performance. + DataBinding.prototype.containsConnector = function (diagram, sourceNode, targetNode) { + if (sourceNode === '' || targetNode === '') { + return false; + } + return diagram.connectors.some(function (connector) { + return connector !== undefined && connector.sourceID === sourceNode && connector.targetID === targetNode; + }); + }; + /** + * collectionContains method is used to check wthear the node is already present in collection or not + * + * @param {Node} node + * @param {Diagram} diagram + * @param {string} id + * @param {string} parentId + */ + DataBinding.prototype.collectionContains = function (node, diagram, id, parentId) { + var obj = this.dataTable[node.data["" + id]]; + if (obj !== undefined && obj.data["" + id] === node.data["" + id] && obj.data["" + parentId] === node.data["" + parentId]) { + return true; + } + else { + return false; + } + }; + /** + * Get the Connector values + * + * @param {string} sNode + * @param {string} tNode + * @param {Diagram} diagram + */ + DataBinding.prototype.applyConnectorTemplate = function (sNode, tNode, diagram) { + var connModel = { + id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(), sourceID: sNode, targetID: tNode + }; + var obj = new _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"](diagram, 'connectors', connModel, true); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["updateDefaultValues"])(obj, connModel, diagram.connectorDefaults); + return obj; + }; + return DataBinding; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram-settings.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram-settings.js ***! + \********************************************************************************/ +/*! exports provided: DiagramSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramSettings", function() { return DiagramSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * Represents the diagram settings + * ```html + *
+ * ``` + * ```typescript + * let diagram: Diagram = new Diagram({ + * ... + * diagramSettings: { inversedAlignment: true }, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + * + * @default {} + */ +var DiagramSettings = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramSettings, _super); + function DiagramSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], DiagramSettings.prototype, "inversedAlignment", void 0); + return DiagramSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js ***! + \***********************************************************************/ +/*! exports provided: Diagram */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Diagram", function() { return Diagram; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rendering/svg-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js"); +/* harmony import */ var _rendering_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./rendering/renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js"); +/* harmony import */ var _diagram_page_settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./diagram/page-settings */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/page-settings.js"); +/* harmony import */ var _objects_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./objects/service */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/service.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _diagram_grid_lines__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./diagram/grid-lines */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/grid-lines.js"); +/* harmony import */ var _diagram_ruler_settings__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagram/ruler-settings */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/ruler-settings.js"); +/* harmony import */ var _ruler_ruler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ruler/ruler */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./objects/dictionary/common */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _core_containers_grid__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./core/containers/grid */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js"); +/* harmony import */ var _diagram_data_source__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./diagram/data-source */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-source.js"); +/* harmony import */ var _layout_layout_base__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./layout/layout-base */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/layout-base.js"); +/* harmony import */ var _interaction_event_handlers__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./interaction/event-handlers */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/event-handlers.js"); +/* harmony import */ var _interaction_command_manager__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./interaction/command-manager */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/command-manager.js"); +/* harmony import */ var _interaction_scroller__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./interaction/scroller */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/scroller.js"); +/* harmony import */ var _interaction_actions__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./interaction/actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _interaction_spatial_search_spatial_search__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./interaction/spatial-search/spatial-search */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/spatial-search.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./diagram/keyboard-commands */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/keyboard-commands.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _objects_tooltip__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./objects/tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _diagram_layer__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./diagram/layer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layer.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./interaction/container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _diagram_serialization_settings__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./diagram/serialization-settings */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/serialization-settings.js"); +/* harmony import */ var _diagram_custom_cursor__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./diagram/custom-cursor */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/custom-cursor.js"); +/* harmony import */ var _diagram_diagram_settings__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../diagram/diagram-settings */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram-settings.js"); +/* harmony import */ var _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./core/containers/stack-panel */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/stack-panel.js"); +/* harmony import */ var _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./objects/fixed-user-handle */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _load_utility_modelProperties__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./load-utility/modelProperties */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/modelProperties.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (undefined && undefined.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable prefer-spread */ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-returns */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/** + * Represents the Diagram control + * ```html + *
+ * ``` + * ```typescript + * let diagram: Diagram = new Diagram({ + * width:'1000px', height:'500px' }); + * diagram.appendTo('#diagram'); + * ``` + */ +var Diagram = /** @__PURE__ @class */ (function (_super) { + __extends(Diagram, _super); + /** + * Constructor for creating the widget + */ + function Diagram(options, element) { + var _this = _super.call(this, options, element) || this; + /** @private */ + _this.version = 17.1; + /** @private */ + _this.checkMenu = false; + /** @private */ + _this.isServerUpdate = false; + /** @private */ + _this.oldNodeObjects = []; + /** @private */ + _this.oldDiagramObject = {}; + /** @private */ + _this.oldConnectorObjects = []; + /** @private */ + _this.canEnableBlazorObject = false; + /** @private */ + _this.connectorTable = {}; + /** @private */ + _this.groupTable = {}; + /** @private */ + _this.scrollActions = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ScrollActions"].None; + /** @private */ + _this.blazorActions = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].Default; + /** @private */ + _this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined }; + /** @private */ + _this.textEditing = false; + /** @private */ + _this.isTriggerEvent = false; + /** @private */ + _this.preventNodesUpdate = false; + /** @private */ + _this.preventConnectorsUpdate = false; + /** @private */ + _this.callBlazorModel = true; + /** @private */ + _this.selectionConnectorsList = []; + /** @private */ + _this.deleteVirtualObject = false; + _this.canLayout = true; + _this.isRefreshed = false; + /** @private */ + _this.swimlaneChildTable = {}; + /** @private */ + _this.swimlaneZIndexTable = {}; + /** @private */ + _this.canExpand = false; + _this.changedConnectorCollection = []; + _this.changedNodesCollection = []; + _this.previousNodeCollection = []; + _this.previousConnectorCollection = []; + _this.crudDeleteNodes = []; + _this.previousSelectedObjects = []; + // Group update to server when BlazorAction is isGroupAction; + _this.blazorAddorRemoveCollection = []; + _this.blazorRemoveIndexCollection = []; + _this.diagramid = 88123; + /** @private */ + _this.selectedObject = { helperObject: undefined, actualObject: undefined }; + _this.renderTimer = null; + var child; + var node; + var blazor = 'Blazor'; + var canCloneObject = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && window && window["" + blazor] && !_this.dataSourceSettings.dataSource; + _this.ignoreCollectionWatch = true; + for (var i = 0; options && options.nodes && i < options.nodes.length; i++) { + child = options.nodes[parseInt(i.toString(), 10)]; + node = _this.nodes[parseInt(i.toString(), 10)]; + if (child.children && child.children.length > 0) { + if (!child.style || !child.style.fill) { + node.style.fill = 'transparent'; + } + if (!child.style || !child.style.strokeColor) { + node.style.strokeColor = 'transparent'; + } + } + if (child.shape && child.shape.type === 'UmlActivity') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["setUMLActivityDefaults"])(child, node); + } + if (child.shape && child.shape.type === 'SwimLane') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["setSwimLaneDefaults"])(child, node); + } + if (canCloneObject) { + _this.previousNodeCollection.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node, undefined, undefined, true)); + } + if (_this.nodeDefaults) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateDefaultValues"])(node, child, _this.nodeDefaults); + } + _this.updateAnnotationText(node.annotations); + } + if (options && options.connectors) { + for (var i = 0; options && options.connectors && i < options.connectors.length; i++) { + child = options.connectors[parseInt(i.toString(), 10)]; + node = _this.connectors[parseInt(i.toString(), 10)]; + if (canCloneObject) { + _this.previousConnectorCollection.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node, undefined, undefined, true)); + } + if (_this.connectorDefaults) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateDefaultValues"])(node, child, _this.connectorDefaults); + } + _this.updateAnnotationText(node.annotations); + } + } + for (var i = 0; options && options.connectors && i < options.connectors.length; i++) { + var defaultConnector = options.connectors[parseInt(i.toString(), 10)]; + var connector = _this.connectors[parseInt(i.toString(), 10)]; + if (defaultConnector.shape && defaultConnector.shape.type !== 'None') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["setConnectorDefaults"])(defaultConnector, connector); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var defaultPropChanges = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(_this.bulkChanges); + _this.enableServerDataBinding(true); + _this.protectPropertyChange(true); + var keys = Object.keys(defaultPropChanges); + for (var i_1 = 0; i_1 < keys.length; i_1++) { + var key = keys[parseInt(i_1.toString(), 10)]; + var split = key.split('-'); + if (split && split[0]) { + if (split[0] === 'nodes') { + defaultPropChanges["" + key].sfIndex = Number(split[1]); + _this.changedNodesCollection.push(defaultPropChanges["" + key]); + } + if (split[0] === 'connectors') { + defaultPropChanges["" + key].sfIndex = Number(split[1]); + _this.changedConnectorCollection.push(defaultPropChanges["" + key]); + } + } + } + } + } + return _this; + } + Diagram.prototype.updateAnnotationText = function (annotations) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && annotations.length > 0) { + for (var i = 0; annotations && i < annotations.length; i++) { + var label = annotations[parseInt(i.toString(), 10)]; + label.content = label.content.split('\\n').join('\n'); + } + } + }; + Diagram.prototype.callFromServer = function (arg) { + var methodName = 'methodName'; + var mId = 'id'; + if (arg["" + methodName] === 'getParentID') { + var id = arg["" + mId]; + return this.nameTable["" + id].parentId; + } + else if (arg["" + methodName] === 'getEdges') { + var outEdge = 'outEdge'; + var isOutEdge = arg["" + outEdge]; + var id = arg["" + mId]; + if (isOutEdge) { + return this.nameTable["" + id].outEdges; + } + else { + return this.nameTable["" + id].inEdges; + } + } + else if (arg["" + methodName] === 'updateDiagramObjects') { + var obj = 'obj'; + var isAdding = 'IsAdding'; + var args = arg["" + obj]; + this.isServerUpdate = true; + if (arg["" + isAdding]) { + var add = 'add'; + this["" + add].apply(this, args); + } + else { + var remove_1 = 'remove'; + this["" + remove_1].apply(this, args); + } + this.isServerUpdate = false; + } + else if (arg["" + methodName] === 'invokeLoadDiagramMethod') { + var data = 'data'; + this.loadDiagram(arg["" + data]); + } + }; + Diagram.prototype.clearCollection = function (isConnector) { + var collection = []; + var obj; + for (var _i = 0, _a = Object.keys(this.nameTable); _i < _a.length; _i++) { + var key = _a[_i]; + obj = this.nameTable["" + key]; + if (obj && ((isConnector && obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) || (!isConnector && obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]))) { + collection.push(obj); + } + } + this.clearObjects(collection); + }; + /** + * Updates the diagram control when the objects are changed + * + * @param {DiagramModel} newProp - Lists the new values of the changed properties + * @param {DiagramModel} oldProp - Lists the old values of the changed properties + */ + /* tslint:disable */ + Diagram.prototype.onPropertyChanged = function (newProp, oldProp) { + // Model Changed + var newValue; + var oldValue; + var isPropertyChanged = true; + var refreshLayout = false; + var refereshColelction = false; + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + case 'height': + this.element.style.width = this.getSizeValue(this.width); + this.element.style.height = this.getSizeValue(this.height); + this.eventHandler.updateViewPortSize(this.element); + for (var _b = 0, _c = this.views; _b < _c.length; _b++) { + var view = _c[_b]; + var temp = this.views["" + view]; + if (!(temp instanceof Diagram)) { + temp.updateView(temp); + } + } + break; + case 'nodes': + if (newProp.nodes.length > 0 && oldProp.nodes.length === 0) { + this.clearCollection(); + refereshColelction = true; + } + else { + for (var _d = 0, _e = Object.keys(newProp.nodes); _d < _e.length; _d++) { + var key = _e[_d]; + var index = Number(key); + var actualObject = this.nodes[parseInt(index.toString(), 10)]; + var changedProp = newProp.nodes[parseInt(index.toString(), 10)]; + if (newProp.nodes[parseInt(index.toString(), 10)].style && newProp.nodes[parseInt(index.toString(), 10)].style.gradient) { + this.updateGradient(newProp.nodes[parseInt(index.toString(), 10)], oldProp.nodes[parseInt(index.toString(), 10)], this.nodes[parseInt(index.toString(), 10)]); + this.nodes[parseInt(index.toString(), 10)].oldGradientValue = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(newProp.nodes[parseInt(index.toString(), 10)].style.gradient); + } + refreshLayout = refreshLayout || changedProp.excludeFromLayout !== undefined; + this.nodePropertyChange(actualObject, oldProp.nodes[parseInt(index.toString(), 10)], changedProp, undefined, true, true); + var args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(actualObject), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldProp.nodes[parseInt(index.toString(), 10)]), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newProp.nodes[parseInt(index.toString(), 10)]) + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args.element = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(actualObject) }; + args.oldValue = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldValue) }; + args.newValue = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newValue) }; + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].propertyChange, args); + if (isPropertyChanged) { + isPropertyChanged = false; + } + } + if (this.mode === 'Canvas') { + this.refreshDiagramLayer(); + } + } + break; + case 'connectors': + // eslint-disable-next-line no-case-declarations + var oldObject = void 0; + if (newProp.connectors.length > 0 && oldProp.connectors.length === 0) { + this.clearCollection(true); + refereshColelction = true; + } + else { + for (var _f = 0, _g = Object.keys(newProp.connectors); _f < _g.length; _f++) { + var key = _g[_f]; + var index = Number(key); + var actualObject = this.connectors[parseInt(index.toString(), 10)]; + var changedProp = newProp.connectors[parseInt(index.toString(), 10)]; + if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) { + this.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DecoratorPropertyChange; + } + this.connectorPropertyChange(actualObject, oldProp.connectors[parseInt(index.toString(), 10)], changedProp, true, true); + if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) { + this.diagramActions = this.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DecoratorPropertyChange; + } + var args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(actualObject), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldProp.connectors[parseInt(index.toString(), 10)]), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newProp.connectors[parseInt(index.toString(), 10)]) + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args.element = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(actualObject) }; + args.oldValue = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldValue) }; + args.newValue = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newValue) }; + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].propertyChange, args); + if (actualObject && actualObject.parentId && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier') { + this.updateConnectorEdges(this.nameTable[actualObject.parentId] || actualObject); + } + if (isPropertyChanged) { + isPropertyChanged = false; + } + } + this.updateBridging(); + if (this.mode === 'Canvas') { + this.refreshDiagramLayer(); + } + } + break; + case 'bridgeDirection': + this.updateBridging(); + if (this.mode === 'Canvas') { + this.refreshDiagramLayer(); + } + break; + case 'backgroundColor': + this.intOffPageBackground(); + break; + case 'pageSettings': + this.validatePageSize(); + this.updatePage(); + break; + case 'selectedItems': + if (newProp.selectedItems.userHandles && this.selectedItems.wrapper && this.selectedItems.userHandles) { + if (this.selectedItems.userHandles.length > 0) { + this.renderSelector(true); + break; + } + } + if (newProp.selectedItems.constraints) { + this.renderSelector(true); + break; + } + break; + case 'snapSettings': + this.updateSnapSettings(newProp); + break; + case 'commandManager': + this.initCommands(); + break; + case 'layout': + refreshLayout = true; + break; + case 'segmentThumbShape': + this.updateSelector(); + break; + case 'dataSourceSettings': + this.clear(); + this.initObjects(); + if (this.layout.type === 'None') { + refereshColelction = true; + } + else { + refreshLayout = true; + } + break; + case 'tooltip': + Object(_objects_tooltip__WEBPACK_IMPORTED_MODULE_33__["initTooltip"])(this); + break; + case 'rulerSettings': + this.updateRulerSettings(newProp); + break; + case 'layers': + this.updateLayer(newProp); + break; + case 'scrollSettings': + this.scrollActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ScrollActions"].PropertyChange; + this.updateScrollSettings(newProp); + this.scrollActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ScrollActions"].PropertyChange; + this.scrollSettings.horizontalOffset = -this.scroller.horizontalOffset || 0; + this.scrollSettings.verticalOffset = -this.scroller.verticalOffset || 0; + break; + case 'locale': + if (newProp.locale !== oldProp.locale) { + this.realActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDataInit; + _super.prototype.refresh.call(this); + this.realActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDataInit; + } + break; + case 'contextMenuSettings': + if (newProp.contextMenuSettings.showCustomMenuOnly !== undefined) { + this.contextMenuSettings.showCustomMenuOnly = newProp.contextMenuSettings.showCustomMenuOnly; + } + if (newProp.contextMenuSettings.show !== undefined) { + this.contextMenuSettings.show = newProp.contextMenuSettings.show; + } + if (newProp.contextMenuSettings.items) { + var items = newProp.contextMenuSettings.items; + for (var _h = 0, _j = Object.keys(items); _h < _j.length; _h++) { + var key = _j[_h]; + var index = Number(key); + this.contextMenuSettings.items[parseInt(index.toString(), 10)] = items[parseInt(index.toString(), 10)]; + } + if (this.contextMenuModule) { + this.contextMenuModule.refreshItems(); + } + } + break; + case 'serializationSettings': + if (newProp.serializationSettings.preventDefaults !== undefined) { + this.serializationSettings.preventDefaults = newProp.serializationSettings.preventDefaults; + } + break; + } + } + if (refreshLayout && !refereshColelction) { + if (oldProp.layout && oldProp.layout.connectionPointOrigin === 'DifferentPoint' && newProp.layout.connectionPointOrigin === 'SamePoint' + || (oldProp.layout && newProp.layout && !newProp.layout.enableRouting && oldProp.layout.enableRouting)) { + for (var i = 0; i < this.nodes.length; i++) { + var node = this.nodes[parseInt(i.toString(), 10)]; + if ((node.ports && node.ports.length > 0)) { + var ports = []; + for (var j = node.ports.length - 1; j >= 0; j--) { + if (node.ports[parseInt(j.toString(), 10)].id.split('_')[1] === 'LineDistribution') { + ports.push(node.ports[parseInt(j.toString(), 10)]); + } + } + this.removePorts(node, ports); + } + } + for (var j = 0; j < this.connectors.length; j++) { + var connector = this.connectors[parseInt(j.toString(), 10)]; + var sourcePortid = connector.sourcePortID; + var targetPortId = connector.targetPortID; + //const oldSegment: OrthogonalSegmentModel = (connector.segments as OrthogonalSegmentModel); + connector.sourcePortID = ''; + connector.targetPortID = ''; + connector.sourcePortWrapper = undefined; + connector.targetPortWrapper = undefined; + connector.segments = []; + this.connectorPropertyChange(connector, { + sourcePortID: sourcePortid, targetPortID: targetPortId + }, { sourcePortID: '', targetPortID: '' }); + } + } + this.doLayout(); + this.renderReactTemplates(); + } + if (isPropertyChanged && this.propertyChange) { + var args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldProp), newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newProp) + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args.element = { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this) }; + args.oldValue = { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldValue) }; + args.newValue = { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newValue) }; + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].propertyChange, args); + } + /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/ + if (!refereshColelction && (this.canLogChange()) && (this.modelChanged(newProp, oldProp))) { + var propertyObjects = []; + var nodeObjects = []; + var connObjects = []; + if (newProp.nodes && Object.keys(newProp.nodes).length > 0) { + for (var _k = 0, _l = Object.keys(newProp.nodes); _k < _l.length; _k++) { + var key = _l[_k]; + var nodeIndex = parseInt(key); + nodeObjects.push(this.nodes[parseInt(nodeIndex.toString(), 10)].id); + } + } + if (newProp.connectors && Object.keys(newProp.connectors).length > 0) { + for (var _m = 0, _o = Object.keys(newProp.connectors); _m < _o.length; _m++) { + var key = _o[_m]; + var connIndex = parseInt(key); + connObjects.push(this.connectors[parseInt(connIndex.toString(), 10)].id); + } + } + propertyObjects = nodeObjects.concat(connObjects); + var entry = { type: 'PropertyChanged', undoObject: oldProp, redoObject: newProp, category: 'Internal' }; + if (this.historyManager) { + this.addHistoryEntry(entry, propertyObjects); + } + } + this.resetDiagramActions(); + if (refereshColelction) { + this.initObjects(true); + this.refreshDiagramLayer(); + if (refreshLayout) { + this.doLayout(); + } + } + var scrollAlone = ((Object.keys(newProp).length === 1) && newProp.scrollSettings !== undefined); + if (!refereshColelction) { + for (var _p = 0, _q = this.views; _p < _q.length; _p++) { + var temp = _q[_p]; + var view = this.views["" + temp]; + if (!(view instanceof Diagram)) { + if (newProp.scrollSettings && newProp.scrollSettings.currentZoom !== oldProp.scrollSettings.currentZoom) { + //view.updateHtmlLayer(view); + } + if (!scrollAlone) { + this.refreshCanvasDiagramLayer(view); + } + } + } + } + } + }; + /* tslint:enable */ + Diagram.prototype.updateSnapSettings = function (newProp) { + if (newProp.snapSettings.constraints !== undefined || newProp.snapSettings.horizontalGridlines || + newProp.snapSettings.verticalGridlines || newProp.snapSettings.gridType) { + this.diagramRenderer.updateGrid(this.snapSettings, Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + } + }; + // This private method has been specially provided to update only the node old gradient value in oldProperty. + // This issue belong to core team but we fixed in our end. + // https://syncfusion.atlassian.net/browse/EJ2-49232 + Diagram.prototype.updateGradient = function (newProp, oldProp, nodeObj) { + if (nodeObj.oldGradientValue) { + var linearNode = nodeObj; + var radialNode = nodeObj; + var linearProp = oldProp.style.gradient; + var radialProp = oldProp.style.gradient; + for (var _i = 0, _a = Object.keys(newProp.style.gradient); _i < _a.length; _i++) { + var key = _a[_i]; + switch (key) { + case 'type': + if (linearNode.type) { + linearProp.type = linearNode.type; + } + break; + case 'x1': + if (linearNode.x1) { + linearProp.x1 = linearNode.x1; + } + break; + case 'x2': + if (linearNode.x2) { + linearProp.x2 = linearNode.x2; + } + break; + case 'y1': + if (linearNode.y1) { + linearProp.y1 = linearNode.y1; + } + break; + case 'y2': + if (linearNode.y2) { + linearProp.y2 = linearNode.y2; + } + break; + case 'cx': + if (radialNode.cx) { + radialProp.cx = radialNode.cx; + } + break; + case 'cy': + if (radialNode.cy) { + radialProp.cy = radialNode.cy; + } + break; + case 'fx': + if (radialNode.fx) { + radialProp.fx = radialNode.fx; + } + break; + case 'fy': + if (radialNode.fy) { + radialProp.fy = radialNode.fy; + } + break; + case 'r': + if (radialNode.r) { + radialProp.r = radialNode.r; + } + break; + case 'stops': + if (nodeObj.oldGradientValue.stops) { + var stops = (Object.values(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(nodeObj.oldGradientValue.stops))); + stops.pop(); + oldProp.style.gradient.stops = stops; + } + break; + } + } + } + }; + Diagram.prototype.updateRulerSettings = function (newProp) { + if (newProp.rulerSettings.dynamicGrid !== undefined) { + this.diagramRenderer.updateGrid(this.snapSettings, Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + } + if (newProp.rulerSettings.showRulers !== undefined) { + this.intOffPageBackground(); + this.scroller.setSize(); + this.renderRulers(); + } + else if (newProp.rulerSettings.horizontalRuler !== undefined || + newProp.rulerSettings.verticalRuler !== undefined) { + if (newProp.rulerSettings.horizontalRuler.thickness !== undefined || + newProp.rulerSettings.verticalRuler.thickness !== undefined) { + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["removeRulerElements"])(this); + this.intOffPageBackground(); + this.scroller.setSize(); + this.renderRulers(); + } + else { + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["updateRuler"])(this); + } + } + this.diagramRenderer.updateGrid(this.snapSettings, Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} + */ + Diagram.prototype.getPersistData = function () { + var keyEntity = ['loaded']; + return this.addOnPersist(keyEntity); + }; + /** + * Initialize nodes, connectors and renderer + */ + Diagram.prototype.preRender = function () { + this.initializePrivateVariables(); + this.isProtectedOnChange = true; + this.serviceLocator = new _objects_service__WEBPACK_IMPORTED_MODULE_5__["ServiceLocator"]; + this.initializeServices(); + this.setCulture(); + var measureWindowElement = 'measureElement'; + if (window["" + measureWindowElement]) { + window["" + measureWindowElement] = null; + } + this.initDiagram(); + this.initViews(); + this.unWireEvents(); + this.wireEvents(); + this.element.classList.add('e-diagram'); + }; + Diagram.prototype.initializePrivateVariables = function () { + if (this.element.id === '') { + var collection = document.getElementsByClassName('e-diagram').length; + this.element.id = 'diagram_' + this.diagramid + '_' + collection; + } + this.defaultLocale = { + Copy: 'Copy', + Cut: 'Cut', + Paste: 'Paste', + Undo: 'Undo', + Redo: 'Redo', + SelectAll: 'Select All', + Grouping: 'Grouping', + Group: 'Group', + UnGroup: 'Un Group', + Order: 'Order', + BringToFront: 'Bring To Front', + MoveForward: 'Move Forward', + SendToBack: 'Send To Back', + SendBackward: 'Send Backward' + }; + this.layerZIndex = -1; + this.layerZIndexTable = {}; + this.nameTable = {}; + this.pathTable = {}; + this.groupTable = {}; + this.commands = {}; + if (!this.isLoading) { + this.views = []; + } + this.commandHandler = new _interaction_command_manager__WEBPACK_IMPORTED_MODULE_25__["CommandHandler"](this); + this.eventHandler = new _interaction_event_handlers__WEBPACK_IMPORTED_MODULE_24__["DiagramEventHandler"](this, this.commandHandler); + this.spatialSearch = new _interaction_spatial_search_spatial_search__WEBPACK_IMPORTED_MODULE_28__["SpatialSearch"](this.nameTable); + this.scroller = new _interaction_scroller__WEBPACK_IMPORTED_MODULE_26__["DiagramScroller"](this); + this.modelProperties = new _load_utility_modelProperties__WEBPACK_IMPORTED_MODULE_46__["EJ1SerializationModule"](this); + }; + Diagram.prototype.initializeServices = function () { + this.serviceLocator.register('localization', this.localeObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"](this.getModuleName(), this.defaultLocale, this.locale)); + }; + /** + * Method to set culture for chart + */ + Diagram.prototype.setCulture = function () { + this.localeObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"](this.getModuleName(), this.defaultLocale, this.locale); + }; + /* tslint:disable */ + /** + * Renders the diagram control with nodes and connectors + */ + Diagram.prototype.render = function () { + if (this.refreshing && this.dataSourceSettings.dataSource && !this.isLoading) { + this.nodes = []; + this.connectors = []; + } + // Bug 832897: Need to improve performance while rendering layout with large number of nodes. + this.isRefreshed = false; + this.ignoreCollectionWatch = true; + var domTable = 'domTable'; + window["" + domTable] = {}; + var collapsedNode = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var changedNodes = []; + var changedConnectors = []; + for (var i = 0; i < this.changedNodesCollection.length; i++) { + changedNodes.push(this.commandHandler.deepDiffer.removeEmptyValues(this.changedNodesCollection[parseInt(i.toString(), 10)])); + } + for (var i = 0; i < this.changedConnectorCollection.length; i++) { + changedConnectors.push(this.commandHandler.deepDiffer.removeEmptyValues(this.changedConnectorCollection[parseInt(i.toString(), 10)])); + } + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + var diagramObject = { nodes: changedNodes, connectors: changedConnectors }; + if (window && window["" + blazor] && !this.dataSourceSettings.dataSource + && (changedNodes.length > 0 || changedConnectors.length > 0)) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + } + if (this.dataSourceSettings.crudAction.read) { + this.renderInitialCrud(); + } + this.initHistory(); + this.diagramRenderer = new _rendering_renderer__WEBPACK_IMPORTED_MODULE_3__["DiagramRenderer"](this.element.id, new _rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_2__["SvgRenderer"](), this.mode === 'SVG'); + this.initLayers(); + this.initializeDiagramLayers(); + this.diagramRenderer.setLayers(); + this.initObjects(true); + var isLayout = false; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.dataSourceSettings.dataSource && this.layout.type !== 'None') { + for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) { + var obj = _a[_i]; + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), true); + } + for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) { + var obj = _c[_b]; + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), false); + } + isLayout = true; + } + var nodes = this.nodes; + for (var i = 0; i < nodes.length; i++) { + if (!nodes[parseInt(i.toString(), 10)].isExpanded) { + collapsedNode.push(nodes[parseInt(i.toString(), 10)]); + } + } + if (collapsedNode.length) { + for (var i = collapsedNode.length - 1; i >= 0; i--) { + if (i === 0) { + this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, false); + } + else { + this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, true); + } + } + } + if (this.canLayout) { + this.doLayout(); + } + if (isLayout) { + this.commandHandler.getBlazorOldValues(); + } + if (this.lineRoutingModule) { + var previousConnectorObject = []; + var updateConnectorObject = []; + var changeConnectors = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var _d = 0, _e = this.connectors; _d < _e.length; _d++) { + var obj = _e[_d]; + previousConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + } + // EJ2-65876 - Exception occurs on line routing injection module + if (this.connectors.sourceID !== this.connectors.targetID) { + this.lineRoutingModule.lineRouting(this); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var _f = 0, _g = this.connectors; _f < _g.length; _f++) { + var obj = _g[_f]; + updateConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors); + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].ClearObject)) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + var diagramObject = { nodes: [], connectors: changeConnectors }; + if (window && window["" + blazor]) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + } + } + } + this.validatePageSize(); + this.renderPageBreaks(); + this.diagramRenderer.renderSvgGridlines(this.snapSettings, Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + this.commandHandler.initSelectorWrapper(); + /** + * Used to render context menu + */ + this.notify('initial-load', {}); + /** + * Used to load context menu + */ + this.trigger('load'); + this.scroller.setSize(); + this.scroller.updateScrollOffsets(); + // Bug 832897: Need to improve performance while rendering layout with large number of nodes. + // If diagram not refreshed, then we will refresh the diagram. + if (!this.isRefreshed) { + this.refreshDiagramLayer(); + } + if (this.scrollSettings.verticalOffset > 0 || this.scrollSettings.horizontalOffset > 0) { + this.updateScrollOffset(); + } + /** + * Used to end the context menu rendering + */ + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.tool = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramTools"].ZoomPan | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramTools"].SingleSelect; + } + this.notify('initial-end', {}); + this.isProtectedOnChange = false; + this.tooltipObject = Object(_objects_tooltip__WEBPACK_IMPORTED_MODULE_33__["initTooltip"])(this); + this.diagramActions = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render; + this.initCommands(); + var hiddenUserHandleTemplate = document.getElementsByClassName(this.element.id + '_hiddenUserHandleTemplate'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createUserHandleTemplates"])(this.userHandleTemplate, hiddenUserHandleTemplate, this.selectedItems, this.element.id); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.layout && this.layout.type === 'None') { + this.updateTemplate(); + } + this.isLoading = false; + this.renderComplete(); + this.updateFitToPage(); + if (this.refreshing) { + this.renderReactTemplates(); + } + }; + /* tslint:enable */ + Diagram.prototype.updateFitToPage = function () { + if (this.pageSettings && this.pageSettings.fitOptions && this.pageSettings.fitOptions.canFit) { + this.fitToPage(this.pageSettings.fitOptions); + } + }; + Diagram.prototype.updateTemplate = function () { + var node; + var annotation; + var pathAnnotation; + for (var i = 0; i < this.nodes.length; i++) { + node = this.nodes[parseInt(i.toString(), 10)]; + if (node.shape.type === 'HTML' || node.shape.type === 'Native') { + // CR-F170298 Template is not updated properly while render multiple diagram in same page + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])('diagramsf_node_template', 'NodeTemplate', this, true); + break; + } + } + for (var i = 0; i < this.nodes.length; i++) { + node = this.nodes[parseInt(i.toString(), 10)]; + annotation = node.annotations[0]; + if (annotation && annotation.annotationType === 'Template') { + // CR-F170298 Template is not updated properly while render multiple diagram in same page + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])('diagramsf_annotation_template', 'AnnotationTemplate', this, false); + break; + } + } + for (var i = 0; i < this.connectors.length; i++) { + pathAnnotation = this.connectors[parseInt(i.toString(), 10)].annotations[0]; + if (pathAnnotation && pathAnnotation.annotationType === 'Template') { + // CR-F170298 Template is not updated properly while render multiple diagram in same page + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])('diagramsf_annotation_template', 'AnnotationTemplate', this, false); + break; + } + } + for (var i = 0; i < this.selectedItems.userHandles.length; i++) { + if (this.selectedItems.userHandles[parseInt(i.toString(), 10)].template) { + // CR-F170298 Template is not updated properly while render multiple diagram in same page + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])('diagramsf_userHandle_template', 'UserHandleTemplate', this, false); + break; + } + } + }; + Diagram.prototype.resetTemplate = function () { + var htmlNode; + var templateAnnotation; + var path; + for (var i = 0; i < this.nodes.length; i++) { + htmlNode = this.nodes[parseInt(i.toString(), 10)]; + if (htmlNode.shape.type === 'HTML' && htmlNode.shape.content === '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["resetBlazorTemplate"])('diagramsf_node_template', 'NodeTemplate'); + break; + } + } + for (var i = 0; i < this.nodes.length; i++) { + htmlNode = this.nodes[parseInt(i.toString(), 10)]; + templateAnnotation = htmlNode.annotations[0]; + if (templateAnnotation && templateAnnotation.annotationType === 'Template' + && templateAnnotation.content instanceof HTMLElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["resetBlazorTemplate"])('diagramsf_annotation_template', 'AnnotationTemplate'); + break; + } + } + for (var i = 0; i < this.connectors.length; i++) { + path = this.connectors[parseInt(i.toString(), 10)].annotations[0]; + if (path && path.annotationType === 'Template' && path.content instanceof HTMLElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["resetBlazorTemplate"])('diagramsf_annotation_template', 'AnnotationTemplate'); + break; + } + } + for (var i = 0; i < this.selectedItems.userHandles.length; i++) { + if (this.selectedItems.userHandles[parseInt(i.toString(), 10)].template) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["updateBlazorTemplate"])('diagramsf_userHandle_template', 'UserHandleTemplate', this, false); + break; + } + } + }; + //Call back function to the node template + // private measureNode(node: NodeModel): void { + // if (node.shape.type === 'Native' && isBlazor()) { + // node.wrapper.measure(new Size(node.width, node.height)); + // node.wrapper.arrange(node.wrapper.desiredSize); + // } + // } + Diagram.prototype.renderInitialCrud = function () { + /* eslint-disable */ + var tempObj = this; + /* eslint-enable */ + if (tempObj.dataSourceSettings.crudAction.read) { + var callback = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Fetch"](tempObj.dataSourceSettings.crudAction.read, 'GET'); + callback.onSuccess = function (data) { + if (tempObj.dataSourceSettings.dataManager) { + tempObj.dataSourceSettings.dataManager = JSON.parse(data); + } + else { + tempObj.dataSourceSettings.dataSource = JSON.parse(data); + } + tempObj.dataBind(); + }; + callback.send().then(); + } + if (tempObj.dataSourceSettings.connectionDataSource.crudAction.read) { + var callback = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Fetch"](tempObj.dataSourceSettings.connectionDataSource.crudAction.read, 'GET'); + callback.onSuccess = function (data) { + tempObj.dataSourceSettings.connectionDataSource.dataManager = JSON.parse(data); + tempObj.dataBind(); + }; + callback.send().then(); + } + }; + /** + * Returns the module name of the diagram + * + * @returns {string} Returns the module name of the diagram + */ + Diagram.prototype.getModuleName = function () { + return 'diagram'; + }; + /** + * + * Returns the name of class Diagram + * @returns {string} Returns the module name of the diagram + * @private + */ + Diagram.prototype.getClassName = function () { + return 'Diagram'; + }; + /* tslint:disable */ + /** + * To provide the array of modules needed for control rendering + * + * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\ + * @private + */ + Diagram.prototype.requiredModules = function () { + var modules = []; + modules.push({ + member: 'Bpmn', + args: [] + }); + modules.push({ + member: 'Bridging', + args: [] + }); + modules.push({ + member: 'ConnectorEditingTool', + args: [] + }); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + modules.push({ + member: 'BlazorTooltip', + args: [] + }); + } + if (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].UndoRedo) { + modules.push({ + member: 'UndoRedo', + args: [] + }); + } + if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' || + this.layout.enableAnimation) { + modules.push({ + member: 'LayoutAnimate', + args: [] + }); + } + if (this.snapSettings.constraints) { + modules.push({ + member: 'Snapping', + args: [this] + }); + } + modules.push({ + member: 'EJ1SerializationModule', + args: [this] + }); + modules.push({ + member: 'PrintandExport', + args: [this] + }); + if (this.contextMenuSettings.show) { + modules.push({ + member: 'contextMenu', + args: [this, this.serviceLocator] + }); + } + if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree') { + modules.push({ + member: 'OrganizationalChart', + args: [this] + }); + } + if (this.layout.type === 'ComplexHierarchicalTree') { + modules.push({ + member: 'ComplexHierarchicalTree', + args: [] + }); + } + if (this.layout.type === 'MindMap') { + modules.push({ + member: 'MindMapChart', + args: [] + }); + } + if (this.layout.type === 'RadialTree') { + modules.push({ + member: 'RadialTree', + args: [] + }); + } + if (this.layout.type === 'SymmetricalLayout') { + modules.push({ + member: 'SymmetricalLayout', + args: [] + }); + } + if (this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource || + this.dataSourceSettings.crudAction.read || this.dataSourceSettings.connectionDataSource.crudAction.read) { + modules.push({ + member: 'DataBinding', + args: [] + }); + } + if (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].LineRouting) { + modules.push({ + member: 'LineRouting', + args: [] + }); + } + if ((this.layout && this.layout.connectionPointOrigin === 'DifferentPoint') || (this.layout.arrangement === 'Linear' || (this.layout.enableRouting))) { + modules.push({ + member: 'LineDistribution', + args: [] + }); + } + return modules; + }; + /* tslint:enable */ + Diagram.prototype.removeUserHandlesTemplate = function () { + if (this.selectedItems.userHandles.length) { + for (var i = 0; i < this.selectedItems.userHandles.length; i++) { + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(this.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_template_hiddenUserHandle', elementId); + } + } + } + }; + /** + *To destroy the diagram + * + * @returns {void} To destroy the diagram + */ + Diagram.prototype.destroy = function () { + clearInterval(this.renderTimer); + this.renderTimer = null; + if (this.hRuler && this.vRuler) { + this.hRuler.destroy(); + this.vRuler.destroy(); + } + this.tooltipObject.destroy(); + this.droppable.destroy(); + this.unWireEvents(); + this.notify('destroy', {}); + _super.prototype.destroy.call(this); + this.removeUserHandlesTemplate(); + this.clearTemplate(); + if (document.getElementById(this.element.id)) { + this.element.classList.remove('e-diagram'); + var tooltipelement = document.getElementsByClassName('e-diagram-tooltip'); + while (tooltipelement.length > 0) { + tooltipelement[0].parentNode.removeChild(tooltipelement[0]); + } + var content = document.getElementById(this.element.id + 'content'); + if (content) { + this.element.removeChild(content); + } + var measureWindowElement = 'measureElement'; + if (window["" + measureWindowElement]) { + window["" + measureWindowElement].usageCount -= 1; + var measureElementCount = 'measureElementCount'; + window["" + measureElementCount]--; + if (window["" + measureElementCount] === 0) { + window["" + measureWindowElement].parentNode.removeChild(window["" + measureWindowElement]); + window["" + measureWindowElement] = null; + } + } + } + var domTable = 'domTable'; + window["" + domTable] = {}; + for (var i = 0; i < this.layers.length; i++) { + var currentLayer = this.layers[parseInt(i.toString(), 10)]; + currentLayer.zIndexTable = {}; + } + this.diagramActions = undefined; + }; + //Wires the mouse events with diagram control + Diagram.prototype.wireEvents = function () { + var startEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent; + var stopEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent; + var moveEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent; + var cancelEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isPointer ? 'pointerleave' : 'mouseleave'; + var isIE11Pointer = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isPointer; + var wheelEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'mozilla' ? + (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, startEvent, this.eventHandler.mouseDown, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, 'keydown', this.eventHandler.keyDown, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, 'keyup', this.eventHandler.keyUp, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, 'scroll', this.eventHandler.scrolled, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'resize', this.eventHandler.windowResize, this.eventHandler); + this.initDroppables(); + }; + //Unwires the mouse events from diagram control + Diagram.prototype.unWireEvents = function () { + var startEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent; + var moveEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent; + var cancelEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isPointer ? 'pointerleave' : 'mouseleave'; + var isIE11Pointer = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isPointer; + var wheelEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'mozilla' ? + (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel'; + var stopEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, startEvent, this.eventHandler.mouseDown); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, 'keydown', this.eventHandler.keyDown); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, 'keyup', this.eventHandler.keyUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, 'scroll', this.eventHandler.scrolled); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'resize', this.eventHandler.windowResize); + }; + //public methods - start region + /** + * Selects the given collection of objects \ + * + * @returns { void } Selects the given collection of objects .\ + * @param {NodeModel | ConnectorModel} objects - Defines the collection of nodes and connectors to be selected + * @param {boolean} multipleSelection -Defines whether the existing selection has to be cleared or not + * @param {NodeModel | ConnectorModel} oldValue - Defines the old value + * + */ + Diagram.prototype.select = function (objects, multipleSelection, oldValue) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var i = 0; i < objects.length; i++) { + objects[parseInt(i.toString(), 10)] = this.nameTable[objects[parseInt(i.toString(), 10)].id]; + } + objects = this.nameTable[objects.id] || objects; + } + if (objects != null) { + this.commandHandler.selectObjects(objects, multipleSelection, oldValue); + } + }; + /** + * this method returns diagramAction as a string + * @returns { string } + */ + //Feature (EJ2-18451) : For all client side events, cause argument data type should be string instead of flag enum and value should be easier to understand. + Diagram.prototype.getDiagramAction = function (diagramAction) { + var action; + if (diagramAction === 2 && _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) { + action = 'Render'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) { + action = 'UndoRedo'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod) { + action = 'PublicMethod'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) { + action = 'ToolAction'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].TextEdit) { + action = 'TextEdit'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group) { + action = 'Group'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Interactions) { + action = 'Interactions'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory) { + action = 'PreventHistory'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DecoratorPropertyChange) { + action = 'DecoratorPropertyChange'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventZIndexOnDragging) { + action = 'PreventZIndexOnDragging'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].isGroupDragging) { + action = 'isGroupDragging'; + } + else if (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse) { + action = 'DragUsingMouse'; + } + return action; + }; + /** + * Selects the all the objects. \ + * + * @returns { void } Selects the all the objects. .\ + * + */ + Diagram.prototype.selectAll = function () { + var selectedItems = []; + selectedItems = this.getObjectsOfLayer(this.activeLayer.objects); + this.select(selectedItems); + }; + /** + * Removes the given object from selection list \ + * + * @returns { void } Selects the given collection of objects .\ + * @param {NodeModel | ConnectorModel} obj - Removes the given object from selection list + * + */ + Diagram.prototype.unSelect = function (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.commandHandler.oldSelectedObjects = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.selectedItems); + obj = this.nameTable[obj.id] || obj; + } + if (obj && Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_27__["isSelected"])(this, obj)) { + this.commandHandler.unSelect(obj); + this.commandHandler.updateBlazorSelector(); + } + }; + /** + * Removes all elements from the selection list\ + * + * @returns { void } Removes all elements from the selection list .\ + * + */ + Diagram.prototype.clearSelection = function () { + this.commandHandler.clearSelection(true); + }; + /** + * Update the diagram clipboard dimension \ + * + * @returns { void } Update the diagram clipboard dimension .\ + * + */ + Diagram.prototype.updateViewPort = function () { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.eventHandler.updateViewPortSize(this.element); + this.updateBlazorDiagramProperties(attribute, true); + }; + Diagram.prototype.cutCommand = function () { + this.cut(); + }; + /** + * Removes the selected nodes and connectors from diagram and moves them to diagram clipboard \ + * + * @returns { void } Removes the selected nodes and connectors from diagram and moves them to diagram clipboard .\ + * + */ + Diagram.prototype.cut = function () { + this.commandHandler.cut(); + }; + /** + * Add a process into the sub-process \ + * + * @returns { void } Add a process into the sub-process.\ + * @param {NodeModel | ConnectorModel} process - provide the process value. + * @param {boolean} parentId - provide the parentId value. + * + */ + Diagram.prototype.addProcess = function (process, parentId) { + if (this.bpmnModule) { + this.bpmnModule.addProcess(process, parentId, this); + } + }; + /** + * Remove a process from the sub-processs \ + * + * @returns { void } Remove a process from the sub-process.\ + * @param {string} id - provide the id value. + * + */ + Diagram.prototype.removeProcess = function (id) { + if (this.bpmnModule) { + this.bpmnModule.removeProcess(id, this); + } + }; + Diagram.prototype.pasteCommand = function () { + this.paste(); + }; + /** + * Adds the given objects/ the objects in the diagram clipboard to diagram control \ + * + * @returns { void } Remove a process from the sub-process.\ + * @param {NodeModel[] | ConnectorModel[]} obj - Defines the objects to be added to diagram + + * + */ + Diagram.prototype.paste = function (obj) { + this.commandHandler.paste(obj); + }; + /** + * fit the diagram to the page with respect to mode and region \ + * + * @returns { void } fit the diagram to the page with respect to mode and region.\ + * @param {IFitOptions} options - provide the options value. + * + */ + Diagram.prototype.fitToPage = function (options) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.scroller.fitToPage(options); + this.updateBlazorDiagramProperties(attribute, true); + }; + /** + * bring the specified bounds into the viewport \ + * + * @returns { void } bring the specified bounds into the viewport.\ + * @param {Rect} bound - provide the bound value. + * + */ + Diagram.prototype.bringIntoView = function (bound) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset + this.scroller.bringIntoView(bound, true); + this.updateBlazorDiagramProperties(attribute, true); + }; + /** + * bring the specified bounds to the center of the viewport \ + * + * @returns { void } bring the specified bounds to the center of the viewport.\ + * @param {Rect} bound - provide the bound value. + * + */ + Diagram.prototype.bringToCenter = function (bound) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.scroller.bringToCenter(bound); + this.updateBlazorDiagramProperties(attribute, true); + }; + Diagram.prototype.copyCommand = function () { + this.copy(); + }; + /** + * Copies the selected nodes and connectors to diagram clipboard \ + * + * @returns { Object } Copies the selected nodes and connectors to diagram clipboard.\ + * + */ + Diagram.prototype.copy = function () { + var obj = this.commandHandler.copy(); + return obj; + }; + /** + * Group the selected nodes and connectors in diagram \ + * + * @returns { void } Group the selected nodes and connectors in diagram.\ + * + */ + Diagram.prototype.group = function () { + var selectedItems = []; + selectedItems = this.selectedItems.nodes; + selectedItems = selectedItems.concat(this.selectedItems.connectors); + if (selectedItems.length > 1) { + this.callBlazorModel = false; + this.insertBlazorDiagramObjects(this.selectedItems); + this.commandHandler.group(); + this.callBlazorModel = true; + this.commandHandler.getBlazorOldValues(); + } + }; + /** + * UnGroup the selected nodes and connectors in diagram \ + * + * @returns { void } UnGroup the selected nodes and connectors in diagram.\ + * + */ + Diagram.prototype.unGroup = function () { + this.callBlazorModel = false; + this.insertBlazorDiagramObjects(this.selectedItems); + this.commandHandler.unGroup(); + this.callBlazorModel = true; + this.commandHandler.getBlazorOldValues(); + }; + /** + * send the selected nodes or connectors back \ + * + * @returns { void } send the selected nodes or connectors back.\ + * + */ + Diagram.prototype.sendToBack = function () { + this.commandHandler.sendToBack(); + }; + /** + * set the active layer\ + * + * @returns { void } set the active layer.\ + * @param {string} layerName - defines the name of the layer which is to be active layer. + * + */ + Diagram.prototype.setActiveLayer = function (layerName) { + var layer = this.commandHandler.getLayer(layerName); + this.activeLayer = layer; + }; + /** + * add the layer into diagram\ + * + * @returns { void } add the layer into diagram.\ + * @param {LayerModel} layer - defines the layer model which is to be added + * @param {Object[]} layerObject - defines the object of the layer + * @blazorArgsType layer|DiagramLayer + + * + */ + Diagram.prototype.addLayer = function (layer, layerObject) { + this.commandHandler.addLayer(layer, layerObject); + }; + /* eslint-disable */ + /** + * @private + */ + Diagram.prototype.addDiagramLayer = function (layer, layerObject) { + this.commandHandler.addLayer(layer, layerObject, false); + }; + /** + * remove the layer from diagram \ + * + * @returns { void } remove the layer from diagram.\ + * @param {string} layerId - provide the bound value. + + * + */ + Diagram.prototype.removeLayer = function (layerId) { + this.commandHandler.removeLayer(layerId, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()); + }; + /** + * @private + */ + Diagram.prototype.removeDiagramLayer = function (layerId) { + this.commandHandler.removeLayer(layerId, false); + }; + /* eslint-enable */ + /** + * move objects from the layer to another layer from diagram\ + * + * @returns { void } move objects from the layer to another layer from diagram.\ + * @param {string[]} objects - define the objects id of string array + * @param {string} targetLayer - define the objects id of string array + * + */ + Diagram.prototype.moveObjects = function (objects, targetLayer) { + var oldValues = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.layers); + this.enableServerDataBinding(false); + this.commandHandler.moveObjects(objects, targetLayer); + var result = this.commandHandler.deepDiffer.map(oldValues, Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.layers)); + var diffValue = this.commandHandler.deepDiffer.frameObject({}, result); + this.oldDiagramObject = { layers: diffValue }; + this.commandHandler.updateBlazorProperties(); + }; + /* tslint:disable */ + Diagram.prototype.layerObjectUpdate = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.enableServerDataBinding(false); + this.oldDiagramObject['layers'] = []; + for (var i = 0; i < this.layers.length; i++) { + // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var leyerObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.layers[parseInt(i.toString(), 10)]); + leyerObject.sfIndex = this.layers[parseInt(i.toString(), 10)].zIndex; + this.oldDiagramObject['layers'].push(leyerObject); + } + } + }; + /* tslint:enable */ + /** + * move the layer backward \ + * + * @returns { void } move the layer backward .\ + * @param {string} layerName - define the name of the layer + * @param {string} targetLayer - define the objects id of string array + * + */ + Diagram.prototype.sendLayerBackward = function (layerName) { + this.layerObjectUpdate(); + this.commandHandler.sendLayerBackward(layerName); + this.commandHandler.updateLayerObject(this.oldDiagramObject, true); + }; + /** + * move the layer forward \ + * + * @returns { void } move the layer forward.\ + * @param {string} layerName - define the name of the layer + * + */ + Diagram.prototype.bringLayerForward = function (layerName) { + this.layerObjectUpdate(); + this.commandHandler.bringLayerForward(layerName); + this.commandHandler.updateLayerObject(this.oldDiagramObject); + }; + /** + *clone a layer with its object \ + * + * @returns { void } move the layer forward.\ + * @param {string} layerName - define the name of the layer + * + */ + Diagram.prototype.cloneLayer = function (layerName) { + this.commandHandler.cloneLayer(layerName); + }; + /** + *bring the selected nodes or connectors to front \ + * + * @returns { void } move the layer forward.\ + * + */ + Diagram.prototype.bringToFront = function () { + this.commandHandler.bringToFront(); + }; + /** + *send the selected nodes or connectors forward \ + * + * @returns { void } send the selected nodes or connectors forward.\ + * + */ + Diagram.prototype.moveForward = function () { + this.commandHandler.sendForward(); + }; + /** + *send the selected nodes or connectors back\ + * + * @returns { void } send the selected nodes or connectors back.\ + * + */ + Diagram.prototype.sendBackward = function () { + this.commandHandler.sendBackward(); + }; + /** + *gets the node or connector having the given name \ + * + * @returns { void } gets the node or connector having the given name.\ + * @param {string} name - define the name of the layer + * + */ + Diagram.prototype.getObject = function (name) { + return this.nameTable["" + name]; + }; + /** + * gets the node object for the given node ID \ + * + * @returns { void } gets the node object for the given node ID.\ + * @param {string} id - define the name of the layer + * + */ + Diagram.prototype.getNodeObject = function (id) { + return Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable["" + id]); + }; + /** + *gets the connector object for the given node ID \ + * + * @returns { void } gets the connector object for the given node ID.\ + * @param {string} id - define the name of the layer + * + */ + Diagram.prototype.getConnectorObject = function (id) { + return Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable["" + id]); + }; + /** + * gets the active layer back \ + * + * @returns { void } gets the active layer back.\ + * + */ + Diagram.prototype.getActiveLayer = function () { + return this.activeLayer; + }; + Diagram.prototype.nudgeCommand = function (direction, x, y) { + if (typeof direction !== 'object' && (this.selectedItems.nodes.length || this.selectedItems.connectors.length) > 0) { + var type = void 0; + if (x.type && x.type === 'KEYDOWN') { + type = x.type; + } + this.nudge(direction, undefined, undefined, type); + } + }; + /** + * Moves the selected objects towards the given direction + * + * @returns { void } Moves the selected objects towards the given direction .\ + * @param {NudgeDirection} direction - Defines the direction by which the objects have to be moved + * @param {number} x - Defines the distance by which the selected objects have to be horizontally moved + * @param {number} y - Defines the distance by which the selected objects have to be vertically moved + */ + Diagram.prototype.nudge = function (direction, x, y, type) { + var tx = 0; + var ty = 0; + var negativeDirection; + if (direction === 'Left' || direction === 'Right') { + negativeDirection = (direction === 'Left'); + tx = (negativeDirection ? -1 : 1) * (x ? x : 1); + } + else { + negativeDirection = (direction === 'Up'); + ty = (negativeDirection ? -1 : 1) * (y ? y : 1); + } + if (type === 'KEYDOWN') { + tx *= 5; + ty *= 5; + } + var obj = this.selectedItems; + var annotation = this.selectedItems.wrapper.children[0]; + if (annotation instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) { + this.commandHandler.labelDrag(obj.nodes[0], annotation, tx, ty); + } + else { + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.selectedItems); + this.protectPropertyChange(true); + this.drag(obj, tx, ty); + this.protectPropertyChange(false); + var entry = { + type: 'PositionChanged', + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.selectedItems), undoObject: undoObject, category: 'Internal' + }; + this.addHistoryEntry(entry); + } + this.refreshCanvasLayers(); + }; + Diagram.prototype.insertBlazorDiagramObjects = function (actualObject) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].interaction)) { + this.enableServerDataBinding(false); + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) { + for (var i = 0; i < actualObject.nodes.length; i++) { + this.insertBlazorDiagramObjects(actualObject.nodes[parseInt(i.toString(), 10)]); + } + for (var i = 0; i < actualObject.connectors.length; i++) { + this.insertBlazorDiagramObjects(actualObject.connectors[parseInt(i.toString(), 10)]); + } + } + if (!(actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"])) { + //let object: object; + if (actualObject && actualObject.children && actualObject.children.length > 0) { + for (var i = 0; i < actualObject.children.length; i++) { + this.insertBlazorDiagramObjects(this.nameTable[actualObject.children[parseInt(i.toString(), 10)]]); + } + } + var object = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable[actualObject.id]); + this.insertValue(object, !(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(actualObject) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"])); + } + } + }; + /** + * Drags the given object by the specified pixels + * + * @returns { void } Drags the given object by the specified pixels .\ + * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the nodes/connectors to be dragged + * @param {number} tx - Defines the distance by which the given objects have to be horizontally moved + * @param {number} ty - Defines the distance by which the given objects have to be vertically moved + */ + Diagram.prototype.drag = function (obj, tx, ty) { + this.insertBlazorDiagramObjects(obj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && obj.id) { + obj = this.nameTable[obj.id] || obj; + } + if (this.bpmnModule && (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"])) { + var updated = this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty); + if (updated) { + return; + } + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) { + this.preventConnectorsUpdate = true; + if (obj.nodes && obj.nodes.length) { + for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) { + var node = _a[_i]; + this.callBlazorModel = false; + this.drag(node, tx, ty); + if (node.parentId) { + var parent_1 = this.nameTable[node.parentId]; + if (parent_1.isLane) { + var swimlane = this.nameTable[parent_1.parentId]; + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["updateLaneBoundsAfterAddChild"])(parent_1, swimlane, node, this); + } + } + } + this.callBlazorModel = true; + } + if (obj.connectors && obj.connectors.length) { + this.callBlazorModel = false; + for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) { + var conn = _c[_b]; + this.drag(conn, tx, ty); + if (this.selectionConnectorsList.indexOf(conn) === -1) { + this.selectionConnectorsList.push(conn); + } + } + this.callBlazorModel = true; + } + this.updateSelector(); + if ((this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse)) { + this.updatePage(); + } + } + else { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (this.bpmnModule) { + this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty); + } + } + this.commandHandler.drag(obj, tx, ty); + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) { + this.preventConnectorsUpdate = false; + for (var _d = 0, _e = this.selectionConnectorsList; _d < _e.length; _d++) { + var connectors = _e[_d]; + this.updateConnectorProperties(this.nameTable[connectors.id]); + if (connectors.shape.type === 'Bpmn' && connectors.shape.sequence === 'Default' && connectors.shape.flow === 'Sequence') { + this.commandHandler.updatePathElementOffset(connectors); + } + } + this.selectionConnectorsList = []; + } + // Bug 832880: Need to improve performance while nudging multiple nodes. + // Removed one if condition here to improve performance. + if (this.callBlazorModel && (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].interaction)) && + (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess))) { + this.commandHandler.getBlazorOldValues(); + } + }; + Diagram.prototype.disableStackContainerPadding = function (wrapper, disable) { + if (wrapper instanceof _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_43__["StackPanel"]) { + wrapper.considerPadding = disable; + } + if (wrapper.children) { + for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) { + var child = _a[_i]; + this.disableStackContainerPadding(child, false); + } + } + }; + /** + * Scales the given objects by the given ratio + * + * @returns { void } Scales the given objects by the given ratio .\ + * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the objects to be resized + * @param {number} sx - Defines the ratio by which the objects have to be horizontally scaled + * @param {number} sy - Defines the ratio by which the objects have to be vertically scaled + * @param {PointModel} pivot - Defines the reference point with respect to which the objects will be resized + */ + Diagram.prototype.scale = function (obj, sx, sy, pivot) { + this.disableStackContainerPadding(obj.wrapper, false); + this.insertBlazorDiagramObjects(obj); + var checkBoundaryConstraints = true; + if (obj.id) { + obj = this.nameTable[obj.id] || obj; + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) { + if (obj.nodes && obj.nodes.length) { + this.callBlazorModel = false; + for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) { + var node = _a[_i]; + checkBoundaryConstraints = this.commandHandler.scale(node, sx, sy, pivot, obj); + if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) { + this.commandHandler.scale(node, 1 / sx, 1 / sy, pivot, obj); + } + } + this.callBlazorModel = true; + } + if (obj.connectors && obj.connectors.length) { + this.callBlazorModel = false; + for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) { + var conn = _c[_b]; + this.commandHandler.scale(conn, sx, sy, pivot, obj); + if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) { + this.commandHandler.scale(conn, 1 / sx, 1 / sy, pivot, obj); + } + } + this.callBlazorModel = true; + } + var selector = this.selectedItems; + if (!(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["selectionHasConnector"])(this, selector))) { + this.updateSelector(); + } + this.refreshCanvasLayers(); + } + else { + this.commandHandler.scale(obj, sx, sy, pivot, (obj.children ? obj : undefined)); + } + if (this.callBlazorModel && (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].interaction)) && + (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess))) { + this.commandHandler.getBlazorOldValues(); + } + this.disableStackContainerPadding(obj.wrapper, true); + return checkBoundaryConstraints; + }; + /** + * Rotates the given nodes/connectors by the given angle + * + * @returns { void } Rotates the given nodes/connectors by the given angle .\ + * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the objects to be rotated + * @param {number} angle - Defines the angle by which the objects have to be rotated + * @param {PointModel} pivot - Defines the reference point with reference to which the objects have to be rotated + */ + Diagram.prototype.rotate = function (obj, angle, pivot) { + this.insertBlazorDiagramObjects(obj); + var checkBoundaryConstraints; + if (obj.id) { + obj = this.nameTable[obj.id] || obj; + } + if (obj) { + pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY }; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) { + this.callBlazorModel = false; + obj.rotateAngle += angle; + obj.wrapper.rotateAngle += angle; + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getBounds"])(obj.wrapper); + checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bounds); + if (!checkBoundaryConstraints) { + obj.rotateAngle -= angle; + obj.wrapper.rotateAngle -= angle; + return checkBoundaryConstraints; + } + var objects = []; + objects = objects.concat(obj.nodes); + objects = objects.concat(obj.connectors); + this.commandHandler.rotateObjects(obj, objects, angle, pivot); + this.callBlazorModel = true; + } + else { + this.commandHandler.rotateObjects(obj, [obj], angle, pivot); + } + } + if (this.callBlazorModel && (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].interaction))) { + this.commandHandler.getBlazorOldValues(); + } + return checkBoundaryConstraints; + }; + /** + * Moves the source point of the given connector + * + * @returns { void } Moves the source point of the given connector .\ + * @param {ConnectorModel} obj - Defines the connector, the end points of which has to be moved + * @param {number} tx - Defines the distance by which the end point has to be horizontally moved + * @param {number} ty - Defines the distance by which the end point has to be vertically moved + */ + Diagram.prototype.dragSourceEnd = function (obj, tx, ty) { + this.insertBlazorDiagramObjects(obj); + this.commandHandler.dragSourceEnd(obj, tx, ty); + if (this.callBlazorModel) { + this.commandHandler.getBlazorOldValues(); + } + }; + /** + * Moves the target point of the given connector + * + * @returns { void } Moves the target point of the given connector.\ + * @param {ConnectorModel} obj - Defines the connector, the end points of which has to be moved + * @param {number} tx - Defines the distance by which the end point has to be horizontally moved + * @param {number} ty - Defines the distance by which the end point has to be vertically moved + */ + Diagram.prototype.dragTargetEnd = function (obj, tx, ty) { + this.insertBlazorDiagramObjects(obj); + this.commandHandler.dragTargetEnd(obj, tx, ty); + if (this.callBlazorModel) { + this.commandHandler.getBlazorOldValues(); + } + }; + /** + * Finds all the objects that is under the given mouse position + * + * @returns { void } Finds all the objects that is under the given mouse position.\ + * @param {PointModel} position - Defines the position, the objects under which has to be found + * @param {IElement} source - Defines the object, the objects under which has to be found + */ + Diagram.prototype.findObjectsUnderMouse = function (position, source) { + return this.eventHandler.findObjectsUnderMouse(position, source); + }; + /** + * Finds the object that is under the given mouse position + * + * @returns { void } Finds the object that is under the given mouse position.\ + * @param {NodeModel[] | ConnectorModel[]}objects - Defines the collection of objects, from which the object has to be found. + * @param {Actions} action - Defines the action, using which the relevant object has to be found. + * @param {boolean} inAction - Defines the active state of the action. + */ + Diagram.prototype.findObjectUnderMouse = function (objects, action, inAction) { + return this.eventHandler.findObjectUnderMouse(objects, action, inAction); + }; + /** + * Finds the object that is under the given active object (Source) + * + * @returns { void } Finds the object that is under the given active object (Source) .\ + * @param {NodeModel[] | ConnectorModel[]} objects - Defines the collection of objects, from which the object has to be found. + * @param {Actions} action - Defines the action, using which the relevant object has to be found. + * @param {boolean} inAction - Defines the active state of the action. + * @param {PointModel} position - Defines the position. + * @param {IElement} source - Defines the source. + */ + Diagram.prototype.findTargetObjectUnderMouse = function (objects, action, inAction, position, source) { + return this.eventHandler.findTargetUnderMouse(objects, action, inAction, position, source); + }; + /** + * Finds the child element of the given object at the given position + * + * @returns { void } Finds the child element of the given object at the given position .\ + * @param {IElement} obj - Defines the object, the child element of which has to be found + * @param {PointModel} position - Defines the position, the child element under which has to be found + * @param {number} padding - Defines the padding, the child element under which has to be found + */ + Diagram.prototype.findElementUnderMouse = function (obj, position, padding) { + return this.eventHandler.findElementUnderMouse(obj, position, padding); + }; + /** + * Defines the action to be done, when the mouse hovers the given element of the given object + * + * @returns { void } Defines the action to be done, when the mouse hovers the given element of the given object .\ + * @param {NodeModel | ConnectorModel} obj - Defines the object under mouse + * @param {DiagramElement} wrapper - Defines the target element of the object under mouse + * @param {PointModel} position - Defines the current mouse position + * @param { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - Defines the target + * @private + */ + Diagram.prototype.findActionToBeDone = function (obj, wrapper, position, target) { + return this.eventHandler.findActionToBeDone(obj, wrapper, position, target); + }; + /** + * Returns the tool that handles the given action + * + * @returns { ToolBase } Returns the tool that handles the given action \ + * @param {string} action - Defines the action that is going to be performed + */ + Diagram.prototype.getTool = function (action) { + var tool; + var getCustomTool = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.getCustomTool); + if (getCustomTool) { + tool = getCustomTool(action); + if (tool) { + return tool; + } + } + return this.eventHandler.getTool(action); + }; + /** + * Defines the cursor that corresponds to the given action + * + * @returns { string } Defines the cursor that corresponds to the given action \ + * @param {string} action - Defines the action that is going to be performed + * @param {boolean} active - Defines the active + */ + Diagram.prototype.getCursor = function (action, active) { + var cursor; + var getCustomCursor = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.getCustomCursor); + if (getCustomCursor) { + cursor = getCustomCursor(action, active); + if (cursor) { + return cursor; + } + } + if (this.customCursor.length) { + for (var i = 0; i < this.customCursor.length; i++) { + if (this.customCursor[parseInt(i.toString(), 10)].action === action) { + return this.customCursor[parseInt(i.toString(), 10)].cursor; + } + } + } + return this.eventHandler.getCursor(action); + }; + /** + * Initializes the undo redo actions + * + * @returns { void } Initializes the undo redo actions \ + * @private + */ + Diagram.prototype.initHistory = function () { + if (this.undoRedoModule) { + this.undoRedoModule.initHistory(this); + } + }; + /** + * Adds the given change in the diagram control to the track + * + * @returns { void } Adds the given change in the diagram control to the track \ + * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram + * @param {string[]} sourceId - Defines the source id + */ + Diagram.prototype.addHistoryEntry = function (entry, sourceId) { + if (this.undoRedoModule && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].UndoRedo) + && (!this.currentSymbol || this.checkCurrentSymbol(this.currentSymbol, entry))) { + if (entry.undoObject && entry.undoObject.id === 'helper') { + return; + } + this.undoRedoModule.addHistoryEntry(entry, this); + if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup') { + this.historyChangeTrigger(entry, 'CustomAction', sourceId); + } + } + }; + Diagram.prototype.checkCurrentSymbol = function (currentSymbol, entry) { + var check = false; + if (entry.undoObject && entry.redoObject) { + var undoObjects = entry.undoObject; + var redoObject = entry.undoObject; + if (redoObject.id && undoObjects.id && redoObject.id !== currentSymbol.id && undoObjects.id !== currentSymbol.id) { + return check = true; + } + else { + return check; + } + } + return check; + }; + /** + * Adds the given custom change in the diagram control to the track + * + * @returns { void } Adds the given custom change in the diagram control to the track \ + * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram + */ + Diagram.prototype.addCustomHistoryEntry = function (entry) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.undoRedoModule && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].UndoRedo)) { + entry.type = undefined; + entry.category = 'External'; + this.undoRedoModule.addHistoryEntry(entry, this); + } + }; + /* eslint-disable */ + /** @private */ + Diagram.prototype.historyChangeTrigger = function (entry, action, sourceId) { + var change = {}; + /* eslint-enable */ + var oldValue = 'oldValue'; + var newValue = 'newValue'; + var type = 'type'; + var entryType = 'entryType'; + var source = []; + if (entry.category === 'Internal') { + if (entry && entry.redoObject && ((entry.redoObject.nodes) instanceof Array) && + ((entry.redoObject.connectors) instanceof Array)) { + source = entry.redoObject.nodes.concat(entry.redoObject.connectors); + } + else { + if (entry.redoObject) { + source.push(entry.redoObject); + } + } + change["" + type] = entry.type; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + change["" + entryType] = entry.type; + } + switch (entry.type) { + case 'PositionChanged': + change["" + oldValue] = { + offsetX: entry.undoObject.offsetX, + offsetY: entry.undoObject.offsetY + }; + change["" + newValue] = { + offsetX: entry.redoObject.offsetX, + offsetY: entry.redoObject.offsetY + }; + break; + case 'RotationChanged': + change["" + oldValue] = { rotateAngle: entry.undoObject.rotateAngle }; + change["" + newValue] = { rotateAngle: entry.redoObject.rotateAngle }; + break; + case 'SizeChanged': + change["" + oldValue] = { + offsetX: entry.undoObject.offsetX, offsetY: entry.undoObject.offsetY, + width: entry.undoObject.width, height: entry.undoObject.height + }; + change["" + newValue] = { + offsetX: entry.redoObject.offsetX, offsetY: entry.redoObject.offsetY, + width: entry.redoObject.width, height: entry.redoObject.height + }; + break; + case 'CollectionChanged': + change[entry.changeType] = source; + break; + case 'ConnectionChanged': + change["" + oldValue] = { + offsetX: entry.undoObject.offsetX, + offsetY: entry.undoObject.offsetY + }; + change["" + newValue] = { + offsetX: entry.redoObject.offsetX, + offsetY: entry.redoObject.offsetY + }; + break; + } + /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/ + var arg = void 0; + var nodeSourceId = []; + var connectorSourceId = []; + if (sourceId === undefined && entry.type === 'PropertyChanged') { + for (var i = 0; i < Object.keys(entry.undoObject).length; i++) { + if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'nodes') { + for (var _i = 0, _a = Object.keys(entry.undoObject.nodes); _i < _a.length; _i++) { + var key = _a[_i]; + var undoIndex = parseInt(key); + nodeSourceId.push(this.nodes[parseInt(undoIndex.toString(), 10)].id); + } + } + } + for (var i = 0; i < Object.keys(entry.undoObject).length; i++) { + if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'connectors') { + for (var _b = 0, _c = Object.keys(entry.undoObject.connectors); _b < _c.length; _b++) { + var key = _c[_b]; + var undoIndex = parseInt(key); + connectorSourceId.push(this.connectors[parseInt(undoIndex.toString(), 10)].id); + } + } + } + sourceId = nodeSourceId.concat(connectorSourceId); + } + arg = { + cause: entry.category, source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(source), change: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(change), + action: action, sourceId: sourceId + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + arg = { + cause: entry.category, change: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(change), + source: { connectors: undefined, nodes: undefined }, action: action + }; + var sourceValue = arg.source; + sourceValue.connectors = []; + sourceValue.nodes = []; + var object = void 0; + for (var i = 0; i < source.length; i++) { + object = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(source[parseInt(i.toString(), 10)]); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(source[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) ? + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (sourceValue.connectors.push(object)) : (sourceValue.nodes.push(object)); + } + arg.source = sourceValue; + } + if (source.length) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].historyChange, arg); + } + } + }; + /** + * Starts grouping the actions that will be undone/restored as a whole + * + * @returns { void } Starts grouping the actions that will be undone/restored as a whole\ + */ + Diagram.prototype.startGroupAction = function () { + var entry = { type: 'StartGroup', category: 'Internal' }; + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + }; + /** + * Closes grouping the actions that will be undone/restored as a whole + * + * @returns { void } Closes grouping the actions that will be undone/restored as a whole .\ + */ + Diagram.prototype.endGroupAction = function () { + var entry = { type: 'EndGroup', category: 'Internal' }; + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + }; + /** + * Restores the last action that is performed + * + * @returns { void } Restores the last action that is performed .\ + */ + Diagram.prototype.undo = function () { + this.canEnableBlazorObject = true; + this.callBlazorModel = false; + if (this.undoRedoModule && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].UndoRedo)) { + this.undoRedoModule.undo(this); + } + this.commandHandler.getBlazorOldValues(); + this.callBlazorModel = true; + this.canEnableBlazorObject = false; + }; + /** + * Restores the last undone action + * + * @returns { void } Restores the last undone action .\ + */ + Diagram.prototype.redo = function () { + this.canEnableBlazorObject = true; + this.callBlazorModel = false; + if (this.undoRedoModule && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].UndoRedo)) { + this.undoRedoModule.redo(this); + } + this.commandHandler.getBlazorOldValues(); + this.callBlazorModel = true; + this.canEnableBlazorObject = false; + }; + Diagram.prototype.getBlazorDiagramObjects = function (objects) { + if (objects) { + for (var j = 0; j < objects.length; j++) { + this.insertBlazorDiagramObjects(objects[parseInt(j.toString(), 10)]); + } + } + else { + this.insertBlazorDiagramObjects(this.selectedItems); + } + this.callBlazorModel = false; + this.canEnableBlazorObject = true; + }; + /** + * Aligns the group of objects to with reference to the first object in the group + * + * @returns { void } Aligns the group of objects to with reference to the first object in the group .\ + * @param {AlignmentOptions}option - Defines the factor, by which the objects have to be aligned + * @param {NodeModel[] | ConnectorModel[]} objects - Defines the objects that have to be aligned + * @param {AlignmentMode} type - Defines the type to be aligned + */ + Diagram.prototype.align = function (option, objects, type) { + this.getBlazorDiagramObjects(objects); + if (!objects) { + objects = []; + objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors); + } + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + this.commandHandler.align(objects, option, (type ? type : 'Object')); + this.commandHandler.getBlazorOldValues(); + this.callBlazorModel = true; + this.canEnableBlazorObject = false; + }; + /** + * Arranges the group of objects with equal intervals, but within the group of objects + * + * @returns { void } Arranges the group of objects with equal intervals, but within the group of objects .\ + * @param {NodeModel[] | ConnectorModel[]} option - Defines the factor to distribute the shapes + * @param {DistributeOptions} objects - Defines the objects that have to be equally spaced + */ + Diagram.prototype.distribute = function (option, objects) { + this.getBlazorDiagramObjects(objects); + if (!objects) { + objects = []; + objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors); + } + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + this.commandHandler.distribute(objects, option); + this.commandHandler.getBlazorOldValues(); + this.canEnableBlazorObject = false; + this.callBlazorModel = true; + }; + /** + * Scales the given objects to the size of the first object in the group + * + * @returns { void } Scales the given objects to the size of the first object in the group .\ + * @param {SizingOptions} option - Defines whether the node has to be horizontally scaled, vertically scaled or both + * @param {NodeModel[] | ConnectorModel[]}objects - Defines the collection of objects that have to be scaled + */ + Diagram.prototype.sameSize = function (option, objects) { + this.getBlazorDiagramObjects(objects); + if (!objects) { + objects = []; + objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors); + } + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + this.commandHandler.sameSize(objects, option); + this.commandHandler.getBlazorOldValues(); + this.canEnableBlazorObject = false; + this.callBlazorModel = true; + }; + Diagram.prototype.updateBlazorDiagramProperties = function (attribute, canCall) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !canCall) { + //Need to send the client changes into server side for public APIs changes. + var isServerDataBindEnabled = this.allowServerDataBinding; + this.enableServerDataBinding(true); + for (var i = 0; i < attribute.length; i++) { + this.oldDiagramObject[attribute[parseInt(i.toString(), 10)]] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this[attribute[parseInt(i.toString(), 10)]]); + } + this.enableServerDataBinding(isServerDataBindEnabled); + } + if (canCall) { + this.commandHandler.getDiagramOldValues(this.oldDiagramObject, attribute); + } + }; + Diagram.prototype.getZoomingAttribute = function () { + var attribute = []; + attribute.push('scrollSettings'); + attribute.push('snapSettings'); + return attribute; + }; + /** + * Scales the diagram control by the given factor + * + * @returns { void } Scales the diagram control by the given factor .\ + * @param {number} factor - Defines the factor by which the diagram is zoomed + * @param {PointModel} focusedPoint - Defines the point with respect to which the diagram has to be zoomed + */ + Diagram.prototype.zoom = function (factor, focusedPoint) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.scroller.zoom(factor, 0, 0, focusedPoint); + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].interaction)) { + this.updateBlazorDiagramProperties(attribute, true); + } + }; + /** + * Scales the diagram control by the given factor + * + * @returns { void } Scales the diagram control by the given factor .\ + * @param {ZoomOptions} options - used to define the zoom factor, focus point and zoom type. + * + */ + Diagram.prototype.zoomTo = function (options) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + var factor = options.zoomFactor ? options.zoomFactor : 0.2; + factor = options.type === 'ZoomOut' ? 1 / (1 + factor) : (1 + factor); + this.scroller.zoom(factor, 0, 0, options.focusPoint); + this.updateBlazorDiagramProperties(attribute, true); + }; + /** + * Pans the diagram control to the given horizontal and vertical offsets + * + * @returns { void } Pans the diagram control to the given horizontal and vertical offsets .\ + * @param {number} horizontalOffset - Defines the horizontal distance to which the diagram has to be scrolled + * @param {number} verticalOffset - Defines the vertical distance to which the diagram has to be scrolled + * @param {PointModel} focusedPoint - Provide the focusedPoint value + * @param {boolean} isInteractiveZoomPan - Provide the isInteractiveZoomPan value + */ + Diagram.prototype.pan = function (horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan) { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.setCursor('grabbing'); + this.scroller.zoom(1, horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan); + this.updateBlazorDiagramProperties(attribute, true); + }; + /** + * Resets the zoom and scroller offsets to default values + * + * @returns { void } Resets the zoom and scroller offsets to default values .\ + */ + Diagram.prototype.reset = function () { + var attribute = this.getZoomingAttribute(); + this.updateBlazorDiagramProperties(attribute); + this.scroller.zoom(1 / this.scroller.currentZoom, -this.scroller.horizontalOffset, -this.scroller.verticalOffset, { x: 0, y: 0 }); + this.updateBlazorDiagramProperties(attribute, true); + }; + /** + * Resets the segments of the connectors + * + * @returns { void } Resets the segments of the connectors .\ + */ + Diagram.prototype.resetSegments = function () { + var previousConnectorObject = []; + var updateConnectorObject = []; + var changeConnectors = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var _i = 0, _a = this.connectors; _i < _a.length; _i++) { + var obj = _a[_i]; + previousConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + } + if (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].LineRouting && this.lineRoutingModule) { + this.lineRoutingModule.lineRouting(this); + } + else { + this.protectPropertyChange(true); + var connector = void 0; + for (var i = 0; i < this.connectors.length; i++) { + connector = this.connectors[parseInt(i.toString(), 10)]; + connector.segments = []; + this.connectorPropertyChange(connector, {}, { segments: connector.segments }); + } + this.protectPropertyChange(false); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) { + var obj = _c[_b]; + updateConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors); + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + var diagramObject = { nodes: [], connectors: changeConnectors }; + if (window && window["" + blazor]) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + } + }; + /** + * setBlazorDiagramProps method + * + * @returns {void} setBlazorDiagramProps method .\ + * @param {boolean} arg - provide the eventName value. + * @private + */ + Diagram.prototype.setBlazorDiagramProps = function (arg) { + var attribute = this.getZoomingAttribute(); + if (arg) { + this.updateBlazorDiagramProperties(attribute); + } + else { + this.updateBlazorDiagramProperties(attribute, true); + } + }; + /** + * getDirection method + * + * @returns { Promise } getDirection method .\ + * @param {DiagramEvent} eventName - provide the eventName value. + * @param {Object} args - provide the args value. + * @private + */ + Diagram.prototype.triggerEvent = function (eventName, args) { + return __awaiter(this, void 0, void 0, function () { + var eventArgs; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (args) { + this.updateEventValue(args); + } + return [4 /*yield*/, this.trigger(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"]["" + eventName], args)]; + case 1: + eventArgs = _a.sent(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && typeof eventArgs === 'string') { + eventArgs = JSON.parse(eventArgs); + } + return [2 /*return*/, eventArgs]; + } + }); + }); + }; + Diagram.prototype.updateEventValue = function (args) { + var element = args.element; + if (args.element && element instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"] && (element.nodes.length + element.connectors.length === 1)) { + args.element = (element.nodes.length === 1) ? element.nodes[0] : element.connectors[0]; + } + }; + /** + * Adds the given node to the lane + * + * @returns { void } Adds the given node to the lane .\ + * @param {NodeModel} node - provide the node value. + * @param {string} swimLane - provide the swimLane value. + * @param {string} lane - provide the lane value. + + */ + Diagram.prototype.addNodeToLane = function (node, swimLane, lane) { + if (this.nameTable["" + swimLane]) { + var swimlaneNode = this.nameTable["" + swimLane]; + this.protectPropertyChange(true); + if (this.undoRedoModule) { + this.historyManager.startGroupAction(); + } + if (!this.nameTable[node.id]) { + node.offsetX = swimlaneNode.wrapper.bounds.width + swimlaneNode.wrapper.bounds.x; + node.offsetY = swimlaneNode.wrapper.bounds.height + swimlaneNode.wrapper.bounds.y; + node = this.add(node); + } + node.parentId = ''; + if (!swimlaneNode.shape.phases.length) { + var laneId = swimLane + lane + '0'; + if (this.nameTable["" + laneId]) { + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["addChildToContainer"])(this, this.nameTable["" + laneId], node, undefined, true); + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["updateLaneBoundsAfterAddChild"])(this.nameTable["" + laneId], swimlaneNode, node, this); + } + } + else { + for (var i = 0; i < swimlaneNode.shape.phases.length; i++) { + var laneId = swimLane + lane + i; + if (this.nameTable["" + laneId] && this.nameTable["" + laneId].isLane) { + var laneNode = this.nameTable["" + laneId].wrapper.bounds; + var focusPoint = { + x: laneNode.x + + (laneNode.x - swimlaneNode.wrapper.bounds.x + node.margin.left + (node.wrapper.bounds.width / 2)), + y: laneNode.y + swimlaneNode.wrapper.bounds.y - node.margin.top + }; + if (swimlaneNode.shape.orientation === 'Horizontal') { + focusPoint.y = laneNode.y; + } + else { + focusPoint.x = laneNode.x; + var laneHeaderId = this.nameTable["" + laneId].parentId + + swimlaneNode.shape.lanes[0].id + '_0_header'; + focusPoint.y = laneNode.y + + (swimlaneNode.wrapper.bounds.y - this.nameTable["" + laneHeaderId].wrapper.bounds.height + + node.margin.top + (node.wrapper.bounds.height / 2)); + } + if (laneNode.containsPoint(focusPoint) || + (laneId === swimLane + lane + (swimlaneNode.shape.phases.length - 1))) { + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["addChildToContainer"])(this, this.nameTable["" + laneId], node, undefined, true); + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["updateLaneBoundsAfterAddChild"])(this.nameTable["" + laneId], swimlaneNode, node, this); + break; + } + } + } + } + if (this.undoRedoModule) { + this.historyManager.endGroupAction(); + } + this.protectPropertyChange(false); + } + this.updateDiagramElementQuad(); + }; + /** + * Shows tooltip for corresponding diagram object + * + * @param {NodeModel | ConnectorModel} obj - Defines the object for that tooltip has to be shown + */ + Diagram.prototype.showTooltip = function (obj) { + if (obj && obj.id && !obj.wrapper) { + obj = this.nameTable[obj.id]; + } + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getBounds"])(obj.wrapper); + var position = { x: 0, y: 0 }; + var content = obj.tooltip.content ? + obj.tooltip.content : 'X:' + Math.round(bounds.x) + ' ' + 'Y:' + Math.round(bounds.y); + if (obj && obj.tooltip.openOn === 'Custom') { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + position = { x: obj.offsetX + (obj.width / 2), y: obj.offsetY + (obj.height / 2) }; + } + else { + position = { x: obj.targetPoint.x, y: obj.targetPoint.x }; + } + this.commandHandler.showTooltip(obj, position, content, 'SelectTool', true); + } + }; + /** + * hides tooltip for corresponding diagram object + * + * @param {NodeModel | ConnectorModel} obj - Defines the object for that tooltip has to be hide + */ + Diagram.prototype.hideTooltip = function (obj) { + if (obj && obj.tooltip.openOn === 'Custom') { + this.tooltipObject.close(); + } + }; + /** + * Adds the given node to diagram control + * + * @returns { Node } getDirection method .\ + * @param {NodeModel} obj - Defines the node that has to be added to diagram + * @param {boolean} group - Defines the node that has to be added to diagram + * @blazorArgsType obj|DiagramNode + */ + Diagram.prototype.addNode = function (obj, group) { + return this.add(obj, group); + }; + /** + * Adds the given diagram object to the group. + * + * @returns { void } Adds the given diagram object to the group.\ + * @param {NodeModel} group - defines where the diagram object to be added. + * @param {string | NodeModel | ConnectorModel} child - defines the diagram object to be added to the group + * @blazorArgsType obj|DiagramNode + */ + Diagram.prototype.addChildToGroup = function (group, child) { + var severDataBind = this.allowServerDataBinding; + this.enableServerDataBinding(false); + var propChange = this.isProtectedOnChange; + this.protectPropertyChange(true); + group = this.getObject(group.id); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(group, true); + } + var isHistoryAdded = (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group) && + !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory)); + if (isHistoryAdded) { + this.startGroupAction(); + } + var id = this.addChild(group, child); + if (isHistoryAdded) { + var childTable = {}; + childTable["" + id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.getObject(id)); + var entry = { + type: 'AddChildToGroupNode', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(group), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(group), category: 'Internal', objectId: id, childTable: childTable + }; + this.addHistoryEntry(entry); + this.endGroupAction(); + } + this.protectPropertyChange(propChange); + this.enableServerDataBinding(severDataBind); + this.updateSelector(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isHistoryAdded) { + this.commandHandler.getBlazorOldValues(); + } + }; + /** + * Will return the history stack values + * + * @returns { void } Will return the history stack values .\ + * @param {boolean} isUndoStack - returns the history stack values + */ + Diagram.prototype.getHistoryStack = function (isUndoStack) { + //let temp: HistoryEntry[]; + var historyEntry = []; + var temp = isUndoStack ? this.historyManager.undoStack : this.historyManager.redoStack; + if (this.historyManager.stackLimit !== undefined) { + for (var i = temp.length - 1; i >= 0; i--) { + historyEntry.push(temp[parseInt(i.toString(), 10)]); + if (historyEntry.length > this.historyManager.stackLimit) { + return historyEntry; + } + } + } + else { + historyEntry = temp; + } + return historyEntry; + }; + /* tslint:disable */ + /** + * Return the edges for the given node + * + * @returns { string[] } Return the edges for the given node .\ + + * @param {Object} args - return the edge of the given node + */ + Diagram.prototype.getEdges = function (args) { + return args['outEdge'] ? this.nameTable[args['id']].outEdges : this.nameTable[args['id']].inEdges; + }; + /* tslint:enable */ + /** + * Returns the parent id for the node + * + * @returns { string }Returns the parent id for the node .\ + + * @param {string} id - returns the parent id + */ + Diagram.prototype.getParentId = function (id) { + return this.nameTable["" + id].parentId; + }; + /** + * Adds the given connector to diagram control + * @returns { Connector } Adds the given connector to diagram control .\ + * + * @param {ConnectorModel} obj - Defines the connector that has to be added to diagram + * @blazorArgsType obj|DiagramConnector + */ + Diagram.prototype.addConnector = function (obj) { + return this.add(obj); + }; + /* eslint-disable */ + /** @private */ + Diagram.prototype.UpdateBlazorDiagramModelCollection = function (obj, copiedObject, multiSelectDelete, isBlazorGroupUpdate) { + /* eslint-enable */ + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].ClearObject)) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor]) { + var updatedModel = void 0; + var connectorModelCollection = []; + var updatedModelCollection = []; + var objectTypeCollection = []; + var removalIndexCollection = []; + if (isBlazorGroupUpdate && !copiedObject) { + for (var i = 0; i < this.blazorAddorRemoveCollection.length; i++) { + objectTypeCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.blazorAddorRemoveCollection[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? 'Connector' : 'Node'); + updatedModel = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.blazorAddorRemoveCollection[parseInt(i.toString(), 10)]); + updatedModelCollection.push(updatedModel); + removalIndexCollection = this.blazorRemoveIndexCollection; + } + } + else if ((!this.isServerUpdate || multiSelectDelete)) { + this.isServerUpdate = true; + var updatedModel_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(obj); + var elements = []; + var removalIndex = void 0; + var tempNode = []; + if (!copiedObject) { + if (!multiSelectDelete) { + tempNode = this.commandHandler.getChildren(obj, elements); + } + else { + tempNode = multiSelectDelete; + } + for (var i = 0; i < tempNode.length; i++) { + updatedModel_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(tempNode[parseInt(i.toString(), 10)]); + updatedModelCollection.push(updatedModel_1); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(tempNode[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + removalIndex = this.connectors.indexOf(tempNode[parseInt(i.toString(), 10)]); + } + else { + removalIndex = this.nodes.indexOf(tempNode[parseInt(i.toString(), 10)]); + } + removalIndexCollection.push(removalIndex); + objectTypeCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(tempNode[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? 'Connector' : 'Node'); + } + if (!multiSelectDelete) { + updatedModelCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(obj)); + removalIndexCollection.push(this.nodes.indexOf(obj)); + objectTypeCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(obj) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? 'Connector' : 'Node'); + } + } + if (copiedObject && copiedObject.length > 0) { + for (var i = 0; i < copiedObject.length; i++) { + updatedModel_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(copiedObject[parseInt(i.toString(), 10)]); + var isNode = (copiedObject[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? true : false; + /* eslint-disable */ + isNode ? updatedModelCollection.push(updatedModel_1) : connectorModelCollection.push(updatedModel_1); + /* eslint-enable */ + objectTypeCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(copiedObject[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? 'Connector' : 'Node'); + } + } + this.isServerUpdate = false; + } + var dgmObj = { + 'methodName': 'UpdateBlazorDiagramObjects', + 'diagramobj': { + 'nodeObj': JSON.stringify(updatedModelCollection), + 'ObjectType': objectTypeCollection, + 'removalIndex': copiedObject ? undefined : removalIndexCollection, + 'isMultipleObjects': true, 'annotationIndex': undefined, + 'connectorObj': JSON.stringify(connectorModelCollection) + } + }; + window["" + blazorInterop].updateBlazorProperties(dgmObj, this); + if (isBlazorGroupUpdate && !copiedObject) { + this.blazorAddorRemoveCollection = []; + this.blazorRemoveIndexCollection = []; + } + } + } + }; + /** + * UpdateBlazorDiagramModel method + * + * @returns { void } UpdateBlazorDiagramModel method .\ + * @param {Node | Connector | ShapeAnnotation | PathAnnotation} obj - provide the obj value. + * @param {string} objectType - provide the objectType value. + * @param {number} removalIndex - provide the removalIndex value. + * @param {number} annotationNodeIndex - provide the annotationNodeIndex value. + * + * @private + */ + Diagram.prototype.UpdateBlazorDiagramModel = function (obj, objectType, removalIndex, annotationNodeIndex) { + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor] && !this.isServerUpdate && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear)) { + var updatedModel = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(obj); + var dgmObj = { + 'methodName': 'UpdateBlazorDiagramObjects', + 'diagramobj': { + 'nodeObj': JSON.stringify(updatedModel), + 'ObjectType': objectType, 'removalIndex': removalIndex, + 'isMultipleObjects': false, + 'annotationIndex': annotationNodeIndex, 'connectorObj': undefined + } + }; + window["" + blazorInterop].updateBlazorProperties(dgmObj, this); + } + } + }; + // eslint-disable-next-line max-len + Diagram.prototype.UpdateBlazorLabelOrPortObjects = function (obj, objectType, removalIndex, nodeIndex) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor] && obj.length > 0 && !this.isServerUpdate && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear)) { + // eslint-disable-next-line max-len + var updatedModelCollection = []; + var objectTypeCollection = []; + var nodeIndexCollection = []; + for (var i = 0; i < obj.length; i++) { + updatedModelCollection.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(obj[parseInt(i.toString(), 10)])); + objectTypeCollection.push(objectType); + nodeIndexCollection.push(nodeIndex); + } + var dgmObj = { + 'methodName': 'UpdateBlazorDiagramObjects', + 'diagramobj': { + 'nodeObj': JSON.stringify(updatedModelCollection), + 'ObjectType': objectTypeCollection, 'removalIndex': removalIndex, + 'isMultipleObjects': true, + 'annotationIndex': nodeIndexCollection, + 'connectorObj': null, + 'portIndex': (objectType === 'Port') ? nodeIndexCollection : [] + } + }; + window["" + blazorInterop].updateBlazorProperties(dgmObj, this); + } + }; + /** + * addBlazorDiagramObjects method + * + * @returns { void } addBlazorDiagramObjects method .\ + * + * @private + */ + Diagram.prototype.addBlazorDiagramObjects = function () { + var nodesCollection = []; + var connectorCollection = []; + if (this.dataBindingModule && !(this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDataInit)) { + for (var i = 0; i < this.nodes.length; i++) { + nodesCollection.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nodes[parseInt(i.toString(), 10)], undefined, undefined, true)); + } + for (var i = 0; i < this.connectors.length; i++) { + connectorCollection.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.connectors[parseInt(i.toString(), 10)], undefined, undefined, true)); + } + } + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor]) { + var obj = { + 'methodName': 'AddBlazorObjects', + 'diagramobj': { 'nodeObj': JSON.stringify(nodesCollection), 'isConnector': false } + }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + obj = { + 'methodName': 'AddBlazorObjects', + 'diagramobj': { 'nodeObj': JSON.stringify(connectorCollection), 'isConnector': true } + }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + }; + Diagram.prototype.removeNodeEdges = function (elementId, id, isOutEdges) { + var node = this.nameTable["" + elementId]; + var edges = isOutEdges ? node.outEdges : node.inEdges; + if (edges.length > 0) { + for (var i = 0; i < edges.length; i++) { + if (edges[parseInt(i.toString(), 10)] === id) { + edges.splice(i, 1); + } + } + } + }; + /** + * insertBlazorConnector method + * + * @returns { void } insertBlazorConnector method .\ + * @param {Connector} obj - provide the nodeId value. + * + * @private + */ + Diagram.prototype.insertBlazorConnector = function (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"])) { + if (obj.sourceID && this.nameTable[obj.sourceID]) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable[obj.sourceID]), true); + } + if (obj.targetID && this.nameTable[obj.targetID]) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable[obj.targetID]), true); + } + } + }; + /* tslint:disable */ + /** + * Adds the given object to diagram control + * + * @returns { Node | Connector } getDirection method .\ + * @param {NodeModel | ConnectorModel} obj - Defines the object that has to be added to diagram + * @param {boolean} group - provide the group value. + */ + Diagram.prototype.add = function (obj, group) { + var newObj; + var propertyChangeValue = this.isProtectedOnChange; + this.protectPropertyChange(true); + if (obj) { + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj); + var args = void 0; + args = { + element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changing', type: 'Addition', cancel: false + }; + if (this.parentObject) { + args.parentId = this.parentObject.id; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getCollectionChangeEventArguements"])(args, obj, 'Changing', 'Addition'); + } + if (obj.id !== 'helper' && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventCollectionChangeOnDragOver)) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].collectionChange, args); + } + if (args.cancel && this.drawingObject) { + this.removeElements(args.element); + this.tooltipObject.close(); + var sourceNodee = this.getObject(args.element.sourceID); + var isOutEdgee = void 0; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(args.element) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + if (args.element.sourceID) { + this.removeNodeEdges(args.element.sourceID, args.element.id, true); + if (sourceNodee.ports.length > 0) { + for (var i = 0; i < sourceNodee.ports.length; i++) { + var port = sourceNodee.ports[parseInt(i.toString(), 10)]; + if (port.id === args.element.sourcePortID) { + if (port.outEdges.length > 0) { + isOutEdgee = false; + } + else { + isOutEdgee = true; + } + } + } + this.removePortEdges(sourceNodee, args.element.sourcePortID, args.element.id, isOutEdgee); + } + } + if (args.element.targetID) { + this.removeNodeEdges(args.element.targetID, args.element.id, false); + } + } + } + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + obj.id = obj.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + var layers = this.activeLayer; + if (!args.cancel && !layers.lock) { + if (layers.objects.indexOf(obj.id) < 0 && !layers.lock) { + if (!layers.visible) { + layers.visible = true; + this.dataBind(); + } + layers.objects.push(obj.id); + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(obj) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + newObj = new _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"](this, 'connectors', obj, true); + newObj.status = 'New'; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateDefaultValues"])(newObj, obj, this.connectorDefaults); + this.connectors.push(newObj); + this.initObject(newObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if ((this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress)) { + this.blazorAddorRemoveCollection.push(newObj); + } + else if (this.blazorAddorRemoveCollection.length > 0) { + this.isServerUpdate = false; + this.blazorAddorRemoveCollection.push(newObj); + this.UpdateBlazorDiagramModelCollection(undefined, this.blazorAddorRemoveCollection, undefined, true); + this.blazorAddorRemoveCollection = []; + this.commandHandler.getBlazorOldValues(); + } + else if ((!this.isServerUpdate) && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + this.UpdateBlazorDiagramModel(newObj, 'Connector'); + this.commandHandler.getBlazorOldValues(); + } + } + if (obj.visible === false) { + this.updateElementVisibility(newObj.wrapper, newObj, obj.visible); + } + this.updateEdges(newObj); + this.insertBlazorConnector(newObj); + } + else { + newObj = new _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"](this, 'nodes', obj, true); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateDefaultValues"])(newObj, obj, this.nodeDefaults); + newObj.parentId = (obj.parentId) ? obj.parentId : newObj.parentId; + newObj.umlIndex = obj.umlIndex; + newObj.status = 'New'; + this.nodes.push(newObj); + this.initObject(newObj, layers, undefined, group); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if ((this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress)) { + this.blazorAddorRemoveCollection.push(newObj); + } + else if (this.blazorAddorRemoveCollection.length > 0) { + this.blazorAddorRemoveCollection.push(newObj); + this.isServerUpdate = false; + this.UpdateBlazorDiagramModelCollection(undefined, this.blazorAddorRemoveCollection, undefined, true); + this.commandHandler.getBlazorOldValues(); + this.blazorAddorRemoveCollection = []; + } + else if ((!this.isServerUpdate) && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + this.UpdateBlazorDiagramModel(newObj, 'Node'); + this.commandHandler.getBlazorOldValues(); + } + } + this.updateTemplate(); + if (this.bpmnModule) { + if (newObj.shape.annotations && newObj.shape.annotations.length !== 0) { + for (var _i = 0, _a = this.bpmnModule.getTextAnnotationConn(newObj); _i < _a.length; _i++) { + var obj_1 = _a[_i]; + this.initConnectors(obj_1, layers, false); + } + } + if (newObj.shape.activity && newObj.shape.activity.subProcess.processes && + newObj.shape.activity.subProcess.processes.length) { + this.bpmnModule.updateDocks(newObj, this); + } + } + if (this.lineRoutingModule && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].LineRouting)) { + var objects = this.spatialSearch.findObjects(newObj.wrapper.outerBounds); + for (var i = 0; i < objects.length; i++) { + var object = objects[parseInt(i.toString(), 10)]; + if (object instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + this.connectorPropertyChange(object, {}, { + sourceID: object.sourceID, targetID: object.targetID, sourcePortID: object.sourcePortID, + targetPortID: object.targetPortID, sourcePoint: object.sourcePoint, targetPoint: object.targetPoint + }); + } + } + } + if (newObj.umlIndex > -1 && obj.parentId && this.nameTable[obj.parentId] && + this.nameTable[obj.parentId].shape.type === 'UmlClassifier') { + var parent_2 = this.nameTable[obj.parentId]; + parent_2.children.splice(newObj.umlIndex, 0, newObj.id); + parent_2.wrapper.children.splice(newObj.umlIndex, 0, newObj.wrapper); + parent_2.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + parent_2.wrapper.arrange(parent_2.wrapper.desiredSize); + this.updateDiagramObject(parent_2); + } + } + args = { + element: newObj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changed', type: 'Addition', cancel: false + }; + if (this.parentObject) { + args.parentId = this.parentObject.id; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getCollectionChangeEventArguements"])(args, obj, 'Changed', 'Addition'); + } + if (obj.id !== 'helper' && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventCollectionChangeOnDragOver)) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].collectionChange, args); + } + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group) && + !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory)) { + var entry = { + type: 'CollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + this.parentObject = undefined; + if (this.mode === 'SVG') { + this.updateSvgNodes(newObj); + this.updateTextElementValue(newObj); + this.updateDiagramObject(newObj); + if (newObj.shape.activity && newObj.shape.activity.subProcess.processes && + newObj.shape.activity.subProcess.processes.length) { + this.updateProcesses(newObj); + } + this.updateBridging(); + } + } + } + this.protectPropertyChange(propertyChangeValue); + this.resetDiagramActions(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod); + if (newObj && this.layers.length > 1) { + this.moveNode(newObj); + } + for (var _b = 0, _c = this.views; _b < _c.length; _b++) { + var temp = _c[_b]; + var view = this.views["" + temp]; + if (!(view instanceof Diagram)) { + this.refreshCanvasDiagramLayer(view); + } + } + this.renderReactTemplates(); + return newObj; + }; + /* tslint:enable */ + Diagram.prototype.updateSvgNodes = function (node) { + if (node.children) { + for (var _i = 0, _a = node.children; _i < _a.length; _i++) { + var j = _a[_i]; + if (this.nameTable["" + j] && this.nameTable["" + j].parentId) { + var child = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(j + '_groupElement', this.element.id); + if (child) { + child.parentNode.removeChild(child); + } + } + } + } + }; + /** + * updateProcesses method + * + * @returns { void } updateProcesses method .\ + * @param {(Node | Connector)} node - provide the nodeId value. + * + * @private + */ + Diagram.prototype.updateProcesses = function (node) { + if (this.bpmnModule && node && node.shape && node.shape.activity && + node.shape.activity.subProcess.processes && + node.shape.activity.subProcess.processes.length) { + var processes = node.shape.activity.subProcess.processes; + this.moveSvgNode(node.id); + for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) { + var j = processes_1[_i]; + this.moveSvgNode(j); + var edges = []; + edges = edges.concat(this.nameTable["" + j].outEdges, this.nameTable["" + j].inEdges); + for (var i = edges.length - 1; i >= 0; i--) { + this.moveSvgNode(edges[parseInt(i.toString(), 10)]); + } + } + for (var _a = 0, processes_2 = processes; _a < processes_2.length; _a++) { + var j = processes_2[_a]; + if (this.nameTable["" + j].shape.activity.subProcess.processes && + this.nameTable["" + j].shape.activity.subProcess.processes.length) { + this.updateProcesses(this.nameTable["" + j]); + } + } + } + else { + this.moveSvgNode(node.id); + } + }; + /** + * moveSvgNode method + * + * @returns { void } moveSvgNode method .\ + * @param {string} nodeId - provide the nodeId value. + * + * @private + */ + Diagram.prototype.moveSvgNode = function (nodeId) { + var child = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(nodeId + '_groupElement', this.element.id); + var parent = child.parentElement; + child.parentNode.removeChild(child); + parent.appendChild(child); + }; + /** + * Adds the given annotation to the given node + * + * @returns { void } Adds the given annotation to the given node .\ + * @param {BpmnAnnotationModel} annotation - Defines the annotation to be added + * @param {NodeModel} node - Defines the node to which the annotation has to be added + */ + Diagram.prototype.addTextAnnotation = function (annotation, node) { + if (this.bpmnModule) { + var connector = this.bpmnModule.addAnnotation(node, annotation, this); + this.initConnectors(connector, this.commandHandler.getObjectLayer(node.id), false); + this.updateDiagramObject(node); + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group)) { + var entry = { + type: 'CollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(annotation), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(annotation), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + // EJ2-65546 - Adding BPMN Text annotation node inside swimlane at runtime is not working properly. + // Checking whether the node is children of Lane. + if (node.parentId) { + var nodeParent = this.nameTable[node.parentId]; + if (nodeParent && nodeParent.isLane) { + // Getting swimlane node using lane parent Id and setting isTextNode property to true to provide + // drag support for bpmn text annotation while dragging swimlane. + var swimlane = this.nameTable[nodeParent.parentId]; + swimlane.isTextNode = true; + } + } + } + }; + //Splice the InEdge and OutEdge of the for the node with respect to corresponding connectors that is deleting + Diagram.prototype.spliceConnectorEdges = function (connector, isSource) { + //let node: Node; + var edges = []; + //let isInEdge: boolean; + var node = isSource ? this.nameTable[connector.sourceID] : this.nameTable[connector.targetID]; + if (node) { + edges = isSource ? node.outEdges : node.inEdges; + for (var i = edges.length - 1; i >= 0; i--) { + if (edges[parseInt(i.toString(), 10)] === connector.id) { + edges.splice(i, 1); + } + } + for (var j = 0; node.ports && j < node.ports.length; j++) { + var isInEdge = isSource ? false : true; + this.removePortEdges(node, node.ports[parseInt(j.toString(), 10)].id, connector.id, isInEdge); + } + } + }; + /** + * Remove the dependent connectors if the node is deleted + * @returns { void } Remove the dependent connectors if the node is deleted .\ + * @param {Node} node - provide the node value. + * + * @private + */ + Diagram.prototype.removeDependentConnector = function (node) { + if (node) { + var connector = void 0; + var edges = []; + edges = edges.concat(node.outEdges, node.inEdges); + for (var i = edges.length - 1; i >= 0; i--) { + connector = this.nameTable[edges[parseInt(i.toString(), 10)]]; + if (connector) { + this.connectorTable[connector.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(connector); + this.remove(connector); + } + } + } + }; + /** + * Remove the dependent connectors if the node is deleted + * @returns { void } Remove the dependent connectors if the node is deleted .\ + * @param {(NodeModel | ConnectorModel)} obj - provide the node value. + * + * @private + */ + Diagram.prototype.removeObjectsFromLayer = function (obj) { + if (obj.children) { + for (var i = 0; i < obj.children.length; i++) { + var object = this.nameTable[obj.children[parseInt(i.toString(), 10)]]; + if (object) { + this.removeObjectsFromLayer(object); + } + } + } + var layer = this.layers.indexOf(this.commandHandler.getObjectLayer(obj.id)); + var objects = this.layers[parseInt(layer.toString(), 10)].objects; + var objIndex = objects.indexOf(obj.id); + if (objIndex > -1) { + if (Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_27__["isSelected"])(this, obj)) { + this.unSelect(obj); + } + this.layers[parseInt(layer.toString(), 10)].objects.splice(objIndex, 1); + delete this.layers[parseInt(layer.toString(), 10)].zIndexTable[this.nameTable[obj.id].zIndex]; + } + }; + /** + * removeElements method \ + * + * @returns { string } removeElements method .\ + * @param {NodeModel | ConnectorModel} currentObj - provide the currentObj value. + * + * @private + */ + Diagram.prototype.removeElements = function (currentObj) { + if (this.mode === 'SVG' || (this.mode === 'Canvas' && currentObj.shape.type === 'Native')) { + var removeElement_1 = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(currentObj.id + '_groupElement', this.element.id); + var object = currentObj; + if ((object).ports && (object).ports.length > 0) { + for (var i = 0; i < (object).ports.length; i++) { + var port = (object).ports[parseInt(i.toString(), 10)]; + var removePort = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(object.id + '_' + port.id + '_groupElement', this.element.id); + if (removePort) { + removePort.parentNode.removeChild(removePort); + } + } + } + if (removeElement_1) { + removeElement_1.parentNode.removeChild(removeElement_1); + } + } + this.refreshCanvasLayers(); + if (currentObj.wrapper) { + var children = currentObj.wrapper.children; + var element = void 0; + var view = void 0; + if (children) { + for (var i = 0; i < children.length; i++) { + if (children[parseInt(i.toString(), 10)] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_36__["DiagramNativeElement"] || ((children[parseInt(i.toString(), 10)].id) && (children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0)) { + if ((children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0 && this.mode === 'SVG') { + element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(children[parseInt(i.toString(), 10)].id + '_shape_groupElement', this.element.id); + if (element) { + element.parentNode.removeChild(element); + } + element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(children[parseInt(i.toString(), 10)].id + '_rect_groupElement', this.element.id); + if (element) { + element.parentNode.removeChild(element); + } + } + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(children[parseInt(i.toString(), 10)].id + '_groupElement', elementId); + var nodeIndex = this.scroller.removeCollection.indexOf(currentObj.id); + this.scroller.removeCollection.splice(nodeIndex, 1); + } + } + else if (children[parseInt(i.toString(), 10)] instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"]) { + for (var _b = 0, _c = this.views; _b < _c.length; _b++) { + var elementId = _c[_b]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(currentObj.id + '_html_element', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(children[parseInt(i.toString(), 10)].id + '_html_element', elementId); + //EJ2-63598 - Added below code to check whether platform is Angular or not. + // If angular then we do not remove the node html element wrapper to retain the HTML element in it. + var canUpdate = true; + var parent_3 = this.nameTable[currentObj.parentId]; + if (((this.isAngular || this.isReact) || this.isVue) && parent_3 && parent_3.isLane) { + canUpdate = false; + } + if (canUpdate) { + this.clearTemplate(['nodeTemplate' + '_' + currentObj.id]); + } + if (children[parseInt(i.toString(), 10)].annotationId) { + this.clearTemplate(['annotationTemplate' + '_' + currentObj.id + (children[parseInt(i.toString(), 10)].annotationId)]); + } + } + } + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["removeGradient"])(children[parseInt(i.toString(), 10)].id); + } + } + } + }; + Diagram.prototype.removeCommand = function () { + this.remove(); + }; + /** + * Removes the given object from diagram + * + * @param {NodeModel | ConnectorModel} obj - Defines the object that has to be removed from diagram + */ + /* tslint:disable */ + Diagram.prototype.remove = function (obj) { + var selectedItems = []; + selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors); + var args; + var groupAction = false; + if (obj) { + obj = this.nameTable[obj.id]; + this.insertBlazorConnector(obj); + if (obj && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDelete"])(obj) || (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear))) { + args = { + element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + state: 'Changing', type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getCollectionChangeEventArguements"])(args, obj, 'Changing', 'Removal'); + } + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear) && (obj.id !== 'helper')) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].collectionChange, args); + } + if (!args.cancel) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDelete"])(obj)) { + if (obj && obj.shape && obj.shape.type === 'SwimLane') { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removeSwimLane"])(this, obj); + } + } + if (this.bpmnModule) { + if (this.bpmnModule.checkAndRemoveAnnotations(obj, this)) { + this.refreshCanvasLayers(); + return; + } + } + if ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory) && + (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] || obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"])) { + var entry = { + type: 'CollectionChanged', changeType: 'Remove', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear)) { + if (obj.children && !obj.isLane && !obj.isPhase && obj.children.length > 0 && this.undoRedoModule && this.layout.type === 'None') { + this.historyManager.startGroupAction(); + groupAction = true; + } + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + this.removeDependentConnector(obj); + } + if (!obj.isLane && !obj.isPhase) { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear) && !this.isStackChild(obj)) { + this.addHistoryEntry(entry); + } + } + } + if (obj.children && !obj.isLane && !obj.isPhase && + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() || !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo))) { + this.deleteGroup(obj); + } + if (obj.parentId) { + this.deleteChild(obj); + if (this.nameTable[obj.parentId] && this.nameTable[obj.parentId].shape.type === 'UmlClassifier') { + this.updateDiagramObject(this.nameTable[obj.parentId]); + this.updateConnectorEdges(this.nameTable[obj.parentId]); + } + } + var index = void 0; + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + var currentObj = this.nameTable[obj.id]; + if (currentObj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (currentObj.shape.type === 'Bpmn' && this.bpmnModule) { + this.bpmnModule.removeBpmnProcesses(currentObj, this); + } + if (currentObj.isLane || currentObj.isPhase || currentObj.shape.type === 'SwimLane') { + var swimLaneNode = (currentObj.isLane || currentObj.isPhase) ? + this.nameTable[currentObj.parentId] : this.nameTable[currentObj.id]; + var grid = swimLaneNode.wrapper.children[0]; + if (currentObj.isLane) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removeLane"])(this, currentObj, swimLaneNode); + } + else if (currentObj.isPhase) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removePhase"])(this, currentObj, swimLaneNode); + } + } + index = this.nodes.indexOf(currentObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (obj.id !== 'helper')) { + if (this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress) { + this.blazorRemoveIndexCollection.splice(0, 0, index); + this.blazorAddorRemoveCollection.splice(0, 0, obj); + } + else if (this.blazorAddorRemoveCollection.length > 0) { + this.commandHandler.getBlazorOldValues(); + this.blazorRemoveIndexCollection.splice(0, 0, index); + this.blazorAddorRemoveCollection.splice(0, 0, obj); + this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true); + } + else if ((!this.isServerUpdate) && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + this.UpdateBlazorDiagramModel(obj, 'Node', index); + } + } + if (index !== -1) { + this.crudDeleteNodes.push(this.nameTable[currentObj.id]); + this.nodes.splice(index, 1); + this.updateNodeEdges(currentObj); + } + } + else { + index = this.connectors.indexOf(currentObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress) { + this.blazorAddorRemoveCollection.splice(0, 0, obj); + this.blazorRemoveIndexCollection.splice(0, 0, index); + } + else if (this.blazorAddorRemoveCollection.length > 0) { + this.commandHandler.getBlazorOldValues(); + this.blazorAddorRemoveCollection.splice(0, 0, obj); + this.blazorRemoveIndexCollection.splice(0, 0, index); + this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true); + } + else if ((!this.isServerUpdate) && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + this.UpdateBlazorDiagramModel(obj, 'Connector', index); + } + } + if (index !== -1) { + this.crudDeleteNodes.push(this.nameTable[currentObj.id]); + this.connectors.splice(index, 1); + } + this.updateEdges(currentObj); + this.spliceConnectorEdges(obj, true); + this.spliceConnectorEdges(obj, false); + } + if ((!this.isServerUpdate) && !(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + this.commandHandler.getBlazorOldValues(); + } + if (groupAction) { + this.historyManager.endGroupAction(); + } + if (Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_27__["isSelected"])(this, currentObj)) { + this.unSelect(currentObj); + } + if (!currentObj.isPhase) { + this.removeObjectsFromLayer(obj); + if (this.currentDrawingObject) { + this.currentDrawingObject.wrapper = undefined; + } + delete this.nameTable[obj.id]; + if (selectedItems.length > 0 && selectedItems[0].id === currentObj.id && currentObj.parentId) { + var parentnode = this.nameTable[currentObj.parentId]; + if (parentnode && parentnode.isLane && this.nameTable[parentnode.parentId].shape.type === 'SwimLane') { + var swimLaneNode = this.nameTable[parentnode.parentId]; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removeLaneChildNode"])(this, swimLaneNode, parentnode, currentObj); + } + } + this.removeElements(currentObj); + this.updateBridging(); + if (this.mode !== 'SVG') { + this.refreshDiagramLayer(); + } + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear)) { + this.removeFromAQuad(currentObj); + args = { + element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + state: 'Changed', type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getCollectionChangeEventArguements"])(args, obj, 'Changed', 'Removal'); + } + if (obj.id !== 'helper') { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].collectionChange, args); + } + this.resetTool(); + } + } + } + } + } + else if (selectedItems.length > 0) { + if (this.undoRedoModule) { + this.historyManager.startGroupAction(); + this.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress; + groupAction = true; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && selectedItems.length > 1) { + this.clearSelection(); + } + for (var i = 0; i < selectedItems.length; i++) { + var node = selectedItems[parseInt(i.toString(), 10)]; + if (this.nameTable[selectedItems[parseInt(i.toString(), 10)].id]) { + if ((selectedItems[parseInt(i.toString(), 10)] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) && this.bpmnModule && + this.bpmnModule.textAnnotationConnectors.indexOf(selectedItems[parseInt(i.toString(), 10)]) > -1) { + this.remove(this.nameTable[selectedItems[parseInt(i.toString(), 10)].targetID]); + return; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (!this.isServerUpdate && selectedItems && selectedItems.length > 1) { + this.isServerUpdate = true; + } + if (selectedItems[parseInt(i.toString(), 10)].parentId) { + this.insertBlazorDiagramObjects(this.nameTable[selectedItems[parseInt(i.toString(), 10)].parentId]); + } + } + this.remove(selectedItems[parseInt(i.toString(), 10)]); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && selectedItems[parseInt(i.toString(), 10)].parentId) { + this.commandHandler.getBlazorOldValues(); + this.isServerUpdate = false; + } + } + } + if (groupAction) { + this.blazorActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupingInProgress; + this.isServerUpdate = true; + this.commandHandler.getBlazorOldValues(); + this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true); + this.historyManager.endGroupAction(); + this.isServerUpdate = false; + } + this.clearSelection(); + } + if (!(obj && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDelete"])(obj) || (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear)))) { + if ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory) && + (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] || obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"])) { + var entry = { + type: 'ConnectionChanged', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + if (!obj.isLane && !obj.isPhase) { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear) && !this.isStackChild(obj)) { + this.addHistoryEntry(entry); + } + } + } + } + this.tooltipObject.close(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && selectedItems && selectedItems.length > 0) { + var check = true; + for (var k = 0; k < selectedItems.length; k++) { + if (this.nameTable[selectedItems[parseInt(k.toString(), 10)].id]) { + check = false; + } + } + if (check) { + this.isServerUpdate = false; + } + } + }; + /* tslint:enable */ + Diagram.prototype.isStackChild = function (obj) { + var isstack; + var parent = this.nameTable[obj.parentId]; + if (obj && obj.parentId && parent.container && + (parent.container.type === 'Stack' && + this.nameTable[obj.parentId].shape.type !== 'UmlClassifier')) { + isstack = true; + var redoElement = { + sourceIndex: parent.wrapper.children.indexOf(obj.wrapper), source: obj, + target: undefined, targetIndex: undefined + }; + var entry = { + type: 'StackChildPositionChanged', redoObject: { + sourceIndex: undefined, source: obj, + target: undefined, targetIndex: undefined + }, + undoObject: redoElement, + category: 'Internal' + }; + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + } + return isstack; + }; + /** @private */ + Diagram.prototype.deleteChild = function (node, parentNode) { + var id; + parentNode = parentNode ? this.nameTable[parentNode.id] : this.nameTable[node.parentId]; + if (typeof node === 'string') { + id = node; + } + else { + id = node.id; + } + if (parentNode && parentNode.children) { + for (var i = 0; i < parentNode.children.length; i++) { + if (parentNode.children[parseInt(i.toString(), 10)] === id) { + parentNode.children.splice(i, 1); + for (var j = 0; j < parentNode.wrapper.children.length; j++) { + if (parentNode.wrapper.children[parseInt(j.toString(), 10)].id === id) { + parentNode.wrapper.children.splice(j, 1); + } + } + // EJ2-57179 - Below lines added to remove the childs to swimlane after Redo. + var swimlaneNode = this.getObject(parentNode.parentId); + if (swimlaneNode && swimlaneNode.shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["SwimLane"]) { + for (var h = 0; h < swimlaneNode.shape.lanes.length; h++) { + var laneId = node.parentId.split(swimlaneNode.id); + if (swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) { + for (var y = 0; y < swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.length; y++) { + if (node.id === swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(y.toString(), 10)].id) { + swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.splice(y, 1); + break; + } + } + } + } + } + } + } + parentNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + parentNode.wrapper.arrange(parentNode.wrapper.desiredSize); + } + }; + /** + * addChild method \ + * + * @returns { string } addChild method .\ + * @param {NodeModel} node - provide the node value. + * @param {string | NodeModel | ConnectorModel} child - provide the child value. + * @param {number} index - provide the layoutOrientation value. + * + * @private + */ + Diagram.prototype.addChild = function (node, child, index) { + var id; + var parentNode = this.nameTable[node.id]; + if (!parentNode.children) { + parentNode.children = []; + } + if (parentNode.children) { + if (typeof child === 'string') { + if (this.nameTable["" + child]) { + id = child; + } + } + else { + id = child.id = child.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + this.add(child); + } + if (id && (!child.umlIndex || child.umlIndex === -1)) { + var childNode = this.nameTable["" + id]; + childNode.parentId = parentNode.id; + if (parentNode.container && parentNode.container.type === 'Stack') { + this.updateStackProperty(parentNode, childNode); + } + if (index) { + parentNode.children.splice(index, 0, id); + parentNode.wrapper.children.splice(index, 0, childNode.wrapper); + } + else { + parentNode.children.push(id); + parentNode.wrapper.children.push(childNode.wrapper); + // SF-362880 - Below lines added for adding the childs to swimlane after Undo. + var swimlane = this.getObject(node.parentId); + if (swimlane && swimlane.shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["SwimLane"]) { + for (var h = 0; h < swimlane.shape.lanes.length; h++) { + var laneId = childNode.parentId.split(node.parentId); + if (swimlane.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) { + swimlane.shape.lanes[parseInt(h.toString(), 10)].children.push(childNode); + break; + } + } + } + } + parentNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + parentNode.wrapper.arrange(parentNode.wrapper.desiredSize); + if (!parentNode.isLane) { + this.nameTable[node.id].width = parentNode.wrapper.actualSize.width; + this.nameTable[node.id].height = parentNode.wrapper.actualSize.height; + this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX; + this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY; + } + if (parentNode.container !== undefined) { + childNode.offsetX = childNode.wrapper.offsetX; + childNode.offsetY = childNode.wrapper.offsetY; + } + if (!parentNode.parentId || + (this.nameTable[parentNode.parentId] && + this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) { + this.updateDiagramObject(parentNode); + } + } + } + return id; + }; + /** + * Clears all nodes and objects in the diagram + * + * @returns { void } getDirection method .\ + + */ + Diagram.prototype.clear = function () { + this.clearObjects(); + }; + Diagram.prototype.clearObjects = function (collection) { + var objects = []; + if (!collection) { + objects = objects.concat(this.nodes); + objects = objects.concat(this.connectors); + } + else { + objects = collection; + } + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["blazorTemplates"]['diagramsf_node_template']) { + this.resetTemplate(); + var length_1 = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["blazorTemplates"]['diagramsf_node_template'].length; + if (length_1 > 0) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["blazorTemplates"]['diagramsf_node_template'].splice(0, length_1 - 1); + } + } + for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) { + var obj = objects_1[_i]; + if (this.nameTable[obj.id]) { + this.remove(obj); + } + } + this.diagramActions = this.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Clear; + this.spatialSearch = new _interaction_spatial_search_spatial_search__WEBPACK_IMPORTED_MODULE_28__["SpatialSearch"](this.nameTable); + this.initHistory(); + }; + Diagram.prototype.startEditCommad = function () { + var laneHeader; + var node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : undefined; + if (node && node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (node.isLane && node.parentId) { + var swimlane = this.nameTable[node.parentId]; + var lanes = swimlane.shape.lanes; + var canvasId = (node.id.slice(swimlane.id.length)); + var currentParentId = canvasId.substring(0, canvasId.length - 1); + for (var i = 0; i < lanes.length; i++) { + if (node.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) { + laneHeader = this.nameTable[lanes[parseInt(i.toString(), 10)].header.id]; + } + } + } + else if (node.shape.type === 'SwimLane' && node.shape.header && node.shape.hasHeader) { + var id = node.wrapper.children[0].rows[0].cells[0].children[0].id; + laneHeader = this.nameTable["" + id]; + } + } + this.startTextEdit(laneHeader); + }; + /* tslint:disable */ + /** + * Specified annotation to edit mode + * + * @returns { void } Specified annotation to edit mode .\ + * @param {NodeModel | ConnectorModel} node - Defines node/connector that contains the annotation to be edited + * @param {string} id - Defines annotation id to be edited in the node + */ + Diagram.prototype.startTextEdit = function (node, id) { + if ((!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canZoomPan"])(this) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMultiSelect"])(this)) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canSingleSelect"])(this)) { + this.textEditing = true; + var transform = this.scroller.transform; + var scale = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canZoomTextEdit"])(this) ? transform.scale : 1; + var minWidth = 90; + var text = void 0; + var bounds = void 0; + var attributes = void 0; + var x = void 0; + var y = void 0; + var textWrapper = void 0; + if (!node) { + node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : this.selectedItems.connectors[0]; + } + if (node) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var selectedNode = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node); + if (selectedNode.annotations.length > 0) { + this.insertValue(selectedNode, (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? true : false); + } + node = this.nameTable[node.id] || node; + } + if (node.shape && node.shape.type === 'UmlClassifier') { + node = this.nameTable[node.children[0]]; + } + var bpmnAnnotation = false; + if (this.bpmnModule) { + textWrapper = this.bpmnModule.getTextAnnotationWrapper(node, id); + if (textWrapper) { + node = this.nameTable[node.id.split('_textannotation_')[0]]; + } + } + if (!textWrapper) { + if (node.shape.type !== 'Text' && node.annotations.length === 0) { + if (!(node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].ReadOnly)) { + this.activeLabel.isGroup = true; + this.startGroupAction(); + this.addLabels(node, [{ id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(), content: '' }]); + } + } + if (!id && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) { + id = (node.shape.type === 'Text') ? (node.wrapper.children[0].id).split('_')[1] : node.annotations[0].id; + } + if (id) { + textWrapper = this.getWrapper(node.wrapper, id); + } + } + else { + bpmnAnnotation = true; + } + if (node && textWrapper && !(textWrapper instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"]) && + (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["enableReadOnly"])(textWrapper, node) || bpmnAnnotation)) { + var style = (textWrapper.style); + var maxWidth = void 0; + maxWidth = textWrapper.bounds.width < node.wrapper.bounds.width ? textWrapper.bounds.width : node.wrapper.bounds.width; + maxWidth = minWidth > maxWidth ? minWidth : maxWidth; + var textEditing = document.getElementById(this.element.id + '_editTextBoxDiv'); + var textArea = document.getElementById(this.element.id + '_editBox'); + text = textArea ? textArea.value : textWrapper.content; + this.activeLabel.text = text; + if (!textEditing && !textArea) { + textEditing = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', {}); + textArea = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('textarea', {}); + this.diagramCanvas.appendChild(textEditing); + textEditing.appendChild(textArea); + textArea.appendChild(document.createTextNode(text)); + } + bounds = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["measureHtmlText"])(textWrapper.style, text, undefined, undefined, maxWidth); + if (bounds.isEmpty()) { + if (node.shape.type !== 'Text') { + bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findAnnotation"])(node, (textWrapper.id).split(node.id + '_')[1]).width || 50, textWrapper.style.fontSize); + } + else { + bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]((node.width > 50) ? 50 : node.width, textWrapper.style.fontSize); + } + } + if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier') { + bounds.width = node.wrapper.bounds.width - 20; + x = ((((node.wrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5); + y = ((((node.wrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3); + textWrapper.style.textAlign = 'Left'; + } + else { + bounds.width = Math.max(bounds.width, 50); + x = ((((textWrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5); + y = ((((textWrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3); + } + if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && node.type === 'Bezier') { + var getCenterPoint = this.getMidPoint(node); + x = ((((getCenterPoint.cx + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5); + y = ((((getCenterPoint.cy + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3); + } + attributes = { + 'id': this.element.id + '_editTextBoxDiv', 'style': 'position: absolute' + ';left:' + x + 'px;top:' + + y + 'px;width:' + ((bounds.width + 1) * scale) + 'px;height:' + (bounds.height * scale) + + 'px; containerName:' + node.id + ';' + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeHtml"])(textEditing, attributes); + attributes = { + 'id': this.element.id + '_editBox', 'style': 'width:' + ((bounds.width + 1) * scale) + + 'px;height:' + (bounds.height * scale) + 'px;resize: none;outline: none;overflow: hidden;' + + ';font-family:' + style.fontFamily + + ';font-size:' + (style.fontSize * scale) + 'px;text-align:' + + (textWrapper.style.textAlign.toLocaleLowerCase()) + ';', 'class': 'e-diagram-text-edit' + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeHtml"])(textArea, attributes); + textArea.style.fontWeight = (style.bold) ? 'bold' : ''; + textArea.style.fontStyle = (style.italic) ? 'italic' : ''; + textArea.style.lineHeight = (style.fontSize * 1.2 + 'px;').toString(); + textArea.style.textDecoration = (style.textDecoration) ? style.textDecoration : ''; + this.activeLabel.parentId = node.id; + this.activeLabel.id = id; + textWrapper.visible = false; + this.updateDiagramObject(node); + this.diagramActions = this.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].TextEdit; + if (!this.isTriggerEvent) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(textArea, 'input', this.eventHandler.inputChange, this.eventHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(textArea, 'focusout', this.focusOutEdit, this); + textArea.select(); + } + } + } + } + }; + Diagram.prototype.updateConnectorfixedUserHandles = function (connector) { + if (connector.fixedUserHandles.length) { + var fixedUserHandleWrapper = void 0; + for (var _i = 0, _a = connector.fixedUserHandles; _i < _a.length; _i++) { + var fixedUserHandle = _a[_i]; + fixedUserHandleWrapper = this.getWrapper(connector.wrapper, fixedUserHandle.id); + connector.updateAnnotation(fixedUserHandle, connector.intermediatePoints, connector.wrapper.bounds, fixedUserHandleWrapper); + } + } + connector.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](connector.wrapper.width, connector.wrapper.height)); + connector.wrapper.arrange(connector.wrapper.desiredSize); + }; + /* tslint:enable */ + Diagram.prototype.updateNodeExpand = function (node, visibility) { + for (var i = 0; i < node.outEdges.length; i++) { + var connector = this.nameTable[node.outEdges[parseInt(i.toString(), 10)]]; + var target = this.nameTable[connector.targetID]; + connector.visible = visibility; + if (target) { + if (!visibility) { + this.updateElementVisibility(connector.wrapper, connector, false); + target.isExpanded = visibility; + } + this.updateNodeExpand(target, target.isExpanded); + target.visible = visibility; + if (!visibility) { + this.updateElementVisibility(target.wrapper, target, false); + } + } + } + }; + Diagram.prototype.updateConnectorAnnotation = function (connector) { + if (connector.annotations.length) { + var annotationWrapper = void 0; + for (var _i = 0, _a = connector.annotations; _i < _a.length; _i++) { + var annotation = _a[_i]; + annotationWrapper = this.getWrapper(connector.wrapper, annotation.id); + connector.updateAnnotation(annotation, connector.intermediatePoints, connector.wrapper.bounds, annotationWrapper, (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Interactions)); + } + } + connector.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](connector.wrapper.width, connector.wrapper.height)); + connector.wrapper.arrange(connector.wrapper.desiredSize); + }; + Diagram.prototype.removeChildrenFromLayout = function (nodes) { + var nodesCollection = []; + var node; + var parentId = 'parentId'; + var processId = 'processId'; + for (var i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if (!node["" + parentId] && !node["" + processId]) { + nodesCollection.push(node); + } + } + return nodesCollection; + }; + /* tslint:disable */ + /** + * Automatically updates the diagram objects based on the type of the layout + * @returns { ILayout | boolean } Automatically updates the diagram objects based on the type of the layout .\ + */ + Diagram.prototype.doLayout = function () { + var update = false; + var layout; + var canDoOverlap = (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree'); + var propChange = this.isProtectedOnChange; + this.protectPropertyChange(true); + var nodes = this.removeChildrenFromLayout(this.nodes); + var canEnableRouting = this.layout.enableRouting && this.layout.type === 'ComplexHierarchicalTree'; + var viewPort = { x: this.scroller.viewPortWidth, y: this.scroller.viewPortHeight }; + if (this.layout.type !== 'None') { + if (canEnableRouting || (this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) || this.layout.arrangement === 'Linear') { + this.lineDistributionModule.initLineDistribution(this.layout, this); + } + if (this.organizationalChartModule) { + layout = this.organizationalChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.diagramActions); + update = true; + if (this.layoutAnimateModule && layout.rootNode && !this.diagramActions) { + this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded); + } + // EJ2-58221 - added to render the layout properly based on parent node isExpanded property. + else if (!this.layoutAnimateModule && layout.rootNode && !layout.rootNode.isExpanded && !this.canExpand) { + this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded); + } + } + else if (this.mindMapChartModule) { + if (nodes && nodes.length > 0) { + this.mindMapChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.dataSourceSettings.root); + } + update = true; + } + else if (this.radialTreeModule) { + this.radialTreeModule.updateLayout(nodes, this.nameTable, this.layout, viewPort); + update = true; + } + else if (this.symmetricalLayoutModule) { + this.symmetricalLayoutModule.maxIteration = this.layout.maxIteration; + this.symmetricalLayoutModule.springLength = this.layout.springLength; + this.symmetricalLayoutModule.springFactor = this.layout.springFactor; + this.symmetricalLayoutModule.updateLayout(nodes, this.connectors, this.symmetricalLayoutModule, this.nameTable, this.layout, viewPort); + update = true; + } + else if (this.complexHierarchicalTreeModule) { + var nodes_1 = this.complexHierarchicalTreeModule.getLayoutNodesCollection(this.nodes); + if (nodes_1.length > 0) { + // eslint-disable-next-line max-len + this.complexHierarchicalTreeModule.doLayout(nodes_1, this.nameTable, this.layout, viewPort, this.lineDistributionModule); + } + update = true; + } + if (update) { + this.preventDiagramUpdate = true; + var connectors = {}; + var updatedNodes = nodes; + // BLAZ-22230 - Added condition to check if canUpdateTemplate is false means then we can update the template for blazor + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.commandHandler.canUpdateTemplate) { + this.updateTemplate(); + } + for (var _i = 0, updatedNodes_1 = updatedNodes; _i < updatedNodes_1.length; _i++) { + var obj = updatedNodes_1[_i]; + var node = obj; + if (!this.preventNodesUpdate && (!this.diagramActions || !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventIconsUpdate))) { + this.updateIcon(node); + this.updateDefaultLayoutIcons(node); + } + this.preventNodesUpdate = true; + this.nodePropertyChange(node, {}, { offsetX: node.offsetX, offsetY: node.offsetY }, true); + this.preventNodesUpdate = false; + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](node.wrapper.width, node.wrapper.height)); + node.wrapper.arrange(node.wrapper.desiredSize); + this.updateDiagramObject(node, true); + if (node.inEdges.length > 0) { + for (var j = 0; j < node.inEdges.length; j++) { + var connector = this.nameTable[node.inEdges[parseInt(j.toString(), 10)]]; + connectors[connector.id] = connector; + } + } + if (node.outEdges.length > 0) { + for (var k = 0; k < node.outEdges.length; k++) { + var connection = this.nameTable[node.outEdges[parseInt(k.toString(), 10)]]; + connectors[connection.id] = connection; + } + } + } + for (var _a = 0, _b = Object.keys(connectors); _a < _b.length; _a++) { + var conn = _b[_a]; + if (canEnableRouting) { + this.lineDistributionModule.resetConnectorSegments(this.nameTable["" + conn]); + } + var connector = connectors["" + conn]; + var points = this.getPoints(connector); + if (canEnableRouting) { + this.lineDistributionModule.resetRoutingSegments(connector, this, points); + } + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateConnector"])(connector, points); + if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') { + this.commandHandler.updatePathElementOffset(connector); + } + connector.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](undefined, undefined)); + connector.wrapper.arrange(connector.wrapper.desiredSize); + this.updateConnectorAnnotation(connector); + this.updateConnectorfixedUserHandles(connector); + this.updateQuad(connector); + this.updateDiagramObject(connector, true); + } + if (canEnableRouting || this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) { + this.lineDistributionModule.distributeLines(this.layout, this); + } + this.preventDiagramUpdate = false; + this.updatePage(); + if ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render)) || this.mode === 'Canvas') { + this.refreshDiagramLayer(); + this.isRefreshed = true; + } + } + if (!propChange) { + this.protectPropertyChange(propChange); + } + } + if (update) { + this.updateDiagramElementQuad(); + } + return ((this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].expandNode) ? layout : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? null : true); + }; + /* tslint:enable */ + /** + * Serializes the diagram control as a string + * @returns { string } Serializes the diagram control as a string .\ + */ + Diagram.prototype.saveDiagram = function () { + var children = []; + var node; + var grid; + var childTable; + var child; + var gridChild = 'childTable'; + for (var i = 0; i < this.nodes.length; i++) { + node = this.nodes[parseInt(i.toString(), 10)]; + if (node.shape.type === 'SwimLane') { + grid = node.wrapper.children[0]; + childTable = grid["" + gridChild]; + for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) { + var key = _a[_i]; + child = childTable["" + key]; + children = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getChild"])(child, children); + } + for (var i_2 = 0; i_2 < children.length; i_2++) { + if (this.nameTable[children[parseInt(i_2.toString(), 10)]]) { + this.swimlaneChildTable[children[parseInt(i_2.toString(), 10)]] = this.nameTable[children[parseInt(i_2.toString(), 10)]].zIndex; + } + } + this.swimlaneZIndexTable[node.id] = node.zIndex; + } + } + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["serialize"])(this); + }; + /** + * Converts the given string as a Diagram Control + * + * @returns { Object } Converts the given string as a Diagram Control .\ + * @param {string} data - Defines the behavior of the diagram to be loaded + + */ + Diagram.prototype.loadDiagram = function (data, isEJ1Data) { + if (isEJ1Data && this.modelProperties) { + var ejDiagram = JSON.parse(data); + data = this.modelProperties.getSerializedData(ejDiagram); + } + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["deserialize"])(data, this); + }; + /** + * To get the html diagram content + * + * @returns { string } getDirection method .\ + * @param {StyleSheetList} styleSheets - defines the collection of style files to be considered while exporting. + */ + Diagram.prototype.getDiagramContent = function (styleSheets) { + if (this.printandExportModule) { + var data = this.printandExportModule.getDiagramContent(styleSheets); + return data; + } + return ''; + }; + /** + * To export diagram native/html image + * + * @returns { void } To export diagram native/html image .\ + * @param {string} image - defines image content to be exported. + * @param {IExportOptions} options - defines the image properties. + */ + Diagram.prototype.exportImage = function (image, options) { + if (this.printandExportModule) { + this.printandExportModule.exportImages(image, options); + } + }; + /** + * To print native/html nodes of diagram + * + * @returns { void } To print native/html nodes of diagram .\ + * @param {string} image - defines image content. + * @param {IExportOptions} options - defines the properties of the image + */ + Diagram.prototype.printImage = function (image, options) { + if (this.printandExportModule) { + options.printOptions = true; + this.printandExportModule.exportImages(image, options); + } + }; + /** + * To limit the history entry of the diagram + * + * @returns { void } To limit the history entry of the diagram.\ + * @param {number} stackLimit - defines stackLimit of the history manager. + */ + Diagram.prototype.setStackLimit = function (stackLimit) { + if (this.undoRedoModule && stackLimit) { + this.historyManager.stackLimit = stackLimit; + this.undoRedoModule.applyLimit(this.historyManager.currentEntry, stackLimit, this, true); + } + }; + /** + * To clear history of the diagram + * @returns { void } To clear history of the diagram .\ + */ + Diagram.prototype.clearHistory = function () { + if (this.undoRedoModule) { + this.undoRedoModule.clearHistory(this); + } + }; + /** + * To get the bound of the diagram + * @returns { void } To get the bound of the diagram .\ + */ + Diagram.prototype.getDiagramBounds = function () { + if (this.printandExportModule) { + var bounds = this.printandExportModule.getDiagramBounds('', {}); + bounds.width = bounds.width > this.scrollSettings.viewPortWidth ? + bounds.width + (bounds.x > 0 ? bounds.x : 0) : this.scrollSettings.viewPortWidth; + bounds.height = bounds.height > this.scrollSettings.viewPortHeight ? + bounds.height + (bounds.y > 0 ? bounds.y : 0) : this.scrollSettings.viewPortHeight; + bounds.x = bounds.x > 0 ? 0 : bounds.x; + bounds.y = bounds.y > 0 ? 0 : bounds.y; + return bounds; + } + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"](); + }; + /** + * To export Diagram + * + * @returns { void } To export Diagram .\ + * @param {IExportOptions} options - defines the how the image to be exported. + */ + Diagram.prototype.exportDiagram = function (options) { + if (this.printandExportModule) { + var data = this.printandExportModule.exportDiagram(options); + return data; + } + return ''; + }; + /** + * To print Diagram + * + * @returns { void } To print Diagram .\ + * @param {IPrintOptions} optons - defines how the image to be printed. + */ + Diagram.prototype.print = function (options) { + if (this.printandExportModule) { + this.printandExportModule.print(options); + } + }; + /** + * Add ports at the run time \ + * + * @returns { void } Remove Labels at the run time .\ + * @param { Node | ConnectorModel} obj - provide the obj value. + * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} ports - provide the ports value. + * @blazorArgsType obj|DiagramNode + */ + Diagram.prototype.addPorts = function (obj, ports) { + this.protectPropertyChange(true); + var portCollection = []; + var isAddPortInServer = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && obj !== null && (obj.ports.length > 0 && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo))) { + var index = Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, ports[0].id, false)); + if (index !== -1) { + isAddPortInServer = false; + } + } + obj = this.nameTable[obj.id] || obj; + var newObj; + if (ports.length > 1) { + this.startGroupAction(); + } + for (var i = 0; i < ports.length; i++) { + newObj = new _objects_port__WEBPACK_IMPORTED_MODULE_34__["PointPort"](obj, 'ports', ports[parseInt(i.toString(), 10)], true); + obj.ports.push(newObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddPortInServer) { + portCollection.push(newObj); + } + if (obj.children) { + var container = obj.wrapper; + obj.initPort(this.getDescription, obj.wrapper.children[container.children.length - 1], newObj); + } + else { + var canvas = obj.wrapper; + canvas.children.push(obj.initPortWrapper(obj.ports[obj.ports.length - 1])); + } + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group)) { + var entry = { + type: 'PortCollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(newObj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + } + if (ports.length > 1) { + this.endGroupAction(); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddPortInServer) { + this.UpdateBlazorLabelOrPortObjects(portCollection, 'Port', undefined, this.nodes.indexOf(obj)); + } + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](obj.width, obj.height)); + obj.wrapper.arrange(obj.wrapper.desiredSize); + this.updateDiagramObject(obj); + this.protectPropertyChange(false); + }; + /** + * Add constraints at run time \ + * + * @returns { void }Add constraints at run time .\ + * @param {number} constraintsType - provide the source value. + * @param {number} constraintsValue - provide the target value. + * + */ + Diagram.prototype.addConstraints = function (constraintsType, constraintsValue) { + return constraintsType | constraintsValue; + }; + /** + * Remove constraints at run time \ + * + * @returns { void }Remove constraints at run time .\ + * @param {number} constraintsType - provide the source value. + * @param {number} constraintsValue - provide the target value. + * + */ + Diagram.prototype.removeConstraints = function (constraintsType, constraintsValue) { + return constraintsType & ~constraintsValue; + }; + /** + * Add labels in node at the run time in the blazor platform \ + * + * @returns { void } Add labels in node at the run time in the blazor platform .\ + * @param {NodeModel} obj - provide the obj value. + * @param {ShapeAnnotationModel[]} labels - provide the labels value. + * + */ + Diagram.prototype.addNodeLabels = function (obj, labels) { + this.addLabels(obj, labels); + }; + /** + * Add labels in connector at the run time in the blazor platform\ + * + * @returns { void } Add labels in connector at the run time in the blazor platform .\ + * @param {ConnectorModel} obj - provide the obj value. + * @param {PathAnnotationModel[]} labels - provide the labels value. + * + */ + Diagram.prototype.addConnectorLabels = function (obj, labels) { + this.addLabels(obj, labels); + }; + /** + * Add Labels at the run time \ + * + * @returns { void } Add Labels at the run time .\ + * @param {NodeModel | ConnectorModel} obj - provide the obj value. + * @param {ShapeAnnotationModel[] | PathAnnotation[] | PathAnnotationModel[]} labels - provide the labels value. + * + */ + Diagram.prototype.addLabels = function (obj, labels) { + this.protectPropertyChange(true); + var isAddLabelInServer = true; + var annotationCollection = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && obj != null && obj.annotations.length > 0 && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + var index = Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, labels[0].id, true)); + if (index !== -1) { + isAddLabelInServer = false; + } + } + obj = this.nameTable[obj.id] || obj; + var canvas = obj.wrapper; + var newObj; + if (labels.length > 1) { + this.startGroupAction(); + } + for (var i = 0; i < labels.length; i++) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + newObj = new _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["ShapeAnnotation"](obj, 'annotations', labels[parseInt(i.toString(), 10)], true); + obj.annotations.push(newObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddLabelInServer) { + annotationCollection.push(newObj); + } + if (obj.children) { + var node = obj; + for (var i_3 = 0; i_3 < node.wrapper.children.length; i_3++) { + if (node.wrapper.children[parseInt(i_3.toString(), 10)].id === node.id + 'group_container') { + var container = node.wrapper.children[parseInt(i_3.toString(), 10)]; + container.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id)); + } + } + } + else { + canvas.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id)); + } + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + newObj = new _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["PathAnnotation"](obj, 'annotations', labels[parseInt(i.toString(), 10)], true); + obj.annotations.push(newObj); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddLabelInServer) { + annotationCollection.push(newObj); + } + var segment = canvas.children[0]; + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"](segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height); + canvas.children.push(obj.getAnnotationElement(obj.annotations[obj.annotations.length - 1], obj.intermediatePoints, bounds, this.getDescription, this.element.id)); + } + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Group)) { + var entry = { + type: 'LabelCollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(newObj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + } + if (labels.length > 1) { + this.endGroupAction(); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddLabelInServer) { + this.UpdateBlazorLabelOrPortObjects(annotationCollection, (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? 'NodeAnnotation' : 'ConnectorAnnotation', undefined, (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? this.nodes.indexOf(obj) : this.connectors.indexOf(obj)); + } + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](canvas.width, canvas.height)); + obj.wrapper.arrange(canvas.desiredSize); + this.updateDiagramObject(obj); + this.protectPropertyChange(false); + }; + /** + * Add dynamic Lanes to swimLane at runtime \ + * + * @returns { void } Add dynamic Lanes to swimLane at runtime .\ + * @param {NodeModel} node - provide the obj value. + * @param {LaneModel[]} lane - provide the labels value. + * @param {number} index - provide the labels value. + * + */ + Diagram.prototype.addLanes = function (node, lane, index) { + node = this.nameTable[node.id] || node; + for (var i = 0; i < lane.length; i++) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["addLane"])(this, node, lane[parseInt(i.toString(), 10)], index); + if (index !== undefined) { + index += 1; + } + } + this.updateDiagramElementQuad(); + }; + /** + * Add a phase to a swimLane at runtime \ + * + * @returns { void } Add a phase to a swimLane at runtime .\ + * @param {NodeModel} node - provide the obj value. + * @param {PhaseModel[]} phases - provide the labels value. + * + */ + Diagram.prototype.addPhases = function (node, phases) { + node = this.nameTable[node.id] || node; + for (var i = 0; i < phases.length; i++) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["addPhase"])(this, node, phases[parseInt(i.toString(), 10)]); + } + this.updateDiagramElementQuad(); + }; + /** + *Remove dynamic Lanes to swimLane at runtime \ + * + * @returns { void } Remove dynamic Lanes to swimLane at runtime .\ + * @param {NodeModel} node - provide the node value. + * @param {LaneModel} lane - provide the lane value. + * + */ + Diagram.prototype.removeLane = function (node, lane) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removeLane"])(this, undefined, node, lane); + this.updateDiagramElementQuad(); + }; + /** + *Remove a phase to a swimLane at runtime \ + * + * @returns { void } Remove a phase to a swimLane at runtime .\ + * @param {NodeModel} node - provide the node value. + * @param {PhaseModel} phase - provide the phase value. + * + */ + Diagram.prototype.removePhase = function (node, phase) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["removePhase"])(this, undefined, node, phase); + this.updateDiagramElementQuad(); + }; + Diagram.prototype.removelabelExtension = function (obj, labels, j, wrapper) { + for (var i = 0; i < wrapper.children.length; i++) { + var canvas = wrapper.children[parseInt(i.toString(), 10)]; + if ((canvas instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) || (canvas instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"])) { + if (canvas.id.match('_' + labels[parseInt(j.toString(), 10)].id + '$')) { + for (var k = 0; k < obj.annotations.length; k++) { + if (canvas.id.match('_' + obj.annotations[parseInt(k.toString(), 10)].id + '$')) { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'LabelCollectionChanged', changeType: 'Remove', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj.annotations[parseInt(k.toString(), 10)]), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + obj.annotations.splice(k, 1); + } + } + wrapper.children.splice(i, 1); + if (this.mode === 'SVG') { + var element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id, this.element.id); + if (element) { + var element_1 = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id, this.element.id); + element_1.parentNode.removeChild(element_1); + } + var textElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id + '_text', this.element.id); + if (textElement) { + element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id + '_text', this.element.id); + element.parentNode.removeChild(element); + } + var htmlElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id + '_html_element', this.element.id); + if (htmlElement) { + htmlElement.parentNode.removeChild(htmlElement); + } + } + else { + this.refreshCanvasLayers(); + } + } + } + } + }; + /** + * Remove Labels at the run time \ + * + * @returns { string } Remove Labels at the run time .\ + * @param { Node | ConnectorModel} obj - provide the obj value. + * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} labels - provide the labels value. + * + */ + Diagram.prototype.removeLabels = function (obj, labels) { + var isAddLabelInServer = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && obj !== null && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + var index = (obj.annotations.length > 0) ? Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, (labels[0]).id, true)) : -1; + if (index === -1) { + isAddLabelInServer = false; + } + } + obj = this.nameTable[obj.id] || obj; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddLabelInServer) { + var annotationCollection = []; + var removalIndexCollection = []; + for (var j = 0; j < labels.length; j++) { + var index = Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, labels[parseInt(j.toString(), 10)].id, true)); + removalIndexCollection.push(index); + annotationCollection.push(labels[parseInt(j.toString(), 10)]); + } + this.UpdateBlazorLabelOrPortObjects(annotationCollection, (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? 'NodeAnnotation' : 'ConnectorAnnotation', removalIndexCollection, (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? this.nodes.indexOf(obj) : this.connectors.indexOf(obj)); + } + if (labels.length > 1) { + this.startGroupAction(); + } + for (var j = labels.length - 1; j >= 0; j--) { + if (obj.children && obj.children.length > 0) { + for (var k = 0; k < obj.wrapper.children.length; k++) { + this.removelabelExtension(obj, labels, j, obj.wrapper.children[parseInt(k.toString(), 10)]); + } + } + else { + this.removelabelExtension(obj, labels, j, obj.wrapper); + } + } + if (labels.length > 1) { + this.endGroupAction(); + } + }; + Diagram.prototype.removePortsExtenion = function (obj, ports, j, wrapper) { + for (var i = 0; i < wrapper.children.length; i++) { + var canvas = wrapper.children[parseInt(i.toString(), 10)]; + if (canvas instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_15__["PathElement"]) { + if (canvas.id.match('_' + ports[parseInt(j.toString(), 10)].id + '$')) { + for (var k = 0; k < obj.ports.length; k++) { + if (canvas.id.match('_' + obj.ports[parseInt(k.toString(), 10)].id + '$')) { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'PortCollectionChanged', changeType: 'Remove', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj.ports[parseInt(k.toString(), 10)]), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), category: 'Internal' + }; + this.addHistoryEntry(entry); + } + obj.ports.splice(k, 1); + } + } + wrapper.children.splice(i, 1); + if (this.mode === 'SVG') { + var element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(canvas.id, this.element.id); + element.parentNode.removeChild(element); + } + else { + this.refreshCanvasLayers(); + } + } + } + } + }; + /** + * Remove Ports at the run time \ + * + * @returns { void } checkSourcePointInTarget method .\ + * @param {Node} obj - provide the Connector value. + * @param {PointPortModel[]} ports - provide the Connector value. + * + */ + Diagram.prototype.removePorts = function (obj, ports) { + var isAddPortInServer = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && obj !== null && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + var index = (obj.ports.length > 0) ? Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, ports[0].id, false)) : -1; + if (index === -1) { + isAddPortInServer = false; + } + } + obj = this.nameTable[obj.id] || obj; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && isAddPortInServer) { + var removalIndexCollection = []; + var portCollection = []; + for (var j = ports.length - 1; j >= 0; j--) { + var index = Number(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(obj, ports[parseInt(j.toString(), 10)].id, false)); + removalIndexCollection.push(index); + portCollection.push(ports[parseInt(j.toString(), 10)]); + } + this.UpdateBlazorLabelOrPortObjects(portCollection, 'Port', removalIndexCollection, this.nodes.indexOf(obj)); + } + if (ports.length > 1) { + this.startGroupAction(); + } + for (var j = ports.length - 1; j >= 0; j--) { + if (obj.children && obj.children.length > 0) { + for (var k = 0; k < obj.wrapper.children.length; k++) { + //EJ2-66928 Bug- added for ungroup Issue to only remove the grouping ports and not to remove ports of the children nodes + var wrapper = obj.wrapper.children[parseInt(k.toString(), 10)]; + if ((wrapper.id).match(obj.wrapper.id)) { + this.removePortsExtenion(obj, ports, j, obj.wrapper.children[parseInt(k.toString(), 10)]); + } + } + } + else { + this.removePortsExtenion(obj, ports, j, obj.wrapper); + } + } + if (ports.length > 1) { + this.endGroupAction(); + } + }; + //public methods - end region + /** + * getSizeValue method \ + * + * @returns { string } getSizeValue method .\ + * @param {string | number} real - provide the real value. + * @param {string | number} rulerSize - provide the rulerSize value. + * + * @private + */ + Diagram.prototype.getSizeValue = function (real, rulerSize) { + var value; + if (real.toString().indexOf('px') > 0) { + value = real.toString(); + } + else if (real.toString().indexOf('%') > 0) { + value = rulerSize !== undefined ? '100%' : real.toString(); + } + else { + value = real.toString() + 'px'; + } + if (rulerSize) { + var position = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["getRulerSize"])(this); + value = 'calc(' + value + ' - ' + rulerSize + 'px)'; + } + return value; + }; + Diagram.prototype.renderRulers = function () { + if (this.rulerSettings.showRulers) { + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["renderOverlapElement"])(this); + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["renderRuler"])(this, true); + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["renderRuler"])(this, false); + } + else { + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["removeRulerElements"])(this); + } + }; + Diagram.prototype.intOffPageBackground = function () { + var position = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](); + position = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["getRulerSize"])(this); + var element = document.getElementById(this.element.id + 'content'); + var width = this.getSizeValue(this.width, position.width); + var height = this.getSizeValue(this.height, position.height); + var style = this.rulerSettings.showRulers ? + 'width:' + width + '; height:' + height + ';' + + 'top:' + position.height + 'px;left:' + position.width + 'px;' + + 'overflow: scroll;position:absolute;overflow:auto;' : + 'width:' + width + '; height:' + height + ';position:absolute;' + + ' left:0px; top:0px;overflow: auto;'; + var attr = { + 'id': this.element.id + 'content', + 'tabindex': '0', + 'style': style + }; + if (!element) { + this.diagramCanvas = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', attr); + this.element.appendChild(this.diagramCanvas); + } + else { + this.diagramCanvas = element; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["applyStyleAgainstCsp"])(this.diagramCanvas, style); + } + this.diagramCanvas.style.background = this.backgroundColor; + }; + Diagram.prototype.initDiagram = function () { + this.intOffPageBackground(); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeHtml"])(this.element, { + style: 'width:' + this.getSizeValue(this.width) + '; height:' + + this.getSizeValue(this.height) + ';position:relative;overflow:hidden;' + }); + }; + Diagram.prototype.renderHiddenUserHandleTemplateLayer = function (bounds) { + //let element: HTMLElement; + var attributes = { + 'class': this.element.id + '_hiddenUserHandleTemplate', + 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + 'visibility:hidden ; overflow: hidden;' + }; + var element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', attributes); + this.element.appendChild(element); + }; + Diagram.prototype.renderBackgroundLayer = function (bounds, commonStyle) { + var bgLayer = this.createSvg(this.element.id + '_backgroundLayer_svg', bounds.width, bounds.height); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["applyStyleAgainstCsp"])(bgLayer, commonStyle); + var backgroundImage = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { + 'id': this.element.id + '_backgroundImageLayer', + 'class': 'e-background-image-layer' + }); + bgLayer.appendChild(backgroundImage); + var attr = { 'id': this.element.id + '_backgroundLayer', 'class': 'e-background-layer' }; + var background = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', attr); + bgLayer.appendChild(background); + this.diagramCanvas.appendChild(bgLayer); + }; + Diagram.prototype.renderGridLayer = function (bounds, commonStyle) { + var svgGridSvg = this.createSvg(this.element.id + '_gridline_svg', bounds.width, bounds.height); + svgGridSvg.setAttribute('class', 'e-grid-layer'); + var svgGrid = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { 'id': this.element.id + '_gridline' }); + var rect = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('rect', { + 'id': this.element.id + '_grid_rect', 'x': '0', 'y': '0', 'width': '100%', 'height': '100%' + }); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["checkBrowserInfo"])()) { + //EJ2-832888-To remove the black grid lines appearing in the safari browser. + var url = new URL(window.location.href); + // Check if the URL contains a query string + if (url.search !== '') { + rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)'); + } + else { + rect.setAttribute('fill', 'url(' + location.protocol + '//' + location.host + location.pathname + + '#' + this.element.id + '_pattern)'); + } + } + else { + rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)'); + } + svgGrid.appendChild(rect); + svgGridSvg.appendChild(svgGrid); + this.diagramCanvas.appendChild(svgGridSvg); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(svgGridSvg, { 'style': commonStyle }); + }; + Diagram.prototype.renderDiagramLayer = function (bounds, commonStyle) { + var attributes = { + 'id': this.element.id + '_diagramLayer_div', + 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + commonStyle + }; + this.diagramLayerDiv = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', attributes); + if (this.mode === 'SVG') { + var diagramSvg = this.createSvg(this.element.id + '_diagramLayer_svg', bounds.width, bounds.height); + diagramSvg.style['pointer-events'] = 'none'; + diagramSvg.setAttribute('class', 'e-diagram-layer'); + var diagramLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { 'id': this.element.id + '_diagramLayer' }); + var transformationLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', {}); + this.diagramLayer = diagramLayer; + diagramSvg.style['pointer-events'] = 'all'; + transformationLayer.appendChild(diagramLayer); + diagramSvg.appendChild(transformationLayer); + this.diagramLayerDiv.appendChild(diagramSvg); + } + else { + this.diagramLayer = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(this.element.id + '_diagram', bounds.width, bounds.height); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["applyStyleAgainstCsp"])(this.diagramLayer, 'position:absolute;left:0px;top:0px;'); + this.diagramLayerDiv.appendChild(this.diagramLayer); + } + this.diagramCanvas.appendChild(this.diagramLayerDiv); + }; + Diagram.prototype.initLayers = function () { + var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;'; + var container = document.getElementById(this.element.id); + var bounds = container.getBoundingClientRect(); + var scrollerSize = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getScrollerWidth"])(); + this.scroller.scrollerWidth = scrollerSize; + this.scroller.setViewPortSize(bounds.width, bounds.height); + this.renderRulers(); + var measureWindowElement = 'measureElement'; + if (window["" + measureWindowElement]) { + window["" + measureWindowElement] = null; + var measureElements = document.getElementById('measureElement'); + measureElements.remove(); + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createMeasureElements"])(); + // this.renderBackgroundImageLayer(bounds, commonStyle); + this.renderBackgroundLayer(bounds, commonStyle); + this.renderGridLayer(bounds, commonStyle); + this.renderDiagramLayer(bounds, commonStyle); + this.renderHTMLLayer(bounds, commonStyle); + this.renderPortsExpandLayer(bounds, commonStyle); + this.renderNativeLayer(bounds, commonStyle); + this.renderAdornerLayer(bounds, commonStyle); + this.renderHiddenUserHandleTemplateLayer(bounds); + }; + Diagram.prototype.renderAdornerLayer = function (bounds, commonStyle) { + var divElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', { + 'id': this.element.id + '_diagramAdornerLayer', + 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle + }); + var element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', { + 'id': this.element.id + '_diagramUserHandleLayer', + 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle + }); + element.setAttribute('class', 'e-userHandle-layer'); + divElement.appendChild(element); + var svgAdornerSvg = this.createSvg(this.element.id + '_diagramAdorner_svg', bounds.width, bounds.height); + svgAdornerSvg.setAttribute('class', 'e-adorner-layer'); + svgAdornerSvg.style['pointer-events'] = 'none'; + this.adornerLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { 'id': this.element.id + '_diagramAdorner' }); + this.adornerLayer.style[' pointer-events'] = 'all'; + svgAdornerSvg.appendChild(this.adornerLayer); + divElement.appendChild(svgAdornerSvg); + this.diagramCanvas.appendChild(divElement); + var svgSelector = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { 'id': this.element.id + '_SelectorElement' }); + this.adornerLayer.appendChild(svgSelector); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(svgAdornerSvg, { style: 'pointer-events:none;' }); + }; + Diagram.prototype.renderPortsExpandLayer = function (bounds, commonStyle) { + var svgPortsSvg = this.createSvg(this.element.id + '_diagramPorts_svg', bounds.width, bounds.height); + svgPortsSvg.setAttribute('class', 'e-ports-expand-layer'); + var svgPortsLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { + 'id': this.element.id + '_diagramPorts', + 'class': 'e-ports-layer', + 'style': 'pointer-events: all;' + }); + svgPortsSvg.appendChild(svgPortsLayer); + var svgExpandLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { + 'id': this.element.id + '_diagramExpander', + 'class': 'e-expand-layer', + 'style': 'pointer-events: all;' + }); + svgPortsSvg.appendChild(svgExpandLayer); + this.diagramCanvas.appendChild(svgPortsSvg); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(svgPortsSvg, { 'style': commonStyle }); + }; + Diagram.prototype.renderHTMLLayer = function (bounds, commonStyle) { + this.htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', { + 'id': this.element.id + '_htmlLayer', + 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;position:absolute;top:0px;' + + 'left:0px;overflow:hidden;pointer-events:none;', + 'class': 'e-html-layer' + }); + var htmlLayerDiv = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createHtmlElement"])('div', { + 'id': this.element.id + '_htmlLayer_div', + 'style': 'position:absolute;top:0px;left:0px;pointer-events:all;' + }); + this.htmlLayer.appendChild(htmlLayerDiv); + this.diagramCanvas.appendChild(this.htmlLayer); + }; + Diagram.prototype.renderNativeLayer = function (bounds, commonStyle) { + var nativeLayerSvg = this.createSvg(this.element.id + '_nativeLayer_svg', bounds.width, bounds.height); + var nativeLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["createSvgElement"])('g', { 'id': this.element.id + '_nativeLayer', 'style': 'pointer-events:all;' }); + nativeLayerSvg.appendChild(nativeLayer); + this.diagramLayerDiv.appendChild(nativeLayerSvg); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(nativeLayerSvg, { 'class': 'e-native-layer', 'style': commonStyle }); + }; + /** + * createSvg method \ + * + * @returns { void } createSvg method .\ + * @param {string} id - provide the source value. + * @param {string | number} width - provide the source value. + * @param {string | number} height - provide the source value. + * + * @private + */ + Diagram.prototype.createSvg = function (id, width, height) { + var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(svgObj, { 'id': id, 'width': width, 'height': height }); + return svgObj; + }; + Diagram.prototype.updateBazorShape = function () { + for (var i = 0; i < this.nodes.length; i++) { + var node = this.nodes[parseInt(i.toString(), 10)]; + switch (node.shape.type) { + case 'Bpmn': + node.shape.bpmnShape = + node.shape.shape ? node.shape.shape + : node.shape.bpmnShape; + break; + case 'UmlActivity': + node.shape.umlActivityShape = + node.shape.shape ? node.shape.shape + : node.shape.umlActivityShape; + break; + case 'Flow': + node.shape.flowShape = + node.shape.shape ? node.shape.shape + : node.shape.flowShape; + break; + case 'Basic': + node.shape.basicShape = + node.shape.shape ? node.shape.shape + : node.shape.basicShape; + break; + case 'Text': + node.shape.textContent = + node.shape.content ? node.shape.content + : node.shape.textContent; + break; + } + } + }; + Diagram.prototype.initObjects = function (isLoad) { + this.updateBazorShape(); + if (!this.isLoading) { + this.initData(); + } + this.initLayerObjects(); + this.updateBridging(isLoad); + }; + /** + * initLayerObjects method \ + * + * @returns { void } initLayerObjects method .\ + * + * @private + */ + Diagram.prototype.initLayerObjects = function () { + var hasLayers = this.layers.length > 1; //const set: boolean = false; + var connectors = []; + var blazor = 'Blazor'; + var canCloneObject = window && window["" + blazor] && !this.dataSourceSettings.dataSource; + var tempTabel = {}; + var bpmnTable = {}; + var tempNode = []; + var groups = []; + var i = 0; + var previousNodeObject = []; + var previousConnectorObject = []; + var updateNodeObject = []; + var updateConnectorObject = []; + var changeNodes = []; + var changeConnectors = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && canCloneObject) { + previousNodeObject = this.previousNodeCollection; + previousConnectorObject = this.previousConnectorCollection; + } + for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) { + var obj = _a[_i]; + obj.id = obj.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + this.addToLayer(obj, hasLayers); + tempTabel[obj.id] = obj; + } + for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) { + var obj = _c[_b]; + obj.id = obj.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + this.addToLayer(obj, hasLayers); + tempTabel[obj.id] = obj; + } + for (var _d = 0, _e = this.layers; _d < _e.length; _d++) { + var layer = _e[_d]; + for (var _f = 0, _g = layer.objects; _f < _g.length; _f++) { + var obj = _g[_f]; + if (tempTabel["" + obj]) { + if (!(tempTabel["" + obj] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"])) { + if (tempTabel["" + obj].children) { + groups.push(obj); + } + else if ((tempTabel["" + obj].shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["BpmnShape"]) && + tempTabel["" + obj].shape.activity.subProcess.processes && + tempTabel["" + obj].shape.activity.subProcess.processes.length > 0) { + bpmnTable[tempTabel["" + obj].id] = obj; + } + else { + this.initNodes(tempTabel["" + obj], layer); + } + } + else { + var connector = tempTabel["" + obj]; + if (connector.sourceID && connector.targetID) { + var sourceNode = tempTabel[connector.sourceID]; + var targetNode = tempTabel[connector.targetID]; + var flag = true; + if (this.isLoading && ((sourceNode && sourceNode.children && sourceNode.children.length > 0) || + (targetNode && targetNode.children && targetNode.children.length > 0))) { + flag = false; + } + if ((sourceNode && sourceNode.wrapper && targetNode && targetNode.wrapper) && flag) { + this.initConnectors(tempTabel["" + obj], layer); + } + else { + connectors.push(tempTabel["" + obj]); + } + } + else { + this.initConnectors(tempTabel["" + obj], layer); + } + } + } + } + if (this.bpmnModule) { + for (var _h = 0, _j = this.bpmnModule.textAnnotationConnectors; _h < _j.length; _h++) { + var obj = _j[_h]; + this.initConnectors(obj, layer, false); + } + } + } + for (var _k = 0, _l = Object.keys(bpmnTable); _k < _l.length; _k++) { + var obj = _l[_k]; + this.initObject(tempTabel["" + obj]); + this.bpmnModule.updateDocks(tempTabel["" + obj], this); + } + var alignedGroups = this.alignGroup(groups, tempTabel); + for (var _m = 0, alignedGroups_1 = alignedGroups; _m < alignedGroups_1.length; _m++) { + var obj = alignedGroups_1[_m]; + var layer = this.commandHandler.getObjectLayer(obj); + this.initNodes(tempTabel["" + obj], layer); + } + for (var _o = 0, connectors_1 = connectors; _o < connectors_1.length; _o++) { + var connector = connectors_1[_o]; + var layer = this.commandHandler.getObjectLayer(connector.id); + this.initConnectors(connector, layer); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && canCloneObject) { + for (var _p = 0, _q = this.nodes; _p < _q.length; _p++) { + var obj = _q[_p]; + updateNodeObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + for (var _r = 0, _s = this.connectors; _r < _s.length; _r++) { + var obj = _s[_r]; + updateConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj, undefined, undefined, true)); + } + this.commandHandler.getObjectChanges(previousNodeObject, updateNodeObject, changeNodes); + this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors); + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].ClearObject)) { + var blazorInterop = 'sfBlazor'; + var diagramObject = { nodes: changeNodes, connectors: changeConnectors }; + var obj = { + 'methodName': 'UpdateBlazorProperties', + 'diagramobj': diagramObject + }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + } + }; + Diagram.prototype.alignGroup = function (parents, tempTabel) { + var newList = []; + var parentist = []; + var child; + var childNode; + var i; + var j; + for (i = 0; i < parents.length; i++) { + child = parents[parseInt(i.toString(), 10)]; + childNode = tempTabel["" + child]; + var node = void 0; + if (childNode && childNode.children.length) { + for (j = 0; j < childNode.children.length; j++) { + node = childNode.children[parseInt(j.toString(), 10)]; + if (parents.indexOf(node) > -1 && (newList.indexOf(node) === -1) && + (parentist.indexOf(node) === -1)) { + newList.splice(0, 0, node); + } + } + } + if (newList.indexOf(child) === -1) { + parentist.push(child); + } + } + newList = newList.concat(parentist); + return newList; + }; + Diagram.prototype.addToLayer = function (obj, hasLayers) { + var layer; + var isSourceId = false; + var isTargetId = false; + if (hasLayers) { + layer = this.commandHandler.getObjectLayer(obj.id); + } + if (!hasLayers || !layer) { + if (this.activeLayer.objects.indexOf(obj.id) === -1) { + this.activeLayer.objects.push(obj.id); + } + } + if ((obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] || obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) && + (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) { + if (obj.parentId) { + var zIndex = this.swimlaneZIndexTable[obj.parentId]; + //EJ2-69247 - Unable to select node in swimlane after save and load + var childzIndex = this.swimlaneChildTable[obj.id]; + if ((zIndex && zIndex !== -1) || ((childzIndex && childzIndex !== -1))) { + obj.zIndex = this.swimlaneChildTable[obj.id]; + } + } + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && (obj.sourceID && obj.targetID)) { + //EJ2-69577 - We have removed findNodeInLane method to improve the performance. + if (this.activeLayer.objects.indexOf(obj.sourceID) !== -1 && + this.activeLayer.objects.indexOf(obj.targetID) !== -1) { + this.setZIndex(layer || this.activeLayer, obj); + } + } + else { + this.setZIndex(layer || this.activeLayer, obj); + } + } + }; + Diagram.prototype.updateLayer = function (newProp) { + for (var _i = 0, _a = Object.keys(newProp.layers); _i < _a.length; _i++) { + var key = _a[_i]; + var layerObject = this.layers["" + key].objects; + for (var _b = 0, layerObject_1 = layerObject; _b < layerObject_1.length; _b++) { + var obj = layerObject_1[_b]; + var node = this.nameTable["" + obj]; + if (newProp.layers["" + key].visible !== undefined) { + this.updateElementVisibility(node.wrapper, node, newProp.layers["" + key].visible); + } + else if (newProp.layers["" + key].lock === true) { + this.unSelect(node); + } + } + if (newProp.layers["" + key].lock !== undefined) { + this.layers["" + key].lock = newProp.layers["" + key].lock; + } + } + if (this.mode !== 'SVG') { + this.refreshDiagramLayer(); + } + }; + Diagram.prototype.updateScrollSettings = function (newProp) { + var hPan = (-this.scroller.horizontalOffset + newProp.scrollSettings.horizontalOffset || 0); + var vPan = (-this.scroller.verticalOffset + newProp.scrollSettings.verticalOffset || 0); + var oldValue = { + VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset, + ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth, + CurrentZoom: this.scroller.currentZoom + }; + if (hPan !== 0 || vPan !== 0) { + this.pan(hPan, vPan); + } + var newValue = { + VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset, + ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth, + CurrentZoom: this.scroller.currentZoom + }; + var panStatus = 'Start'; + if (this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PanInProgress) { + panStatus = 'Progress'; + } + var arg = { + oldValue: oldValue, + newValue: newValue, source: this, + panState: panStatus + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.scrollChange) { + arg = { + oldValue: oldValue, + newValue: newValue, + sourceId: this.element.id, + panState: panStatus + }; + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].scrollChange, arg); + this.commandHandler.updatePanState(true); + if (this.mode === 'Canvas' && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].Virtualization)) { + this.refreshDiagramLayer(); + } + }; + Diagram.prototype.initData = function () { + var dataSourceSettings = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource; + var adapter = 'adaptorName'; + if (this.dataBindingModule && !(this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDataInit)) { + if (dataSourceSettings && this.dataSourceSettings.connectionDataSource.dataManager) { + var dataManager = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource; + this.nodes = this.generateData(dataManager, true); + this.connectors = this.generateData(this.dataSourceSettings.connectionDataSource.dataManager, false); + } + else if (dataSourceSettings && dataSourceSettings.dataSource && + (dataSourceSettings.dataSource.url || (dataSourceSettings["" + adapter] === 'BlazorAdaptor' && + !dataSourceSettings.dataSource.url))) { + this.dataBindingModule.initSource(this.dataSourceSettings, this); + } + else { + this.dataBindingModule.initData(this.dataSourceSettings, this); + } + } + }; + Diagram.prototype.generateData = function (dataSource, isNode) { + var nodes = []; + var i; + for (i = 0; i < dataSource.length; i++) { + var row = dataSource[parseInt(i.toString(), 10)]; + var node = isNode ? this.makeData(row, true) : this.makeData(row, false); + if (node && node.id && (!Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findNodeByName"])(nodes, node.id) || !Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findNodeByName"])(nodes, node.id))) { + nodes.push(node); + } + } + return (nodes); + }; + Diagram.prototype.makeData = function (row, isNode) { + var i; + var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource; + var data = {}; + data.id = row[fields.id] ? row[fields.id] : Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + if (fields.sourceID) { + data.sourceID = row[fields.sourceID]; + } + if (fields.targetID) { + data.targetID = row[fields.targetID]; + } + if (row[fields.sourcePointX] && row[fields.sourcePointY]) { + data.sourcePoint = { 'x': Number(row[fields.sourcePointX]), 'y': Number(row[fields.sourcePointY]) }; + } + if (row[fields.targetPointX] && row[fields.targetPointY]) { + data.targetPoint = { 'x': Number(row[fields.targetPointX]), 'y': Number(row[fields.targetPointY]) }; + } + if (fields.crudAction.customFields && fields.crudAction.customFields.length > 0) { + for (i = 0; i < fields.crudAction.customFields.length; i++) { + data[fields.crudAction.customFields[parseInt(i.toString(), 10)]] = row[fields.crudAction.customFields[parseInt(i.toString(), 10)]]; + } + } + return data; + }; + Diagram.prototype.initNodes = function (obj, layer) { + this.preventDiagramUpdate = true; + this.initObject(obj, layer); + this.preventDiagramUpdate = false; + }; + Diagram.prototype.initConnectors = function (obj, layer, independentObj) { + this.preventDiagramUpdate = true; + this.initObject(obj, layer, independentObj); + this.updateEdges(obj); + this.preventDiagramUpdate = false; + }; + Diagram.prototype.setZIndex = function (layer, obj) { + //should be changed + var currentLayer = layer; + if ((obj).zIndex === -1) { + while (currentLayer.zIndexTable[currentLayer.objectZIndex + 1]) { + layer.objectZIndex++; + } + obj.zIndex = ++currentLayer.objectZIndex; + } + else { + var index = obj.zIndex; + if (currentLayer.zIndexTable[parseInt(index.toString(), 10)]) { + var tabelLength = Object.keys(currentLayer.zIndexTable).length; + var j = 0; + for (var i = 0; i < tabelLength; i++) { + if (i === index) { + for (var j_1 = tabelLength; j_1 > index; j_1--) { + currentLayer.zIndexTable[parseInt(j_1.toString(), 10)] = currentLayer.zIndexTable[j_1 - 1]; + if (this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]]) { + this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]].zIndex = j_1; + } + } + currentLayer.zIndexTable[parseInt(i.toString(), 10)] = obj.id; + } + j++; + } + } + } + }; + Diagram.prototype.initializeDiagramLayers = function () { + //const tempLayers: LayerModel[] = this.layers; + for (var i = 0; i < this.layers.length; i++) { + if (this.layers[parseInt(i.toString(), 10)].zIndex !== -1) { + var temp = this.layers[parseInt(i.toString(), 10)]; + this.layers[parseInt(i.toString(), 10)] = this.layers[this.layers[parseInt(i.toString(), 10)].zIndex]; + this.layers[temp.zIndex] = temp; + } + } + for (var _i = 0, _a = this.layers; _i < _a.length; _i++) { + var layer = _a[_i]; + layer.zIndex = layer.zIndex !== -1 ? layer.zIndex : this.layers.indexOf(layer); + this.layerZIndexTable[layer.zIndex] = layer.id; + } + for (var i = 0; i < this.layers.length; i++) { + for (var j = i + 1; j < this.layers.length; j++) { + if (this.layers[parseInt(i.toString(), 10)].zIndex > this.layers[parseInt(j.toString(), 10)].zIndex) { + var temp = this.layers[parseInt(i.toString(), 10)]; + this.layers[parseInt(i.toString(), 10)] = this.layers[parseInt(j.toString(), 10)]; + this.layers[parseInt(j.toString(), 10)] = temp; + } + } + } + if (this.layers.length === 0) { + var defaultLayer = { + id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0, + objectZIndex: -1, zIndexTable: {} + }; + this.commandHandler.addLayer(defaultLayer, null, true); + } + this.setActiveLayer(this.layers[this.layers.length - 1].id); + }; + /** + * resetTool method \ + * + * @returns { void } resetTool method .\ + * + * @private + */ + Diagram.prototype.resetTool = function () { + this.eventHandler.resetTool(); + }; + Diagram.prototype.initObjectExtend = function (obj, layer, independentObj) { + if (independentObj) { + var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds); + //EJ2-71853 - Need to improve performance of diagram while rendering large number of nodes and connectors. + // Removed the for loop which is iterating through the zindex table and removing the object from the table as it is not covered in any scenario. + layer.zIndexTable[obj.zIndex] = obj.id; + if (!checkBoundaryConstraints) { + var node = obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] ? this.nodes : this.connectors; + for (var i = 0; i <= node.length; i++) { + if (node[parseInt(i.toString(), 10)] && obj.id === node[parseInt(i.toString(), 10)].id) { + node.splice(i, 1); + } + } + delete layer.zIndexTable[obj.zIndex]; + } + } + }; + /* tslint:disable */ + /** + * initObject method \ + * + * @returns { void } initObject method .\ + * @param {End} obj - provide the obj value. + * @param {End} layer - provide the layer value. + * @param {LayoutOrientation} independentObj - provide the independentObj value. + * @param {boolean} group - provide the independentObj value. + * + * @private + */ + Diagram.prototype.initObject = function (obj, layer, independentObj, group) { + if (independentObj === void 0) { independentObj = true; } + if (obj !== undefined) { + if (independentObj) { + if (!layer) { + this.addToLayer(obj, false); + layer = this.activeLayer; + } + //Move the common properties like zindex and id to an abstract class + if ((obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] || obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) && + (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) { + this.setZIndex(layer, obj); + } + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (independentObj) { + if (obj.id !== 'helper') { + var getDefaults = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.getNodeDefaults); + if (getDefaults) { + var defaults = getDefaults(obj, this); + if (defaults && defaults.ports) { + for (var i = 0; i < defaults.ports.length; i++) { + defaults.ports[parseInt(i.toString(), 10)].inEdges = []; + defaults.ports[parseInt(i.toString(), 10)].outEdges = []; + } + } + if (defaults && defaults !== obj) { + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["extendObject"])(defaults, obj); + } + } + } + this.initNode(obj, this.element.id); + } + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + var getDefaults = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.getConnectorDefaults); + if (getDefaults) { + var defaults = getDefaults(obj, this); + if (defaults && defaults !== obj) { + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["extendObject"])(defaults, obj); + } + if (obj.segments.length) { + if (obj.type !== obj.segments[0].type) { + obj.segments = []; + } + } + } + var sourceNode = this.nameTable[obj.sourceID]; + var targetNode = this.nameTable[obj.targetID]; + var port = this.getConnectedPort(sourceNode, obj, true); + var targetPort = this.getConnectedPort(targetNode, obj); + var outPort = this.findInOutConnectPorts(sourceNode, false); + var inPort = this.findInOutConnectPorts(targetNode, true); + if ((sourceNode !== undefined && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canOutConnect"])(sourceNode)) || (obj.sourcePortID !== '' + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortOutConnect"])(outPort))) { + obj.sourceWrapper = this.getEndNodeWrapper(sourceNode, obj, true); + if (obj.sourcePortID) { + // eslint-disable-next-line max-len + if (port && port.constraints && !(port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortConstraints"].None) && (port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortConstraints"].OutConnect)) { + obj.sourcePortWrapper = this.getWrapper(sourceNode.wrapper, obj.sourcePortID); + } + } + } + if ((targetNode !== undefined && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canInConnect"])(targetNode)) || (obj.targetPortID !== '' + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortInConnect"])(inPort))) { + obj.targetWrapper = this.getEndNodeWrapper(targetNode, obj, false); + if (obj.targetPortID) { + // eslint-disable-next-line max-len + if (targetPort && targetPort.constraints && !(targetPort.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortConstraints"].None) && (targetPort.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortConstraints"].InConnect)) { + obj.targetPortWrapper = this.getWrapper(targetNode.wrapper, obj.targetPortID); + } + } + } + if (!independentObj) { + var points = obj.getConnectorPoints(obj.type); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateConnector"])(obj, points); + } + if (independentObj) { + obj.init(this); + } + for (var k = 0; k < obj.wrapper.children.length; k++) { + if (this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data]) { + obj.wrapper.children[parseInt(k.toString(), 10)].absoluteBounds = + this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data].absoluteBounds; + } + } + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](undefined, undefined)); + obj.wrapper.arrange(obj.wrapper.desiredSize); + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && obj.type === 'Bezier') { + this.updateConnectorAnnotation(obj); + this.updateConnectorfixedUserHandles(obj); + } + for (var j = 0; j < obj.wrapper.children.length; j++) { + this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data] = {}; + this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data].absoluteBounds = + obj.wrapper.children[parseInt(j.toString(), 10)].absoluteBounds; + } + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && obj.children && obj.container) { + for (var i = 0; i < obj.children.length; i++) { + this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetX = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetX; + this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetY = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetY; + } + } + if (this.bpmnModule && obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] + && obj.shape.type === 'Bpmn' && obj.shape.annotations.length > 0) { + this.bpmnModule.updateQuad(obj, this); + } + this.initObjectExtend(obj, layer, independentObj); + this.nameTable[obj.id] = obj; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && obj.children) { + this.preventNodesUpdate = true; + this.preventConnectorsUpdate = true; + if (!group && !obj.container) { + this.updateGroupOffset(obj, true); + } + this.groupTable[obj.id] = obj.children; + for (var i = 0; i < obj.children.length; i++) { + var node = (this.nameTable[obj.children[parseInt(i.toString(), 10)]]); + if (node) { + node.parentId = obj.id; + } + } + if (!this.isLoading && obj.rotateAngle && !obj.container) { + this.commandHandler.rotateObjects(obj, [obj], obj.rotateAngle, { x: obj.offsetX, y: obj.offsetY }, false); + } + this.preventNodesUpdate = false; + this.preventConnectorsUpdate = false; + } + if (this['enterObject'] === undefined) { + this.updateQuad(obj); + } + } + if (obj.visible === false) { + this.updateElementVisibility(obj.wrapper, obj, false); + } + }; + /* tslint:enable */ + Diagram.prototype.getConnectedPort = function (node, connector, isSource) { + if (node && node.ports) { + for (var _i = 0, _a = node.ports; _i < _a.length; _i++) { + var port = _a[_i]; + if (port.id === connector.sourcePortID && isSource) { + return port; + } + else if (port.id === connector.targetPortID && !isSource) { + return port; + } + } + } + return null; + }; + Diagram.prototype.scaleObject = function (obj, size, isWidth) { + var actualSize = isWidth ? obj.wrapper.actualSize.width : obj.wrapper.actualSize.height; + var sw = (isWidth) ? 1 + ((size - actualSize) / actualSize) : 1; + var sh = (isWidth) ? 1 : 1 + ((size - actualSize) / actualSize); + //const groupOffsetX: number = obj.offsetX; const groupOffsetY: number = obj.offsetY; + this.realActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDrag; + this.scale(obj, sw, sh, { x: 0.5, y: 0.5 }); + this.realActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDrag; + }; + Diagram.prototype.updateDefaultLayoutIcons = function (node) { + if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' || + this.layout.type === 'ComplexHierarchicalTree') { + { + this.updateDefaultLayoutIcon(node, node.expandIcon); + this.updateDefaultLayoutIcon(node, node.collapseIcon); + } + } + }; + Diagram.prototype.updateDefaultLayoutIcon = function (node, icon) { + if (icon.shape !== 'None') { + if (icon.horizontalAlignment === 'Auto' && icon.verticalAlignment === 'Auto' && + icon.offset.x === .5 && icon.offset.y === 1) { + var iconWrapper = this.getWrapper(node.wrapper, 'icon_content'); + var offsetX = void 0; + var offsetY = void 0; + if (this.layout.orientation === 'TopToBottom' || this.layout.orientation === 'BottomToTop') { + offsetX = .5; + offsetY = this.layout.orientation === 'TopToBottom' ? 1 : 0; + } + else if (this.layout.orientation === 'RightToLeft' || this.layout.orientation === 'LeftToRight') { + offsetX = this.layout.orientation === 'LeftToRight' ? 1 : 0; + offsetY = .5; + } + iconWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction'); + iconWrapper.horizontalAlignment = 'Center'; + iconWrapper.verticalAlignment = 'Center'; + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](node.wrapper.width, node.wrapper.height)); + node.wrapper.arrange(node.wrapper.desiredSize); + } + } + }; + /** + * updateGroupOffset method \ + * + * @returns { void } updateGroupOffset method .\ + * @param {NodeModel | ConnectorModel} node - provide the source value. + * @param {boolean} isUpdateSize - provide the target value. + * + * @private + */ + Diagram.prototype.updateGroupOffset = function (node, isUpdateSize) { + var isUpdateGroupToBlazor = false; + if ((node.children && node.children.length > 0 && (!node.container)) || (node.processId)) { + var node1 = this.nameTable[node.id]; + if (!(this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventScale) && !(this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventDrag)) { + if (node1.offsetX && ((this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].EnableGroupAction) || + ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) && (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) + && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod))))) { + this.realActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventScale; + var diffX = (node1.offsetX - node.wrapper.offsetX); + node1.offsetX = node.wrapper.offsetX; + var diffY = (node1.offsetY - node.wrapper.offsetY); + node1.offsetY = node.wrapper.offsetY; + if (node.flip === 'None' && (diffX + diffY) !== 0) { + this.drag(node1, diffX, diffY); + } + this.realActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventScale; + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node1), true); + isUpdateGroupToBlazor = true; + } + node1.offsetX = node.wrapper.offsetX; + } + if (node1.offsetY && ((this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].EnableGroupAction) || + ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) && (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) + && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod))))) { + this.realActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventScale; + var diffY = (node1.offsetY - node.wrapper.offsetY); + node1.offsetY = node.wrapper.offsetY; + if (node.flip === 'None') { + this.drag(node1, 0, diffY); + } + this.realActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].PreventScale; + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node1), true); + isUpdateGroupToBlazor = true; + } + node1.offsetY = node.wrapper.offsetY; + } + if (this.diagramActions) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node1), true); + isUpdateGroupToBlazor = true; + } + node1.width = node.wrapper.actualSize.width; + node1.height = node.wrapper.actualSize.height; + } + } + } + if (isUpdateSize) { + if ((node.children && node.children.length > 0)) { + if (this.nameTable[node.id].width !== undefined) { + this.scaleObject(node, this.nameTable[node.id].width, true); + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable[node.id]), true); + isUpdateGroupToBlazor = true; + } + this.nameTable[node.id].width = node.wrapper.actualSize.width; + } + if (this.nameTable[node.id].height !== undefined) { + this.scaleObject(node, this.nameTable[node.id].height, false); + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.nameTable[node.id]), true); + isUpdateGroupToBlazor = true; + } + this.nameTable[node.id].height = node.wrapper.actualSize.height; + } + } + } + if (isUpdateGroupToBlazor && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo) && + !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) && + !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod)) { + this.commandHandler.getBlazorOldValues(); + } + }; + /* eslint-disable */ + Diagram.prototype.initNode = function (obj, diagramId, group) { + var canvas = obj.initContainer(); + var portContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__["Canvas"](); + var content; + if (!this.diagramSettings.inversedAlignment) { + canvas.inversedAlignment = false; + } + if (!canvas.children) { + canvas.children = []; + } + if (obj.children) { + canvas.measureChildren = false; + portContainer.id = obj.id + 'group_container'; + portContainer.style.fill = 'none'; + portContainer.style.strokeColor = 'none'; + portContainer.horizontalAlignment = 'Stretch'; + portContainer.verticalAlignment = 'Stretch'; + canvas.style = obj.style; + canvas.padding.left = obj.padding.left; + canvas.padding.right = obj.padding.right; + canvas.padding.top = obj.padding.top; + canvas.padding.bottom = obj.padding.bottom; + portContainer.children = []; + portContainer.preventContainer = true; + if (obj.container) { + portContainer.relativeMode = 'Object'; + } + var checkPorts = (obj.ports && obj.ports.length > 0) ? true : false; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj.container) && !checkPorts) { + canvas.children.push(portContainer); + } + if (obj.container && (obj.container.type === 'Grid')) { + for (var i = 0; i < obj.children.length; i++) { + var childCollection = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__["Canvas"](); + var child = this.nameTable[obj.children[i]]; + childCollection.children = []; + childCollection.children.push(child.wrapper); + if (child) { + canvas.addObject(child.wrapper, child.rowIndex, child.columnIndex, child.rowSpan, child.columnSpan); + } + } + } + else { + for (var i = 0; i < obj.children.length; i++) { + if (this.nameTable[obj.children[i]]) { + var child = this.nameTable[obj.children[i]]; + this.updateStackProperty(obj, child, i); + canvas.children.push(child.wrapper); + canvas.elementActions = canvas.elementActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ElementAction"].ElementIsGroup; + child.wrapper.flip = child.wrapper.flip === 'None' ? + obj.wrapper.flip : child.wrapper.flip; + } + } + } + if (checkPorts || (obj.container && (obj.container.type !== 'Grid'))) { + canvas.children.push(portContainer); + } + } + else { + var setNodeTemplate = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.setNodeTemplate); + if (setNodeTemplate && obj.id !== 'helper') { + content = setNodeTemplate(obj, this); + } + if (!content) { + content = obj.init(this); + } + canvas.children.push(content); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var wrapperContent; + wrapperContent = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["getFunction"])(this.getDescription); + if (wrapperContent) { + (obj.children ? canvas : content).description = wrapperContent; + } + else { + (obj.children ? canvas : content).description = obj.annotations.length ? obj.annotations[0].content : obj.id; + } + var container = obj.children ? portContainer : canvas; + obj.initAnnotations(this.getDescription, container, this.element.id, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) ? true : false, this.annotationTemplate); + obj.initPorts(this.getDescription, container); + obj.initIcons(this.getDescription, this.layout, container, diagramId); + for (var i = 0; obj.fixedUserHandles !== undefined, i < obj.fixedUserHandles.length; i++) { + var fixedUserHandles = obj.initfixedUserHandles(obj.fixedUserHandles[i]); + container.children.push(fixedUserHandles); + } + if (obj.shape.type === 'SwimLane' && obj.wrapper && obj.wrapper.children.length > 0 && + obj.wrapper.children[0] instanceof _core_containers_grid__WEBPACK_IMPORTED_MODULE_21__["GridPanel"]) { + this.setZIndex(this.activeLayer, obj); + if (this.connectors.length > 0) { + for (var i = 0; i < this.connectors.length; i++) { + var obj_2 = this.connectors[i]; + if ((obj_2.sourceID && obj_2.targetID) && (this.activeLayer.objects.indexOf(obj_2.sourceID) === -1 && + this.activeLayer.objects.indexOf(obj_2.targetID) === -1)) { + this.setZIndex(this.activeLayer, obj_2); + } + } + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["swimLaneMeasureAndArrange"])(obj); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["arrangeChildNodesInSwimLane"])(this, obj); + this.updateDiagramElementQuad(); + } + else { + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](obj.width, obj.height), obj.id, this.onLoadImageSize.bind(this)); + if (canvas instanceof _core_containers_grid__WEBPACK_IMPORTED_MODULE_21__["GridPanel"]) { + canvas.arrange(canvas.desiredSize, true); + } + else { + canvas.arrange(canvas.desiredSize); + } + } + if (obj.wrapper.flip !== 'None' && obj.wrapper.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ElementAction"].ElementIsGroup) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["alignElement"])(obj.wrapper, obj.wrapper.offsetX, obj.wrapper.offsetY, this, obj.wrapper.flip); + } + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && obj.container && (obj.width < canvas.outerBounds.width || obj.height < canvas.outerBounds.height) && + canvas.bounds.x <= canvas.outerBounds.x && canvas.bounds.y <= canvas.outerBounds.y) { + obj.width = canvas.width = canvas.outerBounds.width; + obj.height = canvas.height = canvas.outerBounds.height; + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](obj.width, obj.height)); + canvas.arrange(canvas.desiredSize); + } + if (obj.container && obj.container.type === 'Grid' && obj.children && obj.children.length > 0) { + this.updateChildPosition(obj); + } + }; + /* eslint-enable */ + /** + * updateDiagramElementQuad method \ + * + * @returns { void } updateDiagramElementQuad method .\ + * + * @private + */ + Diagram.prototype.updateDiagramElementQuad = function () { + for (var i = 0; i < this.nodes.length; i++) { + if (this.nodes[parseInt(i.toString(), 10)].wrapper && (this.nodes[parseInt(i.toString(), 10)].wrapper instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_6__["Container"])) { + this.updateQuad(this.nodes[parseInt(i.toString(), 10)]); + } + } + }; + Diagram.prototype.onLoadImageSize = function (id, size) { + var obj = this.getObject(id); + var image = document.getElementById(id + 'sf-imageNode'); + if (image) { + image.parentNode.removeChild(image); + } + this.nodePropertyChange(obj, {}, { width: size.width, height: size.height }); + var args = { element: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(obj), size: size }; + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].onImageLoad, args); + }; + Diagram.prototype.updateChildPosition = function (obj) { + for (var i = 0; i < obj.children.length; i++) { + var child = this.getObject(obj.children[parseInt(i.toString(), 10)]); + child.offsetX = child.wrapper.offsetX; + child.offsetY = child.wrapper.offsetY; + if (child.children && child.children.length > 0) { + this.updateChildPosition(child); + } + } + }; + Diagram.prototype.canExecute = function () { + return true; + }; + Diagram.prototype.updateStackProperty = function (obj, child, index) { + if (obj.container && obj.container.type === 'Stack') { + if (!child.width) { + child.wrapper.horizontalAlignment = 'Stretch'; + child.horizontalAlignment = 'Stretch'; + } + if (!child.height) { + child.verticalAlignment = 'Stretch'; + child.wrapper.verticalAlignment = 'Stretch'; + } + if (index && obj.shape.type === 'UmlClassifier') { + child.umlIndex = index; + } + } + }; + Diagram.prototype.initViews = function () { + if (!this.isLoading) { + this.views.push(this.element.id); + this.views[this.element.id] = this; + } + }; + Diagram.prototype.initCommands = function () { + var i; + var newCommands = this.commandManager.commands; + var commands = { + 'copy': { + execute: this.copyCommand.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].C, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'paste': { + execute: this.pasteCommand.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].V, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'cut': { + execute: this.cutCommand.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].X, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'delete': { + execute: this.removeCommand.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Delete } + }, + 'selectAll': { + execute: this.selectAll.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].A, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'undo': { + execute: this.undo.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Z, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'redo': { + execute: this.redo.bind(this), canExecute: this.canExecute.bind(this), + gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Y, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'nudgeUp': { + execute: this.nudgeCommand.bind(this, 'Up'), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Up }, + parameter: 'up' + }, + 'nudgeRight': { + execute: this.nudgeCommand.bind(this, 'Right'), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Right }, + parameter: 'right' + }, + 'nudgeDown': { + execute: this.nudgeCommand.bind(this, 'Down'), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Down }, + parameter: 'down' + }, + 'nudgeLeft': { + execute: this.nudgeCommand.bind(this, 'Left'), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Left }, + parameter: 'left' + }, + 'startEdit': { + execute: this.startEditCommad.bind(this), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].F2 } + }, + 'endEdit': { + execute: this.endEditCommand.bind(this), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Escape } + }, + 'focusToNextItem': { + // execute: this.focusToItem.bind(this), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Tab } + }, + 'focusToPreviousItem': { + // execute: this.focusToItem.bind(this), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Tab, keyModifiers: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["KeyModifiers"].Control } + }, + 'selectFocusedItem': { + execute: this.startEditCommad.bind(this), + canExecute: this.canExecute.bind(this), gesture: { key: _enum_enum__WEBPACK_IMPORTED_MODULE_14__["Keys"].Enter } + } + }; + this.initCommandManager(newCommands, commands); + }; + Diagram.prototype.overrideCommands = function (newCommand, commands) { + var command; + for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) { + var key = _a[_i]; + command = commands["" + key]; + if (newCommand.gesture.key === command.gesture.key && newCommand.gesture.keyModifiers === command.gesture.keyModifiers) { + delete commands["" + key]; + break; + } + } + }; + Diagram.prototype.initCommandManager = function (newCommands, commands) { + var i = 0; + if (newCommands) { + for (i = 0; i < newCommands.length; i++) { + if (commands[newCommands[parseInt(i.toString(), 10)].name] && newCommands[parseInt(i.toString(), 10)]) { + if (newCommands[parseInt(i.toString(), 10)].canExecute) { + commands[newCommands[parseInt(i.toString(), 10)].name].canExecute = newCommands[parseInt(i.toString(), 10)].canExecute; + } + if (newCommands[parseInt(i.toString(), 10)].execute) { + commands[newCommands[parseInt(i.toString(), 10)].name].execute = newCommands[parseInt(i.toString(), 10)].execute; + } + if (newCommands[parseInt(i.toString(), 10)].gesture.key || newCommands[parseInt(i.toString(), 10)].gesture.keyModifiers) { + commands[newCommands[parseInt(i.toString(), 10)].name].gesture = newCommands[parseInt(i.toString(), 10)].gesture; + } + if (newCommands[parseInt(i.toString(), 10)].parameter !== '') { + commands[newCommands[parseInt(i.toString(), 10)].name].parameter = newCommands[parseInt(i.toString(), 10)].parameter; + } + } + else { + this.overrideCommands(newCommands[parseInt(i.toString(), 10)], commands); + commands[newCommands[parseInt(i.toString(), 10)].name] = { + execute: newCommands[parseInt(i.toString(), 10)].execute, canExecute: newCommands[parseInt(i.toString(), 10)].canExecute, gesture: newCommands[parseInt(i.toString(), 10)].gesture, + parameter: newCommands[parseInt(i.toString(), 10)].parameter + }; + } + } + } + this.commands = commands; + }; + /** + * updateNodeEdges method \ + * + * @returns { void } updateNodeEdges method .\ + * @param {Node} node - provide the source value. + * + * @private + */ + Diagram.prototype.updateNodeEdges = function (node) { + for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) { + var edge = _a[_i]; + if (this.nameTable["" + edge]) { + this.nameTable["" + edge].targetID = ''; + } + } + for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) { + var edge = _c[_b]; + if (this.nameTable["" + edge]) { + this.nameTable["" + edge].sourceID = ''; + } + } + node.inEdges = []; + node.outEdges = []; + }; + /** + * updateIconVisibility method \ + * + * @returns { void } updateIconVisibility method .\ + * @param {Node} node - provide the source value. + * @param {boolean} visibility - provide the source value. + * + * @private + */ + Diagram.prototype.updateIconVisibility = function (node, visibility) { + for (var i = 0; i < node.wrapper.children.length; i++) { + var child = node.wrapper.children[parseInt(i.toString(), 10)]; + if (child.id) { + var id = child.id.split(node.id)[1]; + if (id && id.match('^_icon')) { + child.visible = visibility; + this.updateDiagramContainerVisibility(child, visibility); + } + } + } + }; + /** + * updateEdges method \ + * + * @returns { void } updateEdges method .\ + * @param {Connector} obj - provide the source value. + * + * @private + */ + Diagram.prototype.updateEdges = function (obj) { + if (obj.sourceID !== undefined && obj.sourceID !== '') { + var node = this.nameTable[obj.sourceID]; + if (node && node.outEdges && node.outEdges.length === 0) { + node.outEdges = []; + } + if (node && node.outEdges && node.outEdges.indexOf(obj.id) === -1) { + node.outEdges.push(obj.id); + } + this.updatePortEdges(node, obj, false); + } + if (obj.targetID !== undefined && obj.targetID !== '') { + var node = this.nameTable[obj.targetID]; + if (node && node.inEdges && node.inEdges.length === 0) { + node.inEdges = []; + } + if (node && node.inEdges && node.inEdges.indexOf(obj.id) === -1) { + node.inEdges.push(obj.id); + } + this.updatePortEdges(node, obj, true); + if (node && node.visible && node.outEdges) { + var value = node.outEdges.length === 0 ? false : true; + this.updateIconVisibility(node, value); + } + } + }; + /** + * updatePortEdges method \ + * + * @returns { void } updatePortEdges method .\ + * @param {NodeModel} node - provide the source value. + * @param {ConnectorModel} obj - provide the target value. + * @param {boolean} isInEdges - provide the layoutOrientation value. + * + * @private + */ + Diagram.prototype.updatePortEdges = function (node, obj, isInEdges) { + if (node) { + for (var i = 0; i < node.ports.length; i++) { + var port = node.ports[parseInt(i.toString(), 10)]; + var portId = (isInEdges) ? obj.targetPortID : obj.sourcePortID; + if (port.id === portId) { + var portEdges = (isInEdges) ? port.inEdges : port.outEdges; + if (portEdges.indexOf(obj.id) === -1) { + portEdges.push(obj.id); + } + } + } + } + }; + /** + * refreshDiagram method \ + * + * @returns { void } refreshDiagram method .\ + * + * @private + */ + Diagram.prototype.refreshDiagram = function () { + this.initLayerObjects(); + this.doLayout(); + this.updateBridging(); + this.scroller.setSize(); + this.addBlazorDiagramObjects(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.layout && this.layout.layoutInfo && this.layout.layoutInfo.isRootInverse && this.nodes.length > 2) { + var rootNode = this.nodes[0]; + if (rootNode.outEdges.length > 1) { + var isProtectedChange = this.isProtectedOnChange; + for (var i = 1; i < rootNode.outEdges.length; i++) { + var connector = this.nameTable[rootNode.outEdges[parseInt(i.toString(), 10)]]; + var isAllowServerUpdate = this.allowServerDataBinding; + this.protectPropertyChange(false); + this.enableServerDataBinding(false); + this.preventDiagramUpdate = true; + var target = this.getObject(connector.targetID); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (target.data.Branch === 'Left') { + connector.sourcePortID = rootNode.ports[1].id; + } + this.dataBind(); + this.preventDiagramUpdate = false; + this.enableServerDataBinding(isAllowServerUpdate); + this.protectPropertyChange(isProtectedChange); + } + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var view = void 0; + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + view = this.views["" + temp]; + if (view.renderDocument) { + view.renderDocument(view); + view.diagramRenderer.setLayers(); + view.updateView(view); + this.renderNodes(view); + } + } + } + this.updateFitToPage(); + }; + Diagram.prototype.updateCanupdateStyle = function (element, value) { + for (var j = 0; j < element.length; j++) { + if (element[parseInt(j.toString(), 10)].children) { + this.updateCanupdateStyle(element[parseInt(j.toString(), 10)].children, value); + } + element[parseInt(j.toString(), 10)].canApplyStyle = value; + } + }; + Diagram.prototype.getZindexPosition = function (obj, viewId) { + var objects = []; + var index = undefined; + objects = objects.concat(this.nodes); + objects = objects.concat(this.connectors); + var type; + if (obj.zIndex !== -1) { + for (var i = 0; i < objects.length; i++) { + if (objects[parseInt(i.toString(), 10)].zIndex > obj.zIndex) { + if (obj.shape.type === 'HTML' || obj.shape.type === 'Native') { + type = obj.shape.type === 'HTML' ? 'html' : 'native'; + } + index = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDomIndex"])(viewId, objects[parseInt(i.toString(), 10)].id, type); + break; + } + } + } + return index; + }; + /** + *updateDiagramObject method \ + * + * @returns { void } updateDiagramObject method .\ + * @param { (NodeModel | ConnectorModel) } obj - provide the obj value. + * @param { boolean } canIgnoreIndex - provide the canIgnoreIndex value. + * @param { boolean } isUpdateObject - provide the isUpdateObject value. + * + * @private + */ + Diagram.prototype.updateDiagramObject = function (obj, canIgnoreIndex, isUpdateObject) { + var view; + var domTable = 'domTable'; + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + view = this.views["" + temp]; + if (this.diagramActions) { + if (view.mode === 'SVG') { + var hasLayers = this.layers.length > 1; + var layer = void 0; + if (hasLayers) { + layer = this.commandHandler.getObjectLayer(obj.id); + } + if ((layer === undefined || (layer && layer.visible)) || isUpdateObject) { + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(this.element.id); + if (!window["" + domTable][view.element.id + '_diagramLayer']) { + window["" + domTable][view.element.id + '_diagramLayer'] = + document.getElementById(view.element.id + '_diagramLayer'); + } + var diagramElementsLayer = window["" + domTable][view.element.id + '_diagramLayer']; + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Interactions) { + this.updateCanupdateStyle(obj.wrapper.children, true); + } + var centerPoint = this.getMidPoint(obj); + this.diagramRenderer.updateNode(obj.wrapper, diagramElementsLayer, htmlLayer, undefined, canIgnoreIndex ? undefined : this.getZindexPosition(obj, view.element.id), centerPoint); + this.updateCanupdateStyle(obj.wrapper.children, true); + } + } + } + } + }; + //Method used to apply margin for Bezier Curve points. + Diagram.prototype.applyMarginBezier = function (obj, centerPoint) { + for (var i = 0; i < obj.wrapper.children.length; i++) { + if (obj.wrapper && obj.wrapper.children[parseInt(i.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) { + centerPoint.cx = centerPoint.cx + obj.wrapper.children[parseInt(i.toString(), 10)].margin.left; + centerPoint.cx = centerPoint.cx - obj.wrapper.children[parseInt(i.toString(), 10)].margin.right; + centerPoint.cy = centerPoint.cy + obj.wrapper.children[parseInt(i.toString(), 10)].margin.top; + centerPoint.cy = centerPoint.cy - obj.wrapper.children[parseInt(i.toString(), 10)].margin.bottom; + } + } + }; + //Method used to get mid point of Bezier Curve + Diagram.prototype.getMidPoint = function (obj) { + var centerPoint = obj.annotations[0] ? obj.annotations[0].offset : 0.5; + var finalPoint; + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && obj.type === 'Bezier') { + var totalPoints = this.getBezierPoints(obj); + var totalLength = _primitives_point__WEBPACK_IMPORTED_MODULE_45__["Point"].getLengthFromListOfPoints(totalPoints); + var absoluteLength = centerPoint * totalLength; + var position = this.commandHandler.getPointAtLength(absoluteLength, totalPoints, 0); + finalPoint = { cx: position.x, cy: position.y }; + this.applyMarginBezier(obj, finalPoint); + // EJ2-64114 -Horizontal and Vertical alignment not applied properly for the bezier connector annotation + this.applyAlignment(obj, finalPoint); + } + return finalPoint; + }; + /** + * Apply alignment to bezier annotation + * @param {ConnectorModel | NodeModel} obj - provide the obj value. + * @param finalPoint + */ + Diagram.prototype.applyAlignment = function (obj, finalPoint) { + for (var i = 0; i < obj.wrapper.children.length; i++) { + if (obj.wrapper && obj.wrapper.children[parseInt(i.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) { + var child = obj.wrapper.children[parseInt(i.toString(), 10)]; + switch (child.horizontalAlignment) { + case 'Auto': + case 'Left': + finalPoint.cx = child.inversedAlignment ? finalPoint.cx : (finalPoint.cx - child.desiredSize.width); + break; + case 'Stretch': + case 'Center': + finalPoint.cx -= child.desiredSize.width * child.pivot.x; + break; + case 'Right': + finalPoint.cx = child.inversedAlignment ? (finalPoint.cx - child.desiredSize.width) : finalPoint.cx; + break; + } + switch (child.verticalAlignment) { + case 'Auto': + case 'Top': + finalPoint.cy = child.inversedAlignment ? finalPoint.cy : (finalPoint.cy - child.desiredSize.height); + break; + case 'Stretch': + case 'Center': + finalPoint.cy -= child.desiredSize.height * child.pivot.y; + break; + case 'Bottom': + finalPoint.cy = child.inversedAlignment ? (finalPoint.cy - child.desiredSize.height) : finalPoint.cy; + break; + } + } + } + }; + //(EJ2-62683) Method used to get total points in bezier connector + Diagram.prototype.getBezierPoints = function (obj) { + var points = []; + var i; + var source = { x: obj.sourcePoint.x, y: obj.sourcePoint.y }; + points.push(source); + for (i = 0; i < obj.segments.length; i++) { + var total = obj.segments[parseInt(i.toString(), 10)].getPoints(obj.segments[parseInt(i.toString(), 10)], source); + points.push.apply(points, total); + source = points[points.length - 1]; + } + return points; + }; + /** + *updateGridContainer method \ + * + * @returns { void } updateGridContainer method .\ + * @param { GridPanel } grid - provide the objectArray value. + * + * @private + */ + Diagram.prototype.updateGridContainer = function (grid) { + var view; + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(this.element.id); + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + view = this.views["" + temp]; + if (view.mode === 'SVG' && this.diagramActions) { + var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer'); + this.diagramRenderer.updateNode(grid, diagramElementsLayer, htmlLayer, undefined); + } + else { + this.refreshCanvasDiagramLayer(view); + } + } + }; + /** + *getObjectsOfLayer method \ + * + * @returns { (NodeModel | ConnectorModel)[] } getObjectsOfLayer method .\ + * @param { string[] } objectArray - provide the objectArray value. + * + * @private + */ + Diagram.prototype.getObjectsOfLayer = function (objectArray) { + var nodeArray = []; + for (var _i = 0, objectArray_1 = objectArray; _i < objectArray_1.length; _i++) { + var obj = objectArray_1[_i]; + if (this.nameTable["" + obj]) { + nodeArray.push(this.nameTable["" + obj]); + } + } + return nodeArray; + }; + /** + *refreshDiagramLayer method \ + * + * @returns { void } refreshDiagramLayer method .\ + * + * @private + */ + Diagram.prototype.refreshDiagramLayer = function () { + var view; + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + view = this.views["" + temp]; + switch (view.mode) { + case 'SVG': + this.refreshSvgDiagramLayer(view); + break; + case 'Canvas': + this.refreshCanvasLayers(view); + break; + } + } + }; + /** + *refreshCanvasLayers method \ + * + * @returns { void } refreshCanvasLayers method .\ + * @param { View } view - provide the view value. + * + * @private + */ + Diagram.prototype.refreshCanvasLayers = function (view) { + if (!view) { + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + var view_1 = this.views["" + temp]; + this.refreshCanvasDiagramLayer(view_1); + } + } + else { + this.refreshCanvasDiagramLayer(view); + } + }; + Diagram.prototype.renderBasicElement = function (view) { + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(view.element.id); + for (var i = 0; i < this.basicElements.length; i++) { + var element = this.basicElements[parseInt(i.toString(), 10)]; + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_6__["Container"]) { + element.prevRotateAngle = 0; + } + element.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](element.width, element.height)); + element.arrange(element.desiredSize); + view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer); + } + }; + Diagram.prototype.refreshElements = function (view) { + if (!this.isDestroyed) { + this.clearCanvas(view); + if (view instanceof Diagram) { + view.diagramLayer.getContext('2d').setTransform(view.scroller.currentZoom, 0, 0, view.scroller.currentZoom, 0, 0); + view.diagramLayer.getContext('2d').scale(1.5, 1.5); + } + else { + var element = document.getElementById(view.element.id + '_nativeLayer'); + if (element.children.length > 0) { + view.updateView(view); + } + } + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(view.element.id); + //const bounds: Rect = this.spatialSearch.getPageBounds(); + this.renderDiagramElements(view.diagramLayer, view.diagramRenderer, htmlLayer); + for (var i = 0; i < this.basicElements.length; i++) { + var element = this.basicElements[parseInt(i.toString(), 10)]; + element.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](element.width, element.height)); + element.arrange(element.desiredSize); + view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer); + } + if (view instanceof Diagram) { + view.diagramLayer.style.transform = 'scale(' + (2 / 3) + ')'; + view.diagramLayer.style.transformOrigin = '0 0'; + } + this.renderTimer = null; + } + }; + /** + *refreshCanvasDiagramLayer method \ + * + * @returns { void } refreshCanvasDiagramLayer method .\ + * @param { View } view - provide the view value. + * + * @private + */ + Diagram.prototype.refreshCanvasDiagramLayer = function (view) { + var _this = this; + if (view.mode !== 'SVG' && !this.isDestroyed) { + if (this.basicElements.length > 0) { + this.renderBasicElement(view); + } + if ((!this.diagramActions || (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) === 0) + || (_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction & this.diagramActions) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) || (this.scroller.currentZoom !== 1)) { + this.refreshElements(view); + } + else if (!this.renderTimer) { + this.renderTimer = setTimeout(function () { + _this.refreshElements(view); + }, 40); + } + } + }; + /** + *updatePortVisibility method \ + * + * @returns { void } updatePortVisibility method .\ + * @param { Node } node - provide the node value. + * @param { PortVisibility } portVisibility - provide the portVisibility value. + * @param { Boolean } inverse - provide the inverse value. + * + * @private + */ + Diagram.prototype.updatePortVisibility = function (node, portVisibility, inverse) { + var portElement; + var drawingObject = !(this.drawingObject && this.drawingObject.shape) ? true : false; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && drawingObject && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(node)) { + var ports = node.ports; + var changed = false; + for (var i = 0; i < ports.length; i++) { + portElement = this.getWrapper(node.wrapper, ports[parseInt(i.toString(), 10)].id); + if ((portVisibility & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortVisibility"].Hover || portVisibility & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortVisibility"].Connect)) { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["checkPortRestriction"])(ports[parseInt(i.toString(), 10)], portVisibility)) { + portElement.visible = !inverse; + changed = true; + } + } + } + if (changed) { + this.updateDiagramObject(node); + } + //EJ2-59672 - Added the below code to render the ports while hovering over the node + if (this.mode === 'Canvas') { + this.refreshCanvasLayers(); + } + } + }; + /** + *refreshSvgDiagramLayer method \ + * + * @returns { void } refreshSvgDiagramLayer method .\ + * @param { View } view - provide the object value. + * + * @private + */ + Diagram.prototype.refreshSvgDiagramLayer = function (view) { + var element; + var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer'); + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(view.element.id); + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this)) { + for (var i = 0; i < this.basicElements.length; i++) { + element = this.basicElements[parseInt(i.toString(), 10)]; + element.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](element.width, element.height)); + element.arrange(element.desiredSize, (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) ? true : false)); + this.diagramRenderer.renderElement(element, diagramElementsLayer, htmlLayer); + } + this.renderDiagramElements(diagramElementsLayer, this.diagramRenderer, htmlLayer); + } + else { + this.scroller.virtualizeElements(); + } + }; + /** + *removeVirtualObjects method \ + * + * @returns { void } removeVirtualObjects method .\ + * @param { Object } clearIntervalVal - provide the object value. + * + * @private + */ + Diagram.prototype.removeVirtualObjects = function (clearIntervalVal) { + if (this.deleteVirtualObject) { + for (var i = 0; i < this.scroller.removeCollection.length; i++) { + var obj = this.nameTable[this.scroller.removeCollection[parseInt(i.toString(), 10)]]; + this.removeElements(obj); + } + this.deleteVirtualObject = false; + } + clearInterval(clearIntervalVal); + }; + /** + *updateTextElementValue method \ + * + * @returns { void } updateTextElementValue method .\ + * @param { NodeModel | ConnectorModel } object - provide the object value. + * + * @private + */ + Diagram.prototype.updateTextElementValue = function (object) { + for (var j = 0; j < object.wrapper.children.length; j++) { + var element = object.wrapper.children[parseInt(j.toString(), 10)]; + if (element instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) { + element.canMeasure = true; + element.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](object.width, object.height)); + element.arrange(element.desiredSize); + } + } + }; + /** + *updateVirtualObjects method \ + * + * @returns { void } updateVirtualObjects method .\ + * @param { string[] } collection - provide the collection value. + * @param { boolean } remove - provide the remove value. + * @param { string[] } tCollection - provide the htmlLayer value. + * + * @private + */ + Diagram.prototype.updateVirtualObjects = function (collection, remove, tCollection) { + var diagramElementsLayer = document.getElementById(this.element.id + '_diagramLayer'); + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(this.element.id); + if (this.mode === 'SVG') { + for (var i = 0; i < collection.length; i++) { + var index = this.scroller.removeCollection.indexOf(collection[parseInt(i.toString(), 10)]); + if (index >= 0) { + this.scroller.removeCollection.splice(index, 1); + } + var object = this.nameTable[collection[parseInt(i.toString(), 10)]]; + this.updateTextElementValue(object); + this.diagramRenderer.renderElement(object.wrapper, diagramElementsLayer, htmlLayer, undefined, undefined, undefined, undefined, object.zIndex); + } + for (var k = 0; k < tCollection.length; k++) { + this.scroller.removeCollection.push(tCollection[parseInt(k.toString(), 10)]); + } + if (this.scroller.currentZoom !== 1) { + this.eventHandler.updateVirtualization(); + } + } + else if (this.diagramActions) { + this.refreshDiagramLayer(); + } + }; + /** + *renderDiagramElements method \ + * + * @returns { void } renderDiagramElements method .\ + * @param { HTMLCanvasElement | SVGElement} canvas - provide the canvas value. + * @param { DiagramRenderer } renderer - provide the renderer value. + * @param { HTMLElement } htmlLayer - provide the htmlLayer value. + * @param {boolean } transform - provide the transform value. + * @param {boolean } fromExport - provide the fromExport value. + * @param { boolean } isOverView - provide the isOverView value. + * + * @private + */ + Diagram.prototype.renderDiagramElements = function (canvas, renderer, htmlLayer, transform, fromExport, isOverView) { + if (transform === void 0) { transform = true; } + var pageBounds = this.scroller.getPageBounds(); + pageBounds.x *= this.scroller.currentZoom; + pageBounds.y *= this.scroller.currentZoom; + pageBounds.width *= this.scroller.currentZoom; + pageBounds.height *= this.scroller.currentZoom; + var difX = -this.scroller.horizontalOffset - pageBounds.x; + var difY = -this.scroller.verticalOffset - pageBounds.y; + var getCenterPoint; + for (var _i = 0, _a = Object.keys(this.layerZIndexTable); _i < _a.length; _i++) { + var layerId = _a[_i]; + var layer = this.commandHandler.getLayer(this.layerZIndexTable["" + layerId]); + var left = void 0; + var top_1 = void 0; + if (this.mode === 'Canvas' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) && !this.diagramActions) { + this.scroller.virtualizeElements(); + } + var id = (this.mode === 'Canvas' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) && + this.scroller.oldCollectionObjects.length > 0) ? + this.scroller.oldCollectionObjects : undefined; + for (var _b = 0, _c = Object.keys(id || layer.zIndexTable); _b < _c.length; _b++) { + var node = _c[_b]; + var renderNode = id ? this.nameTable[id["" + node]] : this.nameTable[layer.zIndexTable["" + node]]; + if (renderNode && !(renderNode.parentId) && layer.visible && + (!(renderNode.processId) || this.refreshing)) { + //EJ2-68738 - Overview content not updated properly on zoom out the diagram + var transformValue = void 0; + //828826 - In canvas mode diagram transform values are not updated properly while Zoom out action + if (this.scroller.currentZoom < 1 && this.mode == 'SVG') { + transformValue = { + tx: (-pageBounds.x) / this.scroller.currentZoom, + ty: (-pageBounds.y) / this.scroller.currentZoom, + scale: this.scroller.transform.scale + }; + } + else { + transformValue = { + tx: this.scroller.transform.tx, + ty: this.scroller.transform.ty, + scale: this.scroller.transform.scale + }; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this)) { + if (this.scroller.currentZoom < 1) { + if (pageBounds.x < 0 || this.scroller.horizontalOffset < 0) { + var verticalValue = this.scroller.verticalOffset < 0 ? this.scroller.verticalOffset : 0; + left = (difX > 0 ? difX : 0) + 'px'; + top_1 = ((this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].vScrollbarMoved) ? 0 : -verticalValue) + 'px'; + } + else { + left = 0 + 'px'; + top_1 = 0 + 'px'; + } + if (this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].hScrollbarMoved) { + this.realActions = this.realActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].hScrollbarMoved; + } + if (this.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].vScrollbarMoved) { + this.realActions = this.realActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RealAction"].vScrollbarMoved; + } + } + else { + left = (pageBounds.x < 0 ? difX : -this.scroller.horizontalOffset) + 'px'; + top_1 = (pageBounds.y < 0 ? difY : -this.scroller.verticalOffset) + 'px'; + } + this.diagramLayer.style.left = left; + this.diagramLayer.style.top = top_1; + //EJ2-69578 - Overview is not updated properly when we enable virtualization. + transformValue.tx = (-pageBounds.x) / transformValue.scale; + transformValue.ty = (-pageBounds.y) / transformValue.scale; + } + var status_1 = true; + if (fromExport) { + status_1 = false; + } + this.updateTextElementValue(renderNode); + if (this.refreshing) { + if (renderNode.shape.activity && renderNode.shape.activity.subProcess + && renderNode.shape.activity.subProcess.processes) { + for (var i = 0; i < renderNode.shape.activity.subProcess.processes.length; i++) { + var process = renderNode.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]; + renderNode.wrapper.children.push(this.nameTable["" + process].wrapper); + } + renderNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](renderNode.wrapper.bounds.width, renderNode.wrapper.bounds.height)); + renderNode.wrapper.arrange(renderNode.wrapper.desiredSize); + } + } + if (renderNode instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && renderNode.type === 'Bezier') { + getCenterPoint = this.getMidPoint(renderNode); + // (EJ2-58802) - Added the below code to add the transform x and y values to center point value in canvas mode + if (this.mode === 'Canvas' && transform) { + getCenterPoint.cx += transformValue.tx; + getCenterPoint.cy += transformValue.ty; + } + } + else { + getCenterPoint = null; + } + renderer.renderElement(renderNode.wrapper, canvas, htmlLayer, (!renderer.isSvgMode && transform) ? transformValue : undefined, undefined, undefined, status_1 && (!this.diagramActions || isOverView), undefined, undefined, getCenterPoint); + } + } + } + }; + /** + *updateBridging method \ + * + * @returns { void } updateBridging method .\ + * @param {string} isLoad - provide the isLoad value. + * + * @private + */ + Diagram.prototype.updateBridging = function (isLoad) { + if (this.bridgingModule) { + for (var i = 0; i < this.connectors.length; i++) { + var connector = this.connectors[parseInt(i.toString(), 10)]; + this.bridgingModule.updateBridging(connector, this); + var canvas = this.connectors[parseInt(i.toString(), 10)].wrapper; + if (canvas && canvas.children && canvas.children.length > 0) { + var pathSegment = canvas.children[0]; + var data = pathSegment.data; + if (connector.isBezierEditing && this.selectedItems.connectors[0].id === connector.id || connector.type !== 'Bezier') { + connector.getSegmentElement(connector, pathSegment, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ? + this.layout.orientation : undefined, undefined, false); + } + if (pathSegment.data !== data) { + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + canvas.arrange(canvas.desiredSize); + if (this.mode === 'SVG' && !isLoad) { + this.updateDiagramObject(connector); + } + } + } + } + } + }; + /** + *setCursor method \ + * + * @returns { void } setCursor method .\ + * @param {string} cursor - provide the width value. + * + * @private + */ + Diagram.prototype.setCursor = function (cursor) { + this.diagramRenderer.setCursor(this.diagramCanvas, cursor); + }; + /** + *clearCanvas method \ + * + * @returns { void } clearCanvas method .\ + * @param {View} view - provide the width value. + * + * @private + */ + Diagram.prototype.clearCanvas = function (view) { + //let width: number; + //let height: number; + var width = view.contentWidth || view.diagramLayer.width / this.scroller.currentZoom; + var height = view.contentHeight || view.diagramLayer.height / this.scroller.currentZoom; + if (view.mode !== 'SVG') { + var ctx = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].getContext(view.diagramLayer); + ctx.clearRect(0, 0, width, height); + } + }; + /** + *updateScrollOffset method \ + * + * @returns { void } updateScrollOffset method .\ + * + * @private + */ + Diagram.prototype.updateScrollOffset = function () { + this.scroller.setScrollOffset(this.diagramCanvas.scrollLeft, this.diagramCanvas.scrollTop); + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["updateRuler"])(this); + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this)) { + this.scroller.virtualizeElements(); + } + }; + /** + *setOffset method \ + * + * @returns { void } setOffset method .\ + * @param {number} offsetX - provide the width value. + * @param {number} offsetY - provide the height value. + * + * @private + */ + Diagram.prototype.setOffset = function (offsetX, offsetY) { + var domTable = 'domTable'; + if (!window["" + domTable][this.element.id + 'content']) { + window["" + domTable][this.element.id + 'content'] = document.getElementById(this.element.id + 'content'); + } + var container = window["" + domTable][this.element.id + 'content']; + if (container) { + container.scrollLeft = offsetX; + container.scrollTop = offsetY; + } + }; + /** + *setSize method \ + * + * @returns { void } setSize method .\ + * @param {number} width - provide the width value. + * @param {number} height - provide the height value. + * + * @private + */ + Diagram.prototype.setSize = function (width, height) { + if (this.diagramLayer && !this.preventDiagramUpdate) { + var position = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_12__["getRulerSize"])(this); + width -= position.width; + height -= position.height; + var bounds = this.spatialSearch.getPageBounds(); + bounds.x *= this.scroller.currentZoom; + bounds.y *= this.scroller.currentZoom; + bounds.width *= this.scroller.currentZoom; + bounds.height *= this.scroller.currentZoom; + var factor = this.mode === 'SVG' ? 1 : 1.5; + var diagramLayer = this.mode === 'SVG' ? + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramLayerSvg"])(this.element.id) : this.diagramLayer; + var w = (this.mode === 'Canvas' && + (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].Virtualization)) ? this.scroller.viewPortWidth : width; + var h = (this.mode === 'Canvas' && + (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].Virtualization)) ? this.scroller.viewPortHeight : height; + diagramLayer.setAttribute('width', (factor * w).toString()); + diagramLayer.setAttribute('height', (factor * h).toString()); + var hiddenUserHandleTemplate = document.getElementById(this.element.id + '_diagramUserHandleLayer'); + if (hiddenUserHandleTemplate) { + hiddenUserHandleTemplate.style.width = width + 'px'; + hiddenUserHandleTemplate.style.height = height + 'px'; + } + var attr = { 'width': width.toString(), 'height': height.toString() }; + this.diagramLayerDiv.style.width = width + 'px'; + this.diagramLayerDiv.style.height = height + 'px'; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getNativeLayerSvg"])(this.element.id), attr); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getPortLayerSvg"])(this.element.id), attr); + var adornerSVG = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getAdornerLayerSvg"])(this.element.id); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(adornerSVG, attr); + adornerSVG.parentNode.style.width = width + 'px'; + adornerSVG.parentNode.style.height = height + 'px'; + var gridLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(gridLayer, attr); + this.diagramRenderer.updateGrid(this.snapSettings, gridLayer, this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["setAttributeSvg"])(Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getBackgroundLayerSvg"])(this.element.id), attr); + this.htmlLayer.style.width = width + 'px'; + this.htmlLayer.style.height = height + 'px'; + if (this.mode !== 'SVG' && !(Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this))) { + this.refreshDiagramLayer(); + } + if (this.mode === 'SVG' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this)) { + this.scroller.virtualizeElements(); + } + } + }; + /** + *transformLayers method \ + * + * @returns { void } Defines how to remove the Page breaks .\ + * + * @private + */ + Diagram.prototype.transformLayers = function () { + var bounds = this.spatialSearch.getPageBounds(); + bounds.x *= this.scroller.currentZoom; + bounds.y *= this.scroller.currentZoom; + bounds.width *= this.scroller.currentZoom; + bounds.height *= this.scroller.currentZoom; + this.diagramRenderer.updateGrid(this.snapSettings, Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getGridLayerSvg"])(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler); + this.diagramRenderer.transformLayers(this.scroller.transform, this.mode === 'SVG'); + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse)) { + this.updateSelector(); + } + this.renderPageBreaks(bounds); + }; + /** + *Defines how to remove the Page breaks \ + * + * @returns { void } Defines how to remove the Page breaks .\ + * + * @private + */ + Diagram.prototype.removePageBreaks = function () { + if (this.diagramLayer) { + var line = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getBackgroundLayer"])(this.element.id); + if (line && line.childNodes) { + var length_2 = line.childNodes.length; + for (var i = 0; i < length_2; i++) { + line.removeChild(line.childNodes[0]); + } + } + } + }; + /** + * Defines how the page breaks has been rendered \ + * + * @returns { void } Defines how the page breaks has been rendered .\ + * @param {Rect} bounds - provide the overview value. + * + * @private + */ + Diagram.prototype.renderPageBreaks = function (bounds) { + this.removePageBreaks(); + var backgroundLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getBackgroundLayer"])(this.element.id); + if (backgroundLayer) { + var i = 0; + bounds = this.scroller.getPageBounds(true); + var x = (this.scroller.transform.tx + bounds.x) * this.scroller.currentZoom; + var y = (this.scroller.transform.ty + bounds.y) * this.scroller.currentZoom; + var height = bounds.height * this.scroller.currentZoom; + var width = bounds.width * this.scroller.currentZoom; + _rendering_renderer__WEBPACK_IMPORTED_MODULE_3__["DiagramRenderer"].renderSvgBackGroundImage(this.pageSettings.background, this.element, x, y, width, height); + var options = { + id: backgroundLayer.id + 'rect', x: x, + y: y, + height: height, + width: width, angle: 0, stroke: '', strokeWidth: 1, + fill: this.pageSettings.background.color, opacity: 1, + pivotX: 0, pivotY: 0, visible: true, dashArray: '0' + }; + this.diagramRenderer.drawRect(backgroundLayer, options); + if (this.pageSettings.showPageBreaks) { + var collection = this.scroller.getPageBreak(bounds); + for (i = 0; i < collection.length; i++) { + this.diagramRenderer.drawLine(backgroundLayer, { + class: 'e-diagram-page-break', + fill: 'none', stroke: '#aaaaaa', strokeWidth: 1, dashArray: '10 10', + opacity: 2, x: 0, y: 0, width: 0, height: 0, angle: 0, pivotX: 0, pivotY: 0, visible: true, + startPoint: { + x: (collection[parseInt(i.toString(), 10)].x1 + this.scroller.transform.tx) * this.scroller.currentZoom, + y: (collection[parseInt(i.toString(), 10)].y1 + this.scroller.transform.ty) * this.scroller.currentZoom + }, + endPoint: { + x: (collection[parseInt(i.toString(), 10)].x2 + this.scroller.transform.tx) * this.scroller.currentZoom, + y: (collection[parseInt(i.toString(), 10)].y2 + this.scroller.transform.ty) * this.scroller.currentZoom + }, id: collection[parseInt(i.toString(), 10)].y1 === collection[parseInt(i.toString(), 10)].y2 ? 'HorizontalLines' : 'VerticalLines' + }); + } + } + } + }; + Diagram.prototype.validatePageSize = function () { + var temp = 0; + if (this.pageSettings.orientation === 'Portrait') { + if (this.pageSettings.width > this.pageSettings.height) { + temp = this.pageSettings.height; + this.pageSettings.height = this.pageSettings.width; + this.pageSettings.width = temp; + } + } + else { + if (this.pageSettings.height > this.pageSettings.width) { + temp = this.pageSettings.width; + this.pageSettings.width = this.pageSettings.height; + this.pageSettings.height = temp; + } + } + }; + /** + * setOverview method \ + * + * @returns { void } setOverview method .\ + * @param {View} overview - provide the overview value. + * @param {string} id - provide the boolean value. + * + * @private + */ + Diagram.prototype.setOverview = function (overview, id) { + if (overview) { + if (overview) { + this.views.push(overview.id); + this.views[overview.id] = overview; + overview.renderDocument(overview); + overview.diagramRenderer.setLayers(); + overview.updateView(overview); + this.renderNodes(overview); + } + } + else { + for (var i = 0; i < this.views.length; i++) { + if (this.views[parseInt(i.toString(), 10)] === id) { + overview = (this.views["" + id]); + } + } + this.views["" + id] = undefined; + var index = this.views.indexOf(id); + this.views.splice(index, 1); + } + }; + Diagram.prototype.renderNodes = function (overview) { + if (overview) { + var renderer = new _rendering_renderer__WEBPACK_IMPORTED_MODULE_3__["DiagramRenderer"](overview.id, new _rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_2__["SvgRenderer"](), false); + var g = document.getElementById(overview.element.id + '_diagramLayer'); + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getHTMLLayer"])(overview.element.id); + this.renderDiagramElements(g, overview.diagramRenderer || renderer, htmlLayer, undefined, undefined, true); + } + }; + Diagram.prototype.updateThumbConstraints = function (node, selectorModel, canInitialize) { + var state = 0; + var length = node.length; + for (var i = 0; i < length; i++) { + var obj = node[parseInt(i.toString(), 10)]; + var hideRotate = false; + var hideResize = false; + var thumbConstraints = selectorModel.thumbsConstraints; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + hideRotate = (obj.shape.type === 'Bpmn' && (obj.shape.shape === 'Activity' && + (obj.shape.activity.subProcess.collapsed === false)) || + obj.shape.shape === 'TextAnnotation'); + hideResize = (obj.shape.type === 'Bpmn' && obj.shape.shape === 'TextAnnotation'); + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canRotate"])(obj) || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Rotate) || hideRotate) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Rotate; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'SouthEast') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthEast) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthEast; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'NorthWest') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthWest) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthWest; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'East') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeEast) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeEast; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'West') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeWest) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeWest; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'North') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorth) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorth; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'South') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouth) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouth; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'NorthEast') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthEast) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthEast; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj, 'SouthWest') || !(thumbConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthWest) || hideResize) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthWest; + } + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + if (!canInitialize) { + thumbConstraints = thumbConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Default; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDragSourceEnd"])(obj)) { + thumbConstraints = thumbConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ConnectorSource; + } + else { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ConnectorSource; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDragTargetEnd"])(obj)) { + thumbConstraints = thumbConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ConnectorTarget; + } + else { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ConnectorTarget; + } + } + else { + if (!canInitialize) { + thumbConstraints = thumbConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Default; + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canResize"])(obj)) { + thumbConstraints = thumbConstraints & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthEast | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouthWest | + _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeSouth | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeEast | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeWest | + _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorth | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthEast | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].ResizeNorthWest); + } + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canRotate"])(obj)) { + thumbConstraints = thumbConstraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Rotate; + } + } + selectorModel.thumbsConstraints = thumbConstraints; + } + }; + /** + * renderSelector method \ + * + * @returns { void } renderSelector method .\ + * @param {boolean} multipleSelection - provide the multipleSelection value. + * @param {boolean} isSwimLane - provide the boolean value. + * + * @private + */ + Diagram.prototype.renderSelector = function (multipleSelection, isSwimLane) { + var isProtectedOnChangeValue = this.isProtectedOnChange; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.isProtectedOnChange = true; + } + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](); + var selectorModel = this.selectedItems; + var selectorConstraints = selectorModel.constraints; + var rendererActions = this.diagramRenderer.rendererActions; + var innertemplate = document.getElementsByClassName('blazor-inner-template'); + var i; + var div; + this.diagramRenderer.rendererActions = this.currentSymbol ? + this.addConstraints(rendererActions, _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RendererAction"].DrawSelectorBorder) : + this.removeConstraints(rendererActions, _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RendererAction"].DrawSelectorBorder); + this.clearSelectorLayer(); + if (this.commandHandler.hasSelection()) { + if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) { + selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle; + selectorModel.pivot = selectorModel.nodes[0].pivot; + } + selectorModel.wrapper.measure(size); + selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize); + selectorModel.width = selectorModel.wrapper.actualSize.width; + selectorModel.height = selectorModel.wrapper.actualSize.height; + selectorModel.offsetX = selectorModel.wrapper.offsetX; + selectorModel.offsetY = selectorModel.wrapper.offsetY; + if (selectorModel.rotateAngle !== 0) { + for (var _i = 0, _a = selectorModel.nodes; _i < _a.length; _i++) { + var obj = _a[_i]; + obj.offsetX = obj.wrapper.offsetX; + obj.offsetY = obj.wrapper.offsetY; + } + for (var _b = 0, _c = selectorModel.connectors; _b < _c.length; _b++) { + var conn = _c[_b]; + //update connections + } + } + var bounds = this.spatialSearch.getPageBounds(); + //let selectorElement: (SVGElement | HTMLCanvasElement); + var selectorElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getSelectorElement"])(this.element.id); + //let diagramUserHandlelayer: (SVGElement | HTMLElement); + var diagramUserHandlelayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getUserHandleLayer"])(this.element.id); + selectorModel.thumbsConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Default; + if (selectorModel.annotation) { + this.updateThumbConstraints([selectorModel.annotation], selectorModel); + } + else { + this.updateThumbConstraints(selectorModel.nodes, selectorModel); + this.updateThumbConstraints(selectorModel.connectors, selectorModel, true); + } + if (selectorModel.annotation) { + this.renderSelectorForAnnotation(selectorModel, selectorElement); + } + else if (selectorModel.nodes.length + selectorModel.connectors.length === 1 || this.nameTable['helper']) { + if (selectorModel.nodes[0] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + var node = selectorModel.nodes[0]; + if (Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["checkParentAsContainer"])(this, node)) { + if (!isSwimLane && (node.shape.type !== 'UmlClassifier' && !(node.parentId && + this.nameTable[node.parentId] + && this.nameTable[node.parentId].shape.type === 'UmlClassifier'))) { + if (!(node.container && (node.container.type === 'Canvas' || node.container.type === 'Grid'))) { + selectorModel.nodes[0].constraints &= ~(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].HideThumbs); + } + selectorModel.thumbsConstraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Rotate; + } + } + var constraints = isSwimLane ? true : ((node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].HideThumbs) ? true : false); + var swimlane = (node.shape.type === 'SwimLane' || node.isLane || node.isPhase || isSwimLane) ? true : false; + this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(node), constraints, swimlane, selectorModel.handleSize); + } + else if (selectorModel.connectors[0] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDrawThumbs"])(this.diagramRenderer.rendererActions)) { + var connector = selectorModel.connectors[0]; + this.diagramRenderer.renderEndPointHandle(connector, selectorElement, selectorModel.thumbsConstraints, selectorModel.constraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDragSegmentThumb"])(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selectorModel.handleSize); + } + } + else { + this.diagramRenderer.renderResizeHandle(selectorModel.wrapper, selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(selectorModel), null, null, selectorModel.handleSize); + } + if (!(selectorModel.annotation) && !this.currentSymbol) { + this.diagramRenderer.renderUserHandler(selectorModel, selectorElement, this.scroller.transform, diagramUserHandlelayer); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && innertemplate.length > 0) { + for (i = 0; i < this.selectedItems.userHandles.length; i++) { + var userHandle = this.selectedItems.userHandles[parseInt(i.toString(), 10)]; + div = document.getElementById(userHandle.name + '_html_element'); + div.style.display = 'block'; + } + } + } + } + // EJ2-56919 - Add below code to render the selection rectangle for node if selected objects length is greater than one + if (this.selectedItems.selectedObjects.length > 1) { + this.updateSelectionRectangle(); + } + this.isProtectedOnChange = isProtectedOnChangeValue; + }; + Diagram.prototype.updateSelectionRectangle = function () { + var selectorElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getSelectorElement"])(this.element.id); + var isFirst = false; + for (var i = 0; i < this.selectedItems.selectedObjects.length; i++) { + // EJ2-56919 - For first selected object we need to set stroke as 2, so check below condition as i is zero or not + // For first element we passed isFirst argument(last arg) as true in both render selection line and rectangle method + isFirst = i === 0 ? true : false; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + // EJ2-56919 - If selected object type is connector means then render selection line for connector + this.diagramRenderer.renderSelectionLine(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper.children[0], selectorElement, this.scroller.transform, isFirst); + } + else { + // EJ2-56919 - If selected object type is node means then render selection rectangle for node + this.diagramRenderer.renderSelectionRectangle(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper, selectorElement, this.scroller.transform, isFirst); + } + } + }; + /** + * updateSelector method \ + * + * @returns { void } updateSelector method .\ + * + * @private + */ + Diagram.prototype.updateSelector = function () { + var severDataBind = this.allowServerDataBinding; + this.enableServerDataBinding(false); + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](); + var selector = this.selectedItems; + var selectorConstraints = selector.constraints; + var innertemplate = document.getElementsByClassName('blazor-inner-template'); + var i; + var div; + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) && this.selectedItems.nodes.length === 1) { + this.selectedItems.rotateAngle = this.selectedItems.nodes[0].rotateAngle; + this.selectedItems.wrapper.rotateAngle = this.selectedItems.nodes[0].rotateAngle; + } + if (this.selectedItems !== undefined) { + this.clearSelectorLayer(); + if (selector.wrapper !== null && selector.wrapper.children && selector.wrapper.children.length) { + var canUpdate = true; + var canRender = true; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["selectionHasConnector"])(this, selector)) { + var eventHandler = 'eventHandler'; + var rotate = this["" + eventHandler].action; + var isRotate = rotate.includes('Rotate'); + var isSelect = rotate.includes('None') || rotate.includes('Select') || rotate.includes('Drag'); + if (isRotate || isSelect) { + canRender = false; + } + if (!isSelect) { + canUpdate = false; + } + } + if (canUpdate) { + selector.wrapper.measure(size); + selector.wrapper.arrange(selector.wrapper.desiredSize); + } + if (selector.rotateAngle !== 0 || selector.rotateAngle !== selector.wrapper.prevRotateAngle) { + for (var _i = 0, _a = selector.nodes; _i < _a.length; _i++) { + var obj = _a[_i]; + obj.offsetX = obj.wrapper.offsetX; + obj.offsetY = obj.wrapper.offsetY; + } + } + selector.width = selector.wrapper.actualSize.width; + selector.height = selector.wrapper.actualSize.height; + selector.offsetX = selector.wrapper.offsetX; + selector.offsetY = selector.wrapper.offsetY; + //let selectorEle: (SVGElement | HTMLCanvasElement); + var selectorEle = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getSelectorElement"])(this.element.id); + //let diagramUserHandlelayer: (SVGElement | HTMLElement); + var diagramUserHandlelayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getUserHandleLayer"])(this.element.id); + var canHideResizers = this.eventHandler.canHideResizers(); + selector.thumbsConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Default; + if (selector.annotation) { + this.updateThumbConstraints([selector.annotation], selector); + } + else { + this.updateThumbConstraints(selector.nodes, selector); + this.updateThumbConstraints(selector.connectors, selector, true); + } + if ((this.selectedItems.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["SelectorConstraints"].UserHandle) && (!(selector.annotation)) && !this.currentSymbol) { + this.diagramRenderer.renderUserHandler(selector, selectorEle, this.scroller.transform, diagramUserHandlelayer); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && innertemplate.length > 0) { + for (i = 0; i < this.selectedItems.userHandles.length; i++) { + var userHandletemplate = this.selectedItems.userHandles[parseInt(i.toString(), 10)]; + div = document.getElementById(userHandletemplate.name + '_html_element'); + div.style.display = 'block'; + } + } + } + if (selector.annotation) { + this.renderSelectorForAnnotation(selector, selectorEle); + } + else if (selector.nodes.length + selector.connectors.length === 1) { + if (selector.connectors[0] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDrawThumbs"])(this.diagramRenderer.rendererActions)) { + var connector = selector.connectors[0]; + this.diagramRenderer.renderEndPointHandle(connector, selectorEle, selector.thumbsConstraints, selectorConstraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canDragSegmentThumb"])(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selector.handleSize); + } + else if (selector.nodes[0] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + var stackPanel = selector.nodes[0]; + if (Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["checkParentAsContainer"])(this, selector.nodes[0])) { + if (stackPanel.shape.type !== 'UmlClassifier' && !(stackPanel.parentId && + this.nameTable[stackPanel.parentId] + && this.nameTable[stackPanel.parentId].shape.type === 'UmlClassifier')) { + if (!(stackPanel.container && (stackPanel.container.type === 'Canvas' + || stackPanel.container.type === 'Grid'))) { + selector.nodes[0].constraints &= ~(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].HideThumbs | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Rotate); + } + selector.thumbsConstraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["ThumbsConstraints"].Rotate; + } + } + var swimlane = (stackPanel.shape.type === 'SwimLane' || stackPanel.isLane || + stackPanel.isPhase) ? true : false; + this.diagramRenderer.renderResizeHandle(selector.wrapper.children[0], selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(selector.nodes[0]), (selector.nodes[0].constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].HideThumbs) ? true : false, swimlane, selector.handleSize); + } + } + else { + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Interactions) { + this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RendererAction"].PreventRenderSelector; + } + if (!(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["selectionHasConnector"])(this, selector) && canRender)) { + this.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(selector), null, null, selector.handleSize); + } + this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["RendererAction"].PreventRenderSelector; + } + } + } + // EJ2-56919 - Add below code to render selection rectangle for node if selected objects length is greater than one + if (this.selectedItems.selectedObjects.length > 1) { + this.updateSelectionRectangle(); + } + this.enableServerDataBinding(severDataBind); + }; + /** + * renderSelectorForAnnotation method \ + * + * @returns { void } renderSelectorForAnnotation method .\ + * @param {Selector} selectorModel - provide the x value. + * @param {(SVGElement | HTMLCanvasElement)} selectorElement - provide the y value. + * + * @private + */ + //(EJ2-66036)- Annotation interaction not rendered properly + Diagram.prototype.renderSelectorForAnnotation = function (selectorModel, selectorElement) { + this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canMove"])(selectorModel.annotation), undefined, undefined, selectorModel.handleSize); + }; + /** + * drawSelectionRectangle method \ + * + * @returns { void } drawSelectionRectangle method .\ + * @param {number} x - provide the x value. + * @param {number} y - provide the y value. + * @param {number} width - provide the width value. + * @param {number} height - provide the height value. + * + * @private + */ + Diagram.prototype.drawSelectionRectangle = function (x, y, width, height) { + this.clearSelectorLayer(); + this.diagramRenderer.drawSelectionRectangle(x, y, width, height, this.adornerLayer, this.scroller.transform); + }; + /** + * renderHighlighter method \ + * + * @returns { void } renderHighlighter method .\ + * @param {DiagramElement} element - provide the node value. + * + * @private + */ + Diagram.prototype.renderHighlighter = function (element) { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getAdornerLayerSvg"])(this.element.id); + this.diagramRenderer.renderHighlighter(element, adornerSvg, this.scroller.transform); + }; + /** + * clearHighlighter method \ + * + * @returns { void } clearHighlighter method .\ + * + * @private + */ + Diagram.prototype.clearHighlighter = function () { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getAdornerLayerSvg"])(this.element.id); + var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter'); + if (highlighter) { + highlighter.parentNode.removeChild(highlighter); + } + }; + /** + * getNodesConnectors method \ + * + * @returns { (NodeModel | ConnectorModel)[] } getNodesConnectors method .\ + * @param {(NodeModel | ConnectorModel)[]} selectedItems - provide the node value. + * + * @private + */ + Diagram.prototype.getNodesConnectors = function (selectedItems) { + for (var i = 0; i < this.nodes.length; i++) { + var node = this.nodes[parseInt(i.toString(), 10)]; + selectedItems.push(node); + } + for (var i = 0; i < this.connectors.length; i++) { + var conn = this.connectors[parseInt(i.toString(), 10)]; + selectedItems.push(conn); + } + return selectedItems; + }; + /** + * clearSelectorLayer method \ + * + * @returns { void } clearSelectorLayer method .\ + * + * @private + */ + Diagram.prototype.clearSelectorLayer = function () { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getAdornerLayerSvg"])(this.element.id); + var innertemplate = document.getElementsByClassName('blazor-inner-template'); + var i; + var div; + var j; + if (!this.currentSymbol) { + var selectionRect = adornerSvg.getElementById(this.adornerLayer.id + '_selected_region'); + if (selectionRect) { + selectionRect.parentNode.removeChild(selectionRect); + } + this.clearHighlighter(); + var childNodes = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getSelectorElement"])(this.element.id).childNodes; + var child = void 0; + for (var i_4 = childNodes.length; i_4 > 0; i_4--) { + child = childNodes[i_4 - 1]; + child.parentNode.removeChild(child); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse) && innertemplate.length > 0) { + for (i = 0; i < this.selectedItems.userHandles.length; i++) { + var template = this.selectedItems.userHandles[parseInt(i.toString(), 10)]; + div = document.getElementById(template.name + '_html_element'); + div.style.display = 'none'; + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var templates = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getUserHandleLayer"])(this.element.id).childNodes; + for (i = templates.length; i > 0; i--) { + templates[i - 1].parentNode.removeChild(templates[i - 1]); + } + } + } + } + else { + var symbolBorder = adornerSvg.getElementById('borderRect_symbol'); + if (symbolBorder) { + symbolBorder.parentNode.removeChild(symbolBorder); + } + } + }; + /** + * getWrapper method \ + * + * @returns { void } getWrapper method .\ + * @param {Container} nodes - provide the node value. + * @param {string} id - provide the childernCollection value. + * + * @private + */ + Diagram.prototype.getWrapper = function (nodes, id) { + var wrapper; + id = nodes.id + '_' + id; + var container = nodes instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__["Canvas"] ? nodes : this.getPortContainer(this.nameTable[nodes.id]); + for (var i = 0; i < container.children.length; i++) { + if (id === container.children[parseInt(i.toString(), 10)].id) { + wrapper = container.children[parseInt(i.toString(), 10)]; + } + } + return wrapper; + }; + /** + * DiagramElement method \ + * + * @returns { void } getEndNodeWrapper method .\ + * @param {NodeModel | ConnectorModel} node - provide the node value. + * @param {ConnectorModel} connector - provide the childernCollection value. + * @param {boolean} source - provide the childernCollection value. + * + * @private + */ + Diagram.prototype.getEndNodeWrapper = function (node, connector, source) { + if (node.shape.type === 'Bpmn' && node.wrapper.children[0] instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__["Canvas"]) { + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && node.shape.shape === 'Activity') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && node.shadow.bpmnShape === 'Activity')) { + if (source && node.shape.activity.subProcess.type === 'Transaction' + && connector.sourcePortID) { + var portId = connector.sourcePortID; + var parent_4 = node.wrapper.children[0].children[0].children[2]; + if (parent_4.children) { + for (var _i = 0, _a = parent_4.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (child.visible && child.id === node.id + '_' + portId) { + return child.children[0]; + } + } + } + } + return node.wrapper.children[0].children[0].children[0]; + } + return node.wrapper.children[0].children[0]; + } + if (!this.containsMargin(node.wrapper.children[0])) { + if (!node.children) { + return node.wrapper.children[0]; + } + } + return node.wrapper; + }; + Diagram.prototype.containsMargin = function (node) { + return node.margin && (node.margin.left !== 0 || node.margin.top !== 0 || node.margin.right !== 0 || node.margin.bottom !== 0); + }; + Diagram.prototype.focusOutEdit = function () { + this.endEdit(); + // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode. + if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) { + this.refreshDiagramLayer(); + } + }; + Diagram.prototype.endEditCommand = function () { + this.endEdit(); + this.textEditing = false; + // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode. + if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) { + this.refreshDiagramLayer(); + } + }; + /** + * @private + */ + /* tslint:disable */ + Diagram.prototype.endEdit = function () { + return __awaiter(this, void 0, void 0, function () { + var blazor, blazorInterop, oldValues, changedvalues, annotations, textArea, text, element, node, annotation, args, bpmnAnnotation, textWrapper, eventObj, annotation_1, index, deleteNode, eventObj, index, changesAnnotation, nodeIndex, oldnodes, newnodes, clonedObject, selectedNode, swimLaneNode, laneHeader, phaseHeader, collection, j; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].TextEdit)) return [3 /*break*/, 11]; + blazor = 'Blazor'; + blazorInterop = 'sfBlazor'; + oldValues = void 0; + changedvalues = void 0; + annotations = {}; + this.enableServerDataBinding(false); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.canEnableBlazorObject = true; + } + textArea = document.getElementById(this.element.id + '_editBox'); + if (!((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && textArea) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])())) return [3 /*break*/, 11]; + text = textArea.value; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(textArea, 'input', this.eventHandler.inputChange); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(textArea, 'focusout', this.focusOutEdit); + element = document.getElementById(this.element.id + '_editTextBoxDiv'); + node = void 0; + node = this.nameTable[this.activeLabel.parentId]; + annotation = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findAnnotation"])(node, this.activeLabel.id); + args = { oldValue: this.activeLabel.text, newValue: text, cancel: false, element: node, annotation: annotation }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.textEdit) { + args = this.getBlazorTextEditArgs(args); + } + bpmnAnnotation = false; + element.parentNode.removeChild(element); + textWrapper = void 0; + if (!this.bpmnModule) return [3 /*break*/, 5]; + node = this.bpmnModule.isBpmnTextAnnotation(this.activeLabel, this); + textWrapper = this.bpmnModule.getTextAnnotationWrapper(node, this.activeLabel.id); + bpmnAnnotation = node ? true : false; + if (!bpmnAnnotation) return [3 /*break*/, 5]; + if (!(element.textContent !== text || text !== this.activeLabel.text)) return [3 /*break*/, 5]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) return [3 /*break*/, 3]; + if (!(this.textEdit && window && window["" + blazor])) return [3 /*break*/, 2]; + eventObj = { 'EventName': 'textEdit', args: JSON.stringify(args) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this)]; + case 1: + args = (_a.sent()) || args; + _a.label = 2; + case 2: return [3 /*break*/, 4]; + case 3: + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].textEdit, args); + _a.label = 4; + case 4: + if (!args.cancel) { + this.bpmnModule.updateTextAnnotationContent(node, this.activeLabel, text, this); + } + _a.label = 5; + case 5: + if (!!bpmnAnnotation) return [3 /*break*/, 10]; + node = this.nameTable[this.activeLabel.parentId]; + annotation_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findAnnotation"])(node, this.activeLabel.id); + if (annotation_1 && !(annotation_1 instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Text"])) { + index = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(node, annotation_1.id, true); + annotations["" + index] = { content: annotation_1.content }; + oldValues = { annotations: annotations }; + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (node.shape).type === 'Text') { + oldValues = { shape: { textContent: node.shape.content } }; + } + else { + oldValues = { shape: { content: node.shape.content } }; + } + } + deleteNode = this.eventHandler.isAddTextNode(node, true); + if (!(!deleteNode && (element.textContent !== text || text !== this.activeLabel.text))) return [3 /*break*/, 9]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) return [3 /*break*/, 8]; + if (!(window && window["" + blazor] && this.textEdit)) return [3 /*break*/, 7]; + eventObj = { 'EventName': 'textEdit', args: JSON.stringify(args) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this)]; + case 6: + args = (_a.sent()) || args; + _a.label = 7; + case 7: return [3 /*break*/, 9]; + case 8: + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].textEdit, args); + _a.label = 9; + case 9: + if (!textWrapper) { + textWrapper = this.getWrapper(node.wrapper, this.activeLabel.id); + } + if (annotation_1.content !== text && !args.cancel) { + if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier' + && text.indexOf('+') === -1 && text.indexOf('-') === -1 && text.indexOf('#') === -1 + && text.indexOf('~') === -1 && node.id.indexOf('_umlClass_header') === -1) { + text = ' + ' + text; + } + if (node.isLane || node.isPhase) { + this.protectPropertyChange(true); + } + if (!(annotation_1 instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Text"])) { + index = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(node, annotation_1.id, true); + changesAnnotation = {}; + changesAnnotation["" + index] = { content: text }; + changedvalues = { annotations: changesAnnotation }; + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (node.shape).type === 'Text') { + changedvalues = { shape: { textContent: text } }; + } + else { + changedvalues = { shape: { content: text } }; + } + } + nodeIndex = this.getIndex(node, node.id); + if (nodeIndex) { + oldnodes = {}; + oldnodes["" + nodeIndex] = oldValues; + newnodes = {}; + newnodes["" + nodeIndex] = changedvalues; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(node) === _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + this.onPropertyChanged({ nodes: newnodes }, { nodes: oldnodes }); + } + else { + this.onPropertyChanged({ connectors: newnodes }, { connectors: oldnodes }); + } + } + this.protectPropertyChange(true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (node.shape).type === 'Text') { + node.shape.textContent = text; + } + else { + annotation_1.content = text; + } + this.protectPropertyChange(false); + this.updateSelector(); + if (node.isLane || node.isPhase) { + this.protectPropertyChange(false); + } + } + if (deleteNode) { + this.removeObjectsFromLayer(node); + this.removeFromAQuad(node); + delete this.nameTable[this.activeLabel.parentId]; + if (text !== '') { + this.clearSelection(); + clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(node); + node = this.add(clonedObject); + this.updateDiagramObject(node); + this.commandHandler.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this); + this.commandHandler.select(this.nameTable[node.id]); + this.commandHandler.updateBlazorSelector(); + } + } + _a.label = 10; + case 10: + if (this.selectedItems.nodes.length) { + selectedNode = this.nameTable[this.activeLabel.parentId]; + swimLaneNode = this.nameTable[selectedNode.parentId]; + if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane') || (selectedNode.shape.type === 'SwimLane')) { + laneHeader = 'LaneHeaderParent'; + phaseHeader = 'PhaseHeaderParent'; + if ((selectedNode.shape.type === 'SwimLane')) { + swimLaneNode = this.nameTable[this.activeLabel.parentId]; + selectedNode = node; + } + if ((selectedNode.isLane || selectedNode.isPhase)) { + collection = selectedNode.isLane ? + swimLaneNode.shape.lanes : swimLaneNode.shape.phases; + for (j = 0; j < collection.length; j++) { + if (collection[parseInt(j.toString(), 10)].id === (selectedNode["" + laneHeader] || selectedNode["" + phaseHeader])) { + collection[parseInt(j.toString(), 10)].header.annotation.content = selectedNode.annotations[0].content; + } + } + } + else if (selectedNode.isHeader && swimLaneNode.shape.hasHeader) { + swimLaneNode.shape.header.annotation.content = selectedNode.annotations[0].content; + } + } + this.dataBind(); + } + textWrapper.visible = true; + this.updateDiagramObject(node); + this.diagramActions = this.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].TextEdit; + if (this.activeLabel.isGroup) { + this.endGroupAction(); + } + this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined }; + this.commandHandler.getBlazorOldValues(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.canEnableBlazorObject = false; + } + this.enableServerDataBinding(true); + _a.label = 11; + case 11: return [2 /*return*/]; + } + }); + }); + }; + /** + * getIndex method \ + * + * @returns { void } getIndex method .\ + * @param {NodeModel | ConnectorModel} node - provide the node value. + * @param {string} id - provide the childernCollection value. + * + * @private + */ + Diagram.prototype.getIndex = function (node, id) { + //let index: number; + var collection = (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(node) === _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) ? this.nodes : this.connectors; + for (var i = 0; i < collection.length; i++) { + if (collection[parseInt(i.toString(), 10)].id.toString() === id.toString()) { + return i.toString(); + } + } + return null; + }; + /* tslint:enable */ + Diagram.prototype.getBlazorTextEditArgs = function (args) { + var element = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(args.element) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? { connectorId: args.element.id } + : { nodeId: args.element.id }; + var annotation = {}; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(args.element) === _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (args.element.shape.type === 'Text') { + annotation.textNode = args.element.shape; + } + else { + annotation.annotationId = args.element.annotations[0].id; + } + } + else { + annotation.annotationId = args.element.annotations[0].id; + } + args = { + oldValue: args.oldValue, + newValue: args.newValue, + cancel: args.cancel, + element: element, + annotation: annotation + }; + return args; + }; + /** + * canLogChange method \ + * + * @returns { void } canLogChange method .\ + * + * @private + */ + Diagram.prototype.canLogChange = function () { + if ((this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) && (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) && + (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) && (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod))) { + return true; + } + else { + return false; + } + }; + Diagram.prototype.modelChanged = function (newProp, oldProp) { + if (newProp.connectors || oldProp.connectors || newProp.nodes || oldProp.connectors + || newProp.pageSettings || oldProp.pageSettings || newProp.bridgeDirection || oldProp.bridgeDirection) { + return true; + } + return false; + }; + Diagram.prototype.resetDiagramActions = function (action) { + var isAction = action ? true : false; + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo && (!isAction || (action === _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo))) { + this.diagramActions = this.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo; + } + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod && (!isAction || action === _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod)) { + this.diagramActions = this.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PublicMethod; + } + }; + /** + * removeNode method \ + * + * @returns { void } removeNode method .\ + * @param {NodeModel} node - provide the node value. + * @param {NodeModel} childernCollection - provide the childernCollection value. + * + * @private + */ + Diagram.prototype.removeNode = function (node, childernCollection) { + this.removeObjectsFromLayer(node); + this.removeFromAQuad(this.nameTable[node.id]); + var groupElement = document.getElementById(node.id + '_groupElement'); + delete this.nameTable[node.id]; + if (node.children) { + delete this.groupTable[node.id]; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + for (var i = 0; i < this.nodes.length; i++) { + if (node.id === this.nodes[parseInt(i.toString(), 10)].id) { + this.UpdateBlazorDiagramModel(node, 'Node', i); + } + } + } + this.nodes.splice(this.nodes.indexOf(node), 1); + if (groupElement && groupElement.children && groupElement.children.length > 0) { + var beforeElement = undefined; + for (var j = groupElement.children.length - 1; j >= 0; j--) { + var childElement = groupElement.children[parseInt(j.toString(), 10)]; + if (childernCollection.length > 0 && childernCollection.indexOf(childElement.id.split('_')[0]) !== -1) { + if (!beforeElement) { + groupElement.parentNode.insertBefore(childElement, groupElement); + } + else { + groupElement.parentNode.insertBefore(childElement, beforeElement); + } + beforeElement = childElement; + } + } + } + if (groupElement) { + groupElement.parentNode.removeChild(groupElement); + } + }; + /** + * deleteGroup method \ + * + * @returns { void } deleteGroup method .\ + * @param {NodeModel} node - provide the source value. + * + * @private + */ + Diagram.prototype.deleteGroup = function (node) { + var elements = []; + var tempNode = []; + if (node.children) { + tempNode = this.commandHandler.getChildren(node, elements); + } + this.UpdateBlazorDiagramModelCollection(node); + for (var _i = 0, tempNode_1 = tempNode; _i < tempNode_1.length; _i++) { + var nodes = tempNode_1[_i]; + if (this.nameTable[nodes.id]) { + this.remove(nodes); + } + } + }; + //helper methods - end region + //property changes - start region + /** @private */ + /** + * updateObject method \ + * + * @returns { void } updateObject method .\ + * @param {Node | Connector} actualObject - provide the source value. + * @param {Node | Connector} oldObject - provide the target value. + * @param {Node | Connector} changedProp - provide the layoutOrientation value. + * + * @private + */ + Diagram.prototype.updateObject = function (actualObject, oldObject, changedProp) { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) { + var bound = actualObject.wrapper.children[0].bounds; + var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bound); + if (!checkBoundaryConstraints) { + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + var oldNode = oldObject; + for (var _i = 0, _a = Object.keys(changedProp); _i < _a.length; _i++) { + var key = _a[_i]; + switch (key) { + case 'width': + actualObject.width = oldNode.width; + break; + case 'height': + actualObject.height = oldNode.height; + break; + case 'offsetX': + actualObject.offsetX = oldNode.offsetX; + break; + case 'offsetY': + actualObject.offsetY = oldNode.offsetY; + break; + case 'rotateAngle': + actualObject.rotateAngle = oldNode.rotateAngle; + break; + } + } + this.nodePropertyChange(actualObject, changedProp, oldObject); + } + else { + for (var _b = 0, _c = Object.keys(changedProp); _b < _c.length; _b++) { + var key = _c[_b]; + var oldConnector = oldObject; + var actualSourcePoint = actualObject.sourcePoint; + var actualTargetPoint = actualObject.targetPoint; + switch (key) { + case 'sourcePoint': + actualSourcePoint.x = oldConnector.sourcePoint.x || actualSourcePoint.x; + actualSourcePoint.y = oldConnector.sourcePoint.y || actualSourcePoint.y; + break; + case 'targetPoint': + actualTargetPoint.x = oldConnector.targetPoint.x || actualTargetPoint.x; + actualTargetPoint.y = oldConnector.targetPoint.y || actualTargetPoint.y; + } + } + this.connectorPropertyChange(actualObject, changedProp, oldObject); + } + } + } + }; + Diagram.prototype.nodePropertyChangeExtend = function (actualObject, oldObject, node, update) { + if (node.style !== undefined && actualObject.shape.type !== 'Bpmn') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateStyle"])(node.style, actualObject.wrapper.children[0]); + update = true; + } + if (node.shadow !== undefined) { + this.updateShadow(actualObject.shadow, node.shadow); + update = true; + } + if (node.constraints !== undefined) { + if ((oldObject.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select) && + (!(node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select)) && Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_27__["isSelected"])(this, actualObject)) { + this.clearSelection(); + } + else { + this.updateThumbConstraints(this.selectedItems.nodes, this.selectedItems); + this.updateSelector(); + update = true; + } + } + this.swimLaneNodePropertyChange(actualObject, oldObject, node, update); + return update; + }; + /* tslint:disable */ + Diagram.prototype.swimLaneNodePropertyChange = function (actualObject, oldObject, node, update) { + if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol) { + if (oldObject.shape) { + var shape = node.shape; + var actualShape = actualObject.shape; + var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false; + var padding = actualShape.padding; + var oldShape = oldObject.shape; + var grid = actualObject.wrapper.children[0]; + var oldObjects = void 0; + var newObjects = void 0; + var id = void 0; + if (oldShape.lanes || oldShape.phases) { + if (oldShape.lanes) { + for (var _i = 0, _a = Object.keys(shape.lanes); _i < _a.length; _i++) { + var count = _a[_i]; + var indexValue = Number(count); + var lane = oldShape.lanes[parseInt(indexValue.toString(), 10)]; + var laneIndex = void 0; + var newLane = shape.lanes[parseInt(indexValue.toString(), 10)]; + if (newLane && newLane.header) { + id = actualShape.lanes[parseInt(indexValue.toString(), 10)].header.id; + oldObjects = lane.header; + newObjects = newLane.header; + this.nodePropertyChange(this.nameTable["" + id], oldObjects, newObjects); + } + if (lane.children) { + for (var _b = 0, _c = Object.keys(lane.children); _b < _c.length; _b++) { + var childNodeIndex = _c[_b]; + id = actualShape.lanes[parseInt(indexValue.toString(), 10)].children[Number(childNodeIndex)].id; + var node_1 = this.nameTable["" + id]; + oldObjects = lane.children[Number(childNodeIndex)]; + newObjects = newLane.children[Number(childNodeIndex)]; + this.nodePropertyChange(node_1, oldObjects, newObjects); + } + } + if (lane.width && !orientation_1) { + laneIndex = (actualShape.phases && actualShape.phaseSize) ? indexValue + 1 : indexValue; + grid.updateColumnWidth(laneIndex, newLane.width, true, padding); + this.updateDiagramElementQuad(); + } + if (lane.height && orientation_1) { + laneIndex = (actualShape.header && actualShape.hasHeader) ? indexValue + 1 : indexValue; + laneIndex += (actualShape.phases && actualShape.phaseSize) ? 1 : 0; + grid.updateRowHeight(laneIndex, newLane.height, true, padding); + this.updateDiagramElementQuad(); + } + } + } + if (shape.phases) { + for (var _d = 0, _e = Object.keys(shape.phases); _d < _e.length; _d++) { + var key = _e[_d]; + var indexValue = Number(key); + var phase = shape.phases[parseInt(indexValue.toString(), 10)]; + var size = void 0; + var rowIndex = (actualShape.header && actualShape.hasHeader) ? 1 : 0; + if (phase && phase.header) { + id = actualShape.phases[parseInt(indexValue.toString(), 10)].header.id; + oldObjects = oldShape.phases[parseInt(indexValue.toString(), 10)].header; + newObjects = phase.header; + this.nodePropertyChange(this.nameTable["" + id], oldObjects, newObjects); + } + if (phase.offset) { + if (indexValue === 0) { + size = phase.offset; + } + else { + var previousPhase = actualShape.phases[indexValue - 1]; + size = phase.offset - previousPhase.offset; + if (size <= 0) { + size = phase.offset; + } + } + if (orientation_1) { + grid.updateColumnWidth(indexValue, size, true, padding); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["updatePhaseMaxWidth"])(actualObject, this, grid.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(indexValue.toString(), 10)], indexValue); + } + else { + grid.updateRowHeight(rowIndex + indexValue, size, true, padding); + } + } + } + } + } + if (shape.phaseSize !== undefined && actualShape.phases.length) { + if (shape.phaseSize === 0 || oldShape.phaseSize === 0) { + if (oldShape.phaseSize) { + if (orientation_1) { + grid.removeRow((actualShape.header && actualShape.hasHeader) ? 1 : 0); + actualObject.height = actualObject.wrapper.height = grid.height; + } + else { + if (actualShape.header && actualShape.hasHeader) { + grid.rows[0].cells[1].children = grid.rows[0].cells[0].children; + grid.rows[0].cells[1].columnSpan = grid.rows[0].cells[0].columnSpan - 1; + grid.rows[0].cells[0].children = []; + } + grid.removeColumn(0); + } + } + else { + if (orientation_1) { + var rowDef = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_21__["RowDefinition"](); + rowDef.height = shape.phaseSize; + grid.addRow((actualShape.header && actualShape.hasHeader) ? 1 : 0, rowDef, true); + actualObject.height = actualObject.wrapper.height += shape.phaseSize; + } + else { + var colDef = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_21__["ColumnDefinition"](); + colDef.width = shape.phaseSize; + grid.addColumn(0, colDef, true); + if (actualShape.header && actualShape.hasHeader) { + grid.rows[0].cells[0].children = grid.rows[0].cells[1].children; + grid.rows[0].cells[1].children = []; + grid.rows[0].cells[1].columnSpan = 1; + grid.rows[0].cells[1].minWidth = undefined; + grid.rows[0].cells[0].columnSpan = actualShape.lanes.length + 1; + } + } + for (var k = 0; k < actualShape.phases.length; k++) { + if (actualShape.phases[parseInt(k.toString(), 10)].id === '') { + actualShape.phases[parseInt(k.toString(), 10)].id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["phaseDefine"])(grid, this, actualObject, (actualShape.header && actualShape.hasHeader) ? 1 : 0, orientation_1, k); + } + } + } + else { + if (orientation_1) { + grid.updateRowHeight((actualShape.header && actualShape.hasHeader) ? 1 : 0, shape.phaseSize, false); + } + else { + grid.updateColumnWidth(0, shape.phaseSize, false); + } + } + } + if (actualShape.header && actualShape.hasHeader && oldShape.header) { + var id_1 = grid.rows[0].cells[0].children[0].id; + var headerNode = this.nameTable["" + id_1]; + this.nodePropertyChange(headerNode, (oldShape.header), shape.header); + } + actualObject.height = actualObject.wrapper.height = grid.height; + actualObject.width = actualObject.wrapper.width = grid.width; + } + else if (oldObject.constraints) { + var oldSelectConstraints = (oldObject.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select); + var newSelectConstraints = (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select); + if (oldSelectConstraints !== newSelectConstraints) { + var shape = actualObject.shape; + // Header - constraints + var headerNode = this.nameTable[actualObject.id + shape.header.id]; + headerNode.constraints = (!newSelectConstraints) ? headerNode.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select : + headerNode.constraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select; + // Phase - Constraints + var phaseNode = void 0; + if (shape.phaseSize > 0) { + for (var i = 0; i < shape.phases.length; i++) { + phaseNode = this.nameTable[actualObject.id + shape.phases[parseInt(i.toString(), 10)].id + '_header']; + phaseNode.constraints = (!newSelectConstraints) ? phaseNode.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select : + phaseNode.constraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select; + } + } + // Header - Constraints + var laneNode = void 0; + var laneHeader = void 0; + var value = shape.phases.length || 1; + for (var i = 0; i < shape.lanes.length; i++) { + for (var l = 0; l < value; l++) { + laneNode = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + l]; + laneNode.constraints = (!newSelectConstraints) ? laneNode.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select : + laneNode.constraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select; + if (l === 0) { + laneHeader = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + '_' + l + '_header']; + laneHeader.constraints = (!newSelectConstraints) ? laneHeader.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select : + laneHeader.constraints | _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Select; + } + } + } + } + } + update = true; + } + return update; + }; + /** @private */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + Diagram.prototype.insertValue = function (oldNodeObject, isNode) { + if (!(this.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["BlazorAction"].GroupClipboardInProcess)) { + var value = void 0; + var oldObjects = isNode ? this.oldNodeObjects : this.oldConnectorObjects; + for (var i = 0; i < oldObjects.length; i++) { + if (oldObjects[parseInt(i.toString(), 10)].id === oldNodeObject.id) { + value = true; + } + } + if (!value) { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + isNode ? (this.oldNodeObjects.push(oldNodeObject)) : this.oldConnectorObjects.push(oldNodeObject); + } + } + }; + /* tslint:disable */ + /** @private */ + // eslint-disable-next-line max-len + Diagram.prototype.nodePropertyChange = function (actualObject, oldObject, node, isLayout, rotate, propertyChange) { + if (this.canEnableBlazorObject && actualObject.id !== 'helper') { + var node_2 = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(actualObject); + this.insertValue(node_2, true); + } + var existingBounds = actualObject.wrapper.outerBounds; + var existingInnerBounds = actualObject.wrapper.bounds; + var updateConnector = false; + var i; + var j; + var offsetX; + var offsetY; + var update; + var tx; + var ty; + if (node.width !== undefined) { + if (!actualObject.children) { + actualObject.wrapper.children[0].width = node.width; + update = true; + updateConnector = true; + } + else if (!actualObject.container) { + this.scaleObject(actualObject, node.width, true); + } + else { + actualObject.wrapper.width = node.width; + } + } + if (node.height !== undefined) { + if (!actualObject.children) { + actualObject.wrapper.children[0].height = node.height; + update = true; + updateConnector = true; + } + else if (!actualObject.container) { + this.scaleObject(actualObject, node.height, false); + } + else { + actualObject.wrapper.height = node.height; + } + } + update = this.nodePropertyChangeExtend(actualObject, oldObject, node, update); + if (node.constraints !== undefined && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canShadow"])(oldObject) !== Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canShadow"])(node)) { + actualObject.wrapper.children[0].shadow = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canShadow"])(actualObject) ? actualObject.shadow : null; + } + if (node.offsetX !== undefined) { + if (actualObject.wrapper.flip !== 'None') { + if (actualObject.offsetX !== actualObject.wrapper.offsetX && oldObject.offsetX !== undefined) { + var offsetX_1 = node.offsetX - oldObject.offsetX; + actualObject.wrapper.offsetX = actualObject.wrapper.offsetX + offsetX_1; + this.updateFlipOffset(actualObject.wrapper, offsetX_1, 0, actualObject.wrapper.flip); + } + } + else { + actualObject.wrapper.offsetX = node.offsetX; + } + update = true; + updateConnector = true; + } + if (node.offsetY !== undefined) { + if (actualObject.wrapper.flip !== 'None') { + if (actualObject.offsetY !== actualObject.wrapper.offsetY && oldObject.offsetY !== undefined) { + var offsetY_1 = node.offsetY - oldObject.offsetY; + actualObject.wrapper.offsetY = actualObject.wrapper.offsetY + offsetY_1; + this.updateFlipOffset(actualObject.wrapper, 0, offsetY_1, actualObject.wrapper.flip); + } + } + else { + actualObject.wrapper.offsetY = node.offsetY; + } + update = true; + updateConnector = true; + } + if (node.padding !== undefined) { + actualObject.wrapper.padding.left = node.padding.left !== undefined ? node.padding.left : actualObject.wrapper.padding.left; + actualObject.wrapper.padding.right = node.padding.right !== undefined ? node.padding.right : actualObject.wrapper.padding.right; + actualObject.wrapper.padding.top = node.padding.top !== undefined ? node.padding.top : actualObject.wrapper.padding.top; + actualObject.wrapper.padding.bottom = node.padding.bottom !== undefined ? node.padding.bottom : actualObject.wrapper.padding.bottom; + update = true; + } + if (node.pivot !== undefined) { + actualObject.wrapper.pivot = node.pivot; + update = true; + } + if (node.minWidth !== undefined) { + actualObject.wrapper.minWidth = actualObject.wrapper.children[0].minWidth = node.minWidth; + update = true; + updateConnector = true; + } + if (node.minHeight !== undefined) { + actualObject.wrapper.minHeight = actualObject.wrapper.children[0].minHeight = node.minHeight; + update = true; + updateConnector = true; + } + if (node.maxWidth !== undefined) { + actualObject.wrapper.maxWidth = node.maxWidth; + update = true; + updateConnector = true; + } + if (node.maxHeight !== undefined) { + actualObject.wrapper.maxHeight = node.maxHeight; + update = true; + updateConnector = true; + } + if (node.flip !== undefined) { + actualObject.wrapper.flip = node.flip; + update = true; + updateConnector = true; + if (actualObject.wrapper.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["ElementAction"].ElementIsGroup) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["alignElement"])(actualObject.wrapper, actualObject.offsetX, actualObject.offsetY, this, node.flip); + if (actualObject && actualObject.children) { + for (var _i = 0, _a = actualObject.children; _i < _a.length; _i++) { + var child = _a[_i]; + var updateNode = this.nameTable["" + child]; + updateNode.wrapper.flip = node.flip; + this.updatePorts(updateNode, node.flip); + } + } + //EJ2-826617 - Flip option for BPMN node + else { + this.updatePorts(actualObject, actualObject.flip); + } + } + else { + if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All')) { + this.updatePorts(actualObject, node.flip); + } + //EJ2-826617 - Flip 'None' is not working properly + else if (actualObject.flip === 'None') { + this.updatePorts(actualObject, node.flip); + } + } + } + // EJ2-71981 - Flip mode "Port" is not working properly while dragging multiselected node + if (node.flipMode !== undefined) { + update = true; + updateConnector = true; + if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All')) { + this.updatePorts(actualObject, actualObject.flip); + } + //EJ2-826617 - Flip mode 'Label' does not triggers the port + else if (actualObject.flipMode === 'Label') { + this.updatePorts(actualObject, 'None'); + } + //EJ2-826617 - Flip mode 'None' is not working properly + else if (actualObject.flipMode === 'None') { + this.updatePorts(actualObject, actualObject.flipMode); + } + } + if (node.rotateAngle !== undefined && (actualObject.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["NodeConstraints"].Rotate)) { + if (actualObject.children && rotate) { + // eslint-disable-next-line max-len + this.commandHandler.rotateObjects(actualObject, [actualObject], actualObject.rotateAngle - actualObject.wrapper.rotateAngle, { x: actualObject.offsetX, y: actualObject.offsetY }, false); + } + actualObject.wrapper.rotateAngle = node.rotateAngle; + update = true; + updateConnector = true; + } + if (node.backgroundColor !== undefined) { + actualObject.wrapper.style.fill = node.backgroundColor; + } + if (node.visible !== undefined) { + this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible); + } + if (node.shape !== undefined && actualObject.shape.type !== 'Bpmn') { + update = true; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateShape"])(node, actualObject, oldObject, this); + updateConnector = true; + } + if (node.margin) { + update = true; + this.updateMargin(actualObject, node); + updateConnector = true; + } + if ((((node.shape !== undefined && (node.shape.type === undefined)) || node.width !== undefined + || node.height !== undefined || node.style !== undefined) && actualObject.shape.type === 'Bpmn' && this.bpmnModule) + || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && node && node.shape && node.shape.type === 'Bpmn')) { + update = true; + updateConnector = true; + this.bpmnModule.updateBPMN(node, oldObject, actualObject, this); + } + if (actualObject.shape.type === 'UmlActivity' && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && actualObject.shape.shape === 'FinalNode') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && actualObject.shape.umlActivityShape === 'FinalNode'))) { + update = true; + updateConnector = true; + this.updateUMLActivity(node, oldObject, actualObject, this); + } + if ((actualObject.shape && actualObject.shape.type === 'UmlClassifier') || (actualObject.parentId && + this.nameTable[actualObject.parentId] && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier')) { + update = true; + updateConnector = true; + } + if (node.ports !== undefined) { + for (var _b = 0, _c = Object.keys(node.ports); _b < _c.length; _b++) { + var key = _c[_b]; + var index = Number(key); + update = true; + var changedObject = node.ports["" + key]; + var actualPort = actualObject.ports[parseInt(index.toString(), 10)]; + this.updatePort(changedObject, actualPort, actualObject.wrapper); + updateConnector = true; + } + } + if (node.annotation !== undefined || node.annotations !== undefined || node.width !== undefined) { + for (var _d = 0, _e = Object.keys(node.annotations || actualObject.annotations); _d < _e.length; _d++) { + var key = _e[_d]; + var index = Number(key); + update = true; + var changedObject = void 0; + if (node.annotation) { + changedObject = node.annotation; + } + else { + changedObject = node.annotations ? node.annotations["" + key] : actualObject.annotations; + } + var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)]; + if (actualAnnotation) { + var updateSize = actualObject.width ? true : false; + this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject, updateSize); + var swimLaneNode = this.nameTable[actualObject.parentId]; + if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane')) { + var laneHeader = 'LaneHeaderParent'; + var phaseHeader = 'PhaseHeaderParent'; + if ((actualObject.isLane || actualObject.isPhase)) { + var collection = actualObject.isLane ? + swimLaneNode.shape.lanes : swimLaneNode.shape.phases; + for (var j_2 = 0; j_2 < collection.length; j_2++) { + if (collection[parseInt(j_2.toString(), 10)].id === (actualObject["" + laneHeader] || actualObject["" + phaseHeader])) { + collection[parseInt(j_2.toString(), 10)].header.annotation.content = actualObject.annotations[0].content; + collection[parseInt(j_2.toString(), 10)].header.annotation.style = actualObject.annotations[0].style; + break; + } + } + } + } + } + } + } + if (node.expandIcon !== undefined || node.collapseIcon !== undefined || node.isExpanded !== undefined) { + this.updateIcon(actualObject); + this.updateDefaultLayoutIcons(actualObject); + if (node.isExpanded !== undefined) { + this.canExpand = true; + this.commandHandler.expandNode(actualObject, this); + } + update = true; + this.canExpand = false; + } + if (node.fixedUserHandles !== undefined) { + var index = void 0; + var changedObject = void 0; + var actualfixedUserHandle = void 0; + for (var _f = 0, _g = Object.keys(node.fixedUserHandles); _f < _g.length; _f++) { + var key = _g[_f]; + index = Number(key); + update = true; + if (node.fixedUserHandles[parseInt(index.toString(), 10)]) { + changedObject = node.fixedUserHandles[parseInt(index.toString(), 10)]; + } + actualfixedUserHandle = actualObject.fixedUserHandles[parseInt(index.toString(), 10)]; + if (actualfixedUserHandle) { + this.updateNodefixedUserHandle(changedObject, actualfixedUserHandle, actualObject.wrapper, actualObject); + } + } + } + if (node.tooltip !== undefined) { + this.updateTooltip(actualObject, node); + } + if (update) { + if (this.bpmnModule !== undefined) { + // eslint-disable-next-line max-len + this.bpmnModule.updateTextAnnotationProp(actualObject, { offsetX: (oldObject.offsetX || actualObject.offsetX), offsetY: (oldObject.offsetY || actualObject.offsetY) }, this); + } + if (this.checkSelectedItem(actualObject) && actualObject.wrapper.children[0] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_16__["TextElement"]) { + actualObject.wrapper.children[0].refreshTextElement(); + } + actualObject.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height), actualObject.id, this.onLoadImageSize.bind(this)); + actualObject.wrapper.arrange(actualObject.wrapper.desiredSize); + this.updateObject(actualObject, oldObject, node); + if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["updateHeaderMaxWidth"])(this, actualObject); + var grid = actualObject.wrapper.children[0]; + var shape = actualObject.shape; + var column = grid.columnDefinitions().length; + if (shape.orientation === 'Horizontal') { + var index = (shape.header && shape.hasHeader) ? 1 : 0; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["updatePhaseMaxWidth"])(actualObject, this, grid.rows[parseInt(index.toString(), 10)].cells[column - 1], column - 1); + } + actualObject.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height)); + actualObject.wrapper.arrange(actualObject.wrapper.desiredSize); + } + if ((!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) || (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo)) { + if (this.checkSelectedItem(actualObject)) { + this.updateSelector(); + } + } + if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) { + this.updateQuad(actualObject); + // EJ2-57436 - Added the below code to check if node has parent id or not. + // If node has parentId means then send the parent node to updatequad method to add the parent node in negative quadrant + if (actualObject.parentId && this.nameTable[actualObject.parentId]) { + var parentNode = this.nameTable[actualObject.parentId]; + this.updateQuad(parentNode); + } + } + if (!isLayout) { + // eslint-disable-next-line max-len + this.commandHandler.connectorSegmentChange(actualObject, existingInnerBounds, (node.rotateAngle !== undefined) ? true : false); + // if (updateConnector) { + // this.updateConnectorEdges(actualObject); + // } + } + else { + if (actualObject && actualObject.visible && actualObject.outEdges) { + this.updateIconVisibility(actualObject, (actualObject.outEdges.length === 0 ? false : true)); + } + } + if (this.bpmnModule !== undefined) { + this.bpmnModule.updateDocks(actualObject, this); + } + if (!node.annotations || !actualObject.processId) { + this.updateGroupOffset(actualObject); + } + // if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) { this.updateQuad(actualObject); } + // EJ2-42005 - The parent of the actualObject is not measured and arranged when a node or connector is selected. + // The condition restricts the measure and arrange of the actualObject whenever a node or connector is selected. + // Commented @Dheepshiva + // let objects: (NodeModel | ConnectorModel)[] = []; + // objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors); + // if (objects.length === 0) { + if (actualObject.parentId && this.nameTable[actualObject.parentId]) { + var parent_5 = this.nameTable[actualObject.parentId]; + parent_5.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](parent_5.wrapper.width, actualObject.wrapper.height)); + parent_5.wrapper.arrange(parent_5.wrapper.desiredSize); + parent_5.offsetX = parent_5.wrapper.offsetX; + parent_5.offsetY = parent_5.wrapper.offsetY; + } + // } + if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) { + if (actualObject.children) { + this.updateGroupOffset(actualObject); + } + } + if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render)) { + var connectors = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["getConnectors"])(this, actualObject.wrapper.children[0], undefined, true); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_39__["updateConnectorsProperties"])(connectors, this); + } + if (!this.preventNodesUpdate) { + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) { + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventZIndexOnDragging) { + this.updateDiagramObject(actualObject, true); + } + else { + this.updateDiagramObject(actualObject); + // EJ2-63939 - Added below code to provide drag support for the bpmn text annotation while drag the swimlane + if (this.bpmnModule !== undefined && actualObject.shape.type === 'SwimLane' && actualObject.isTextNode) { + var swimlane = actualObject; + for (var i_5 = 0; i_5 < swimlane.shape.lanes.length; i_5++) { + // EJ2-63939 - Get the lane from swimlane + var lane = swimlane.shape.lanes[parseInt(i_5.toString(), 10)]; + for (var j_3 = 0; j_3 < lane.children.length; j_3++) { + var children = lane.children[parseInt(j_3.toString(), 10)]; + // EJ2-63939 - Check whether the swimlane children type is BPMN or not. + if (children.shape.type === 'Bpmn') { + this.bpmnModule.updateTextAnnotationProp(children, { offsetX: (children.offsetX), offsetY: (children.offsetY) }, this, false); + } + } + } + } + } + } + if (!isLayout && updateConnector) { + if (this.lineRoutingModule && this.diagramActions && (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].LineRouting) && actualObject.id !== 'helper') { + if (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) { + this.lineRoutingModule.renderVirtualRegion(this, true); + } + } + this.updateConnectorEdges(actualObject); + if (actualObject.id !== 'helper' && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) { + var objects = this.spatialSearch.findObjects(actualObject.wrapper.outerBounds); + for (var i_6 = 0; i_6 < objects.length; i_6++) { + var object = objects[parseInt(i_6.toString(), 10)]; + if (object instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + this.connectorPropertyChange(objects[parseInt(i_6.toString(), 10)], {}, { + sourceID: object.sourceID, + targetID: object.targetID, + sourcePortID: object.sourcePortID, + targetPortID: object.targetPortID, + sourcePoint: object.sourcePoint, + targetPoint: object.targetPoint + }); + } + } + } + } + } + if (actualObject.status !== 'New' && this.diagramActions) { + actualObject.status = 'Update'; + } + } + if (!propertyChange) { + var element = actualObject; + var args = { + element: element, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + oldValue: oldObject, newValue: node + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.propertyChange) { + args.element = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(element) }; + args.oldValue = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldObject) }; + args.newValue = { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(node) }; + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].propertyChange, args); + } + }; + Diagram.prototype.updatePorts = function (actualObject, flip) { + if (actualObject && actualObject.ports.length > 0) { + for (var _i = 0, _a = Object.keys(actualObject.ports); _i < _a.length; _i++) { + var key = _a[_i]; + var index = Number(key); + var actualPort = actualObject.ports[parseInt(index.toString(), 10)]; + var portWrapper = this.getWrapper(actualObject.wrapper, actualPort.id); + portWrapper = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updatePortEdges"])(portWrapper, flip, actualPort); + portWrapper.relativeMode = 'Point'; + portWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](portWrapper.width, portWrapper.height)); + portWrapper.arrange(portWrapper.desiredSize); + } + } + }; + Diagram.prototype.updateFlipOffset = function (element, diffX, diffY, flip) { + if (element.hasChildren()) { + for (var _i = 0, _a = element.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (flip === 'Horizontal' || flip === 'Both') { + child.flipOffset.x = child.flipOffset.x + diffX; + } + if (flip === 'Vertical' || flip === 'Both') { + child.flipOffset.y = child.flipOffset.y + diffY; + } + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_20__["Canvas"] || child instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_6__["Container"]) { + this.updateFlipOffset(child, diffX, diffY, flip); + } + } + } + }; + Diagram.prototype.updateUMLActivity = function (changedProp, oldObject, actualObject, diagram) { + var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined; + if (sizeChanged) { + var innerFinalNode = actualObject.wrapper.children[0].children[0]; + innerFinalNode.width = changedProp.width; + innerFinalNode.height = changedProp.height; + var outerFinalNode = actualObject.wrapper.children[0].children[1]; + outerFinalNode.width = changedProp.width / 1.5; + outerFinalNode.height = changedProp.height / 1.5; + } + }; + Diagram.prototype.updateConnectorProperties = function (connector) { + if (this.preventConnectorsUpdate) { + var index = this.selectionConnectorsList.indexOf(connector); + if (index === -1 && connector) { + this.selectionConnectorsList.push(connector); + } + } + else { + var conn = { + sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint, sourceID: connector.sourceID, + targetID: connector.targetID, sourcePortID: connector.sourcePortID, targetPortID: connector.targetPortID + }; + this.connectorPropertyChange(connector, {}, conn, undefined, true); + } + }; + /** + * updateConnectorEdges method \ + * + * @returns { void } Updates the connectorPropertyChange of the diagram container .\ + * @param {Node} actualObject - provide the actualObject value. + * + * @private + */ + Diagram.prototype.updateConnectorEdges = function (actualObject) { + if (actualObject.inEdges.length > 0) { + for (var j = 0; j < actualObject.inEdges.length; j++) { + this.updateConnectorProperties(this.nameTable[actualObject.inEdges[parseInt(j.toString(), 10)]]); + } + } + if (actualObject.outEdges.length > 0) { + for (var k = 0; k < actualObject.outEdges.length; k++) { + this.updateConnectorProperties(this.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]]); + } + } + if (actualObject.parentId && this.nameTable[actualObject.parentId]) { + this.updateConnectorEdges(this.nameTable[actualObject.parentId]); + } + }; + /* tslint:enable */ + Diagram.prototype.connectorProprtyChangeExtend = function (actualObject, oldProp, newProp, updateSelector) { + if (newProp.type !== undefined && newProp.type !== oldProp.type) { + if (actualObject.segments.length > 0 && newProp.segments === undefined) { + actualObject.segments = []; + } + } + if ((newProp.shape !== undefined) && actualObject.shape !== undefined && + actualObject.shape && actualObject.shape.type === 'Bpmn' && this.bpmnModule) { + this.bpmnModule.updateBPMNConnector(actualObject, oldProp, newProp, this); + } + if (actualObject.constraints !== undefined) { + this.updateThumbConstraints(this.selectedItems.connectors, this.selectedItems); + return updateSelector = true; + } + return updateSelector; + }; + /* tslint:disable */ + /** + * Updates the connectorPropertyChange of the diagram container \ + * + * @returns { void } Updates the connectorPropertyChange of the diagram container .\ + * @param {DiagramElement} actualObject - provide the actualObject value. + * @param {boolean} oldProp - provide the oldProp value. + * @param {boolean} newProp - provide the newProp value. + * @param {boolean} disableBridging - provide the disableBridging value. + * @param {boolean} propertyChange - provide the propertyChange value. + * + * @private + */ + Diagram.prototype.connectorPropertyChange = function (actualObject, oldProp, newProp, disableBridging, propertyChange) { + if (this.canEnableBlazorObject) { + var node = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(actualObject); + this.insertValue(node, false); + } + var existingBounds = actualObject.wrapper.bounds; + var updateSelector = false; + var points = []; + updateSelector = this.connectorProprtyChangeExtend(actualObject, oldProp, newProp, updateSelector); + var inPort; + var outPort; + var source; + var target; + if (newProp.visible !== undefined) { + this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible); + } + if (newProp.sourcePoint !== undefined || newProp.targetPoint !== undefined + || newProp.sourceID !== undefined || newProp.targetID !== undefined || newProp.targetPadding !== undefined || + newProp.sourcePortID !== undefined || newProp.targetPortID !== undefined || newProp.sourcePadding !== undefined || + newProp.type !== undefined || newProp.segments !== undefined || newProp.flip !== undefined) { + if ((newProp.sourceID !== undefined && newProp.sourceID !== oldProp.sourceID) || newProp.sourcePortID) { + var sourceNode = this.nameTable[actualObject.sourceID]; + outPort = this.findInOutConnectPorts(sourceNode, false); + if (!sourceNode || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canOutConnect"])(sourceNode) || (actualObject.sourcePortID !== '' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortOutConnect"])(outPort)))) { + actualObject.sourceWrapper = sourceNode ? this.getEndNodeWrapper(sourceNode, actualObject, true) : undefined; + if (actualObject.sourcePortID && newProp.sourcePortID === undefined) { + actualObject.sourcePortWrapper = sourceNode ? this.getWrapper(sourceNode.wrapper, actualObject.sourcePortID) : undefined; + } + this.removePortEdges(this.nameTable[oldProp.sourceID] || sourceNode, oldProp.sourcePortID || actualObject.sourcePortID, actualObject.id, false); + } + if (newProp.sourceID !== undefined && oldProp.sourceID !== undefined && oldProp.sourceID !== '') { + var oldSource = this.nameTable[oldProp.sourceID]; + if (oldSource !== undefined && oldSource.outEdges && oldSource.outEdges.indexOf(actualObject.id) !== -1) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["removeItem"])(oldSource.outEdges, actualObject.id); + } + } + this.updateEdges(actualObject); + } + if (newProp.targetID !== undefined && newProp.targetID !== oldProp.targetID) { + var targetNode = this.nameTable[newProp.targetID]; + inPort = this.findInOutConnectPorts(targetNode, true); + if (!targetNode || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canInConnect"])(targetNode) || (actualObject.targetPortID !== '' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortInConnect"])(inPort)))) { + actualObject.targetWrapper = targetNode ? this.getEndNodeWrapper(targetNode, actualObject, false) : undefined; + if (actualObject.targetPortID && newProp.targetPortID === undefined) { + actualObject.targetPortWrapper = targetNode ? this.getWrapper(targetNode.wrapper, actualObject.targetPortID) : undefined; + } + this.removePortEdges(this.nameTable[oldProp.targetID] || targetNode, oldProp.targetPortID || actualObject.targetPortID, actualObject.id, true); + } + if (oldProp !== undefined && oldProp.targetID !== undefined && oldProp.targetID !== '') { + var oldTarget = this.nameTable[oldProp.targetID]; + if (oldTarget !== undefined && oldTarget.inEdges && oldTarget.inEdges.indexOf(actualObject.id) !== -1) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["removeItem"])(oldTarget.inEdges, actualObject.id); + } + } + this.updateEdges(actualObject); + } + if (newProp.sourcePortID !== undefined && newProp.sourcePortID !== oldProp.sourcePortID) { + if (actualObject.sourceID && this.nameTable[actualObject.sourceID]) { + source = this.nameTable[actualObject.sourceID].wrapper; + } + var sourceNode = this.nameTable[actualObject.sourceID]; + if (!sourceNode || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canOutConnect"])(sourceNode) || (actualObject.sourcePortID !== '' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortOutConnect"])(outPort)))) { + actualObject.sourcePortWrapper = source ? this.getWrapper(source, newProp.sourcePortID) : undefined; + } + else if (actualObject.sourcePortID === '' && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canOutConnect"])(sourceNode)) { + actualObject.sourcePortWrapper = undefined; + } + } + if (newProp.targetPortID !== undefined && newProp.targetPortID !== oldProp.targetPortID) { + var targetNode = this.nameTable[actualObject.targetID]; + if (actualObject.targetID && this.nameTable[actualObject.targetID]) { + target = this.nameTable[actualObject.targetID].wrapper; + } + if (!targetNode || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canInConnect"])(targetNode) || (actualObject.targetPortID !== '' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canPortInConnect"])(inPort)))) { + actualObject.targetPortWrapper = target ? this.getWrapper(target, newProp.targetPortID) : undefined; + } + else if (actualObject.targetPortID === '' && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canInConnect"])(targetNode)) { + actualObject.targetPortWrapper = undefined; + } + } + if (newProp.flip !== undefined) { + actualObject.flip = newProp.flip; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["flipConnector"])(actualObject); + } + if (actualObject.type === 'Orthogonal' && this.lineRoutingModule && this.diagramActions && + (this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].LineRouting) && !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction)) { + this.lineRoutingModule.renderVirtualRegion(this, true); + // EJ2-65876 - Exception occurs on line routing injection module + if (actualObject.sourceID !== actualObject.targetID && actualObject.segments.length > 1) { + //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module + this.lineRoutingModule.refreshConnectorSegments(this, actualObject, false); + } + } + points = this.getPoints(actualObject); + } //Add prop change for zindex, alignments and margin + if (newProp.style !== undefined) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateStyle"])(newProp.style, actualObject.wrapper.children[0]); + } + if (points.length > 0 || newProp.sourceDecorator !== undefined || (newProp.targetDecorator !== undefined + && (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["canMeasureDecoratorPath"])(Object.keys(newProp.targetDecorator)))) || newProp.cornerRadius !== undefined) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateConnector"])(actualObject, points.length > 0 ? points : actualObject.intermediatePoints, this.diagramActions); + if (newProp.type !== undefined) { + updateSelector = true; + } + if (points.length > 0) { + actualObject.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](actualObject.wrapper.width, actualObject.wrapper.height)); + actualObject.wrapper.arrange(actualObject.wrapper.desiredSize); + // eslint-disable-next-line max-len + this.updateConnectorAnnotation(actualObject); + this.updateConnectorfixedUserHandles(actualObject); + this.updateObject(actualObject, oldProp, newProp); + } //work-around to update intersected connector bridging + } + if ((newProp.sourcePoint || newProp.targetPoint || newProp.segments) + && this.diagramActions === _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) { + updateSelector = true; + } + if (actualObject.shape.type === 'Bpmn' && actualObject.shape.sequence === 'Default' && actualObject.shape.flow === 'Sequence') { + this.commandHandler.updatePathElementOffset(actualObject); + } + // eslint-disable-next-line max-len + if (!disableBridging) { + this.updateBridging(); + } + this.updateAnnotations(newProp, actualObject); + this.updatefixedUserHandle(newProp, actualObject); + actualObject.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](actualObject.wrapper.width, actualObject.wrapper.height)); + actualObject.wrapper.arrange(actualObject.wrapper.desiredSize); + if (existingBounds.equals(existingBounds, actualObject.wrapper.bounds) === false) { + this.updateQuad(actualObject); + } + if (updateSelector === true && this.checkSelectedItem(actualObject) && (!(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].ToolAction) + || (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].UndoRedo))) { + this.updateSelector(); + } + if (!this.preventConnectorsUpdate) { + if (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canVitualize"])(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) { + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventZIndexOnDragging) { + this.updateDiagramObject(actualObject, true); + } + else { + this.updateDiagramObject(actualObject); + } + } + } + if (this.diagramActions && actualObject.status !== 'New') { + actualObject.status = 'Update'; + } + this.triggerPropertyChange(propertyChange, actualObject, oldProp, newProp); + }; + /* tslint:enable */ + /** + * getDirection methods \ + * + * @returns { void } getDirection methods .\ + * @param {NodeModel} node - provide the node value. + * @param {string} portId - provide the portId value. + * @param {string} item - provide the item value. + * @param {number} isInEdges - provide the isInEdges value. + * + * @private + */ + Diagram.prototype.removePortEdges = function (node, portId, item, isInEdges) { + if (node) { + for (var i = 0; i < node.ports.length; i++) { + var port = node.ports[parseInt(i.toString(), 10)]; + if (port.id === portId) { + var portEdge = (isInEdges) ? port.inEdges : port.outEdges; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["removeItem"])(portEdge, item); + } + } + } + }; + Diagram.prototype.getpropertyChangeArgs = function (element, oldProp, newProp, args) { + args.element = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(element) }; + args.oldValue = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldProp) }; + args.newValue = { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newProp) }; + return args; + }; + Diagram.prototype.triggerPropertyChange = function (propertyChange, actualObject, oldProp, newProp) { + if (!propertyChange) { + var element = actualObject; + var args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(element), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldProp), newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newProp) + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args = this.getpropertyChangeArgs(element, oldProp, newProp, args); + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].propertyChange, args); + } + }; + Diagram.prototype.findInOutConnectPorts = function (node, isInconnect) { + var port = {}; + if (node) { + port = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getInOutConnectPorts"])(node, isInconnect); + } + return port; + }; + Diagram.prototype.getPoints = function (actualObject, points) { + //let pts: PointModel[]; + var lineDistributionModule = this.lineDistributionModule ? true : false; + var pts = actualObject.getConnectorPoints(actualObject.type, points, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ? + this.layout.orientation : undefined, lineDistributionModule); + return pts; + }; + /** + * update the opacity and visibility for the node once the layout animation starts \ + * + * @returns { void } update the opacity and visibility for the node once the layout animation starts .\ + * @param {Container} element - provide the element value. + * @param {boolean} visible - provide the visible value. + * @param {number} opacity - provide the opacity value. + * + * @private + */ + Diagram.prototype.updateNodeProperty = function (element, visible, opacity) { + if (visible === undefined) { + this.updateElementVisibility(element, this.nameTable[element.id], visible); + } + else { + element.style.opacity = opacity; + for (var i = 0; i < element.children.length; i++) { + if (element.children[parseInt(i.toString(), 10)] instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_6__["Container"]) { + this.updateNodeProperty(element.children[parseInt(i.toString(), 10)], undefined, opacity); + } + element.children[parseInt(i.toString(), 10)].style.opacity = opacity; + } + } + }; + /** + * checkSelected Item for Connector \ + * + * @returns { void } checkSelected Item for Connector .\ + * @param {Connector | Node} actualObject - provide the element value. + * + * @private + */ + Diagram.prototype.checkSelectedItem = function (actualObject) { + var selectorModel = this.selectedItems; + var isSelected = false; + var selItems = []; + selItems = selItems.concat(selectorModel.nodes, selectorModel.connectors); + if (selItems.length > 0) { + if (actualObject.id === selItems[selItems.length - 1].id) { + isSelected = true; + } + } + return isSelected; + }; + /** + * Updates the visibility of the diagram container \ + * + * @returns { void } Updates the visibility of the diagram container .\ + * @param {DiagramElement} element - provide the element value. + * @param {boolean} visible - provide the target value. + * + * @private + */ + Diagram.prototype.updateDiagramContainerVisibility = function (element, visible) { + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_6__["Container"]) { + for (var i = 0; i < element.children.length; i++) { + this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible); + } + } + element.visible = visible; + }; + /** + * Updates the visibility of the node/connector \ + * + * @returns { void } Updates the visibility of the node/connector .\ + * @param {Container} element - provide the element value. + * @param {Connector | Node} obj - provide the obj value. + * @param {boolean} visible - provide the visible value. + * + * @private + */ + Diagram.prototype.updateElementVisibility = function (element, obj, visible) { + if (visible !== undefined) { + element.visible = visible; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + //content + if (!obj.children) { + element.children[0].visible = visible; + this.updateDiagramContainerVisibility(element.children[0], visible); + if (obj.shape.type === 'Bpmn' && this.bpmnModule) { + this.bpmnModule.updateElementVisibility(obj, visible, this); + } + } + else { + for (var _i = 0, _a = obj.children; _i < _a.length; _i++) { + var child = _a[_i]; + this.updateElementVisibility(this.nameTable["" + child].wrapper, this.nameTable["" + child], visible); + } + } + //ports + if (obj.ports) { + for (var _b = 0, _c = obj.ports; _b < _c.length; _b++) { + var port = _c[_b]; + if (port.visibility & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortVisibility"].Visible) { + var wrapper = this.getWrapper(element, port.id); + wrapper.visible = visible; + } + } + } + if (obj.annotations) { + for (var _d = 0, _e = obj.annotations; _d < _e.length; _d++) { + var annotation = _e[_d]; + var wrapper = this.getWrapper(element, annotation.id); + wrapper.visible = visible; + } + } + } + else { + //path and decorators + for (var i = 0; i < 3; i++) { + element.children[parseInt(i.toString(), 10)].visible = visible; + } + } + if (obj.annotations) { + //annotations + for (var _f = 0, _g = obj.annotations; _f < _g.length; _f++) { + var annotation = _g[_f]; + var wrapper = this.getWrapper(element, annotation.id); + wrapper.visible = visible; + } + } + if (obj.expandIcon || obj.collapseIcon) { + var wrapper = this.getWrapper(element, 'icon_content'); + if (wrapper) { + for (var i = 0; i < wrapper.children.length; i++) { + wrapper.children[parseInt(i.toString(), 10)].visible = visible; + } + wrapper.visible = visible; + } + if (obj && obj.visible && obj.outEdges) { + this.updateIconVisibility(obj, (obj.outEdges.length === 0 ? false : true)); + } + } + if (visible === false) { + this.unSelect(this.nameTable[element.id]); + } + if ((obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && !this.preventNodesUpdate) || (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] && !this.preventConnectorsUpdate)) { + //Avoid calling updateDiagramObject method during rendering + if (this.diagramActions) { + this.updateDiagramObject(this.nameTable[element.id], undefined, true); + } + } + } + }; + Diagram.prototype.updateAnnotations = function (newProp, actualObject) { + if (newProp.annotations !== undefined) { + for (var _i = 0, _a = Object.keys(newProp.annotations); _i < _a.length; _i++) { + var key = _a[_i]; + var index = Number(key); + var changedObject = newProp.annotations["" + key]; + var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)]; + this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject); + } + } + }; + Diagram.prototype.updatefixedUserHandle = function (newProp, actualObject) { + if (newProp.fixedUserHandles !== undefined) { + var index = void 0; + var changedObject = void 0; + var actualAnnotation = void 0; + for (var _i = 0, _a = Object.keys(newProp.fixedUserHandles); _i < _a.length; _i++) { + var key = _a[_i]; + index = Number(key); + changedObject = newProp.fixedUserHandles["" + key]; + actualAnnotation = actualObject.fixedUserHandles[parseInt(index.toString(), 10)]; + this.updateConnectorfixedUserHandle(changedObject, actualAnnotation, actualObject.wrapper, actualObject); + } + } + }; + /** + * updateConnectorfixedUserHandle method \ + * + * @returns { void } updateConnectorfixedUserHandle method .\ + * @param {ConnectorFixedUserHandleModel} changedObject - provide the changedObject value. + * @param {ConnectorFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value. + * @param {Container} nodes - provide the nodes value. + * @param {Object} actualObject - provide the actualObject value. + * @param {boolean} canUpdateSize - provide the canUpdateSize value. + * + * @private + */ + Diagram.prototype.updateConnectorfixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject, canUpdateSize) { + var isMeasure = false; + var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id); + if (fixedUserHandleWrapper !== undefined) { + if (changedObject.width !== undefined) { + fixedUserHandleWrapper.width = changedObject.width; + isMeasure = true; + } + if (changedObject.height !== undefined) { + fixedUserHandleWrapper.height = changedObject.height; + isMeasure = true; + } + if (actualfixedUserHandle instanceof _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_44__["ConnectorFixedUserHandle"] && + (changedObject.offset !== undefined)) { + actualObject.updateAnnotation(actualfixedUserHandle, actualObject.intermediatePoints, actualObject.wrapper.bounds, fixedUserHandleWrapper); + } + if ((actualfixedUserHandle instanceof _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_44__["ConnectorFixedUserHandle"]) && changedObject.displacement) { + if (changedObject.displacement.x !== undefined || + changedObject.displacement.y !== undefined) { + isMeasure = true; + } + } + if (changedObject.fill !== undefined) { + fixedUserHandleWrapper.style.fill = changedObject.fill; + } + if (changedObject.handleStrokeColor !== undefined) { + fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor; + } + if (changedObject.handleStrokeWidth !== undefined) { + fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth; + } + if (changedObject.visibility !== undefined) { + fixedUserHandleWrapper.visible = changedObject.visibility; + } + if (changedObject.cornerRadius !== undefined) { + fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius; + } + this.updatefixedUserHandleContent(changedObject, isMeasure, fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes); + if (isMeasure === true) { + fixedUserHandleWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](fixedUserHandleWrapper.width, fixedUserHandleWrapper.height)); + fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize); + } + } + }; + /** + * updateAnnotation method \ + * + * @returns { void } updateAnnotation method .\ + * @param {AnnotationModel} changedObject - provide the changedObject value. + * @param {ShapeAnnotationModel} actualAnnotation - provide the actualAnnotation value. + * @param {Container} nodes - provide the nodes value. + * @param {Object} actualObject - provide the actualObject value. + * @param {boolean} canUpdateSize - provide the canUpdateSize value. + * + * @private + */ + Diagram.prototype.updateAnnotation = function (changedObject, actualAnnotation, nodes, actualObject, canUpdateSize) { + var isMeasure = false; + // eslint-disable-next-line max-len + var annotationWrapper = this.getWrapper(nodes, actualAnnotation.id); + if (annotationWrapper !== undefined) { + if (changedObject.width !== undefined && changedObject.height !== undefined) { + annotationWrapper.width = changedObject.width; + annotationWrapper.height = changedObject.height; + isMeasure = true; + } + if (changedObject.rotateAngle !== undefined) { + annotationWrapper.rotateAngle = changedObject.rotateAngle; + } + if (canUpdateSize && !(annotationWrapper instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"])) { + annotationWrapper.refreshTextElement(); + } + if (actualAnnotation instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["PathAnnotation"] && changedObject.segmentAngle !== undefined) { + annotationWrapper.rotateAngle = actualAnnotation.rotateAngle; + } + if (actualAnnotation instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["ShapeAnnotation"] && + changedObject.offset !== undefined) { + var offset = changedObject.offset; + isMeasure = true; + var offsetX = offset.x !== undefined ? offset.x : + actualAnnotation.offset.x; + var offsetY = offset.y !== undefined ? offset.y : + actualAnnotation.offset.y; + annotationWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction'); + annotationWrapper.relativeMode = 'Point'; + } + else if (actualAnnotation instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["PathAnnotation"] && + (changedObject.offset !== undefined || + changedObject.segmentAngle !== undefined)) { + actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper); + } + if ((actualAnnotation instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_19__["PathAnnotation"]) && changedObject.displacement) { + if (changedObject.displacement.x !== undefined || + changedObject.displacement.y !== undefined) { + isMeasure = true; + actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper); + } + } + if (changedObject.margin !== undefined) { + isMeasure = true; + if (changedObject.margin.bottom !== undefined) { + annotationWrapper.margin.bottom = changedObject.margin.bottom; + } + if (changedObject.margin.top !== undefined) { + annotationWrapper.margin.top = changedObject.margin.top; + } + if (changedObject.margin.left !== undefined) { + annotationWrapper.margin.left = changedObject.margin.left; + } + if (changedObject.margin.right !== undefined) { + annotationWrapper.margin.right = changedObject.margin.right; + } + } + if (isMeasure || canUpdateSize) { + annotationWrapper.width = (actualAnnotation.width || actualObject.width); + if (actualAnnotation.template) { + annotationWrapper.width = (annotationWrapper.width || annotationWrapper.actualSize.width); + annotationWrapper.height = (actualAnnotation.height || actualObject.height || + annotationWrapper.actualSize.height); + } + } + if (changedObject.horizontalAlignment !== undefined) { + annotationWrapper.horizontalAlignment = changedObject.horizontalAlignment; + isMeasure = true; + } + if (changedObject.verticalAlignment !== undefined) { + annotationWrapper.verticalAlignment = changedObject.verticalAlignment; + isMeasure = true; + } + if (changedObject.visibility !== undefined) { + annotationWrapper.visible = (nodes.visible && changedObject.visibility) ? true : false; + } + if (changedObject.constraints !== undefined) { + var updateSelector = false; + if ((annotationWrapper.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["AnnotationConstraints"].Select) && + (!(changedObject.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["AnnotationConstraints"].Select)) && + Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_27__["isSelected"])(this, actualObject, false, annotationWrapper)) { + //updateSelector = true; + } + annotationWrapper.constraints = changedObject.constraints; + if (updateSelector) { + this.clearSelection(); + } + } + if (changedObject.style !== undefined) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateStyle"])(changedObject.style, annotationWrapper); + } + if (changedObject.hyperlink !== undefined) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateHyperlink"])(changedObject.hyperlink, annotationWrapper, actualAnnotation); + } + this.updateAnnotationContent(changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes); + if (isMeasure === true) { + annotationWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](annotationWrapper.width, annotationWrapper.height)); + annotationWrapper.arrange(annotationWrapper.desiredSize); + } + if (!(annotationWrapper instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"])) { + annotationWrapper.refreshTextElement(); + } + // this.refresh(); this.refreshDiagramLayer(); + } + }; + Diagram.prototype.updatefixedUserHandleContent = function (changedObject, isMeasure, fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes) { + if (changedObject !== undefined) { + this.updateConnectorfixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes); + } + }; + Diagram.prototype.updateConnectorfixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) { + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(fixedUserHandleWrapper.id + '_groupElement', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(fixedUserHandleWrapper.id + '_html_element', elementId); + } + if (actualObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + var canvas = actualObject.wrapper; + var segment = canvas.children[0]; + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"](segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height); + fixedUserHandleWrapper = + actualObject.getfixedUserHandle(actualObject.fixedUserHandles[actualObject.fixedUserHandles.length - 1], actualObject.intermediatePoints, bounds); + } + for (var i = 0; i < nodes.children.length; i++) { + if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) { + nodes.children.splice(i, 1, fixedUserHandleWrapper); + } + } + }; + Diagram.prototype.updateAnnotationContent = function (changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes) { + if (changedObject.content !== undefined) { + if (annotationWrapper) { + isMeasure = true; + if (actualObject.shape.type === 'UmlActivity' && + ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && actualObject.shape.umlActivityShape === 'StructuredNode') || + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && actualObject.shape.shape === 'StructuredNode'))) { + annotationWrapper.content = '<<' + changedObject.content + '>>'; + } + else { + annotationWrapper.content = changedObject.content; + } + } + if (annotationWrapper instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_37__["DiagramHtmlElement"]) { + this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes); + } + } + if (changedObject.template !== undefined) { + annotationWrapper.content = changedObject.template; + this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes); + } + }; + Diagram.prototype.updateAnnotationWrapper = function (annotationWrapper, actualObject, actualAnnotation, nodes) { + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(annotationWrapper.id + '_groupElement', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(annotationWrapper.id + '_html_element', elementId); + } + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + annotationWrapper = + actualObject.initAnnotationWrapper(actualAnnotation, this.element.id); + } + else if (actualObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + var canvas = actualObject.wrapper; + var segment = canvas.children[0]; + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"](segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height); + annotationWrapper = + actualObject.getAnnotationElement(actualObject.annotations[actualObject.annotations.length - 1], actualObject.intermediatePoints, bounds, this.getDescription, this.element.id); + } + for (var i = 0; i < nodes.children.length; i++) { + if (annotationWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) { + nodes.children.splice(i, 1, annotationWrapper); + } + } + }; + /** + * updateNodefixedUserHandle method \ + * + * @returns { void } updateNodefixedUserHandle method .\ + * @param {NodeFixedUserHandleModel} changedObject - provide the changedObject value. + * @param {NodeFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value. + * @param {Container} nodes - provide the changedObject value. + * @param {Object} actualObject - provide the changedObject value. + * + * @private + */ + Diagram.prototype.updateNodefixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject) { + //let fixedUserHandleWrapper: Canvas; + var isMeasure = false; + var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id); + if (fixedUserHandleWrapper !== undefined) { + if (changedObject.width !== undefined) { + fixedUserHandleWrapper.actualSize.width = changedObject.width; + isMeasure = true; + } + if (changedObject.height !== undefined) { + fixedUserHandleWrapper.height = changedObject.height; + isMeasure = true; + } + if (actualfixedUserHandle instanceof _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_44__["NodeFixedUserHandle"] && + changedObject.offset !== undefined) { + var offset = changedObject.offset; + isMeasure = true; + var offsetX = offset.x !== undefined ? offset.x : + actualfixedUserHandle.offset.x; + var offsetY = offset.y !== undefined ? offset.y : + actualfixedUserHandle.offset.y; + fixedUserHandleWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction'); + fixedUserHandleWrapper.relativeMode = 'Point'; + } + if (changedObject.margin !== undefined) { + isMeasure = true; + if (changedObject.margin.bottom !== undefined) { + fixedUserHandleWrapper.margin.bottom = changedObject.margin.bottom; + } + if (changedObject.margin.top !== undefined) { + fixedUserHandleWrapper.margin.top = changedObject.margin.top; + } + if (changedObject.margin.left !== undefined) { + fixedUserHandleWrapper.margin.left = changedObject.margin.left; + } + if (changedObject.margin.right !== undefined) { + fixedUserHandleWrapper.margin.right = changedObject.margin.right; + } + } + if (changedObject.visibility !== undefined) { + fixedUserHandleWrapper.visible = changedObject.visibility; + } + if (changedObject.fill !== undefined) { + fixedUserHandleWrapper.style.fill = changedObject.fill; + } + if (changedObject.handleStrokeColor !== undefined) { + fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor; + } + if (changedObject.handleStrokeWidth !== undefined) { + fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth; + } + if (changedObject.cornerRadius !== undefined) { + fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius; + } + this.updatefixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes); + if (isMeasure === true) { + fixedUserHandleWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](fixedUserHandleWrapper.width, fixedUserHandleWrapper.height)); + fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize); + } + } + }; + Diagram.prototype.updatefixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) { + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(fixedUserHandleWrapper.id + '_groupElement', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["removeElement"])(fixedUserHandleWrapper.id + '_html_element', elementId); + } + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + fixedUserHandleWrapper = actualObject.initfixedUserHandles(actualAnnotation); + } + for (var i = 0; i < nodes.children.length; i++) { + if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) { + nodes.children.splice(i, 1, fixedUserHandleWrapper); + } + } + }; + /** + * updatePort method \ + * + * @returns { void } updatePort method .\ + * @param {PointPortModel} changedObject - provide the changedObject value. + * @param {PointPortModel} actualPort - provide the changedObject value. + * @param {Container} nodes - provide the changedObject value. + * + * @private + */ + Diagram.prototype.updatePort = function (changedObject, actualPort, nodes) { + var isMeasure = false; + var portWrapper = this.getWrapper(nodes, actualPort.id); + if (portWrapper !== undefined) { + if (changedObject.offset !== undefined) { + isMeasure = true; + var offsetX = changedObject.offset.x !== undefined ? changedObject.offset.x : + actualPort.offset.x; + var offsetY = changedObject.offset.y !== undefined ? changedObject.offset.y : + actualPort.offset.y; + portWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction'); + portWrapper.relativeMode = 'Point'; + } + if (changedObject.width !== undefined) { + isMeasure = true; + portWrapper.width = changedObject.width; + } + if (changedObject.height !== undefined) { + isMeasure = true; + portWrapper.height = changedObject.height; + } + if (changedObject.visibility !== undefined) { + portWrapper.visible = (nodes.visible && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["checkPortRestriction"])(actualPort, _enum_enum__WEBPACK_IMPORTED_MODULE_14__["PortVisibility"].Visible)) ? true : false; + } + if (changedObject.margin !== undefined) { + isMeasure = true; + if (changedObject.margin.bottom !== undefined) { + portWrapper.margin.bottom = changedObject.margin.bottom; + } + if (changedObject.margin.top !== undefined) { + portWrapper.margin.top = changedObject.margin.top; + } + if (changedObject.margin.right !== undefined) { + portWrapper.margin.right = changedObject.margin.right; + } + if (changedObject.margin.left !== undefined) { + portWrapper.margin.left = changedObject.margin.left; + } + } + if (changedObject.horizontalAlignment !== undefined) { + isMeasure = true; + portWrapper.horizontalAlignment = changedObject.horizontalAlignment; + } + if (changedObject.verticalAlignment !== undefined) { + isMeasure = true; + portWrapper.verticalAlignment = changedObject.verticalAlignment; + } + if (changedObject.style !== undefined) { + if (changedObject.style.fill !== undefined) { + portWrapper.style.fill = changedObject.style.fill; + } + if (changedObject.style.opacity !== undefined) { + portWrapper.style.opacity = changedObject.style.opacity; + } + if (changedObject.style.strokeColor !== undefined) { + portWrapper.style.strokeColor = changedObject.style.strokeColor; + } + if (changedObject.style.strokeWidth !== undefined) { + portWrapper.style.strokeWidth = changedObject.style.strokeWidth; + } + if (changedObject.style.strokeDashArray !== undefined) { + portWrapper.style.strokeDashArray = changedObject.style.strokeDashArray; + } + } + if (changedObject.shape !== undefined) { + if (portWrapper) { + var pathdata = Object(_objects_dictionary_common__WEBPACK_IMPORTED_MODULE_18__["getPortShape"])(changedObject.shape); + portWrapper.data = pathdata; + portWrapper.canMeasurePath = true; + } + } + if (changedObject.pathData !== undefined) { + portWrapper.data = String(changedObject.pathData); + isMeasure = true; + } + if (isMeasure === true) { + portWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](portWrapper.width, portWrapper.height)); + portWrapper.arrange(portWrapper.desiredSize); + } + //this.refresh(); this.refreshDiagramLayer(); + } + }; + /** + * updateIcon method \ + * + * @returns { void } updateIcon method .\ + * @param {Node} actualObject - provide the obj value. + * + * @private + */ + Diagram.prototype.updateIcon = function (actualObject) { + var iconContainer = this.getWrapper(actualObject.wrapper, 'icon_content'); + var diagramId = (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) ? this.element.id : undefined; + if (iconContainer) { + if (this.mode === 'SVG') { + var icon = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(actualObject.wrapper.id + '_icon_content', diagramId); + if (icon) { + var iconRect = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(icon.id + '_rect', diagramId); + var iconShape = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(icon.id + '_shape', diagramId); + var nativeContent = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_29__["getDiagramElement"])(iconShape.id + '_native_element', diagramId); + if (nativeContent) { + nativeContent.parentNode.removeChild(nativeContent); + } + iconShape.parentNode.removeChild(iconShape); + iconRect.parentNode.removeChild(iconRect); + icon.parentNode.removeChild(icon); + } + } + var index = actualObject.wrapper.children.indexOf(iconContainer); + actualObject.wrapper.children.splice(index, 1); + } + var portContainer = this.getPortContainer(actualObject); + actualObject.initIcons(this.getDescription, this.layout, portContainer, this.element.id); + }; + Diagram.prototype.getPortContainer = function (actualObject) { + if (actualObject.children) { + for (var i = 0; i < actualObject.wrapper.children.length; i++) { + if (actualObject.wrapper.children[parseInt(i.toString(), 10)].id === actualObject.id + 'group_container') { + return actualObject.wrapper.children[parseInt(i.toString(), 10)]; + } + } + } + return actualObject.wrapper; + }; + Diagram.prototype.updateTooltip = function (actualObject, node) { + if (node.tooltip.content !== undefined) { + actualObject.tooltip.content = node.tooltip.content; + } + if (node.tooltip.position !== undefined) { + actualObject.tooltip.position = node.tooltip.position; + } + if (node.tooltip.height !== undefined) { + actualObject.tooltip.height = node.tooltip.height; + } + if (node.tooltip.width !== undefined) { + actualObject.tooltip.width = node.tooltip.width; + } + if (node.tooltip.showTipPointer !== undefined) { + actualObject.tooltip.showTipPointer = node.tooltip.showTipPointer; + } + if (node.tooltip.relativeMode !== undefined) { + actualObject.tooltip.relativeMode = node.tooltip.relativeMode; + } + }; + /** + * updateQuad method \ + * + * @returns { void } updateQuad method .\ + * @param {IElement} obj - provide the obj value. + * + * @private + */ + Diagram.prototype.updateQuad = function (obj) { + var modified = this.spatialSearch.updateQuad(obj.wrapper); + if (modified && !this.preventDiagramUpdate) { + this.updatePage(); + } + }; + /** + * removeFromAQuad method \ + * + * @returns { void } removeFromAQuad method .\ + * @param {IElement} obj - provide the node value. + * + * @private + */ + Diagram.prototype.removeFromAQuad = function (obj) { + if (obj.children) { + var child = void 0; + var children = obj.children; + for (var i = 0; i < children.length; i++) { + child = this.nameTable[children[parseInt(i.toString(), 10)]]; + if (child) { + this.removeFromAQuad(child); + } + } + } + this.spatialSearch.removeFromAQuad(obj.wrapper); + var modified = this.spatialSearch.updateBounds(obj.wrapper); + if (modified && !this.preventDiagramUpdate) { + this.updatePage(); + } + }; + /** + * updateGroupSize method \ + * + * @returns { void } updateGroupSize method .\ + * @param {NodeModel | ConnectorModel} node - provide the node value. + * + * @private + */ + Diagram.prototype.updateGroupSize = function (node) { + var tempNode; + if (node.parentId) { + tempNode = this.nameTable[node.parentId]; + if (tempNode) { + if (tempNode.parentId) { + this.updateGroupSize(tempNode); + } + else { + tempNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + tempNode.wrapper.arrange(tempNode.wrapper.desiredSize); + this.updateGroupOffset(tempNode); + this.updateDiagramObject(tempNode); + } + } + } + }; + Diagram.prototype.updatePage = function () { + if ((this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].Render) && + !(this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse)) { + this.scroller.updateScrollOffsets(); + this.scroller.setSize(); + //updating overview + for (var _i = 0, _a = this.views; _i < _a.length; _i++) { + var temp = _a[_i]; + var view = this.views["" + temp]; + if (!(view instanceof Diagram)) { + view.updateView(view); + } + } + } + if (this.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].DragUsingMouse) { + this.renderPageBreaks(); + //EJ2-826378 - Scroller not updated properly when we drag node outside viewport. + // While dragging, we need to update the scroller. + this.scroller.updateScrollOffsets(); + this.scroller.setSize(); + } + }; + /** + * protectPropertyChange method \ + * + * @returns { void } protectPropertyChange method .\ + * @param {boolean} enable - provide the enable value. + * + * @private + */ + Diagram.prototype.protectPropertyChange = function (enable) { + this.isProtectedOnChange = enable; + }; + /** + * getProtectPropertyChangeValue method \ + * + * @returns { boolean } getProtectPropertyChangeValue method .\ + * + * @private + */ + Diagram.prototype.getProtectPropertyChangeValue = function () { + return this.isProtectedOnChange; + }; + /** + * enableServerDataBinding method \ + * + * @returns { void } enableServerDataBinding method .\ + * @param {boolean} enable - provide the node value. + * + * @private + */ + Diagram.prototype.enableServerDataBinding = function (enable) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.allowServerDataBinding = enable; + if (enable) { + this.bulkChanges = {}; + } + } + }; + /** + * updateShadow method \ + * + * @returns { void } updateShadow method .\ + * @param {ShadowModel} nodeShadow - provide the node value. + * @param {ShadowModel} changedShadow - provide the Node value. + * + * @private + */ + Diagram.prototype.updateShadow = function (nodeShadow, changedShadow) { + if (changedShadow.angle !== undefined) { + nodeShadow.angle = changedShadow.angle; + } + if (changedShadow.color !== undefined) { + nodeShadow.color = changedShadow.color; + } + if (changedShadow.distance !== undefined) { + nodeShadow.distance = changedShadow.distance; + } + if (changedShadow.opacity !== undefined) { + nodeShadow.opacity = changedShadow.opacity; + } + }; + /** + * updateMargin method \ + * + * @returns { void } updateMargin method .\ + * @param {Node} node - provide the node value. + * @param {Node} changes - provide the Node value. + * + * @private + */ + Diagram.prototype.updateMargin = function (node, changes) { + if (changes.margin.top !== undefined) { + node.margin.top = changes.margin.top; + } + if (changes.margin.bottom !== undefined) { + node.margin.bottom = changes.margin.bottom; + } + if (changes.margin.left !== undefined) { + node.margin.left = changes.margin.left; + } + if (changes.margin.right !== undefined) { + node.margin.right = changes.margin.right; + } + }; + Diagram.prototype.removePreviewChildren = function (preview) { + if (preview.children && preview.children.length && + preview.shape && preview.shape.type === 'SwimLane') { + for (var z = 0; z < preview.children.length; z++) { + var previewChildId = preview.children[parseInt(z.toString(), 10)]; + var previewIndex_1 = this.nodes.indexOf(this.nameTable["" + previewChildId]); + if (previewIndex_1 >= 0) { + this.nodes.splice(previewIndex_1, 1); + } + delete this.nameTable["" + previewChildId]; + } + var previewIndex = this.nodes.indexOf(this.nameTable[this.currentSymbol.id]); + if (previewIndex >= 0) { + this.nodes.splice(previewIndex, 1); + } + } + }; + Diagram.prototype.selectDragedNode = function (newObj, args, selectedSymbol) { + this.currentSymbol = newObj; + if (this.mode !== 'SVG') { + this.refreshDiagramLayer(); + } + this.commandHandler.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this); + this.commandHandler.select(newObj); + this.commandHandler.updateBlazorSelector(); + this.eventHandler.mouseDown(args.event); + this.eventHandler.mouseMove(args.event, args); + this.preventDiagramUpdate = false; + this.updatePage(); + selectedSymbol.style.opacity = '0'; + }; + //property changes - end region + /* tslint:disable */ + Diagram.prototype.initDroppables = function () { + var _this = this; + // initiates droppable event + var childTable = {}; + var entryTable = {}; + var header; + var lane; + var selectedSymbols = 'selectedSymbols'; + this.droppable = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Droppable"](this.element); + // this.droppable.accept = '.e-dragclone'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.droppable.over = function (args) { + //EJ2-59341- SelectionChange OldValue argument is null + if (_this.previousSelectedObjects.length === 0 && !_this.currentSymbol) { + _this.previousSelectedObjects = _this.commandHandler.getSelectedObject(); + } + _this.commandHandler.PreventConnectorSplit = true; + if (!_this.currentSymbol) { + var dragDataHelper = null; + if (!args.dragData && args.name === 'drag') { + var helper = document.getElementsByClassName('e-dragclone')[0]; + if (helper) { + dragDataHelper = helper; + } + } + if (args.dragData || dragDataHelper) { + var newObj = void 0; + var isHorizontal = void 0; + document.getElementById(_this.element.id + 'content').focus(); + var position = _this.eventHandler.getMousePosition(args.event); + var clonedObject = void 0; + var selectedSymbol = dragDataHelper || args.dragData.helper; + var paletteId = selectedSymbol.getAttribute('paletteId'); + var nodeDragSize = void 0; + var nodePreviewSize = void 0; + var paletteDragSize = void 0; + var preview = void 0; + if (!paletteId && args.dragData) { + var arg = { + source: null, element: newObj, cancel: false, + diagram: _this, + dragData: args.dragData.draggedElement.ej2_instances[0].dragData, + dragItem: newObj + }; + _this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].dragEnter, arg); + var newNode = void 0; + var newConnector = void 0; + // EJ2-61664 - Check whether dragItem is returned from dragEnter event or not. + // If it does not returned means then we do not change the treeview object as node + if (arg.dragItem) { + if (arg.dragItem.sourcePoint && arg.dragItem.targetPoint) { + newConnector = new _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"](_this, 'connectors', arg.dragItem, true); + } + else { + newNode = new _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"](_this, 'nodes', arg.dragItem, true); + } + newObj = newNode ? newNode : newConnector; + _this.initObject(newObj, undefined, undefined, true); + _this['enterObject'] = newObj; + _this['enterTable'] = entryTable; + if (newObj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + newNode.offsetX = position.x + 5 + (newNode.width) * newNode.pivot.x; + newNode.offsetY = position.y + (newNode.height) * newNode.pivot.y; + } + else if (newObj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + var newObjBounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"].toBounds([newObj.sourcePoint, newObj.targetPoint]); + var diffx = position.x - newObjBounds.left; + var diffy = position.y - newObjBounds.top; + newObj.sourcePoint.x += diffx; + newObj.sourcePoint.y += diffy; + newObj.targetPoint.x += diffx; + newObj.targetPoint.y += diffy; + } + _this.preventDiagramUpdate = true; + _this.currentSymbol = newObj; + if (_this.mode !== 'SVG') { + _this.refreshDiagramLayer(); + } + _this.selectDragedNode(newObj, args, selectedSymbol); + delete _this['enterObject']; + delete _this['enterTable']; + _this.droppable["" + selectedSymbols] = selectedSymbol; + _this.allowServerDataBinding = true; + } + } + if (paletteId) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var sourceElement = document.getElementById(paletteId).ej2_instances[0]; + var source = 'sourceElement'; + _this.droppable["" + source] = sourceElement; + var childtable = 'childTable'; + if (sourceElement) { + var obj = sourceElement["" + selectedSymbols]; + _this.allowServerDataBinding = false; + clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(sourceElement["" + selectedSymbols]); + childTable = sourceElement["" + childtable]; + var wrapper = obj.wrapper.children[0].children[0]; + preview = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getPreviewSize"])(sourceElement, clonedObject, wrapper); + if (sourceElement["" + selectedSymbols] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + if (obj.shape.shape === 'TextAnnotation') { + // eslint-disable-next-line max-len + clonedObject.offsetX = position.x + 11 + (preview.width) * clonedObject.pivot.x; + // eslint-disable-next-line max-len + clonedObject.offsetY = position.y + 11 + (preview.height) * clonedObject.pivot.y; + } + else { + // eslint-disable-next-line max-len + clonedObject.offsetX = position.x + 5 + (preview.width) * clonedObject.pivot.x; + // eslint-disable-next-line max-len + clonedObject.offsetY = position.y + (preview.height) * clonedObject.pivot.y; + } + var newNode = new _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"](_this, 'nodes', clonedObject, true); + if (newNode.shape.type === 'Bpmn' && newNode.shape.activity.subProcess.processes + && newNode.shape.activity.subProcess.processes.length) { + newNode.shape.activity.subProcess.processes = []; + } + nodeDragSize = newNode.dragSize; + nodePreviewSize = newNode.previewSize; + paletteDragSize = sourceElement['symbolDragSize']; + var palettePreview = sourceElement['symbolPreview']; + // eslint-disable-next-line max-len + newNode.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || palettePreview.width || newNode.width; + // eslint-disable-next-line max-len + newNode.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || palettePreview.height || newNode.height; + if (newNode.shape.type === 'SwimLane') { + _this.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory; + if (newNode.shape.isLane) { + newNode.children = []; + header = { + id: 'header' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])() + }; + if (newNode.shape.orientation === 'Horizontal') { + header.width = newNode.shape.lanes[0].header.width; + header.height = newNode.shape.lanes[0].height; + } + else { + header.width = newNode.shape.lanes[0].width; + header.height = newNode.shape.lanes[0].header.height; + } + header.style = newNode.shape.lanes[0].header.style; + header.offsetX = position.x + 5 + header.width / 2; + header.offsetY = position.y + header.height / 2; + _this.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventCollectionChangeOnDragOver; + header = _this.add(header); + lane = { + id: 'body' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])() + }; + if (newNode.shape.orientation === 'Horizontal') { + lane.width = newNode.shape.lanes[0].width - header.width; + lane.height = newNode.shape.lanes[0].height; + // eslint-disable-next-line max-len + lane.offsetX = position.x + 5 + (newNode.shape.lanes[0].header.width + (lane.width / 2)); + lane.offsetY = position.y + lane.height / 2; + } + else { + lane.width = newNode.shape.lanes[0].width; + lane.height = newNode.shape.lanes[0].height - header.height; + lane.offsetX = position.x + 5 + lane.width / 2; + // eslint-disable-next-line max-len + lane.offsetY = position.y + (newNode.shape.lanes[0].header.height + (lane.height / 2)); + } + lane.style = newNode.shape.lanes[0].style; + lane = _this.add(lane); + var group = { + id: 'group' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(), + children: [header.id, lane.id] + }; + group.shape = newNode.shape; + group.width = newNode.shape.lanes[0].width; + group.height = newNode.shape.lanes[0].height; + group.previewSize = newNode.previewSize; + group.dragSize = newNode.dragSize; + group.addInfo = newNode.addInfo; + newNode = _this.add(group); + _this.diagramActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventCollectionChangeOnDragOver; + } + _this.diagramActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramAction"].PreventHistory; + } + if (newNode.shape.isPhase) { + isHorizontal = (newNode.shape.orientation === 'Horizontal') ? true : false; + if (isHorizontal) { + newNode.offsetX = position.x + 5 + (newNode.width || wrapper.actualSize.width) / 2; + newNode.offsetY = position.y; + newNode.shape.data = + 'M' + 20 + ',' + (newNode.height / 2) + ' L' + (newNode.width - 20) + ',' + + (newNode.height / 2) + 'z'; + newNode.height = 1; + } + else { + newNode.offsetX = position.x + 5; + newNode.offsetY = position.y + (newNode.height || wrapper.actualSize.height) / 2; + newNode.shape.data = + 'M' + (newNode.width / 2) + ',' + 20 + ' L' + (newNode.width / 2) + + ',' + (newNode.height - 20) + 'z'; + newNode.width = 1; + } + } + newObj = newNode; + if (clonedObject.children) { + var parentNode = clonedObject; + var tempTable = {}; + entryTable = _this.getChildren(parentNode, tempTable, childTable); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["arrangeChild"])(parentNode, -parentNode.offsetX, -parentNode.offsetY, entryTable, true, _this); + } + } + else if (sourceElement["" + selectedSymbols] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + newObj = new _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"](_this, 'connectors', clonedObject, true); + var bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_17__["Rect"].toBounds([newObj.sourcePoint, newObj.targetPoint]); + var tx = position.x - bounds.left; + var ty = position.y - bounds.top; + newObj.sourcePoint.x += tx; + newObj.sourcePoint.y += ty; + newObj.targetPoint.x += tx; + newObj.targetPoint.y += ty; + } + if (!newObj.shape.isLane) { + newObj.id += Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + } + var arg = { + source: sourceElement, element: newObj, cancel: false, + diagram: _this, dragData: null, dragItem: newObj + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + arg = _this.getBlazorDragEventArgs(arg); + } + _this['enterObject'] = newObj; + _this['enterTable'] = entryTable; + _this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].dragEnter, arg); + if ((newObj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) && newObj.shape.type === 'SwimLane' && newObj.shape.isLane) { + var swimLaneObj = arg.element; + var laneObj = swimLaneObj.shape.lanes[0]; + //let child1: NodeModel; let child2: NodeModel; + isHorizontal = (swimLaneObj.shape.orientation === 'Horizontal') ? true : false; + var child1 = _this.nameTable[newObj.children[0]]; + var child2 = _this.nameTable[newObj.children[1]]; + nodeDragSize = newObj.dragSize; + nodePreviewSize = newObj.previewSize; + paletteDragSize = sourceElement['symbolDragSize']; + laneObj.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || laneObj.width; + laneObj.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || laneObj.height; + if (isHorizontal) { + header.width = laneObj.header.width; + header.height = laneObj.height; + lane.width = laneObj.width - header.width; + lane.height = laneObj.height; + lane.offsetX = position.x + 5 + (laneObj.header.width + (child2.width / 2)); + lane.offsetY = position.y + child2.height / 2; + } + else { + header.width = laneObj.width; + header.height = laneObj.header.height; + lane.width = laneObj.width; + lane.height = laneObj.height - header.height; + lane.offsetX = position.x + 5 + child2.width / 2; + lane.offsetY = position.y + (laneObj.header.height + (child2.height / 2)); + } + header.offsetX = position.x + 5 + child1.width / 2; + header.offsetY = position.y + child1.height / 2; + newObj.width = laneObj.width; + newObj.height = laneObj.height; + } + if ((newObj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) && newObj.shape.isPhase) { + if (isHorizontal) { + newObj.height = 1; + } + else { + newObj.width = 1; + } + } + if (!_this.activeLayer.lock && !arg.cancel) { + _this.preventDiagramUpdate = true; + if (newObj.children) { + _this.findChild(newObj, entryTable); + } + _this.preventDiagramUpdate = true; + if (newObj.zIndex !== -1) { + newObj.zIndex = -1; + } + _this.initObject(newObj, undefined, undefined, true); + _this.selectDragedNode(newObj, args, selectedSymbol); + } + delete _this['enterObject']; + delete _this['enterTable']; + } + _this.droppable["" + selectedSymbols] = selectedSymbol; + _this.allowServerDataBinding = true; + } + } + } + else { + if (args.event.touches && args.event.touches.length) { + _this.eventHandler.mouseMove(args.event, args.event.touches); + } + } + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.droppable.drop = function (args) { return __awaiter(_this, void 0, void 0, function () { + var source, value, isPhase, orientation_2, isConnector, arg, id, clonedObject, nodeId, newObj, arg, clonedObject, id, selectedSymbols, draggableElement, i; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.allowServerDataBinding = false; + source = 'sourceElement'; + if (!this.currentSymbol) return [3 /*break*/, 4]; + isPhase = false; + isConnector = (this.currentSymbol instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) ? true : false; + if (args.event.touches) { + this.eventHandler.mouseUp(args.event); + } + arg = void 0; + arg = { + source: this.droppable["" + source], + element: this.currentSymbol, + target: this.eventHandler['hoverNode'] || this.eventHandler['lastObjectUnderMouse'] || this, cancel: false, + position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY } + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) return [3 /*break*/, 2]; + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.droppable["" + source]), + // eslint-disable-next-line max-len + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.currentSymbol) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.currentSymbol) } : { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.currentSymbol) }, + cancel: false, target: {}, + position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY } + }; + // eslint-disable-next-line max-len + this.getDropEventArgs(arg); + return [4 /*yield*/, this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].drop, arg)]; + case 1: + arg = (_a.sent()) || arg; + return [3 /*break*/, 3]; + case 2: + this.commandHandler.PreventConnectorSplit = false; + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].drop, arg); + _a.label = 3; + case 3: + id = 'id'; + clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(this.currentSymbol); + clonedObject['hasTarget'] = this.currentSymbol['hasTarget']; + this.removeFromAQuad(this.currentSymbol); + this.removeObjectsFromLayer(this.nameTable[this.currentSymbol.id]); + this.removeElements(this.currentSymbol); + if (this.currentSymbol.shape.isLane || + this.currentSymbol.shape.isPhase) { + this.removeChildInNodes(this.currentSymbol); + } + if (arg.cancel) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["removeChildNodes"])(this.currentSymbol, this); + } + if (this.currentSymbol.shape.isPhase) { + isPhase = true; + orientation_2 = this.currentSymbol.shape.orientation; + } + this.removePreviewChildren(this.currentSymbol); + delete this.nameTable[this.currentSymbol.id]; + this.currentSymbol = null; + this.protectPropertyChange(true); + if (!arg.cancel) { + this.startGroupAction(); + if (clonedObject && (clonedObject.shape.isLane || isPhase)) { + if (isPhase) { + clonedObject.shape.isPhase = isPhase; + clonedObject.shape.orientation = orientation_2; + } + this.eventHandler.addSwimLaneObject(clonedObject); + } + if (clonedObject.shape.type === 'Bpmn' && clonedObject.shape.annotation + && clonedObject['hasTarget']) { + nodeId = clonedObject.shape.annotation.nodeId; + clonedObject.shape.annotation.id = clonedObject.id; + this.addTextAnnotation(clonedObject.shape.annotation, this.nameTable["" + nodeId]); + clonedObject.nodeId = ''; + } + if (!clonedObject.shape.isLane && !isPhase) { + if (clonedObject.children) { + this.addChildNodes(clonedObject); + } + if (arg.target && (arg.target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) && !isConnector && Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["checkParentAsContainer"])(this, arg.target) + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canAllowDrop"])(arg.target)) { + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_38__["addChildToContainer"])(this, arg.target, clonedObject); + } + else { + // EJ2-62652 - Added below code to empty the segment collection if connector type is bezier + if (clonedObject.type === 'Bezier' && clonedObject.segments.length > 0) { + clonedObject.segments = []; + } + value = this.add(clonedObject, true); + } + if ((clonedObject || value) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_31__["canSingleSelect"])(this)) { + this.select([this.nameTable[clonedObject["" + id]]], false, this.previousSelectedObjects); + } + if (arg.target && arg.target instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + if (this.enableConnectorSplit === true) { + if (this.nameTable[clonedObject["" + id]] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) { + this.commandHandler.connectorSplit(this.nameTable[clonedObject["" + id]], arg.target); + this.commandHandler.PreventConnectorSplit = false; + } + } + } + } + } + else { + this.clearSelectorLayer(); + } + this.protectPropertyChange(false); + newObj = this.nameTable[clonedObject["" + id]]; + if (clonedObject['hasTarget']) { + clonedObject.nodeId = clonedObject['hasTarget']; + this.remove(clonedObject); + } + if (this.bpmnModule && newObj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"] && clonedObject.processId) { + newObj.processId = clonedObject.processId; + this.bpmnModule.dropBPMNchild(this.nameTable[newObj.processId], newObj, this); + } + if (!arg.cancel) { + this.endGroupAction(); + } + if (this.mode !== 'SVG') { + this.refreshDiagramLayer(); + } + delete this.droppable["" + source]; + return [3 /*break*/, 5]; + case 4: + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.droppedElement), + element: undefined, + target: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.eventHandler['hoverNode'] || (this.eventHandler['lastObjectUnderMouse']) || this), cancel: false, + position: undefined + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.droppedElement), + element: undefined, + cancel: false, + position: undefined, + target: {} + }; + this.getDropEventArgs(arg); + } + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].drop, arg); + clonedObject = void 0; + id = 'id'; + _a.label = 5; + case 5: + selectedSymbols = 'selectedSymbols'; + // eslint-disable-next-line max-len + if (this.droppable["" + selectedSymbols] && this.droppable["" + selectedSymbols].parentNode) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.droppable["" + selectedSymbols]); + } + else { + draggableElement = document.getElementsByClassName('e-dragclone'); + for (i = 0; i < draggableElement.length; i++) { + draggableElement[parseInt(i.toString(), 10)].remove(); + } + } + this.allowServerDataBinding = true; + this.previousSelectedObjects = []; + return [2 /*return*/]; + } + }); + }); }; + this.droppable.out = function (args) { + // EJ2-57221 - Added the below code to check if we drag the node from symbol palette using touch or mouse. + if (args.evt.type === 'touchmove') { + _this.eventHandler.mouseLeave(args.evt); + } + if (_this.currentSymbol && (!_this.eventHandler.focus)) { + _this.unSelect(_this.currentSymbol); + _this.removeFromAQuad(_this.currentSymbol); + if (_this.mode !== 'SVG' && _this.currentSymbol.shape.type === 'Native') { + _this.removeElements(_this.currentSymbol); + } + _this.removeObjectsFromLayer(_this.nameTable[_this.currentSymbol.id]); + _this.removePreviewChildren(_this.currentSymbol); + delete _this.nameTable[_this.currentSymbol.id]; + var args_1 = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(_this.currentSymbol), + diagram: _this + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + args_1 = _this.getBlazorDragLeaveEventArgs(args_1); + } + _this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramEvent"].dragLeave, args_1); + if (_this.mode !== 'SVG') { + _this.refreshDiagramLayer(); + } + else { + _this.removeElements(_this.currentSymbol); + //EJ2-833020-To remove the child element from the group node while dragging the group node from palette + if (_this.currentSymbol.children && _this.currentSymbol.children.length > 0) { + for (var i = 0; i < _this.currentSymbol.children.length; i++) { + var child = _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]]; + _this.removeElements(child); + delete _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]]; + } + } + } + _this.currentSymbol = null; + var selectedSymbols_1 = 'selectedSymbols'; + _this.droppable["" + selectedSymbols_1].style.opacity = '1'; + var source = 'sourceElement'; + delete _this.droppable["" + source]; + _this.diagramRenderer.rendererActions = + _this.removeConstraints(_this.diagramRenderer.rendererActions, _enum_enum__WEBPACK_IMPORTED_MODULE_14__["RendererAction"].DrawSelectorBorder); + if (_this.previousSelectedObject) { + _this.select(_this.previousSelectedObject, _this.previousSelectedObject.length > 1 ? true : false); + } + _this.previousSelectedObject = null; + } + }; + }; + Diagram.prototype.getBlazorDragLeaveEventArgs = function (args) { + args = { + diagramId: this.element.id, + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(args.element) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.element) } + : { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.element) } + }; + return args; + }; + Diagram.prototype.getDropEventArgs = function (arg) { + if ((this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'])) { + var object = this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode']; + // eslint-disable-next-line max-len + arg.target = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(object) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(object) } : { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(object) }; + } + else { + arg.target.diagramId = this.element.id; + } + }; + Diagram.prototype.removeChildInNodes = function (node) { + if (node) { + if (node.children) { + for (var i = 0; i < node.children.length; i++) { + this.removeChildInNodes(this.nameTable[node.children[parseInt(i.toString(), 10)]]); + } + } + var index = this.nodes.indexOf(node); + if (index !== -1) { + this.nodes.splice(index, 1); + } + } + }; + Diagram.prototype.getBlazorDragEventArgs = function (args) { + args = { + // eslint-disable-next-line max-len + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.source), element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(args.element) === _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.element) } + : { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.element) }, + cancel: args.cancel, diagramId: this.element.id + }; + return args; + }; + Diagram.prototype.findChild = function (node, childTable) { + var group; + var newNode; + for (var i = 0; i < node.children.length; i++) { + group = childTable[node.children[parseInt(i.toString(), 10)]]; + if (group) { + if (group.children) { + this.findChild(group, childTable); + } + group.id = group.id + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["randomId"])(); + childTable[group.id] = group; + node.children[parseInt(i.toString(), 10)] = group.id; + newNode = new _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"](this, 'nodes', group, true); + this.initObject(newNode, undefined, undefined, true); + //this.add(group, true); + } + } + }; + Diagram.prototype.getChildren = function (node, entryTable, childTable) { + var temp; + for (var i = 0; i < node.children.length; i++) { + temp = (childTable[node.children[parseInt(i.toString(), 10)]]); + if (temp) { + if (temp.children) { + entryTable = this.getChildren(temp, entryTable, childTable); + } + entryTable[temp.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_32__["cloneObject"])(temp); + } + } + return entryTable; + }; + Diagram.prototype.addChildNodes = function (node) { + var temp; + for (var i = 0; i < node.children.length; i++) { + temp = (this.nameTable[node.children[parseInt(i.toString(), 10)]]); + if (temp) { + if (temp.children) { + this.addChildNodes(temp); + } + this.add(temp, true); + } + } + }; + Diagram.prototype.moveNode = function (node) { + var currentLayer = this.commandHandler.getObjectLayer(node.id); + var index = currentLayer.zIndex; + var length = currentLayer.objects.length; + var targetLayer; + for (var i = 0; i < this.layers.length; i++) { + if (index === this.layers[parseInt(i.toString(), 10)].zIndex) { + targetLayer = this.layers[i + 1]; + } + } + if (length > 1) { + // Bug 830365: Exception raised on adding group node in layers dynamically. + // Added below code to check the group node and iterate its children in layer to find the last object in the layer. + var num = 2; + if (node.children && node.children.length > 0) { + while (node.children.indexOf(currentLayer.objects[length - num]) > -1) { + num++; + } + } + this.commandHandler.moveSvgNode(node.id, currentLayer.objects[length - num]); + this.commandHandler.moveSvgNode(currentLayer.objects[length - num], node.id); + } + else { + if (targetLayer) { + var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[0]; + if (targetObject) { + this.commandHandler.moveSvgNode(node.id, targetObject); + this.commandHandler.updateNativeNodeIndex(node.id, targetObject); + } + else { + this.moveObjectsUp(node, currentLayer); + } + } + else { + this.moveObjectsUp(node, currentLayer); + } + } + }; + /** + * moves the node or connector forward within given layer \ + * + * @returns { void } moves the node or connector forward within given layer .\ + * @param {Node | Connector} node - provide the source value. + * @param {LayerModel} currentLayer - provide the source value. + * + */ + Diagram.prototype.moveObjectsUp = function (node, currentLayer) { + var targetLayer; + for (var i = this.layers.length - 1; i >= 0; i--) { + targetLayer = this.layers[parseInt(i.toString(), 10)]; + if (currentLayer.id !== targetLayer.id) { + // eslint-disable-next-line max-len + var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[targetLayer.objects.length - 1]; + if (targetObject) { + this.commandHandler.moveSvgNode(node.id, targetObject); + this.commandHandler.moveSvgNode(targetObject, node.id); + break; + } + } + } + }; + /** + * Inserts newly added element into the database \ + * + * @returns { void } Inserts newly added element into the database .\ + * @param {Node | Connector} node - provide the source value. + * + */ + Diagram.prototype.insertData = function (node) { + return this.crudOperation(node, 'create', this.getNewUpdateNodes('New')); + }; + /** + * updates the user defined element properties into the existing database \ + * + * @returns { void } Removes the user deleted element from the existing database .\ + * @param {Node | Connector} node - provide the source value. + * + */ + Diagram.prototype.updateData = function (node) { + return this.crudOperation(node, 'update', this.getNewUpdateNodes('Update')); + }; + /** + * Removes the user deleted element from the existing database \ + * + * @returns { void } Removes the user deleted element from the existing database .\ + * @param {Node | Connector} node - provide the source value. + * + */ + Diagram.prototype.removeData = function (node) { + return this.crudOperation(node, 'destroy', this.getDeletedNodes()); + }; + Diagram.prototype.crudOperation = function (node, crud, getNodesCollection) { + if (node) { + var data = this.parameterMap(node, node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? false : true); + if (data) { + // eslint-disable-next-line max-len + var url = node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"] ? this.dataSourceSettings.connectionDataSource.crudAction["" + crud] : this.dataSourceSettings.crudAction["" + crud]; + this.raiseAjaxPost(JSON.stringify(data), url); + } + return data; + } + else { + var newObjects = getNodesCollection; + // eslint-disable-next-line max-len + this.processCrudCollection(newObjects, this.dataSourceSettings.crudAction["" + crud], this.dataSourceSettings.connectionDataSource.crudAction["" + crud]); + return newObjects; + } + }; + Diagram.prototype.processCrudCollection = function (newObjects, nodeCrudAction, connectorCrudAction) { + if (newObjects.nodes) { + var data = []; + var i = void 0; + for (i = 0; i < newObjects.nodes.length; i++) { + data.push(this.parameterMap(newObjects.nodes[parseInt(i.toString(), 10)], true)); + } + if (data && data.length > 0) { + this.raiseAjaxPost(JSON.stringify(data), nodeCrudAction); + } + } + if (newObjects.connectors) { + var data = []; + var i = void 0; + for (i = 0; i < newObjects.connectors.length; i++) { + data.push(this.parameterMap(newObjects.connectors[parseInt(i.toString(), 10)], false)); + } + if (data && data.length > 0) { + this.raiseAjaxPost(JSON.stringify(data), connectorCrudAction); + } + } + }; + Diagram.prototype.parameterMap = function (object, isNode) { + var mappingObj = {}; + var i; + var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource; + if (fields.id) { + mappingObj[fields.id] = object.id; + } + if (fields.sourcePointX && fields.sourcePointY) { + mappingObj[fields.sourcePointX] = object.sourcePoint.x; + mappingObj[fields.sourcePointY] = object.sourcePoint.y; + } + if (fields.targetPointX && fields.targetPointY) { + mappingObj[fields.targetPointX] = object.targetPoint.x; + mappingObj[fields.targetPointY] = object.targetPoint.y; + } + if (fields.sourceID) { + mappingObj[fields.sourceID] = object.sourceID; + } + if (fields.targetID) { + mappingObj[fields.targetID] = object.targetID; + } + if (fields.crudAction && fields.crudAction.customFields && fields.crudAction.customFields.length > 0) { + for (i = 0; i < fields.crudAction.customFields.length; i++) { + mappingObj[fields.crudAction.customFields[parseInt(i.toString(), 10)]] = object[fields.crudAction.customFields[parseInt(i.toString(), 10)]]; + } + } + return mappingObj; + }; + Diagram.prototype.getNewUpdateNodes = function (status) { + var nodes = []; + var connectors = []; + // eslint-disable-next-line guard-for-in + for (var name_1 in this.nameTable) { + var node = this.nameTable["" + name_1]; + if (node.status === status) { + if (node && node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) { + node.status = 'None'; + connectors.push(node); + } + else { + node.status = 'None'; + nodes.push(node); + } + } + } + return { nodes: nodes, connectors: connectors }; + }; + Diagram.prototype.getDeletedNodes = function () { + var nodes = []; + var connectors = []; + var i; + for (i = 0; i < this.crudDeleteNodes.length; i++) { + var node = this.crudDeleteNodes[parseInt(i.toString(), 10)]; + if (node && node.segments) { + connectors.push(node); + } + else if (node) { + nodes.push(node); + } + } + this.crudDeleteNodes = []; + return { nodes: nodes, connectors: connectors }; + }; + Diagram.prototype.raiseAjaxPost = function (value, url) { + var callback = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Fetch"](url, 'POST', 'application/json'); + var data = JSON.stringify(JSON.parse(value)); + callback.send(data).then(); + /* eslint-disable */ + callback.onSuccess = function (data) { + }; + /* eslint-enable */ + }; + Diagram.prototype.getHiddenItems = function (args) { + var hiddenItems = []; + if (this.contextMenuModule) { + this.contextMenuModule.hiddenItems = []; + for (var _i = 0, _a = args.items; _i < _a.length; _i++) { + var item = _a[_i]; + this.contextMenuModule.ensureItems(item, args.event); + if (item.items && item.items.length) { + for (var _b = 0, _c = item.items; _b < _c.length; _b++) { + var newItem = _c[_b]; + this.contextMenuModule.ensureItems(newItem, args.event); + } + } + } + return this.contextMenuModule.hiddenItems; + } + return hiddenItems; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Diagram.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Diagram.prototype, "enableConnectorSplit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SVG') + ], Diagram.prototype, "mode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Diagram.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Rhombus') + ], Diagram.prototype, "segmentThumbShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_30__["ContextMenuSettings"]) + ], Diagram.prototype, "contextMenuSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramConstraints"].Default) + ], Diagram.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_14__["DiagramTools"].Default) + ], Diagram.prototype, "tool", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Top') + ], Diagram.prototype, "bridgeDirection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], Diagram.prototype, "backgroundColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_grid_lines__WEBPACK_IMPORTED_MODULE_10__["SnapSettings"]) + ], Diagram.prototype, "snapSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_ruler_settings__WEBPACK_IMPORTED_MODULE_11__["RulerSettings"]) + ], Diagram.prototype, "rulerSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_page_settings__WEBPACK_IMPORTED_MODULE_4__["PageSettings"]) + ], Diagram.prototype, "pageSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_serialization_settings__WEBPACK_IMPORTED_MODULE_40__["SerializationSettings"]) + ], Diagram.prototype, "serializationSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _objects_node__WEBPACK_IMPORTED_MODULE_7__["Node"]) + ], Diagram.prototype, "nodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "drawingObject", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _objects_connector__WEBPACK_IMPORTED_MODULE_9__["Connector"]) + ], Diagram.prototype, "connectors", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], Diagram.prototype, "basicElements", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _objects_tooltip__WEBPACK_IMPORTED_MODULE_33__["DiagramTooltip"]) + ], Diagram.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_data_source__WEBPACK_IMPORTED_MODULE_22__["DataSource"]) + ], Diagram.prototype, "dataSourceSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "addInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "historyManager", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "nodeTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "annotationTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "userHandleTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getNodeDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "nodeDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getConnectorDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "connectorDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "setNodeTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getDescription", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getCustomProperty", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getCustomTool", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "getCustomCursor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _diagram_custom_cursor__WEBPACK_IMPORTED_MODULE_41__["CustomCursorAction"]) + ], Diagram.prototype, "customCursor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Diagram.prototype, "updateSelection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_diagram_settings__WEBPACK_IMPORTED_MODULE_42__["DiagramSettings"]) + ], Diagram.prototype, "diagramSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _objects_node__WEBPACK_IMPORTED_MODULE_7__["Selector"]) + ], Diagram.prototype, "selectedItems", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_page_settings__WEBPACK_IMPORTED_MODULE_4__["ScrollSettings"]) + ], Diagram.prototype, "scrollSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _layout_layout_base__WEBPACK_IMPORTED_MODULE_23__["Layout"]) + ], Diagram.prototype, "layout", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_30__["CommandManager"]) + ], Diagram.prototype, "commandManager", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "dataLoaded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "dragEnter", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "dragLeave", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "dragOver", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "click", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "historyChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "historyStateChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "doubleClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "textEdit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "scrollChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "mouseWheel", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "selectionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "sizeChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "connectionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "sourcePointChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "targetPointChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "propertyChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "positionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "keyUp", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "keyDown", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "animationComplete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "rotateChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "collectionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "fixedUserHandleClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "onUserHandleMouseDown", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "onUserHandleMouseUp", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "onUserHandleMouseEnter", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "onUserHandleMouseLeave", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "segmentCollectionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "onImageLoad", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "expandStateChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "mouseEnter", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "mouseLeave", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "mouseOver", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "elementDraw", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "contextMenuOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "contextMenuBeforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "contextMenuClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "commandExecute", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _diagram_layer__WEBPACK_IMPORTED_MODULE_35__["Layer"]) + ], Diagram.prototype, "layers", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "drop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Diagram.prototype, "segmentChange", void 0); + return Diagram; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/custom-cursor.js": +/*!*************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/custom-cursor.js ***! + \*************************************************************************************/ +/*! exports provided: CustomCursorAction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomCursorAction", function() { return CustomCursorAction; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * A collection of JSON objects where each object represents a layer. + * Layer is a named category of diagram shapes. + */ +var CustomCursorAction = /** @__PURE__ @class */ (function (_super) { + __extends(CustomCursorAction, _super); + function CustomCursorAction() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CustomCursorAction.prototype, "action", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CustomCursorAction.prototype, "cursor", void 0); + return CustomCursorAction; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-mapping.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-mapping.js ***! + \************************************************************************************/ +/*! exports provided: DataMappingItems */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataMappingItems", function() { return DataMappingItems; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * A collection of JSON objects where each object represents a layer. + * Layer is a named category of diagram shapes. + */ +var DataMappingItems = /** @__PURE__ @class */ (function (_super) { + __extends(DataMappingItems, _super); + function DataMappingItems() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DataMappingItems.prototype, "property", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DataMappingItems.prototype, "field", void 0); + return DataMappingItems; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-source.js": +/*!***********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-source.js ***! + \***********************************************************************************/ +/*! exports provided: CrudAction, ConnectionDataSource, DataSource */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CrudAction", function() { return CrudAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionDataSource", function() { return ConnectionDataSource; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataSource", function() { return DataSource; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _data_mapping__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./data-mapping */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-mapping.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +/** + * Configures the data source that is to be bound with diagram + * ```html + *
+ * ``` + * ```typescript + * let data: object[] = [ + * { Name: "Elizabeth", Role: "Director" }, + * { Name: "Christina", ReportingPerson: "Elizabeth", Role: "Manager" }, + * { Name: "Yoshi", ReportingPerson: "Christina", Role: "Lead" }, + * { Name: "Philip", ReportingPerson: "Christina", Role: "Lead" }, + * { Name: "Yang", ReportingPerson: "Elizabeth", Role: "Manager" }, + * { Name: "Roland", ReportingPerson: "Yang", Role: "Lead" }, + * { Name: "Yvonne", ReportingPerson: "Yang", Role: "Lead" } + * ]; + * let items: DataManager = new DataManager(data as JSON[]); + * let diagram: Diagram = new Diagram({ + * ... + * layout: { + * type: 'OrganizationalChart' + * }, + * dataSourceSettings: { + * id: 'Name', parentId: 'ReportingPerson', dataManager: items, + * } + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + */ +var CrudAction = /** @__PURE__ @class */ (function (_super) { + __extends(CrudAction, _super); + function CrudAction() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CrudAction.prototype, "read", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CrudAction.prototype, "create", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CrudAction.prototype, "update", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], CrudAction.prototype, "destroy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], CrudAction.prototype, "customFields", void 0); + return CrudAction; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var ConnectionDataSource = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectionDataSource, _super); + function ConnectionDataSource() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ConnectionDataSource.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ConnectionDataSource.prototype, "sourceID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ConnectionDataSource.prototype, "targetID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ConnectionDataSource.prototype, "sourcePointX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ConnectionDataSource.prototype, "sourcePointY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ConnectionDataSource.prototype, "targetPointX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ConnectionDataSource.prototype, "targetPointY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ConnectionDataSource.prototype, "dataManager", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, CrudAction) + ], ConnectionDataSource.prototype, "crudAction", void 0); + return ConnectionDataSource; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var DataSource = /** @__PURE__ @class */ (function (_super) { + __extends(DataSource, _super); + function DataSource() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DataSource.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], DataSource.prototype, "dataManager", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], DataSource.prototype, "dataSource", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DataSource.prototype, "root", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DataSource.prototype, "parentId", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], DataSource.prototype, "doBinding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _data_mapping__WEBPACK_IMPORTED_MODULE_1__["DataMappingItems"]) + ], DataSource.prototype, "dataMapSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, CrudAction) + ], DataSource.prototype, "crudAction", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, ConnectionDataSource) + ], DataSource.prototype, "connectionDataSource", void 0); + return DataSource; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/grid-lines.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/grid-lines.js ***! + \**********************************************************************************/ +/*! exports provided: Gridlines, SnapSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Gridlines", function() { return Gridlines; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SnapSettings", function() { return SnapSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +/** + * Provides a visual guidance while dragging or arranging the objects on the Diagram surface + */ +var Gridlines = /** @__PURE__ @class */ (function (_super) { + __extends(Gridlines, _super); + function Gridlines() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('lightgray') + ], Gridlines.prototype, "lineColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Gridlines.prototype, "lineDashArray", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75]) + ], Gridlines.prototype, "lineIntervals", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([1, 19, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5]) + ], Gridlines.prototype, "dotIntervals", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([20]) + ], Gridlines.prototype, "snapIntervals", void 0); + return Gridlines; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the gridlines and defines how and when the objects have to be snapped + * + * @default {} + */ +var SnapSettings = /** @__PURE__ @class */ (function (_super) { + __extends(SnapSettings, _super); + function SnapSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, Gridlines) + ], SnapSettings.prototype, "horizontalGridlines", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, Gridlines) + ], SnapSettings.prototype, "verticalGridlines", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_1__["SnapConstraints"].All) + ], SnapSettings.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], SnapSettings.prototype, "snapAngle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Lines') + ], SnapSettings.prototype, "gridType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], SnapSettings.prototype, "snapObjectDistance", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#07EDE1') + ], SnapSettings.prototype, "snapLineColor", void 0); + return SnapSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/keyboard-commands.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/keyboard-commands.js ***! + \*****************************************************************************************/ +/*! exports provided: KeyGesture, Command, CommandManager, ContextMenuSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyGesture", function() { return KeyGesture; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Command", function() { return Command; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandManager", function() { return CommandManager; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextMenuSettings", function() { return ContextMenuSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * Defines the combination of keys and modifier keys + */ +var KeyGesture = /** @__PURE__ @class */ (function (_super) { + __extends(KeyGesture, _super); + function KeyGesture() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], KeyGesture.prototype, "key", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], KeyGesture.prototype, "keyModifiers", void 0); + return KeyGesture; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines a command and a key gesture to define when the command should be executed + */ +var Command = /** @__PURE__ @class */ (function (_super) { + __extends(Command, _super); + function Command() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * Returns the name of class Command + * + * @returns {string} Returns the name of class Command + * @private + */ + Command.prototype.getClassName = function () { + return 'Command'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Command.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Command.prototype, "canExecute", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Command.prototype, "execute", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, KeyGesture) + ], Command.prototype, "gesture", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Command.prototype, "parameter", void 0); + return Command; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the collection of commands and the corresponding key gestures + * + */ +var CommandManager = /** @__PURE__ @class */ (function (_super) { + __extends(CommandManager, _super); + function CommandManager() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Command) + ], CommandManager.prototype, "commands", void 0); + return CommandManager; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the context menu items + */ +var ContextMenuSettings = /** @__PURE__ @class */ (function (_super) { + __extends(ContextMenuSettings, _super); + function ContextMenuSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ContextMenuSettings.prototype, "show", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ContextMenuSettings.prototype, "showCustomMenuOnly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ContextMenuSettings.prototype, "items", void 0); + return ContextMenuSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layer.js": +/*!*****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layer.js ***! + \*****************************************************************************/ +/*! exports provided: Layer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Layer", function() { return Layer; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * A collection of JSON objects where each object represents a layer. + * Layer is a named category of diagram shapes. + */ +var Layer = /** @__PURE__ @class */ (function (_super) { + __extends(Layer, _super); + // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function Layer(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + /** @private */ + _this.objectZIndex = -1; + /** @private */ + _this.zIndexTable = {}; + _this.objects = []; + return _this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Layer.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Layer.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Layer.prototype, "lock", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Layer.prototype, "objects", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Layer.prototype, "addInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], Layer.prototype, "zIndex", void 0); + return Layer; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layoutinfo.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layoutinfo.js ***! + \**********************************************************************************/ +/*! exports provided: LayoutInfo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutInfo", function() { return LayoutInfo; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * A collection of JSON objects where each object represents a layer. + * Layer is a named category of diagram shapes. + */ +var LayoutInfo = /** @__PURE__ @class */ (function (_super) { + __extends(LayoutInfo, _super); + function LayoutInfo() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], LayoutInfo.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], LayoutInfo.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], LayoutInfo.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], LayoutInfo.prototype, "enableRouting", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], LayoutInfo.prototype, "children", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], LayoutInfo.prototype, "assistants", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], LayoutInfo.prototype, "level", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], LayoutInfo.prototype, "hasSubTree", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], LayoutInfo.prototype, "rows", void 0); + return LayoutInfo; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/page-settings.js": +/*!*************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/page-settings.js ***! + \*************************************************************************************/ +/*! exports provided: Background, FitOptions, PageSettings, ScrollSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Background", function() { return Background; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FitOptions", function() { return FitOptions; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageSettings", function() { return PageSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollSettings", function() { return ScrollSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +/** + * Defines the size and appearance of the diagram page + */ +var Background = /** @__PURE__ @class */ (function (_super) { + __extends(Background, _super); + function Background() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Background.prototype, "source", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], Background.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Background.prototype, "scale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Background.prototype, "align", void 0); + return Background; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var FitOptions = /** @__PURE__ @class */ (function (_super) { + __extends(FitOptions, _super); + function FitOptions() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Page') + ], FitOptions.prototype, "mode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('PageSettings') + ], FitOptions.prototype, "region", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ top: 25, bottom: 25, left: 25, right: 25 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], FitOptions.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], FitOptions.prototype, "canZoomIn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], FitOptions.prototype, "customBounds", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], FitOptions.prototype, "canFit", void 0); + return FitOptions; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the size and appearance of diagram page + * ```html + *
+ * ``` + * ```typescript + * let diagram: Diagram = new Diagram({ + * ... + * pageSettings: { width: 800, height: 600, orientation: 'Landscape', + * background: { color: 'blue' }, boundaryConstraints: 'Infinity', + * multiplePage: true, showPageBreaks: true, }, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + * + * @default {} + */ +var PageSettings = /** @__PURE__ @class */ (function (_super) { + __extends(PageSettings, _super); + function PageSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], PageSettings.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], PageSettings.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], PageSettings.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Landscape') + ], PageSettings.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Infinity') + ], PageSettings.prototype, "boundaryConstraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, Background) + ], PageSettings.prototype, "background", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], PageSettings.prototype, "multiplePage", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], PageSettings.prototype, "showPageBreaks", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, FitOptions) + ], PageSettings.prototype, "fitOptions", void 0); + return PageSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Diagram ScrollSettings module handles the scroller properties of the diagram + */ +var ScrollSettings = /** @__PURE__ @class */ (function (_super) { + __extends(ScrollSettings, _super); + function ScrollSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], ScrollSettings.prototype, "horizontalOffset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], ScrollSettings.prototype, "verticalOffset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], ScrollSettings.prototype, "currentZoom", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], ScrollSettings.prototype, "viewPortWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], ScrollSettings.prototype, "viewPortHeight", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.2) + ], ScrollSettings.prototype, "minZoom", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(30) + ], ScrollSettings.prototype, "maxZoom", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Diagram') + ], ScrollSettings.prototype, "scrollLimit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ScrollSettings.prototype, "scrollableArea", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ScrollSettings.prototype, "canAutoScroll", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 15, right: 15, top: 15, bottom: 15 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], ScrollSettings.prototype, "autoScrollBorder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 0, right: 0, top: 0, bottom: 0 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], ScrollSettings.prototype, "padding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.2) + ], ScrollSettings.prototype, "zoomFactor", void 0); + return ScrollSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/ruler-settings.js": +/*!**************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/ruler-settings.js ***! + \**************************************************************************************/ +/*! exports provided: DiagramRuler, RulerSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramRuler", function() { return DiagramRuler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RulerSettings", function() { return RulerSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * Defines the properties of both horizontal and vertical guides/rulers to measure the diagram area. + */ +var DiagramRuler = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramRuler, _super); + function DiagramRuler() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], DiagramRuler.prototype, "interval", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], DiagramRuler.prototype, "segmentWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], DiagramRuler.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('RightOrBottom') + ], DiagramRuler.prototype, "tickAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('red') + ], DiagramRuler.prototype, "markerColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(25) + ], DiagramRuler.prototype, "thickness", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], DiagramRuler.prototype, "arrangeTick", void 0); + return DiagramRuler; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the ruler settings of diagram + * ```html + *
+ * ``` + * ```typescript + * let diagram: Diagram = new Diagram({ + * ... + * rulerSettings: { showRulers: true, + * horizontalRuler: { segmentWidth: 50,interval: 10 }, + * verticalRuler: {segmentWidth: 200,interval: 20} + * }, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + * + * @default {} + */ +var RulerSettings = /** @__PURE__ @class */ (function (_super) { + __extends(RulerSettings, _super); + function RulerSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], RulerSettings.prototype, "showRulers", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], RulerSettings.prototype, "dynamicGrid", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ orientation: 'Horizontal' }, DiagramRuler) + ], RulerSettings.prototype, "horizontalRuler", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ orientation: 'Vertical' }, DiagramRuler) + ], RulerSettings.prototype, "verticalRuler", void 0); + return RulerSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/serialization-settings.js": +/*!**********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/serialization-settings.js ***! + \**********************************************************************************************/ +/*! exports provided: SerializationSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SerializationSettings", function() { return SerializationSettings; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * Defines the serialization settings of diagram + * ```html + *
+ * ``` + * ```typescript + * let diagram: Diagram = new Diagram({ + * ... + * serializationSettings: { preventDefaults: true }, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + * + * @default {} + */ +var SerializationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(SerializationSettings, _super); + function SerializationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SerializationSettings.prototype, "preventDefaults", void 0); + return SerializationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js ***! + \*************************************************************************/ +/*! exports provided: BlazorAction, PortVisibility, SnapConstraints, SelectorConstraints, ConnectionPointOrigin, ChildArrangement, ConnectorConstraints, AnnotationConstraints, NodeConstraints, ElementAction, ThumbsConstraints, DiagramConstraints, DiagramTools, Transform, RenderMode, KeyModifiers, Keys, DiagramAction, RendererAction, RealAction, ScrollActions, NoOfSegments, DiagramEvent, PortConstraints, contextMenuClick, contextMenuOpen, contextMenuBeforeItemRender, ControlPointsVisibility, BezierSmoothness */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BlazorAction", function() { return BlazorAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PortVisibility", function() { return PortVisibility; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SnapConstraints", function() { return SnapConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectorConstraints", function() { return SelectorConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectionPointOrigin", function() { return ConnectionPointOrigin; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChildArrangement", function() { return ChildArrangement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorConstraints", function() { return ConnectorConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnnotationConstraints", function() { return AnnotationConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeConstraints", function() { return NodeConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ElementAction", function() { return ElementAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ThumbsConstraints", function() { return ThumbsConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramConstraints", function() { return DiagramConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramTools", function() { return DiagramTools; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return Transform; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RenderMode", function() { return RenderMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyModifiers", function() { return KeyModifiers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Keys", function() { return Keys; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramAction", function() { return DiagramAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RendererAction", function() { return RendererAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RealAction", function() { return RealAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollActions", function() { return ScrollActions; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoOfSegments", function() { return NoOfSegments; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramEvent", function() { return DiagramEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PortConstraints", function() { return PortConstraints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "contextMenuClick", function() { return contextMenuClick; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "contextMenuOpen", function() { return contextMenuOpen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "contextMenuBeforeItemRender", function() { return contextMenuBeforeItemRender; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ControlPointsVisibility", function() { return ControlPointsVisibility; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BezierSmoothness", function() { return BezierSmoothness; }); +/** + * enum module defines the public enumerations + */ +/** + * @private + */ +var BlazorAction; +(function (BlazorAction) { + /** Return the layout value is true when doLayout is called */ + BlazorAction[BlazorAction["Default"] = 0] = "Default"; + /** Need to return the layout value when doLayout is called */ + BlazorAction[BlazorAction["expandNode"] = 2] = "expandNode"; + /** Enabled during the mouse interaction */ + BlazorAction[BlazorAction["interaction"] = 4] = "interaction"; + /** Enable when the group action start in history */ + BlazorAction[BlazorAction["GroupingInProgress"] = 8] = "GroupingInProgress"; + /** Enable when the group action start to clone another group node */ + BlazorAction[BlazorAction["GroupClipboardInProcess"] = 16] = "GroupClipboardInProcess"; + /** Enable when the clear the object to prevent the server update */ + BlazorAction[BlazorAction["ClearObject"] = 32] = "ClearObject"; +})(BlazorAction || (BlazorAction = {})); +/** + * Constraints to define when a port has to be visible + * Visible - Always shows the port + * Hidden - Always hides the port + * Hover - Shows the port when the mouse hovers over a node + * Connect - Shows the port when a connection end point is dragged over a node + * Default - By default the ports will be visible when a node is hovered and being tried to connect + * + * @aspNumberEnum + */ +var PortVisibility; +(function (PortVisibility) { + /** Always shows the port */ + PortVisibility[PortVisibility["Visible"] = 1] = "Visible"; + /** Always hides the port */ + PortVisibility[PortVisibility["Hidden"] = 2] = "Hidden"; + /** Shows the port when the mouse hovers over a node */ + PortVisibility[PortVisibility["Hover"] = 4] = "Hover"; + /** Shows the port when a connection end point is dragged over a node */ + PortVisibility[PortVisibility["Connect"] = 8] = "Connect"; +})(PortVisibility || (PortVisibility = {})); +/** + * Defines the constraints to Enables / Disables some features of Snapping. + * None - Snapping does not happen + * ShowHorizontalLines - Displays only the horizontal gridlines in diagram. + * ShowVerticalLines - Displays only the Vertical gridlines in diagram. + * ShowLines - Display both Horizontal and Vertical gridlines. + * SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines. + * SnapToVerticalLines - Enables the object to snap only with horizontal gridlines. + * SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines. + * snapToObject - Enables the object to snap with the other objects in the diagram. + * + * @IgnoreSingular + * @aspNumberEnum + */ +var SnapConstraints; +(function (SnapConstraints) { + /** None - Snapping does not happen */ + SnapConstraints[SnapConstraints["None"] = 0] = "None"; + /** ShowHorizontalLines - Displays only the horizontal gridlines in diagram. */ + SnapConstraints[SnapConstraints["ShowHorizontalLines"] = 1] = "ShowHorizontalLines"; + /** ShowVerticalLines - Displays only the Vertical gridlines in diagram */ + SnapConstraints[SnapConstraints["ShowVerticalLines"] = 2] = "ShowVerticalLines"; + /** ShowLines - Display both Horizontal and Vertical gridlines */ + SnapConstraints[SnapConstraints["ShowLines"] = 3] = "ShowLines"; + /** SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines */ + SnapConstraints[SnapConstraints["SnapToHorizontalLines"] = 4] = "SnapToHorizontalLines"; + /** SnapToVerticalLines - Enables the object to snap only with horizontal gridlines */ + SnapConstraints[SnapConstraints["SnapToVerticalLines"] = 8] = "SnapToVerticalLines"; + /** SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines */ + SnapConstraints[SnapConstraints["SnapToLines"] = 12] = "SnapToLines"; + /** SnapToObject - Enables the object to snap with the other objects in the diagram. */ + SnapConstraints[SnapConstraints["SnapToObject"] = 16] = "SnapToObject"; + /** Shows gridlines and enables snapping */ + SnapConstraints[SnapConstraints["All"] = 31] = "All"; +})(SnapConstraints || (SnapConstraints = {})); +/** + * Defines the visibility of the selector handles + * None - Hides all the selector elements + * ConnectorSourceThumb - Shows/hides the source thumb of the connector + * ConnectorTargetThumb - Shows/hides the target thumb of the connector + * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector + * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector + * ResizeNorthEast - Shows/hides the top right resize handle of the selector + * ResizeNorthWest - Shows/hides the top left resize handle of the selector + * ResizeEast - Shows/hides the middle right resize handle of the selector + * ResizeWest - Shows/hides the middle left resize handle of the selector + * ResizeSouth - Shows/hides the bottom center resize handle of the selector + * ResizeNorth - Shows/hides the top center resize handle of the selector + * Rotate - Shows/hides the rotate handle of the selector + * UserHandles - Shows/hides the user handles of the selector + * Resize - Shows/hides all resize handles of the selector + * + * @aspNumberEnum + * @IgnoreSingular + */ +var SelectorConstraints; +(function (SelectorConstraints) { + /** Hides all the selector elements */ + SelectorConstraints[SelectorConstraints["None"] = 1] = "None"; + /** Shows/hides the source thumb of the connector */ + SelectorConstraints[SelectorConstraints["ConnectorSourceThumb"] = 2] = "ConnectorSourceThumb"; + /** Shows/hides the target thumb of the connector */ + SelectorConstraints[SelectorConstraints["ConnectorTargetThumb"] = 4] = "ConnectorTargetThumb"; + /** Shows/hides the bottom right resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeSouthEast"] = 8] = "ResizeSouthEast"; + /** Shows/hides the bottom left resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeSouthWest"] = 16] = "ResizeSouthWest"; + /** Shows/hides the top right resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeNorthEast"] = 32] = "ResizeNorthEast"; + /** Shows/hides the top left resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeNorthWest"] = 64] = "ResizeNorthWest"; + /** Shows/hides the middle right resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeEast"] = 128] = "ResizeEast"; + /** Shows/hides the middle left resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeWest"] = 256] = "ResizeWest"; + /** Shows/hides the bottom center resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeSouth"] = 512] = "ResizeSouth"; + /** Shows/hides the top center resize handle of the selector */ + SelectorConstraints[SelectorConstraints["ResizeNorth"] = 1024] = "ResizeNorth"; + /** Shows/hides the rotate handle of the selector */ + SelectorConstraints[SelectorConstraints["Rotate"] = 2048] = "Rotate"; + /** Shows/hides the user handles of the selector */ + SelectorConstraints[SelectorConstraints["UserHandle"] = 4096] = "UserHandle"; + /** Shows/hides the default tooltip of nodes and connectors */ + SelectorConstraints[SelectorConstraints["ToolTip"] = 8192] = "ToolTip"; + /** Shows/hides all resize handles of the selector */ + SelectorConstraints[SelectorConstraints["ResizeAll"] = 2046] = "ResizeAll"; + /** Shows all handles of the selector */ + SelectorConstraints[SelectorConstraints["All"] = 16382] = "All"; +})(SelectorConstraints || (SelectorConstraints = {})); +/** + * Defines the connection point of the connectors in the layout + * SamePoint - Connectors will connect with same point in the layout + * DifferentPoint - Connectors will connect with different points in the layout + */ +var ConnectionPointOrigin; +(function (ConnectionPointOrigin) { + /** SamePoint - Connectors will connect with same point in the layout */ + ConnectionPointOrigin["SamePoint"] = "SamePoint"; + /** DifferentPoint - Connectors will connect with different points in the layout */ + ConnectionPointOrigin["DifferentPoint"] = "DifferentPoint"; +})(ConnectionPointOrigin || (ConnectionPointOrigin = {})); +/** + * Defines the child nodes need to arranged in linear manner in layout + * Linear - Child nodes will be arranged in linear manner + * Nonlinear - Child nodes will be arranged in not linear manner + */ +var ChildArrangement; +(function (ChildArrangement) { + /** Linear - Child nodes will be arranged in linear manner */ + ChildArrangement["Linear"] = "Linear"; + /** Nonlinear - Child nodes will be arranged in not linear manner */ + ChildArrangement["Nonlinear"] = "Nonlinear"; +})(ChildArrangement || (ChildArrangement = {})); +/** + * Defines the constraints to enable/disable certain features of connector. + * * None - Interaction of the connectors cannot be done. + * * Select - Selects the connector. + * * Delete - Delete the connector. + * * Drag - Drag the connector. + * * DragSourceEnd - Drag the source end of the connector. + * * DragTargetEnd - Drag the target end of the connector. + * * DragSegmentThump - Drag the segment thumb of the connector. + * * AllowDrop - Allow to drop a node. + * * Bridging - Creates bridge on intersection of two connectors. + * * BridgeObstacle - + * * InheritBridging - Creates bridge on intersection of two connectors. + * * PointerEvents - Sets the pointer events. + * * Tooltip - Displays a tooltip for the connectors. + * * InheritToolTip - Displays a tooltip for the connectors. + * * Interaction - Features of the connector used for interaction. + * * ReadOnly - Enables ReadOnly + * * Default - Default features of the connector. + * + * @aspNumberEnum + * @IgnoreSingular + */ +var ConnectorConstraints; +(function (ConnectorConstraints) { + /** Disable all connector Constraints. */ + ConnectorConstraints[ConnectorConstraints["None"] = 1] = "None"; + /** Enables connector to be selected. */ + ConnectorConstraints[ConnectorConstraints["Select"] = 2] = "Select"; + /** Enables connector to be Deleted. */ + ConnectorConstraints[ConnectorConstraints["Delete"] = 4] = "Delete"; + /** Enables connector to be Dragged. */ + ConnectorConstraints[ConnectorConstraints["Drag"] = 8] = "Drag"; + /** Enables connectors source end to be selected. */ + ConnectorConstraints[ConnectorConstraints["DragSourceEnd"] = 16] = "DragSourceEnd"; + /** Enables connectors target end to be selected. */ + ConnectorConstraints[ConnectorConstraints["DragTargetEnd"] = 32] = "DragTargetEnd"; + /** Enables control point and end point of every segment in a connector for editing. */ + ConnectorConstraints[ConnectorConstraints["DragSegmentThumb"] = 64] = "DragSegmentThumb"; + /** Enables AllowDrop constraints to the connector. */ + ConnectorConstraints[ConnectorConstraints["AllowDrop"] = 128] = "AllowDrop"; + /** Enables bridging to the connector. */ + ConnectorConstraints[ConnectorConstraints["Bridging"] = 256] = "Bridging"; + /** Enables or Disables Bridge Obstacles with overlapping of connectors. */ + ConnectorConstraints[ConnectorConstraints["BridgeObstacle"] = 512] = "BridgeObstacle"; + /** Enables bridging to the connector. */ + ConnectorConstraints[ConnectorConstraints["InheritBridging"] = 1024] = "InheritBridging"; + /** Used to set the pointer events. */ + ConnectorConstraints[ConnectorConstraints["PointerEvents"] = 2048] = "PointerEvents"; + /** Enables or disables tool tip for the connectors */ + ConnectorConstraints[ConnectorConstraints["Tooltip"] = 4096] = "Tooltip"; + /** Enables or disables tool tip for the connectors */ + ConnectorConstraints[ConnectorConstraints["InheritTooltip"] = 8192] = "InheritTooltip"; + /** Enables Interaction. */ + ConnectorConstraints[ConnectorConstraints["Interaction"] = 4218] = "Interaction"; + /** Enables ReadOnly */ + ConnectorConstraints[ConnectorConstraints["ReadOnly"] = 16384] = "ReadOnly"; + /** Enables or disables routing to the connector. */ + ConnectorConstraints[ConnectorConstraints["LineRouting"] = 32768] = "LineRouting"; + /** Enables or disables routing to the connector. */ + ConnectorConstraints[ConnectorConstraints["InheritLineRouting"] = 65536] = "InheritLineRouting"; + /** Enables or disables near node padding to the connector. */ + ConnectorConstraints[ConnectorConstraints["ConnectToNearByNode"] = 131072] = "ConnectToNearByNode"; + /** Enables or disables near port padding to the connector. */ + ConnectorConstraints[ConnectorConstraints["ConnectToNearByPort"] = 262144] = "ConnectToNearByPort"; + /** Enables or disables Enables or disables near port and node padding to the connector. */ + ConnectorConstraints[ConnectorConstraints["ConnectToNearByElement"] = 393216] = "ConnectToNearByElement"; + /** Enables all constraints. */ + ConnectorConstraints[ConnectorConstraints["Default"] = 470590] = "Default"; +})(ConnectorConstraints || (ConnectorConstraints = {})); +/** + * Enables/Disables the annotation constraints + * ReadOnly - Enables/Disables the ReadOnly Constraints + * InheritReadOnly - Enables/Disables the InheritReadOnly Constraints + * Select -Enables/Disable select support for the annotation + * Drag - Enables/Disable drag support for the annotation + * Resize - Enables/Disable resize support for the annotation + * Rotate - Enables/Disable rotate support for the annotation + * Interaction - Enables annotation to inherit the interaction option + * None - Disable all annotation constraints + * + * @aspNumberEnum + * @IgnoreSingular + */ +var AnnotationConstraints; +(function (AnnotationConstraints) { + /** Enables/Disables the ReadOnly Constraints */ + AnnotationConstraints[AnnotationConstraints["ReadOnly"] = 2] = "ReadOnly"; + /** Enables/Disables the InheritReadOnly Constraints */ + AnnotationConstraints[AnnotationConstraints["InheritReadOnly"] = 4] = "InheritReadOnly"; + /** Enables/Disable select support for the annotation */ + AnnotationConstraints[AnnotationConstraints["Select"] = 8] = "Select"; + /** Enables/Disable drag support for the annotation */ + AnnotationConstraints[AnnotationConstraints["Drag"] = 16] = "Drag"; + /** Enables/Disable resize support for the annotation */ + AnnotationConstraints[AnnotationConstraints["Resize"] = 32] = "Resize"; + /** Enables/Disable rotate support for the annotation */ + AnnotationConstraints[AnnotationConstraints["Rotate"] = 64] = "Rotate"; + /** Enables annotation to inherit the interaction option */ + AnnotationConstraints[AnnotationConstraints["Interaction"] = 120] = "Interaction"; + /** Disable all annotation Constraints */ + AnnotationConstraints[AnnotationConstraints["None"] = 0] = "None"; +})(AnnotationConstraints || (AnnotationConstraints = {})); +/** + * Enables/Disables certain features of node + * None - Disable all node Constraints + * Select - Enables node to be selected + * Drag - Enables node to be Dragged + * Rotate - Enables node to be Rotate + * Shadow - Enables node to display shadow + * PointerEvents - Enables node to provide pointer option + * Delete - Enables node to delete + * InConnect - Enables node to provide in connect option + * OutConnect - Enables node to provide out connect option + * Individual - Enables node to provide individual resize option + * Expandable - Enables node to provide Expandable option + * AllowDrop - Enables node to provide allow to drop option + * Inherit - Enables node to inherit the interaction option + * ResizeNorthEast - Enable ResizeNorthEast of the node + * ResizeEast - Enable ResizeEast of the node + * ResizeSouthEast - Enable ResizeSouthEast of the node + * ResizeSouth - Enable ResizeSouthWest of the node + * ResizeSouthWest - Enable ResizeSouthWest of the node + * ResizeSouth - Enable ResizeSouth of the node + * ResizeSouthWest - Enable ResizeSouthWest of the node + * ResizeWest - Enable ResizeWest of the node + * ResizeNorth - Enable ResizeNorth of the node + * Resize - Enables the Aspect ratio fo the node + * AspectRatio - Enables the Aspect ratio fo the node + * Tooltip - Enables or disables tool tip for the Nodes + * InheritTooltip - Enables or disables tool tip for the Nodes + * ReadOnly - Enables the ReadOnly support for Annotation + * Default - Enables all constraints + * + * @aspNumberEnum + * @IgnoreSingular + */ +var NodeConstraints; +(function (NodeConstraints) { + /** Disable all node Constraints. */ + NodeConstraints[NodeConstraints["None"] = 0] = "None"; + /** Enables node to be selected. */ + NodeConstraints[NodeConstraints["Select"] = 2] = "Select"; + /** Enables node to be Dragged. */ + NodeConstraints[NodeConstraints["Drag"] = 4] = "Drag"; + /** Enables node to be Rotate. */ + NodeConstraints[NodeConstraints["Rotate"] = 8] = "Rotate"; + /** Enables node to display shadow. */ + NodeConstraints[NodeConstraints["Shadow"] = 16] = "Shadow"; + /** Enables node to provide pointer option */ + NodeConstraints[NodeConstraints["PointerEvents"] = 32] = "PointerEvents"; + /** Enables node to delete */ + NodeConstraints[NodeConstraints["Delete"] = 64] = "Delete"; + /** Enables node to provide in connect option */ + NodeConstraints[NodeConstraints["InConnect"] = 128] = "InConnect"; + /** Enables node to provide out connect option */ + NodeConstraints[NodeConstraints["OutConnect"] = 256] = "OutConnect"; + /** Enables node to provide individual resize option */ + NodeConstraints[NodeConstraints["Individual"] = 512] = "Individual"; + /** Enables node to provide Expandable option */ + NodeConstraints[NodeConstraints["Expandable"] = 1024] = "Expandable"; + /** Enables node to provide allow to drop option */ + NodeConstraints[NodeConstraints["AllowDrop"] = 2048] = "AllowDrop"; + /** Enables node to inherit the interaction option */ + NodeConstraints[NodeConstraints["Inherit"] = 78] = "Inherit"; + /** Enable ResizeNorthEast of the node */ + NodeConstraints[NodeConstraints["ResizeNorthEast"] = 4096] = "ResizeNorthEast"; + /** Enable ResizeEast of the node */ + NodeConstraints[NodeConstraints["ResizeEast"] = 8192] = "ResizeEast"; + /** Enable ResizeSouthEast of the node */ + NodeConstraints[NodeConstraints["ResizeSouthEast"] = 16384] = "ResizeSouthEast"; + /** Enable ResizeSouth of the node */ + NodeConstraints[NodeConstraints["ResizeSouth"] = 32768] = "ResizeSouth"; + /** Enable ResizeSouthWest of the node */ + NodeConstraints[NodeConstraints["ResizeSouthWest"] = 65536] = "ResizeSouthWest"; + /** Enable ResizeWest of the node */ + NodeConstraints[NodeConstraints["ResizeWest"] = 131072] = "ResizeWest"; + /** Enable ResizeNorthWest of the node */ + NodeConstraints[NodeConstraints["ResizeNorthWest"] = 262144] = "ResizeNorthWest"; + /** Enable ResizeNorth of the node */ + NodeConstraints[NodeConstraints["ResizeNorth"] = 524288] = "ResizeNorth"; + /** Enable Resize of the node */ + NodeConstraints[NodeConstraints["Resize"] = 1044480] = "Resize"; + /** Enables the Aspect ratio fo the node */ + NodeConstraints[NodeConstraints["AspectRatio"] = 1048576] = "AspectRatio"; + /** Enables or disables tool tip for the Nodes */ + NodeConstraints[NodeConstraints["Tooltip"] = 2097152] = "Tooltip"; + /** Enables or disables tool tip for the Nodes */ + NodeConstraints[NodeConstraints["InheritTooltip"] = 4194304] = "InheritTooltip"; + /** Enables the ReadOnly support for Annotation */ + NodeConstraints[NodeConstraints["ReadOnly"] = 8388608] = "ReadOnly"; + /** hide all resize support for node */ + NodeConstraints[NodeConstraints["HideThumbs"] = 16777216] = "HideThumbs"; + /** Enables or disables child in parent for the swimLane node */ + NodeConstraints[NodeConstraints["AllowMovingOutsideLane"] = 33554432] = "AllowMovingOutsideLane"; + /** Enables all constraints */ + NodeConstraints[NodeConstraints["Default"] = 5240814] = "Default"; +})(NodeConstraints || (NodeConstraints = {})); +/** Enables/Disables The element actions + * None - Diables all element actions are none + * ElementIsPort - Enable element action is port + * ElementIsGroup - Enable element action as Group + * + * @private + */ +var ElementAction; +(function (ElementAction) { + /** Disables all element actions are none */ + ElementAction[ElementAction["None"] = 0] = "None"; + /** Enable the element action is Port */ + ElementAction[ElementAction["ElementIsPort"] = 2] = "ElementIsPort"; + /** Enable the element action as Group */ + ElementAction[ElementAction["ElementIsGroup"] = 4] = "ElementIsGroup"; + /** Enable the element action if swimlaneHeader is rendered */ + ElementAction[ElementAction["HorizontalLaneHeader"] = 8] = "HorizontalLaneHeader"; +})(ElementAction || (ElementAction = {})); +/** Enables/Disables the handles of the selector + * Rotate - Enable Rotate Thumb + * ConnectorSource - Enable Connector source point + * ConnectorTarget - Enable Connector target point + * ResizeNorthEast - Enable ResizeNorthEast Resize + * ResizeEast - Enable ResizeEast Resize + * ResizeSouthEast - Enable ResizeSouthEast Resize + * ResizeSouth - Enable ResizeSouth Resize + * ResizeSouthWest - Enable ResizeSouthWest Resize + * ResizeWest - Enable ResizeWest Resize + * ResizeNorthWest - Enable ResizeNorthWest Resize + * ResizeNorth - Enable ResizeNorth Resize + * Default - Enables all constraints + * + * @private + */ +var ThumbsConstraints; +(function (ThumbsConstraints) { + /** Enable Rotate Thumb */ + ThumbsConstraints[ThumbsConstraints["Rotate"] = 2] = "Rotate"; + /** Enable Connector source point */ + ThumbsConstraints[ThumbsConstraints["ConnectorSource"] = 4] = "ConnectorSource"; + /** Enable Connector target point */ + ThumbsConstraints[ThumbsConstraints["ConnectorTarget"] = 8] = "ConnectorTarget"; + /** Enable ResizeNorthEast Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeNorthEast"] = 16] = "ResizeNorthEast"; + /** Enable ResizeEast Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeEast"] = 32] = "ResizeEast"; + /** Enable ResizeSouthEast Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeSouthEast"] = 64] = "ResizeSouthEast"; + /** Enable ResizeSouth Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeSouth"] = 128] = "ResizeSouth"; + /** Enable ResizeSouthWest Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeSouthWest"] = 256] = "ResizeSouthWest"; + /** Enable ResizeWest Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeWest"] = 512] = "ResizeWest"; + /** Enable ResizeNorthWest Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeNorthWest"] = 1024] = "ResizeNorthWest"; + /** Enable ResizeNorth Resize */ + ThumbsConstraints[ThumbsConstraints["ResizeNorth"] = 2048] = "ResizeNorth"; + /** Enables all constraints */ + ThumbsConstraints[ThumbsConstraints["Default"] = 4094] = "Default"; +})(ThumbsConstraints || (ThumbsConstraints = {})); +/** + * Enables/Disables certain features of diagram + * None - Disable DiagramConstraints constraints + * Bridging - Enables/Disable Bridging support for connector + * UndoRedo - Enables/Disable the Undo/Redo support + * Tooltip - Enables/Disable Tooltip support + * UserInteraction - Enables/Disable UserInteraction support for the diagram + * ApiUpdate - Enables/Disable ApiUpdate support for the diagram + * PageEditable - Enables/Disable PageEditable support for the diagram + * Zoom - Enables/Disable Zoom support for the diagram + * PanX - Enables/Disable PanX support for the diagram + * PanY - Enables/Disable PanY support for the diagram + * Pan - Enables/Disable Pan support the diagram + * ZoomTextEdit - Enables/Disables zooming the text box while editing the text + * Virtualization - Enables/Disable Virtualization support the diagram + * Default - Enables/Disable all constraints + * + * @aspNumberEnum + * @IgnoreSingular + */ +var DiagramConstraints; +(function (DiagramConstraints) { + /** Disable DiagramConstraints constraints */ + DiagramConstraints[DiagramConstraints["None"] = 1] = "None"; + /** Enables/Disable Bridging support for connector */ + DiagramConstraints[DiagramConstraints["Bridging"] = 2] = "Bridging"; + /** Enables/Disable the Undo/Redo support */ + DiagramConstraints[DiagramConstraints["UndoRedo"] = 4] = "UndoRedo"; + /** Enables/Disable Tooltip support */ + DiagramConstraints[DiagramConstraints["Tooltip"] = 8] = "Tooltip"; + /** Enables/Disable UserInteraction support for the diagram */ + DiagramConstraints[DiagramConstraints["UserInteraction"] = 16] = "UserInteraction"; + /** Enables/Disable ApiUpdate support for the diagram */ + DiagramConstraints[DiagramConstraints["ApiUpdate"] = 32] = "ApiUpdate"; + /** Enables/Disable PageEditable support for the diagram */ + DiagramConstraints[DiagramConstraints["PageEditable"] = 48] = "PageEditable"; + /** Enables/Disable Zoom support for the diagram */ + DiagramConstraints[DiagramConstraints["Zoom"] = 64] = "Zoom"; + /** Enables/Disable PanX support for the diagram */ + DiagramConstraints[DiagramConstraints["PanX"] = 128] = "PanX"; + /** Enables/Disable PanY support for the diagram */ + DiagramConstraints[DiagramConstraints["PanY"] = 256] = "PanY"; + /** Enables/Disable Pan support the diagram */ + DiagramConstraints[DiagramConstraints["Pan"] = 384] = "Pan"; + /** Enables/Disables zooming the text box while editing the text */ + DiagramConstraints[DiagramConstraints["ZoomTextEdit"] = 512] = "ZoomTextEdit"; + /** Enables/Disable Virtualization support the diagram */ + DiagramConstraints[DiagramConstraints["Virtualization"] = 1024] = "Virtualization"; + /** Enables/ Disable the line routing */ + DiagramConstraints[DiagramConstraints["LineRouting"] = 2048] = "LineRouting"; + /** Enables/Disable all constraints */ + DiagramConstraints[DiagramConstraints["Default"] = 500] = "Default"; +})(DiagramConstraints || (DiagramConstraints = {})); +/** + * Activates the diagram tools + * None - Enables/Disable single select support for the diagram + * SingleSelect - Enables/Disable single select support for the diagram + * MultipleSelect - Enables/Disable MultipleSelect select support for the diagram + * ZoomPan - Enables/Disable ZoomPan support for the diagram + * DrawOnce - Enables/Disable continuousDraw support for the diagram + * ContinuousDraw - Enables/Disable continuousDraw support for the diagram + * Default - Enables/Disable all constraints + * + * @aspNumberEnum + * @IgnoreSingular + */ +var DiagramTools; +(function (DiagramTools) { + /** Disable all constraints */ + DiagramTools[DiagramTools["None"] = 0] = "None"; + /** Enables/Disable single select support for the diagram */ + DiagramTools[DiagramTools["SingleSelect"] = 1] = "SingleSelect"; + /** Enables/Disable MultipleSelect select support for the diagram */ + DiagramTools[DiagramTools["MultipleSelect"] = 2] = "MultipleSelect"; + /** Enables/Disable ZoomPan support for the diagram */ + DiagramTools[DiagramTools["ZoomPan"] = 4] = "ZoomPan"; + /** Enables/Disable DrawOnce support for the diagram */ + DiagramTools[DiagramTools["DrawOnce"] = 8] = "DrawOnce"; + /** Enables/Disable continuousDraw support for the diagram */ + DiagramTools[DiagramTools["ContinuousDraw"] = 16] = "ContinuousDraw"; + /** Enables/Disable all constraints */ + DiagramTools[DiagramTools["Default"] = 3] = "Default"; +})(DiagramTools || (DiagramTools = {})); +/** + * Defines the container/canvas transform + * Self - Sets the transform type as Self + * Parent - Sets the transform type as Parent + */ +var Transform; +(function (Transform) { + /** Self - Sets the transform type as Self */ + Transform[Transform["Self"] = 1] = "Self"; + /** Parent - Sets the transform type as Parent */ + Transform[Transform["Parent"] = 2] = "Parent"; +})(Transform || (Transform = {})); +/** + * Defines the rendering mode for diagram + * Canvas - Sets the rendering mode type as Canvas + * Svg - Sets the rendering mode type as Svg + */ +var RenderMode; +(function (RenderMode) { + /** Canvas - Sets the rendering mode type as Canvas */ + RenderMode[RenderMode["Canvas"] = 0] = "Canvas"; + /** Svg - Sets the rendering mode type as Svg */ + RenderMode[RenderMode["Svg"] = 1] = "Svg"; +})(RenderMode || (RenderMode = {})); +/** + * Sets a combination of key modifiers, on recognition of which the command will be executed.They are + * * None - no modifiers are pressed + * * Control - ctrl key + * * Meta - meta key im mac + * * Alt - alt key + * * Shift - shift key + * + * @aspNumberEnum + * @IgnoreSingular + */ +var KeyModifiers; +(function (KeyModifiers) { + /** No modifiers are pressed */ + KeyModifiers[KeyModifiers["None"] = 0] = "None"; + /** The CTRL key */ + KeyModifiers[KeyModifiers["Control"] = 1] = "Control"; + /** The Meta key pressed in Mac */ + KeyModifiers[KeyModifiers["Meta"] = 1] = "Meta"; + /** The ALT key */ + KeyModifiers[KeyModifiers["Alt"] = 2] = "Alt"; + /** The Shift key */ + KeyModifiers[KeyModifiers["Shift"] = 4] = "Shift"; +})(KeyModifiers || (KeyModifiers = {})); +/** + * Sets the key value, on recognition of which the command will be executed. They are + * * none - no key + * * Number0 = The 0 key + * * Number1 = The 1 key + * * Number2 = The 2 key + * * Number3 = The 3 key + * * Number4 = The 4 key + * * Number5 = The 5 key + * * Number6 = The 6 key + * * Number7 = The 7 key + * * Number8 = The 8 key + * * Number9 = The 9 key + * * Number0 = The 0 key + * * BackSpace = The BackSpace key + * * F1 = The f1 key + * * F2 = The f2 key + * * F3 = The f3 key + * * F4 = The f4 key + * * F5 = The f5 key + * * F6 = The f6 key + * * F7 = The f7 key + * * F8 = The f8 key + * * F9 = The f9 key + * * F10 = The f10 key + * * F11 = The f11 key + * * F12 = The f12 key + * * A = The a key + * * B = The b key + * * C = The c key + * * D = The d key + * * E = The e key + * * F = The f key + * * G = The g key + * * H = The h key + * * I = The i key + * * J = The j key + * * K = The k key + * * L = The l key + * * M = The m key + * * N = The n key + * * O = The o key + * * P = The p key + * * Q = The q key + * * R = The r key + * * S = The s key + * * T = The t key + * * U = The u key + * * V = The v key + * * W = The w key + * * X = The x key + * * Y = The y key + * * Z = The z key + * * Left = The left key + * * Right = The right key + * * Top = The top key + * * Bottom = The bottom key + * * Escape = The Escape key + * * Tab = The tab key + * * Delete = The delete key + * * Enter = The enter key + * * The Space key + * * The page up key + * * The page down key + * * The end key + * * The home key + * * The Minus + * * The Plus + * * The Star + * + * @aspNumberEnum + * @IgnoreSingular + */ +var Keys; +(function (Keys) { + /** No key pressed */ + Keys[Keys["None"] = null] = "None"; + /** The 0 key */ + Keys[Keys["Number0"] = 0] = "Number0"; + /** The 1 key */ + Keys[Keys["Number1"] = 1] = "Number1"; + /** The 2 key */ + Keys[Keys["Number2"] = 2] = "Number2"; + /** The 3 key */ + Keys[Keys["Number3"] = 3] = "Number3"; + /** The 4 key */ + Keys[Keys["Number4"] = 4] = "Number4"; + /** The 5 key */ + Keys[Keys["Number5"] = 5] = "Number5"; + /** The 6 key */ + Keys[Keys["Number6"] = 6] = "Number6"; + /** The 7 key */ + Keys[Keys["Number7"] = 7] = "Number7"; + /** The 8 key */ + Keys[Keys["Number8"] = 8] = "Number8"; + /** The 9 key */ + Keys[Keys["Number9"] = 9] = "Number9"; + /** The A key */ + Keys[Keys["A"] = 65] = "A"; + /** The B key */ + Keys[Keys["B"] = 66] = "B"; + /** The C key */ + Keys[Keys["C"] = 67] = "C"; + /** The D key */ + Keys[Keys["D"] = 68] = "D"; + /** The E key */ + Keys[Keys["E"] = 69] = "E"; + /** The F key */ + Keys[Keys["F"] = 70] = "F"; + /** The G key */ + Keys[Keys["G"] = 71] = "G"; + /** The H key */ + Keys[Keys["H"] = 72] = "H"; + /** The I key */ + Keys[Keys["I"] = 73] = "I"; + /** The J key */ + Keys[Keys["J"] = 74] = "J"; + /** The K key */ + Keys[Keys["K"] = 75] = "K"; + /** The L key */ + Keys[Keys["L"] = 76] = "L"; + /** The M key */ + Keys[Keys["M"] = 77] = "M"; + /** The N key */ + Keys[Keys["N"] = 78] = "N"; + /** The O key */ + Keys[Keys["O"] = 79] = "O"; + /** The P key */ + Keys[Keys["P"] = 80] = "P"; + /** The Q key */ + Keys[Keys["Q"] = 81] = "Q"; + /** The R key */ + Keys[Keys["R"] = 82] = "R"; + /** The S key */ + Keys[Keys["S"] = 83] = "S"; + /** The T key */ + Keys[Keys["T"] = 84] = "T"; + /** The U key */ + Keys[Keys["U"] = 85] = "U"; + /** The V key */ + Keys[Keys["V"] = 86] = "V"; + /** The W key */ + Keys[Keys["W"] = 87] = "W"; + /** The X key */ + Keys[Keys["X"] = 88] = "X"; + /** The Y key */ + Keys[Keys["Y"] = 89] = "Y"; + /** The Z key */ + Keys[Keys["Z"] = 90] = "Z"; + /** The left arrow key */ + Keys[Keys["Left"] = 37] = "Left"; + /** The up arrow key */ + Keys[Keys["Up"] = 38] = "Up"; + /** The right arrow key */ + Keys[Keys["Right"] = 39] = "Right"; + /** The down arrow key */ + Keys[Keys["Down"] = 40] = "Down"; + /** The Escape key */ + Keys[Keys["Escape"] = 27] = "Escape"; + /** The Space key */ + Keys[Keys["Space"] = 32] = "Space"; + /** The page up key */ + Keys[Keys["PageUp"] = 33] = "PageUp"; + /** The Space key */ + Keys[Keys["PageDown"] = 34] = "PageDown"; + /** The Space key */ + Keys[Keys["End"] = 35] = "End"; + /** The Space key */ + Keys[Keys["Home"] = 36] = "Home"; + /** The delete key */ + Keys[Keys["Delete"] = 46] = "Delete"; + /** The tab key */ + Keys[Keys["Tab"] = 9] = "Tab"; + /** The enter key */ + Keys[Keys["Enter"] = 13] = "Enter"; + /** The BackSpace key */ + Keys[Keys["BackSpace"] = 8] = "BackSpace"; + /** The F1 key */ + Keys[Keys["F1"] = 112] = "F1"; + /** The F2 key */ + Keys[Keys["F2"] = 113] = "F2"; + /** The F3 key */ + Keys[Keys["F3"] = 114] = "F3"; + /** The F4 key */ + Keys[Keys["F4"] = 115] = "F4"; + /** The F5 key */ + Keys[Keys["F5"] = 116] = "F5"; + /** The F6 key */ + Keys[Keys["F6"] = 117] = "F6"; + /** The F7 key */ + Keys[Keys["F7"] = 118] = "F7"; + /** The F8 key */ + Keys[Keys["F8"] = 119] = "F8"; + /** The F9 key */ + Keys[Keys["F9"] = 120] = "F9"; + /** The F10 key */ + Keys[Keys["F10"] = 121] = "F10"; + /** The F111 key */ + Keys[Keys["F11"] = 122] = "F11"; + /** The F12 key */ + Keys[Keys["F12"] = 123] = "F12"; + /** The Star */ + Keys[Keys["Star"] = 56] = "Star"; + /** The Plus */ + Keys[Keys["Plus"] = 187] = "Plus"; + /** The Minus */ + Keys[Keys["Minus"] = 189] = "Minus"; +})(Keys || (Keys = {})); +/** + * Enables/Disables certain actions of diagram + * * Render - Indicates the diagram is in render state. + * * PublicMethod - Indicates the diagram public method is in action. + * * ToolAction - Indicates the diagram Tool is in action. + * * UndoRedo - Indicates the diagram undo/redo is in action. + * * TextEdit - Indicates the text editing is in progress. + * * Group - Indicates the group is in progress. + * * Clear - Indicates diagram have clear all. + * * PreventClearSelection - prevents diagram from clear selection + */ +var DiagramAction; +(function (DiagramAction) { + /** Indicates the diagram is in render state.r */ + DiagramAction[DiagramAction["Render"] = 2] = "Render"; + /** Indicates the diagram public method is in action. */ + DiagramAction[DiagramAction["PublicMethod"] = 4] = "PublicMethod"; + /** Indicates the diagram Tool is in action. */ + DiagramAction[DiagramAction["ToolAction"] = 8] = "ToolAction"; + /** Indicates the diagram undo/redo is in action. */ + DiagramAction[DiagramAction["UndoRedo"] = 16] = "UndoRedo"; + /** Indicates the text editing is in progress. */ + DiagramAction[DiagramAction["TextEdit"] = 32] = "TextEdit"; + /** Indicates the group is in progress. */ + DiagramAction[DiagramAction["Group"] = 64] = "Group"; + /** Indicates diagram have clear all. */ + DiagramAction[DiagramAction["Clear"] = 128] = "Clear"; + /** prevents diagram from clear selection. */ + DiagramAction[DiagramAction["PreventClearSelection"] = 256] = "PreventClearSelection"; + /** Indicates whether drag or rotate tool has been activated */ + DiagramAction[DiagramAction["Interactions"] = 512] = "Interactions"; + /** Use to prevent the history during some action in diagram */ + DiagramAction[DiagramAction["PreventHistory"] = 1024] = "PreventHistory"; + /** Use to prevent the icon while expand a node in diagram */ + DiagramAction[DiagramAction["PreventIconsUpdate"] = 2048] = "PreventIconsUpdate"; + /** Use to prevent the collection change event while dragging lane from palette and over it in diagram */ + DiagramAction[DiagramAction["PreventCollectionChangeOnDragOver"] = 4096] = "PreventCollectionChangeOnDragOver"; + /** Use to prevent the z order on dragging the diagram elements */ + DiagramAction[DiagramAction["PreventZIndexOnDragging"] = 8192] = "PreventZIndexOnDragging"; + /** Indicates whether group dragging has been activated */ + DiagramAction[DiagramAction["isGroupDragging"] = 16384] = "isGroupDragging"; + /** Indicates whether drag is initiated by mouse */ + DiagramAction[DiagramAction["DragUsingMouse"] = 32768] = "DragUsingMouse"; + /** Indicates whether decorator property is changed or not */ + DiagramAction[DiagramAction["DecoratorPropertyChange"] = 65536] = "DecoratorPropertyChange"; + /** Avoid dropping of child nodes into the swim lane */ + DiagramAction[DiagramAction["PreventLaneContainerUpdate"] = 131072] = "PreventLaneContainerUpdate"; +})(DiagramAction || (DiagramAction = {})); +/** + * Defines the Selector type to be drawn + * None - Draws Normal selector with resize handles + * Symbol - Draws only the rectangle for the selector + */ +var RendererAction; +(function (RendererAction) { + /** None - Draws Normal selector with resize handles */ + RendererAction[RendererAction["None"] = 2] = "None"; + /** DrawSelectorBorder - Draws only the Border for the selector */ + RendererAction[RendererAction["DrawSelectorBorder"] = 4] = "DrawSelectorBorder"; + /** PreventRenderSelector - Avoid the render of selector during interaction */ + RendererAction[RendererAction["PreventRenderSelector"] = 8] = "PreventRenderSelector"; +})(RendererAction || (RendererAction = {})); +var RealAction; +(function (RealAction) { + RealAction[RealAction["None"] = 0] = "None"; + RealAction[RealAction["PreventDrag"] = 2] = "PreventDrag"; + RealAction[RealAction["PreventScale"] = 4] = "PreventScale"; + RealAction[RealAction["PreventDataInit"] = 8] = "PreventDataInit"; + /** Indicates when the diagram is scrolled horizontal using scroll bar */ + RealAction[RealAction["hScrollbarMoved"] = 16] = "hScrollbarMoved"; + /** Indicates when the diagram is scrolled vertical using scroll bar */ + RealAction[RealAction["vScrollbarMoved"] = 32] = "vScrollbarMoved"; + /** Indicates whether animation happens or not */ + RealAction[RealAction["AnimationClick"] = 64] = "AnimationClick"; + /** Enable the group action */ + RealAction[RealAction["EnableGroupAction"] = 128] = "EnableGroupAction"; + /** Indicate action in Progress */ + RealAction[RealAction["PanInProgress"] = 256] = "PanInProgress"; + /** Indicate overview action */ + RealAction[RealAction["OverViewAction"] = 512] = "OverViewAction"; +})(RealAction || (RealAction = {})); +/** @private */ +var ScrollActions; +(function (ScrollActions) { + ScrollActions[ScrollActions["None"] = 0] = "None"; + /** Indicates when the scroll properties are changed using property change */ + ScrollActions[ScrollActions["PropertyChange"] = 1024] = "PropertyChange"; + /** Indicates when the scroll properties are changed using interaction */ + ScrollActions[ScrollActions["Interaction"] = 2048] = "Interaction"; +})(ScrollActions || (ScrollActions = {})); +/** @private */ +var NoOfSegments; +(function (NoOfSegments) { + NoOfSegments[NoOfSegments["Zero"] = 0] = "Zero"; + NoOfSegments[NoOfSegments["One"] = 1] = "One"; + NoOfSegments[NoOfSegments["Two"] = 2] = "Two"; + NoOfSegments[NoOfSegments["Three"] = 3] = "Three"; + NoOfSegments[NoOfSegments["Four"] = 4] = "Four"; + NoOfSegments[NoOfSegments["Five"] = 5] = "Five"; +})(NoOfSegments || (NoOfSegments = {})); +/** + * events of diagram + * + * @private + */ +var DiagramEvent; +(function (DiagramEvent) { + DiagramEvent[DiagramEvent["collectionChange"] = 0] = "collectionChange"; + DiagramEvent[DiagramEvent["rotateChange"] = 1] = "rotateChange"; + DiagramEvent[DiagramEvent["positionChange"] = 2] = "positionChange"; + DiagramEvent[DiagramEvent["propertyChange"] = 3] = "propertyChange"; + DiagramEvent[DiagramEvent["selectionChange"] = 4] = "selectionChange"; + DiagramEvent[DiagramEvent["sizeChange"] = 5] = "sizeChange"; + DiagramEvent[DiagramEvent["drop"] = 6] = "drop"; + DiagramEvent[DiagramEvent["sourcePointChange"] = 7] = "sourcePointChange"; + DiagramEvent[DiagramEvent["targetPointChange"] = 8] = "targetPointChange"; + DiagramEvent[DiagramEvent["connectionChange"] = 9] = "connectionChange"; + DiagramEvent[DiagramEvent["animationComplete"] = 10] = "animationComplete"; + DiagramEvent[DiagramEvent["click"] = 11] = "click"; + DiagramEvent[DiagramEvent["doubleClick"] = 12] = "doubleClick"; + DiagramEvent[DiagramEvent["scrollChange"] = 13] = "scrollChange"; + DiagramEvent[DiagramEvent["dragEnter"] = 14] = "dragEnter"; + DiagramEvent[DiagramEvent["dragLeave"] = 15] = "dragLeave"; + DiagramEvent[DiagramEvent["dragOver"] = 16] = "dragOver"; + DiagramEvent[DiagramEvent["textEdit"] = 17] = "textEdit"; + DiagramEvent[DiagramEvent["paletteSelectionChange"] = 18] = "paletteSelectionChange"; + DiagramEvent[DiagramEvent["historyChange"] = 19] = "historyChange"; + DiagramEvent[DiagramEvent["mouseEnter"] = 20] = "mouseEnter"; + DiagramEvent[DiagramEvent["mouseLeave"] = 21] = "mouseLeave"; + DiagramEvent[DiagramEvent["mouseOver"] = 22] = "mouseOver"; + DiagramEvent[DiagramEvent["expandStateChange"] = 23] = "expandStateChange"; + DiagramEvent[DiagramEvent["segmentCollectionChange"] = 24] = "segmentCollectionChange"; + DiagramEvent[DiagramEvent["commandExecute"] = 25] = "commandExecute"; + DiagramEvent[DiagramEvent["historyStateChange"] = 26] = "historyStateChange"; + DiagramEvent[DiagramEvent["onUserHandleMouseDown"] = 27] = "onUserHandleMouseDown"; + DiagramEvent[DiagramEvent["onUserHandleMouseUp"] = 28] = "onUserHandleMouseUp"; + DiagramEvent[DiagramEvent["onUserHandleMouseEnter"] = 29] = "onUserHandleMouseEnter"; + DiagramEvent[DiagramEvent["onUserHandleMouseLeave"] = 30] = "onUserHandleMouseLeave"; + DiagramEvent[DiagramEvent["onImageLoad"] = 31] = "onImageLoad"; + DiagramEvent[DiagramEvent["onDoBindingInit"] = 32] = "onDoBindingInit"; + DiagramEvent[DiagramEvent["keyUp"] = 33] = "keyUp"; + DiagramEvent[DiagramEvent["keyDown"] = 34] = "keyDown"; + DiagramEvent[DiagramEvent["fixedUserHandleClick"] = 35] = "fixedUserHandleClick"; + DiagramEvent[DiagramEvent["elementDraw"] = 36] = "elementDraw"; + DiagramEvent[DiagramEvent["mouseWheel"] = 37] = "mouseWheel"; + DiagramEvent[DiagramEvent["segmentChange"] = 38] = "segmentChange"; +})(DiagramEvent || (DiagramEvent = {})); +/** Enables/Disables certain features of port connection + * + * @aspNumberEnum + * @IgnoreSingular + */ +var PortConstraints; +(function (PortConstraints) { + /** Disable all constraints */ + PortConstraints[PortConstraints["None"] = 1] = "None"; + /** Enables connections with connector */ + PortConstraints[PortConstraints["Drag"] = 2] = "Drag"; + /** Enables to create the connection when mouse hover on the port */ + PortConstraints[PortConstraints["Draw"] = 4] = "Draw"; + /** Enables to only connect the target end of connector */ + PortConstraints[PortConstraints["InConnect"] = 8] = "InConnect"; + /** Enables to only connect the source end of connector */ + PortConstraints[PortConstraints["OutConnect"] = 16] = "OutConnect"; + /**Enables or disables the Tooltip for the ports*/ + PortConstraints[PortConstraints["ToolTip"] = 32] = "ToolTip"; + /** Enables or disables the Tooltip for the ports */ + PortConstraints[PortConstraints["InheritTooltip"] = 64] = "InheritTooltip"; + /** Enables all constraints */ + PortConstraints[PortConstraints["Default"] = 24] = "Default"; +})(PortConstraints || (PortConstraints = {})); +/** + * Defines the context menu click + * contextMenuClick - Sets the context menu click as contextMenuClick + */ +var contextMenuClick = +/** contextMenuClick - Sets the context menu click as contextMenuClick */ +'contextMenuClick'; +/** + * Defines the context menu open + * contextMenuOpen - Sets the context menu open as contextMenuOpen + */ +var contextMenuOpen = +/** contextMenuOpen - Sets the context menu open as contextMenuOpen */ +'contextMenuOpen'; +/** + * Defines the context menu Before Item Render + * contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender + */ +var contextMenuBeforeItemRender = +/** contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender */ +'contextMenuBeforeItemRender'; +/** + * Defines the visibility of the control points in the Bezier connector + */ +var ControlPointsVisibility; +(function (ControlPointsVisibility) { + /** None - Hides all the control points of the Bezier connector*/ + ControlPointsVisibility[ControlPointsVisibility["None"] = 1] = "None"; + /** Source - Shows the source control point*/ + ControlPointsVisibility[ControlPointsVisibility["Source"] = 2] = "Source"; + /** Target - Shows the target control point*/ + ControlPointsVisibility[ControlPointsVisibility["Target"] = 4] = "Target"; + /** Intermediate - Shows the intermediate control points*/ + ControlPointsVisibility[ControlPointsVisibility["Intermediate"] = 8] = "Intermediate"; + /** All - Shows all the control points of the Bezier connector*/ + ControlPointsVisibility[ControlPointsVisibility["All"] = 14] = "All"; +})(ControlPointsVisibility || (ControlPointsVisibility = {})); +var BezierSmoothness; +(function (BezierSmoothness) { + /** Disable all smoothness Constraints. */ + BezierSmoothness[BezierSmoothness["None"] = 0] = "None"; + /** Enables the SymmetricAngle for a bezier segment to the angle between the control point as same. */ + BezierSmoothness[BezierSmoothness["SymmetricAngle"] = 2] = "SymmetricAngle"; + /** Enables the SymmetricDistance for bezier segment to the distance between the control point as same. */ + BezierSmoothness[BezierSmoothness["SymmetricDistance"] = 4] = "SymmetricDistance"; + /** Enables the symmetric for bezier segment to the distance and angle between the control point as same. */ + BezierSmoothness[BezierSmoothness["Default"] = 6] = "Default"; +})(BezierSmoothness || (BezierSmoothness = {})); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js ***! + \*********************************************************************/ +/*! exports provided: Diagram, PrintAndExport, Size, Rect, MatrixTypes, Matrix, identityMatrix, transformPointByMatrix, transformPointsByMatrix, rotateMatrix, scaleMatrix, translateMatrix, multiplyMatrix, Point, BlazorAction, PortVisibility, SnapConstraints, SelectorConstraints, ConnectionPointOrigin, ChildArrangement, ConnectorConstraints, AnnotationConstraints, NodeConstraints, ElementAction, ThumbsConstraints, DiagramConstraints, DiagramTools, Transform, RenderMode, KeyModifiers, Keys, DiagramAction, RendererAction, RealAction, ScrollActions, NoOfSegments, DiagramEvent, PortConstraints, contextMenuClick, contextMenuOpen, contextMenuBeforeItemRender, ControlPointsVisibility, BezierSmoothness, Thickness, Margin, Shadow, Stop, Gradient, DiagramGradient, LinearGradient, RadialGradient, ShapeStyle, StrokeStyle, TextStyle, DiagramShapeStyle, DiagramElement, PathElement, ImageElement, TextElement, Container, Canvas, GridPanel, RowDefinition, ColumnDefinition, GridRow, GridCell, StackPanel, findConnectorPoints, swapBounds, findMargin, findAngle, findPoint, getIntersection, getIntersectionPoints, orthoConnection2Segment, getPortDirection, getOuterBounds, getOppositeDirection, processPathData, parsePathData, getRectanglePath, getPolygonPath, getFreeHandPath, pathSegmentCollection, transformPath, updatedSegment, scalePathData, splitArrayCollection, getPathString, getString, randomId, getIndex, templateCompiler, cornersPointsBeforeRotation, getBounds, cloneObject, getInternalProperties, cloneArray, extendObject, extendArray, textAlignToString, wordBreakToString, bBoxText, middleElement, overFlow, whiteSpaceToString, rotateSize, rotatePoint, getOffset, getFunction, completeRegion, findNodeByName, findObjectType, setSwimLaneDefaults, getSpaceValue, getInterval, setPortsEdges, setUMLActivityDefaults, setConnectorDefaults, findNearestPoint, isDiagramChild, groupHasType, updateDefaultValues, updateLayoutValue, isPointOverConnector, intersect3, intersect2, getLineSegment, getPoints, getTooltipOffset, initfixedUserHandlesSymbol, sort, getAnnotationPosition, getOffsetOfConnector, getAlignedPosition, alignLabelOnSegments, getBezierDirection, removeChildNodes, getChild, serialize, deserialize, upgrade, updateStyle, updateHyperlink, updateShapeContent, updateShape, updateContent, updateUmlActivityNode, getUMLFinalNode, getUMLActivityShapes, removeGradient, removeItem, updateConnector, getUserHandlePosition, canResizeCorner, canShowCorner, canShowControlPoints, checkPortRestriction, findAnnotation, findPort, getInOutConnectPorts, findObjectIndex, getObjectFromCollection, scaleElement, arrangeChild, insertObject, getElement, getCollectionChangeEventArguements, getDropEventArguements, getPoint, getObjectType, flipConnector, updatePortEdges, alignElement, cloneSelectedObjects, updatePathElement, checkPort, findPath, getConnectorDirection, findDistance, cloneBlazorObject, checkBrowserInfo, canMeasureDecoratorPath, getPreviewSize, getSymbolSize, findParentInSwimlane, selectionHasConnector, CanvasRenderer, DiagramRenderer, DataBinding, getBasicShape, getPortShape, getDecoratorShape, getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical, getIconShape, getFlowShape, Hyperlink, Annotation, ShapeAnnotation, PathAnnotation, Port, PointPort, menuClass, DiagramContextMenu, Shape, Path, Native, Html, Image, Text, BasicShape, FlowShape, BpmnGateway, BpmnDataObject, BpmnTask, BpmnEvent, BpmnSubEvent, BpmnTransactionSubProcess, BpmnSubProcess, BpmnActivity, BpmnAnnotation, BpmnShape, UmlActivityShape, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, UmlClassifierShape, DiagramShape, Node, Header, Lane, Phase, SwimLane, ChildContainer, Selector, BpmnDiagrams, getBpmnShapePathData, getBpmnTriggerShapePathData, getBpmnGatewayShapePathData, getBpmnTaskShapePathData, getBpmnLoopShapePathData, Decorator, Vector, BezierSettings, ConnectorShape, ActivityFlow, BpmnFlow, ConnectorSegment, StraightSegment, BezierSegment, OrthogonalSegment, DiagramConnectorSegment, getDirection, isEmptyVector, getBezierPoints, getBezierBounds, bezierPoints, MultiplicityLabel, ClassifierMultiplicity, RelationShip, DiagramConnectorShape, Connector, ConnectorBridging, Snapping, UndoRedo, DiagramTooltip, initTooltip, updateTooltip, LayoutAnimation, SymbolSize, SymbolPaletteInfo, FixedUserHandle, NodeFixedUserHandle, ConnectorFixedUserHandle, UserHandle, ToolBase, SelectTool, FixedUserHandleTool, ConnectTool, MoveTool, RotateTool, ResizeTool, NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, ZoomPanTool, ExpandTool, LabelTool, PolygonDrawingTool, PolyLineDrawingTool, LabelDragTool, LabelResizeTool, LabelRotateTool, FreeHandTool, DiagramEventHandler, CommandHandler, findToolToActivate, findPortToolToActivate, contains, hasSelection, hasSingleConnection, isSelected, getCursor, ConnectorEditing, updateCanvasBounds, removeChildInContainer, findBounds, createHelper, renderContainerHelper, checkParentAsContainer, checkChildNodeInContainer, addChildToContainer, updateLaneBoundsAfterAddChild, renderStackHighlighter, moveChildInStack, LineRouting, LineDistribution, CrudAction, ConnectionDataSource, DataSource, Gridlines, SnapSettings, KeyGesture, Command, CommandManager, ContextMenuSettings, CustomCursorAction, DataMappingItems, BlazorAnimation, BlazorTooltip, Layout, MindMap, HierarchicalTree, RadialTree, GraphForceNode, SymmetricLayout, GraphLayoutManager, ComplexHierarchicalTree */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _diagram__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagram */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Diagram", function() { return _diagram__WEBPACK_IMPORTED_MODULE_0__["Diagram"]; }); + +/* harmony import */ var _print_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print-settings */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/print-settings.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrintAndExport", function() { return _print_settings__WEBPACK_IMPORTED_MODULE_1__["PrintAndExport"]; }); + +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Size", function() { return _primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"]; }); + +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rect", function() { return _primitives_rect__WEBPACK_IMPORTED_MODULE_3__["Rect"]; }); + +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixTypes", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["MatrixTypes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Matrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["Matrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identityMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["identityMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPointByMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["transformPointByMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPointsByMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["transformPointsByMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotateMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["rotateMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["scaleMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "translateMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["translateMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multiplyMatrix", function() { return _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["multiplyMatrix"]; }); + +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Point", function() { return _primitives_point__WEBPACK_IMPORTED_MODULE_5__["Point"]; }); + +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorAction", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["BlazorAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PortVisibility", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["PortVisibility"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SnapConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["SnapConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectorConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["SelectorConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionPointOrigin", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ConnectionPointOrigin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChildArrangement", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ChildArrangement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ConnectorConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnotationConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["AnnotationConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["NodeConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementAction", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ElementAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThumbsConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ThumbsConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["DiagramConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramTools", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["DiagramTools"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["Transform"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RenderMode", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["RenderMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyModifiers", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["KeyModifiers"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keys", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["Keys"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramAction", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["DiagramAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RendererAction", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["RendererAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RealAction", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["RealAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollActions", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ScrollActions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NoOfSegments", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["NoOfSegments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramEvent", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["DiagramEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PortConstraints", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["PortConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuClick", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["contextMenuClick"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuOpen", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["contextMenuOpen"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuBeforeItemRender", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["contextMenuBeforeItemRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControlPointsVisibility", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["ControlPointsVisibility"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSmoothness", function() { return _enum_enum__WEBPACK_IMPORTED_MODULE_6__["BezierSmoothness"]; }); + +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Thickness", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Thickness"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Margin", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Margin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shadow", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Shadow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stop", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Stop"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Gradient", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Gradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramGradient", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["DiagramGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["LinearGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["RadialGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShapeStyle", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["ShapeStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StrokeStyle", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["StrokeStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyle", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["TextStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramShapeStyle", function() { return _core_appearance__WEBPACK_IMPORTED_MODULE_7__["DiagramShapeStyle"]; }); + +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramElement", function() { return _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__["DiagramElement"]; }); + +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PathElement", function() { return _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"]; }); + +/* harmony import */ var _core_elements_image_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/elements/image-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageElement", function() { return _core_elements_image_element__WEBPACK_IMPORTED_MODULE_10__["ImageElement"]; }); + +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextElement", function() { return _core_elements_text_element__WEBPACK_IMPORTED_MODULE_11__["TextElement"]; }); + +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Container", function() { return _core_containers_container__WEBPACK_IMPORTED_MODULE_12__["Container"]; }); + +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Canvas", function() { return _core_containers_canvas__WEBPACK_IMPORTED_MODULE_13__["Canvas"]; }); + +/* harmony import */ var _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core/containers/grid */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridPanel", function() { return _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__["GridPanel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowDefinition", function() { return _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__["RowDefinition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDefinition", function() { return _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__["ColumnDefinition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridRow", function() { return _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__["GridRow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _core_containers_grid__WEBPACK_IMPORTED_MODULE_14__["GridCell"]; }); + +/* harmony import */ var _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./core/containers/stack-panel */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/stack-panel.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackPanel", function() { return _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_15__["StackPanel"]; }); + +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findConnectorPoints", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["findConnectorPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "swapBounds", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["swapBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findMargin", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["findMargin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findAngle", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["findAngle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPoint", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["findPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIntersection", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["getIntersection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIntersectionPoints", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["getIntersectionPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "orthoConnection2Segment", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["orthoConnection2Segment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPortDirection", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["getPortDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOuterBounds", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["getOuterBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOppositeDirection", function() { return _utility_connector__WEBPACK_IMPORTED_MODULE_16__["getOppositeDirection"]; }); + +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processPathData", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["processPathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parsePathData", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["parsePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRectanglePath", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["getRectanglePath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPolygonPath", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["getPolygonPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFreeHandPath", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["getFreeHandPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pathSegmentCollection", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["pathSegmentCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPath", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["transformPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatedSegment", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["updatedSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePathData", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["scalePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "splitArrayCollection", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["splitArrayCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPathString", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["getPathString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getString", function() { return _utility_path_util__WEBPACK_IMPORTED_MODULE_17__["getString"]; }); + +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomId", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["randomId"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIndex", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getIndex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "templateCompiler", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["templateCompiler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cornersPointsBeforeRotation", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["cornersPointsBeforeRotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBounds", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["cloneObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInternalProperties", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getInternalProperties"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneArray", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["cloneArray"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendObject", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["extendObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendArray", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["extendArray"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAlignToString", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["textAlignToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wordBreakToString", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["wordBreakToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bBoxText", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["bBoxText"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "middleElement", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["middleElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "overFlow", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["overFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "whiteSpaceToString", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["whiteSpaceToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotateSize", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["rotateSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotatePoint", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["rotatePoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOffset", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getOffset"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFunction", function() { return _utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getFunction"]; }); + +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "completeRegion", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["completeRegion"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findNodeByName", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findNodeByName"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findObjectType", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findObjectType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSwimLaneDefaults", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["setSwimLaneDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSpaceValue", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getSpaceValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInterval", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getInterval"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortsEdges", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["setPortsEdges"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setUMLActivityDefaults", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["setUMLActivityDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setConnectorDefaults", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["setConnectorDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findNearestPoint", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findNearestPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDiagramChild", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["isDiagramChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupHasType", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["groupHasType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateDefaultValues", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateDefaultValues"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateLayoutValue", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateLayoutValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isPointOverConnector", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["isPointOverConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersect3", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["intersect3"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersect2", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["intersect2"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLineSegment", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getLineSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPoints", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTooltipOffset", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getTooltipOffset"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initfixedUserHandlesSymbol", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["initfixedUserHandlesSymbol"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sort", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["sort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAnnotationPosition", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getAnnotationPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOffsetOfConnector", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getOffsetOfConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAlignedPosition", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getAlignedPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "alignLabelOnSegments", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["alignLabelOnSegments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierDirection", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getBezierDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeChildNodes", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["removeChildNodes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChild", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "serialize", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["serialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deserialize", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["deserialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "upgrade", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["upgrade"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateStyle", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateHyperlink", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateHyperlink"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateShapeContent", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateShapeContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateShape", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateContent", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateUmlActivityNode", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateUmlActivityNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUMLFinalNode", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getUMLFinalNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUMLActivityShapes", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getUMLActivityShapes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeGradient", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["removeGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeItem", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["removeItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateConnector", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updateConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUserHandlePosition", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getUserHandlePosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canResizeCorner", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["canResizeCorner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canShowCorner", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["canShowCorner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canShowControlPoints", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["canShowControlPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkPortRestriction", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["checkPortRestriction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findAnnotation", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPort", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findPort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInOutConnectPorts", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getInOutConnectPorts"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findObjectIndex", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findObjectIndex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getObjectFromCollection", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getObjectFromCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleElement", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["scaleElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arrangeChild", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["arrangeChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "insertObject", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["insertObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCollectionChangeEventArguements", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getCollectionChangeEventArguements"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDropEventArguements", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getDropEventArguements"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPoint", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getObjectType", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getObjectType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flipConnector", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["flipConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatePortEdges", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updatePortEdges"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "alignElement", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["alignElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneSelectedObjects", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["cloneSelectedObjects"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatePathElement", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["updatePathElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkPort", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["checkPort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPath", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getConnectorDirection", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getConnectorDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findDistance", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findDistance"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneBlazorObject", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["cloneBlazorObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkBrowserInfo", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["checkBrowserInfo"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canMeasureDecoratorPath", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["canMeasureDecoratorPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviewSize", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getPreviewSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSymbolSize", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["getSymbolSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findParentInSwimlane", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["findParentInSwimlane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectionHasConnector", function() { return _utility_diagram_util__WEBPACK_IMPORTED_MODULE_19__["selectionHasConnector"]; }); + +/* harmony import */ var _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CanvasRenderer", function() { return _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_20__["CanvasRenderer"]; }); + +/* harmony import */ var _rendering_renderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./rendering/renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramRenderer", function() { return _rendering_renderer__WEBPACK_IMPORTED_MODULE_21__["DiagramRenderer"]; }); + +/* harmony import */ var _data_binding_data_binding__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./data-binding/data-binding */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/data-binding/data-binding.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataBinding", function() { return _data_binding_data_binding__WEBPACK_IMPORTED_MODULE_22__["DataBinding"]; }); + +/* harmony import */ var _objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./objects/dictionary/basic-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/basic-shapes.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBasicShape", function() { return _objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_23__["getBasicShape"]; }); + +/* harmony import */ var _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./objects/dictionary/common */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPortShape", function() { return _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__["getPortShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDecoratorShape", function() { return _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__["getDecoratorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeHorizontal", function() { return _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__["getSegmentThumbShapeHorizontal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeVertical", function() { return _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__["getSegmentThumbShapeVertical"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconShape", function() { return _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_24__["getIconShape"]; }); + +/* harmony import */ var _objects_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./objects/dictionary/flow-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/flow-shapes.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFlowShape", function() { return _objects_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_25__["getFlowShape"]; }); + +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Hyperlink", function() { return _objects_annotation__WEBPACK_IMPORTED_MODULE_26__["Hyperlink"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Annotation", function() { return _objects_annotation__WEBPACK_IMPORTED_MODULE_26__["Annotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShapeAnnotation", function() { return _objects_annotation__WEBPACK_IMPORTED_MODULE_26__["ShapeAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PathAnnotation", function() { return _objects_annotation__WEBPACK_IMPORTED_MODULE_26__["PathAnnotation"]; }); + +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Port", function() { return _objects_port__WEBPACK_IMPORTED_MODULE_27__["Port"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PointPort", function() { return _objects_port__WEBPACK_IMPORTED_MODULE_27__["PointPort"]; }); + +/* harmony import */ var _objects_context_menu__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./objects/context-menu */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/context-menu.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "menuClass", function() { return _objects_context_menu__WEBPACK_IMPORTED_MODULE_28__["menuClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramContextMenu", function() { return _objects_context_menu__WEBPACK_IMPORTED_MODULE_28__["DiagramContextMenu"]; }); + +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Shape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Path", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Path"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Native", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Native"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Html", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Html"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Image"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Text"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasicShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BasicShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FlowShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["FlowShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnGateway", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnGateway"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnDataObject", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnDataObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnTask", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnTask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnEvent", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnSubEvent", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnSubEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnTransactionSubProcess", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnTransactionSubProcess"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnSubProcess", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnSubProcess"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnActivity", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnActivity"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnAnnotation", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["BpmnShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlActivityShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlActivityShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MethodArguments", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["MethodArguments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassAttribute", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlClassAttribute"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassMethod", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlClassMethod"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClass", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlInterface", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlInterface"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlEnumerationMember", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlEnumerationMember"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlEnumeration", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlEnumeration"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassifierShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["UmlClassifierShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramShape", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["DiagramShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Node"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Header"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Lane", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Lane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Phase", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Phase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwimLane", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["SwimLane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChildContainer", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["ChildContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selector", function() { return _objects_node__WEBPACK_IMPORTED_MODULE_29__["Selector"]; }); + +/* harmony import */ var _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./objects/bpmn */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/bpmn.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnDiagrams", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["BpmnDiagrams"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnShapePathData", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["getBpmnShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnTriggerShapePathData", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["getBpmnTriggerShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnGatewayShapePathData", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["getBpmnGatewayShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnTaskShapePathData", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["getBpmnTaskShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnLoopShapePathData", function() { return _objects_bpmn__WEBPACK_IMPORTED_MODULE_30__["getBpmnLoopShapePathData"]; }); + +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Decorator", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["Decorator"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Vector", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["Vector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSettings", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["BezierSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorShape", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["ConnectorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityFlow", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["ActivityFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnFlow", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["BpmnFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorSegment", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["ConnectorSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StraightSegment", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["StraightSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSegment", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["BezierSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OrthogonalSegment", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["OrthogonalSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorSegment", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["DiagramConnectorSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["getDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmptyVector", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["isEmptyVector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierPoints", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["getBezierPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierBounds", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["getBezierBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bezierPoints", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["bezierPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiplicityLabel", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["MultiplicityLabel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClassifierMultiplicity", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["ClassifierMultiplicity"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RelationShip", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["RelationShip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorShape", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["DiagramConnectorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return _objects_connector__WEBPACK_IMPORTED_MODULE_31__["Connector"]; }); + +/* harmony import */ var _objects_connector_bridging__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./objects/connector-bridging */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector-bridging.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorBridging", function() { return _objects_connector_bridging__WEBPACK_IMPORTED_MODULE_32__["ConnectorBridging"]; }); + +/* harmony import */ var _objects_snapping__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./objects/snapping */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/snapping.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Snapping", function() { return _objects_snapping__WEBPACK_IMPORTED_MODULE_33__["Snapping"]; }); + +/* harmony import */ var _objects_undo_redo__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./objects/undo-redo */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/undo-redo.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UndoRedo", function() { return _objects_undo_redo__WEBPACK_IMPORTED_MODULE_34__["UndoRedo"]; }); + +/* harmony import */ var _objects_tooltip__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./objects/tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramTooltip", function() { return _objects_tooltip__WEBPACK_IMPORTED_MODULE_35__["DiagramTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initTooltip", function() { return _objects_tooltip__WEBPACK_IMPORTED_MODULE_35__["initTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateTooltip", function() { return _objects_tooltip__WEBPACK_IMPORTED_MODULE_35__["updateTooltip"]; }); + +/* harmony import */ var _objects_layout_animation__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./objects/layout-animation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/layout-animation.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutAnimation", function() { return _objects_layout_animation__WEBPACK_IMPORTED_MODULE_36__["LayoutAnimation"]; }); + +/* harmony import */ var _objects_preview__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./objects/preview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolSize", function() { return _objects_preview__WEBPACK_IMPORTED_MODULE_37__["SymbolSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPaletteInfo", function() { return _objects_preview__WEBPACK_IMPORTED_MODULE_37__["SymbolPaletteInfo"]; }); + +/* harmony import */ var _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./objects/fixed-user-handle */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandle", function() { return _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_38__["FixedUserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeFixedUserHandle", function() { return _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_38__["NodeFixedUserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorFixedUserHandle", function() { return _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_38__["ConnectorFixedUserHandle"]; }); + +/* harmony import */ var _interaction_selector__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./interaction/selector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/selector.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserHandle", function() { return _interaction_selector__WEBPACK_IMPORTED_MODULE_39__["UserHandle"]; }); + +/* harmony import */ var _interaction_tool__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./interaction/tool */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToolBase", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ToolBase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["SelectTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandleTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["FixedUserHandleTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ConnectTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["MoveTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RotateTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["RotateTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ResizeTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeDrawingTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["NodeDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorDrawingTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ConnectorDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextDrawingTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["TextDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZoomPanTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ZoomPanTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["ExpandTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["LabelTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PolygonDrawingTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["PolygonDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PolyLineDrawingTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["PolyLineDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelDragTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["LabelDragTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelResizeTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["LabelResizeTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelRotateTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["LabelRotateTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FreeHandTool", function() { return _interaction_tool__WEBPACK_IMPORTED_MODULE_40__["FreeHandTool"]; }); + +/* harmony import */ var _interaction_event_handlers__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./interaction/event-handlers */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/event-handlers.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramEventHandler", function() { return _interaction_event_handlers__WEBPACK_IMPORTED_MODULE_41__["DiagramEventHandler"]; }); + +/* harmony import */ var _interaction_command_manager__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./interaction/command-manager */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/command-manager.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandHandler", function() { return _interaction_command_manager__WEBPACK_IMPORTED_MODULE_42__["CommandHandler"]; }); + +/* harmony import */ var _interaction_actions__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./interaction/actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findToolToActivate", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["findToolToActivate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPortToolToActivate", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["findPortToolToActivate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contains", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["contains"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasSelection", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["hasSelection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasSingleConnection", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["hasSingleConnection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isSelected", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["isSelected"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCursor", function() { return _interaction_actions__WEBPACK_IMPORTED_MODULE_43__["getCursor"]; }); + +/* harmony import */ var _interaction_connector_editing__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./interaction/connector-editing */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/connector-editing.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorEditing", function() { return _interaction_connector_editing__WEBPACK_IMPORTED_MODULE_44__["ConnectorEditing"]; }); + +/* harmony import */ var _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./interaction/container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateCanvasBounds", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["updateCanvasBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeChildInContainer", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["removeChildInContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findBounds", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["findBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createHelper", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["createHelper"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderContainerHelper", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["renderContainerHelper"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkParentAsContainer", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["checkParentAsContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkChildNodeInContainer", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["checkChildNodeInContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addChildToContainer", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["addChildToContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateLaneBoundsAfterAddChild", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["updateLaneBoundsAfterAddChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderStackHighlighter", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["renderStackHighlighter"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "moveChildInStack", function() { return _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_45__["moveChildInStack"]; }); + +/* harmony import */ var _interaction_line_routing__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./interaction/line-routing */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-routing.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LineRouting", function() { return _interaction_line_routing__WEBPACK_IMPORTED_MODULE_46__["LineRouting"]; }); + +/* harmony import */ var _interaction_line_distribution__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./interaction/line-distribution */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-distribution.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LineDistribution", function() { return _interaction_line_distribution__WEBPACK_IMPORTED_MODULE_47__["LineDistribution"]; }); + +/* harmony import */ var _diagram_data_source__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./diagram/data-source */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-source.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CrudAction", function() { return _diagram_data_source__WEBPACK_IMPORTED_MODULE_48__["CrudAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionDataSource", function() { return _diagram_data_source__WEBPACK_IMPORTED_MODULE_48__["ConnectionDataSource"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataSource", function() { return _diagram_data_source__WEBPACK_IMPORTED_MODULE_48__["DataSource"]; }); + +/* harmony import */ var _diagram_grid_lines__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./diagram/grid-lines */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/grid-lines.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Gridlines", function() { return _diagram_grid_lines__WEBPACK_IMPORTED_MODULE_49__["Gridlines"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SnapSettings", function() { return _diagram_grid_lines__WEBPACK_IMPORTED_MODULE_49__["SnapSettings"]; }); + +/* harmony import */ var _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./diagram/keyboard-commands */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/keyboard-commands.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyGesture", function() { return _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_50__["KeyGesture"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Command", function() { return _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_50__["Command"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandManager", function() { return _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_50__["CommandManager"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextMenuSettings", function() { return _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_50__["ContextMenuSettings"]; }); + +/* harmony import */ var _diagram_custom_cursor__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./diagram/custom-cursor */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/custom-cursor.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomCursorAction", function() { return _diagram_custom_cursor__WEBPACK_IMPORTED_MODULE_51__["CustomCursorAction"]; }); + +/* harmony import */ var _diagram_data_mapping__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ./diagram/data-mapping */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/data-mapping.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataMappingItems", function() { return _diagram_data_mapping__WEBPACK_IMPORTED_MODULE_52__["DataMappingItems"]; }); + +/* harmony import */ var _blazor_tooltip_blazor_Tooltip__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ./blazor-tooltip/blazor-Tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/blazor-Tooltip.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorAnimation", function() { return _blazor_tooltip_blazor_Tooltip__WEBPACK_IMPORTED_MODULE_53__["BlazorAnimation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorTooltip", function() { return _blazor_tooltip_blazor_Tooltip__WEBPACK_IMPORTED_MODULE_53__["BlazorTooltip"]; }); + +/* harmony import */ var _layout_layout_base__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ./layout/layout-base */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/layout-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return _layout_layout_base__WEBPACK_IMPORTED_MODULE_54__["Layout"]; }); + +/* harmony import */ var _layout_mind_map__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ./layout/mind-map */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/mind-map.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MindMap", function() { return _layout_mind_map__WEBPACK_IMPORTED_MODULE_55__["MindMap"]; }); + +/* harmony import */ var _layout_hierarchical_tree__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ./layout/hierarchical-tree */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/hierarchical-tree.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HierarchicalTree", function() { return _layout_hierarchical_tree__WEBPACK_IMPORTED_MODULE_56__["HierarchicalTree"]; }); + +/* harmony import */ var _layout_radial_tree__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ./layout/radial-tree */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/radial-tree.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialTree", function() { return _layout_radial_tree__WEBPACK_IMPORTED_MODULE_57__["RadialTree"]; }); + +/* harmony import */ var _layout_symmetrical_layout__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ./layout/symmetrical-layout */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/symmetrical-layout.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GraphForceNode", function() { return _layout_symmetrical_layout__WEBPACK_IMPORTED_MODULE_58__["GraphForceNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymmetricLayout", function() { return _layout_symmetrical_layout__WEBPACK_IMPORTED_MODULE_58__["SymmetricLayout"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GraphLayoutManager", function() { return _layout_symmetrical_layout__WEBPACK_IMPORTED_MODULE_58__["GraphLayoutManager"]; }); + +/* harmony import */ var _layout_complex_hierarchical_tree__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ./layout/complex-hierarchical-tree */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/complex-hierarchical-tree.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComplexHierarchicalTree", function() { return _layout_complex_hierarchical_tree__WEBPACK_IMPORTED_MODULE_59__["ComplexHierarchicalTree"]; }); + +/** + * Diagram component exported items + */ + + +//primitives + + + + +//enums + +//core + + + + + + + + + +//utility + + + + +//rendering + + +//data binding + +//objects + + + + + + + + + + + + + + + + +//interaction + + + + + + + + + + + + + + + +//layout + + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js": +/*!***********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js ***! + \***********************************************************************************/ +/*! exports provided: findToolToActivate, findPortToolToActivate, contains, hasSelection, hasSingleConnection, isSelected, getCursor */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findToolToActivate", function() { return findToolToActivate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findPortToolToActivate", function() { return findPortToolToActivate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "contains", function() { return contains; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasSelection", function() { return hasSelection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasSingleConnection", function() { return hasSingleConnection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSelected", function() { return isSelected; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCursor", function() { return getCursor; }); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../interaction/container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); + + + + + + + + + + + + + + + +/** + * Finds the action to be taken for the object under mouse + * + */ +/* tslint:disable */ +/** + * findToolToActivate method\ + * + * @returns {Actions} findToolToActivate method .\ + * @param {Object} obj - provide the options value. + * @param {DiagramElement} wrapper - provide the options value. + * @param {PointModel} position - provide the options value. + * @param {Diagram} diagram - provide the options value. + * @param {ITouches[] | TouchList} touchStart - provide the options value. + * @param {ITouches[] | TouchList} touchMove - provide the options value. + * @param {NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - provide the options value. + * @private + */ +function findToolToActivate(obj, wrapper, position, diagram, touchStart, touchMove, target) { + //let conn: Connector = diagram.selectedItems.connectors[0] as Connector; + if (touchMove && touchMove.length > 1 && touchStart && touchStart.length > 1) { + return 'PinchZoom'; + } + if (diagram.currentSymbol) { + return 'Drag'; + } + var eventHandler = 'eventHandler'; + if (diagram["" + eventHandler].action === 'PortDraw') { + diagram.tool &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramTools"].DrawOnce; + } + //Drawing Tools + if ((Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDrawOnce"])(diagram) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canContinuousDraw"])(diagram)) && diagram.drawingObject) { + return 'Draw'; + } + if (hasSelection(diagram)) { + var handle = diagram.selectedItems; + if (handle.wrapper && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'UserHandle')) { + for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) { + var obj_1 = _a[_i]; + if (obj_1.visible) { + var paddedBounds = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["getUserHandlePosition"])(handle, obj_1, diagram.scroller.transform); + if (contains(position, paddedBounds, obj_1.size / (2 * diagram.scroller.transform.scale))) { + return obj_1.name; + } + } + } + } + } + if (hasSelection(diagram)) { + var element = (diagram.selectedItems.annotation) ? + diagram.selectedItems.wrapper.children[0] : diagram.selectedItems.wrapper; + var selectorBnds = element.bounds; + var handle = diagram.selectedItems; + var paddedBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height); + if (hasSingleConnection(diagram) && !diagram.selectedItems.annotation) { + var conn = diagram.selectedItems.connectors[0]; + var sourcePaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom; + var targetPaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'ResizeAll')) { + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'ConnectorSourceThumb')) + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDragSourceEnd"])(conn) && contains(position, conn.sourcePoint, sourcePaddingValue)) { + return 'ConnectorSourceEnd'; + } + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'ConnectorTargetThumb')) + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDragTargetEnd"])(conn) && contains(position, conn.targetPoint, targetPaddingValue)) { + return 'ConnectorTargetEnd'; + } + var action = checkForConnectorSegment(conn, handle, position, diagram); + if (action !== 'OrthoThumb') { + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'ConnectorSourceThumb')) + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDragSourceEnd"])(conn)) { + if (action) { + return action; + } + } + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'ConnectorTargetThumb')) + && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDragTargetEnd"])(conn)) { + if (action) { + return action; + } + } + } + else { + return action; + } + } + } + else { + var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom; + var tenRotate = 10 / diagram.scroller.currentZoom; + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["rotateMatrix"])(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY); + //check for resizing tool + var x = element.offsetX - element.pivot.x * element.actualSize.width; + var y = element.offsetY - element.pivot.y * element.actualSize.height; + var rotateThumb = { + x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2), + y: y - 30 / diagram.scroller.currentZoom + }; + rotateThumb = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, rotateThumb); + var labelSelection = diagram.selectedItems.annotation ? true : false; + var labelRotate = (labelSelection && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canRotate"])(diagram.selectedItems.annotation))) ? true : false; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowCorner"])(handle.constraints, 'Rotate') && contains(position, rotateThumb, tenRotate) && + (diagram.selectedItems.thumbsConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ThumbsConstraints"].Rotate)) { + if (labelSelection && labelRotate) { + return 'LabelRotate'; + } + else if (!labelSelection) { + return 'Rotate'; + } + } + paddedBounds.Inflate(ten); + if (paddedBounds.containsPoint(position)) { + var action = checkResizeHandles(diagram, element, position, matrix, x, y); + if (action) { + return action; + } + } + } + } + //Panning + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canZoomPan"])(diagram) && !obj) { + return 'Pan'; + } + //826364 - Drawing Tool is not activated on hovering the ports while both ZoomPan and single select constraints enabled + if ((target instanceof _objects_port__WEBPACK_IMPORTED_MODULE_9__["PointPort"]) && (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canZoomPan"])(diagram) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canSingleSelect"])(diagram) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canMultiSelect"])(diagram)))) { + var action = findPortToolToActivate(diagram, target); + if (action !== 'None') { + return action; + } + } + if ((target instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_10__["ShapeAnnotation"] || target instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_10__["PathAnnotation"]) && (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canZoomPan"])(diagram) && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canSelect"])(target)))) { + if (isSelected(diagram, target, undefined, wrapper) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canMove"])(target)) { + return 'LabelDrag'; + } + return 'LabelSelect'; + } + if (obj !== null) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] || obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + if (wrapper && wrapper.id) { + var id = wrapper.id.split(obj.id)[1]; + if (id && id.match('^_icon')) { + return 'LayoutAnimation'; + } + } + if (wrapper && wrapper.id) { + var userid = void 0; + for (var i = 0; i < obj.fixedUserHandles.length; i++) { + userid = obj.fixedUserHandles[parseInt(i.toString(), 10)].id; + if (wrapper.id && (wrapper.id.indexOf(userid) > -1)) { + return 'FixedUserHandle'; + } + } + } + if (wrapper instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_7__["TextElement"] && wrapper.hyperlink.link) { + return 'Hyperlink'; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canMove"])(obj) && isSelected(diagram, obj, false) && diagram.selectedItems.annotation === undefined) { + if ((obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && !(contains(position, obj.sourcePoint, obj.hitPadding) || + contains(position, obj.targetPoint, obj.hitPadding))) || + !(obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"])) { + return 'Drag'; + } + } + else if (obj && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canZoomPan"])(diagram) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["defaultTool"])(diagram)) { + return 'Pan'; + } + else if (diagram.selectedItems.nodes.length && diagram.selectedItems.nodes[0].isLane && + diagram.selectedItems.wrapper && diagram.selectedItems.wrapper.bounds.containsPoint(position)) { + return 'Drag'; + } + else { + return 'Select'; + } + } + else { + return 'Select'; + } + } + return 'Select'; +} +/* tslint:enable */ +function checkResizeHandles(diagram, element, position, matrix, x, y) { + var action; + if ((diagram.selectedItems.nodes.length === 1 && diagram.selectedItems.connectors.length === 0) + && diagram.selectedItems.nodes[0].container) { + action = checkResizeHandleForContainer(diagram, element, position, x, y); + } + if (!action && (!diagram.selectedItems.nodes[0] || (!diagram.selectedItems.nodes[0].isPhase && + !diagram.selectedItems.nodes[0].isLane && diagram.selectedItems.nodes[0].shape.type !== 'SwimLane'))) { + action = checkForResizeHandles(diagram, element, position, matrix, x, y); + } + if (action) { + return action; + } + return null; +} +/** + * checkForConnectorSegment method\ + * + * @returns {Actions} checkForConnectorSegment method .\ + * @param {Connector} conn - provide the options value. + * @param {SelectorModel} handle - provide the options value. + * @param {PointModel} position - provide the options value. + * @param {Diagram} diagram - provide the options value. + * @private + */ +function checkForConnectorSegment(conn, handle, position, diagram) { + //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value + //Added below code for drag the bezier control thumb while increasing handle size (Changing cursor from pointer to drag cursor) + var targetPaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom; + var sourcePaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom; + if (conn.type === 'Bezier' && diagram.connectorEditingToolModule) { + for (var i = 0; i < conn.segments.length; i++) { + var segment = (conn.segments)[parseInt(i.toString(), 10)]; + // EJ2-67447 - Bezier segment control points are clickable after hiding it with controlPointsVisibility property. + // The below condition is used to check the control points visibility of the connector. + if (contains(position, !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, sourcePaddingValue) && ((i === 0 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowControlPoints"])(conn.bezierSettings.controlPointsVisibility, 'Source')) || (i !== 0 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowControlPoints"])(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) { + return 'BezierSourceThumb'; + } + if (contains(position, !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, targetPaddingValue) && ((i === conn.segments.length - 1 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowControlPoints"])(conn.bezierSettings.controlPointsVisibility, 'Target')) || (i !== conn.segments.length - 1 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canShowControlPoints"])(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) { + return 'BezierTargetThumb'; + } + } + } + if (diagram.connectorEditingToolModule && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDragSegmentThumb"])(conn)) { + if (conn.type === 'Straight' || conn.type === 'Bezier') { + for (var i = 0; i < conn.segments.length; i++) { + //let segment: StraightSegmentModel | BezierSegmentModel; + var segment = (conn.segments)[parseInt(i.toString(), 10)]; + if (contains(position, segment.point, 10)) { + return 'SegmentEnd'; + } + } + } + else { + for (var i = 0; i < conn.segments.length; i++) { + var segPoint = { x: 0, y: 0 }; + var segment = (conn.segments)[parseInt(i.toString(), 10)]; + if (segment.allowDrag) { + for (var j = 0; j < segment.points.length - 1; j++) { + var length_1 = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]); + if (length_1 >= 50) { + segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2); + segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2); + if (contains(position, segPoint, 30)) { + return 'OrthoThumb'; + } + } + } + } + } + } + } + return null; +} +/** + * findPortToolToActivate method\ + * + * @returns {boolean} findPortToolToActivate method .\ + * @param {Diagram} diagram - provide the options value. + * @param {NodeModel | PointPortModel} target - provide the options value. + * @param {ITouches[] | TouchList} touchStart - provide the options value. + * @param {ITouches[] | TouchList} touchMove - provide the options value. + * @private + */ +function findPortToolToActivate(diagram, target, +// eslint-disable-next-line +touchStart, touchMove) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDrag"])(target, diagram) && (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["checkPortRestriction"])(target, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover) + || (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["checkPortRestriction"])(target, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Visible)))) { + if ((target.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortConstraints"].Drag)) { + return 'PortDrag'; + } + } + else if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_5__["canDraw"])(target, diagram) && (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["checkPortRestriction"])(target, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover) + || (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["checkPortRestriction"])(target, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Visible)))) { + if (target.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortConstraints"].Draw) { + diagram.drawingObject = {}; + var connector = { type: 'Orthogonal', sourcePortID: target.id }; + diagram.drawingObject = connector; + diagram.tool |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramTools"].DrawOnce; + diagram.currentDrawingObject = connector; + return 'PortDraw'; + } + } + return 'None'; +} +/** + * Resize handle for container and also object. + * @param {Diagram} diagram - provide the options value. + * @param {DiagramElement} element - provide the options value. + * @param {PointModel} position - provide the options value. + * @param {number} x - provide the options value. + * @param {number} y - provide the options value. + * @returns {Actions} Resize handle for container and also object.\ + * + * @private + */ +function checkResizeHandleForContainer(diagram, element, position, x, y) { + var ten = 10 / diagram.scroller.currentZoom; + var forty = 40 / diagram.scroller.currentZoom; + var selectedItems = diagram.selectedItems; + var width = element.actualSize.width; + var height = element.actualSize.height; + var left = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](x, y + 20, element.style.strokeWidth, height - 40); + var right = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](x + width, y + 20, element.style.strokeWidth, height - 40); + var top = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](x + 20, y, width - 40, element.style.strokeWidth); + var bottom = new _primitives_rect__WEBPACK_IMPORTED_MODULE_2__["Rect"](x + 20, y + height, width - 40, element.style.strokeWidth); + var container = Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_11__["checkParentAsContainer"])(diagram, diagram.selectedItems.nodes[0], true) ? + diagram.nameTable[diagram.selectedItems.nodes[0].parentId] : diagram.selectedItems.nodes[0]; + if (width >= forty && height >= forty) { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) && + right.containsPoint(position, ten)) { + return 'ResizeEast'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) && + bottom.containsPoint(position, ten)) { + return 'ResizeSouth'; + } + if (container.container.type !== 'Grid') { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) && + left.containsPoint(position, ten)) { + return 'ResizeWest'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) && + top.containsPoint(position, ten)) { + return 'ResizeNorth'; + } + } + } + return null; +} +function checkForResizeHandles(diagram, element, position, matrix, x, y) { + var forty = 40 / diagram.scroller.currentZoom; + var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom; + var selectedItems = diagram.selectedItems; + var labelSelection = (selectedItems.annotation) ? true : false; + if (element.actualSize.width >= forty && element.actualSize.height >= forty) { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeSouthEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) { + return (labelSelection) ? 'LabelResizeSouthEast' : 'ResizeSouthEast'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeSouthWest', selectedItems.thumbsConstraints, selectedItems) && + contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x, y: y + element.actualSize.height }), ten)) { + return (labelSelection) ? 'LabelResizeSouthWest' : 'ResizeSouthWest'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeNorthEast', selectedItems.thumbsConstraints, selectedItems) && + contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x + element.actualSize.width, y: y }), ten)) { + return (labelSelection) ? 'LabelResizeNorthEast' : 'ResizeNorthEast'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeNorthWest', selectedItems.thumbsConstraints, selectedItems) && + contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x, y: y }), ten)) { + return (labelSelection) ? 'LabelResizeNorthWest' : 'ResizeNorthWest'; + } + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten)) { + return (labelSelection) ? 'LabelResizeEast' : 'ResizeEast'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) && + contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten)) { + return (labelSelection) ? 'LabelResizeWest' : 'ResizeWest'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) && contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten)) { + return (labelSelection) ? 'LabelResizeSouth' : 'ResizeSouth'; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_4__["canResizeCorner"])(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) && + contains(position, Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: x + element.actualSize.width / 2, y: y }), ten)) { + return (labelSelection) ? 'LabelResizeNorth' : 'ResizeNorth'; + } + return null; +} +/** + * contains method\ + * + * @returns {boolean} contains method .\ + * @param {PointModel} mousePosition - provide the options value. + * @param {PointModel} corner - provide the corner value. + * @param {number} padding - provide the padding value. + * @private + */ +function contains(mousePosition, corner, padding) { + if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) { + if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) { + return true; + } + } + return false; +} +/** + * hasSelection method\ + * + * @returns {boolean} hasSelection method .\ + * @param {Diagram} diagram - provide the options value. + * @private + */ +function hasSelection(diagram) { + if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) { + return true; + } + return false; +} +/** + * hasSingleConnection method\ + * + * @returns {boolean} hasSingleConnection method .\ + * @param {Diagram} diagram - provide the options value. + * @private + */ +function hasSingleConnection(diagram) { + if (diagram.selectedItems.connectors.length === 1 && !diagram.selectedItems.nodes.length) { + return true; + } + return false; +} +/** + * isSelected method\ + * + * @returns {boolean} isSelected method .\ + * @param {Diagram} diagram - provide the options value. + * @param {Object} element - provide the options value. + * @param {boolean} firstLevel - provide the options value. + * @param {DiagramElement} wrapper - provide the options value. + * @private + */ +function isSelected(diagram, element, firstLevel, wrapper) { + if (firstLevel === void 0) { firstLevel = true; } + if (element instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + return true; + } + if (element instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + while (element) { + if (diagram.selectedItems.nodes.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) { + return true; + } + if (!firstLevel) { + element = diagram.nameTable[element.parentId]; + } + else { + break; + } + } + } + else if (element instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + if (diagram.selectedItems.connectors.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) { + return true; + } + } + else if (element instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_10__["ShapeAnnotation"] || element instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_10__["PathAnnotation"]) { + if (diagram.selectedItems.annotation && diagram.selectedItems.wrapper.children[0].id === wrapper.id) { + return true; + } + } + return false; +} +/** + * getCursor method\ + * + * @returns {boolean} getCursor method .\ + * @param {Actions} cursor - provide the options value. + * @param {number} angle - provide the options value. + * @private + */ +function getCursor(cursor, angle) { + //to avoid angles less than 0 & angles greater than 360 + angle += 360; + angle %= 360; + if (cursor.indexOf('Resize') === -1) { + return cursors["" + cursor]; + } + else { + var dir = cursors["" + cursor]; + if ((angle >= 0 && angle < 25) || (angle >= 160 && angle <= 205) || (angle >= 340 && angle <= 360)) { + return dir; + } + else if ((angle >= 25 && angle <= 70) || (angle >= 205 && angle <= 250)) { + if (dir === 'n-resize' || dir === 's-resize') { + return 'ne-resize'; + } + else if (dir === 'nw-resize' || dir === 'se-resize') { + return 'n-resize'; + } + else if (dir === 'e-resize' || dir === 'w-resize') { + return 'nw-resize'; + } + else { + return 'e-resize'; + } + } + else if ((angle >= 70 && angle <= 115) || (angle >= 250 && angle <= 295)) { + if (dir === 'n-resize' || dir === 's-resize') { + return 'e-resize'; + } + else if (dir === 'nw-resize' || dir === 'se-resize') { + return 'ne-resize'; + } + else if (dir === 'e-resize' || dir === 'w-resize') { + return 'n-resize'; + } + else { + return 'nw-resize'; + } + } + else if ((angle >= 115 && angle <= 155) || (angle >= 295 && angle <= 340)) { + if (dir === 'n-resize' || dir === 's-resize') { + return 'nw-resize'; + } + else if (dir === 'nw-resize' || dir === 'se-resize') { + return 'e-resize'; + } + else if (dir === 'e-resize' || dir === 'w-resize') { + return 'ne-resize'; + } + } + else { + return 'n-resize'; + } + } + return cursors["" + cursor]; +} +var cursors = { + 'None': 'default', + 'Rotate': 'crosshair', + 'Select': 'default', + 'Drag': 'move', + 'ResizeWest': 'w-resize', + 'ResizeEast': 'e-resize', + 'ResizeSouth': 's-resize', + 'ResizeNorth': 'n-resize', + 'Draw': 'crosshair', + 'PortDraw': 'crosshair', + 'ResizeNorthEast': 'ne-resize', + 'ResizeNorthWest': 'nw-resize', + 'ResizeSouthEast': 'se-resize', + 'ResizeSouthWest': 'sw-resize', + 'ConnectorSourceEnd': 'move', + 'ConnectorTargetEnd': 'move', + 'BezierSourceThumb': 'move', + 'BezierTargetThumb': 'move', + 'OrthoThumb': 'move', + 'SegmentEnd': 'move', + 'Pan': 'grab', + 'Hyperlink': 'pointer', + 'PortDrag': 'pointer', + 'LabelSelect': 'pointer', + 'LabelDrag': 'move', + 'LabelRotate': 'crosshair', + 'LabelResizeWest': 'w-resize', + 'LabelResizeEast': 'e-resize', + 'LabelResizeSouth': 's-resize', + 'LabelResizeNorth': 'n-resize', + 'LabelResizeNorthEast': 'ne-resize', + 'LabelResizeNorthWest': 'nw-resize', + 'LabelResizeSouthEast': 'se-resize', + 'LabelResizeSouthWest': 'sw-resize' +}; + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/command-manager.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/command-manager.js ***! + \*******************************************************************************************/ +/*! exports provided: CommandHandler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandHandler", function() { return CommandHandler; }); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _diagram_diagram__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../diagram/diagram */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_layer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../diagram/layer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layer.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _container_interaction__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./../utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _utility_diff_map__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../utility/diff-map */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diff-map.js"); +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (undefined && undefined.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/** + * Defines the behavior of commands + */ +var CommandHandler = /** @__PURE__ @class */ (function () { + function CommandHandler(diagram) { + /** @private */ + this.clipboardData = {}; + // private newNodeObject: Object[] = []; + // private newConnectorObject: Object[] = []; + /** @private */ + this.diagramObject = {}; + /** @private */ + this.newSelectedObjects = {}; + /** @private */ + this.oldSelectedObjects = {}; + /** @private */ + this.connectorsTable = []; + /** @private */ + this.PreventConnectorSplit = false; + /** @private */ + this.processTable = {}; + /** @private */ + this.deepDiffer = new _utility_diff_map__WEBPACK_IMPORTED_MODULE_21__["DeepDiffMapper"](); + /** @private */ + this.isContainer = false; + /** @private */ + this.canUpdateTemplate = false; + this.childTable = {}; + this.parentTable = {}; + this.blazor = 'Blazor'; + this.blazorInterop = 'sfBlazor'; + this.cloneGroupChildCollection = []; + this.diagram = diagram; + } + Object.defineProperty(CommandHandler.prototype, "snappingModule", { + /** @private */ + get: function () { + return this.diagram.snappingModule; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandHandler.prototype, "layoutAnimateModule", { + /** @private */ + get: function () { + return this.diagram.layoutAnimateModule; + }, + enumerable: true, + configurable: true + }); + /** + * startTransaction method\ + * + * @returns { void } startTransaction method .\ + * @param {boolean} protectChange - provide the options value. + * @private + */ + CommandHandler.prototype.startTransaction = function (protectChange) { + this.state = { element: this.diagram.selectedItems, backup: null }; + if (protectChange) { + this.diagram.protectPropertyChange(true); + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getAdornerLayer"])(this.diagram.element.id).style.pointerEvents = 'none'; + }; + /** + * endTransaction method\ + * + * @returns { void } endTransaction method .\ + * @param {boolean} protectChange - provide the options value. + * @private + */ + CommandHandler.prototype.endTransaction = function (protectChange) { + this.state = null; + if (protectChange) { + this.diagram.protectPropertyChange(false); + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getAdornerLayer"])(this.diagram.element.id).style.pointerEvents = 'all'; + }; + /** + * setFocus method\ + * + * @returns { void } setFocus method .\ + * @private + */ + CommandHandler.prototype.setFocus = function () { + document.getElementById(this.diagram.element.id).focus(); + }; + /** + * showTooltip method\ + * + * @returns { void } showTooltip method .\ + * @param {IElement} node - provide the options value. + * @param {PointModel} position - provide the position value. + * @param {string | HTMLElement} content - provide the content value. + * @param {string} toolName - provide the toolName value. + * @param {boolean} isTooltipVisible - provide the isTooltipVisible value. + * @private + */ + CommandHandler.prototype.showTooltip = function (node, position, content, toolName, isTooltipVisible) { + var _this = this; + var targetId; + var targetEle; + var isNative = false; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + if ((node.nodes.length === 1) && node.connectors.length === 0) { + targetId = node.nodes[0].id; + if (node.nodes[0].shape && node.nodes[0].shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Native"]) { + isNative = true; + } + } + else if ((node.nodes.length === 0) && node.connectors.length === 1) { + targetId = node.connectors[0].id; + } + else { + targetEle = document.getElementById(this.diagram.element.id + '_SelectorElement'); + } + } + else if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + targetId = node.id; + if (node.shape && (node.shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Native"])) { + isNative = true; + } + } + else { + targetId = node.id; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isNullOrUndefined"])(targetEle) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isNullOrUndefined"])(targetId)) { + var idName = isNative ? '_content_native_element' : '_groupElement'; + targetEle = document.getElementById(targetId + idName); + } + if (isTooltipVisible) { + this.diagram.tooltipObject.position = 'BottomCenter'; + this.diagram.tooltipObject.animation = { open: { delay: 0, duration: 0 } }; + this.diagram.tooltipObject.openDelay = 0; + this.diagram.tooltipObject.closeDelay = 0; + } + if (this.diagram.selectedItems.setTooltipTemplate) { + var template = void 0; + var setTooltipTemplate = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getFunction"])(this.diagram.selectedItems.setTooltipTemplate); + if (setTooltipTemplate) { + template = setTooltipTemplate(node, this.diagram); + } + if (template instanceof HTMLElement) { + content = template.cloneNode(true); + } + else { + content = template ? template : content; + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && isTooltipVisible) { + this.diagram.tooltipObject.close(); + } + if (node.tooltip) { + this.diagram.tooltipObject.openOn = node.tooltip.openOn; + } + this.diagram.tooltipObject.content = content; + this.diagram.tooltipObject.offsetX = 0; + this.diagram.tooltipObject.offsetY = 0; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.tooltipObject.updateTooltip(targetEle); + } + else { + this.diagram.tooltipObject.refresh(targetEle); + } + if (isTooltipVisible) { + setTimeout(function () { + _this.diagram.tooltipObject.open(targetEle); + }, 1); + } + }; + /** + * Split the connector, when the node is dropped onto it and establish connection with that dropped node. + * + * @returns { void } connectorSplit method .\ + * @param {NodeModel} droppedObject - Provide the dropped node id + * @param {ConnectorModel} targetConnector - Provide the connector id + * @private + */ + CommandHandler.prototype.connectorSplit = function (droppedObject, targetConnector) { + var droppedNodeId = droppedObject.id; + var existingConnector = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(targetConnector); + var connectorIndex = this.diagram.connectors.indexOf(targetConnector); + var nodeIndex = this.diagram.nodes.indexOf(droppedObject); + var droppedNode = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(droppedObject); + var connectorOldChanges = {}; + var nodeOldChanges = {}; + var nodeOldProperty = { + offsetX: droppedNode.offsetX, + offsetY: droppedNode.offsetY + }; + var connectorOldProperty = { + sourceID: existingConnector.sourceID, + sourcePoint: existingConnector.sourcePoint, + sourcePortID: existingConnector.sourcePortID, + targetID: existingConnector.targetID, + targetPoint: existingConnector.targetPoint, + targetPortID: existingConnector.targetPortID + }; + connectorOldChanges[parseInt(connectorIndex.toString(), 10)] = connectorOldProperty; + nodeOldChanges[parseInt(nodeIndex.toString(), 10)] = nodeOldProperty; + var connectorNewChanges = {}; + var nodeNewChanges = {}; + var nodeNewProperty = {}; + var connectorNewProperty = {}; + //Split the connector based on the dropped node + if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') { + connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId); + } + else if (existingConnector.sourceID !== '' && existingConnector.targetID === '') { + this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.targetPoint); + connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId); + } + else if ((existingConnector.sourceID === '' && existingConnector.targetID === '') || (existingConnector.sourceID === '' && existingConnector.targetID !== '')) { + this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.sourcePoint); + connectorNewProperty.sourceID = this.ConnectorSourceChange(targetConnector, droppedNodeId); + } + connectorNewChanges[parseInt(connectorIndex.toString(), 10)] = connectorNewProperty; + nodeNewChanges[parseInt(nodeIndex.toString(), 10)] = nodeNewProperty; + this.diagram.nodePropertyChange(droppedObject, nodeOldProperty, nodeNewProperty); + this.diagram.updateSelector(); + this.diagram.connectorPropertyChange(targetConnector, connectorOldProperty, connectorNewProperty); + //Check Whether the connector connects with the node + if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') { + var newConnector = { + id: 'connector ' + droppedNodeId, + constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_10__["ConnectorConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["ConnectorConstraints"].AllowDrop, + sourceID: droppedNodeId + }; + //Check whether the connector connects with the ports + if (existingConnector.sourcePortID !== '' && existingConnector.targetPortID !== '') { + newConnector.targetID = existingConnector.targetID; + newConnector.targetPortID = existingConnector.targetPortID; + } + else { + newConnector.targetID = existingConnector.targetID; + } + this.diagram.add(newConnector); + } + var entry = { + type: 'PropertyChanged', redoObject: { nodes: nodeNewChanges }, undoObject: { nodes: nodeOldChanges }, + category: 'Internal' + }; + this.diagram.addHistoryEntry(entry); + var entry1 = { + type: 'PropertyChanged', redoObject: { connectors: connectorNewChanges }, undoObject: { connectors: connectorOldChanges }, + category: 'Internal' + }; + this.diagram.addHistoryEntry(entry1); + }; + CommandHandler.prototype.nodeOffsetChange = function (propertyChangeArg, node, nodeNewOffset) { + propertyChangeArg.offsetX = node.offsetX = nodeNewOffset.x; + propertyChangeArg.offsetY = node.offsetY = nodeNewOffset.y; + }; + CommandHandler.prototype.ConnectorTargetChange = function (connector, newTarget) { + connector.targetID = newTarget; + return newTarget; + }; + CommandHandler.prototype.ConnectorSourceChange = function (connector, newTarget) { + connector.sourceID = newTarget; + return newTarget; + }; + /** + * closeTooltip method\ + * + * @returns { void } closeTooltip method .\ + * @private + */ + CommandHandler.prototype.closeTooltip = function () { + this.diagram.tooltipObject.close(); + }; + /** + * canEnableDefaultTooltip method\ + * + * @returns { boolean } canEnableDefaultTooltip method .\ + * @private + */ + CommandHandler.prototype.canEnableDefaultTooltip = function () { + if (this.diagram.selectedItems.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["SelectorConstraints"].ToolTip) { + return true; + } + else { + return false; + } + }; + /** + * updateSelector method\ + * + * @returns { void } updateSelector method .\ + * @private + */ + CommandHandler.prototype.updateSelector = function () { + this.diagram.updateSelector(); + }; + /** + * updateConnectorValue method\ + * + * @returns { void } updateConnectorValue method .\ + * @param {IBlazorConnectionChangeEventArgs} args - provide the options value. + * @private + */ + CommandHandler.prototype.updateConnectorValue = function (args) { + if (args.cancel) { + this.enableCloneObject(true); + this.ismouseEvents(true); + this.insertBlazorObject(args.connector); + var newChanges = {}; + var oldChanges = {}; + var connector = this.diagram.nameTable[args.connector.id]; + var nodeEndId = args.connectorEnd === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + var portEndId = args.connectorEnd === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + var connectionEnd = args.connectorEnd === 'ConnectorTargetEnd'; + var newValue = connectionEnd ? args.newValue.connectorTargetValue : args.newValue.connectorSourceValue; + var oldValue = connectionEnd ? args.oldValue.connectorTargetValue : args.oldValue.connectorSourceValue; + oldChanges["" + nodeEndId] = newValue.nodeId; + oldChanges["" + portEndId] = newValue.portId; + newChanges["" + nodeEndId] = oldValue.nodeId; + newChanges["" + portEndId] = oldValue.portId; + if (args.cancel && args.connectorEnd !== 'ConnectorTargetEnd') { + connector.sourceID = oldValue.nodeId; + if (args.connector.sourcePortID) { + connector.sourcePortID = oldValue.portId; + } + this.diagram.connectorPropertyChange(connector, oldChanges, newChanges); + } + if (args.cancel && args.connectorEnd === 'ConnectorTargetEnd') { + if (args.connector.targetPortID) { + connector.targetPortID = oldValue.portId; + } + connector.targetID = oldValue.nodeId; + this.diagram.connectorPropertyChange(connector, oldChanges, newChanges); + } + } + }; + /** + * triggerEvent method\ + * + * @returns { Promise } triggerEvent method .\ + * @param {DiagramEvent} event - provide the options value. + * @param {Object} args - provide the args value. + * @private + */ + CommandHandler.prototype.triggerEvent = function (event, args) { + return __awaiter(this, void 0, void 0, function () { + var temparg; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (event === _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].drop || event === _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].positionChange || + event === _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].connectionChange) { + if (this.diagram.currentSymbol) { + return [2 /*return*/]; + } + if (event === _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].drop) { + args.source = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.diagram); + } + if (this.diagram.currentDrawingObject && event !== _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].positionChange) { + return [2 /*return*/]; + } + } + return [4 /*yield*/, this.diagram.triggerEvent(event, args)]; + case 1: + temparg = _a.sent(); + return [2 /*return*/, temparg]; + } + }); + }); + }; + /** + * dragOverElement method\ + * + * @returns { void } dragOverElement method .\ + * @param {MouseEventArgs} args - provide the options value. + * @param {PointModel} currentPosition - provide the args value. + * @private + */ + CommandHandler.prototype.dragOverElement = function (args, currentPosition) { + if (this.diagram.currentSymbol) { + var dragOverArg = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.source), target: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(args.target), + mousePosition: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(currentPosition), diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.diagram) + }; + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].dragOver, dragOverArg); + } + }; + /** + * disConnect method\ + * + * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } disConnect method .\ + * @param {IElement} obj - provide the obj value. + * @param {string} endPoint - provide the endPoint value. + * @param {boolean} canCancel - provide the canCancel value. + * @private + */ + CommandHandler.prototype.disConnect = function (obj, endPoint, canCancel) { + var checkBlazor = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])(); + var oldChanges = {}; + var newChanges = {}; + var returnargs; + var selectorModel; + var connector; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + selectorModel = obj; + connector = selectorModel.connectors[0]; + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && this.diagram.currentDrawingObject) { + connector = this.diagram.currentDrawingObject; + } + if (obj && connector && (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSingleConnection"])(this.diagram) || this.diagram.currentDrawingObject)) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector), false); + } + if (endPoint && (endPoint === 'ConnectorSourceEnd' || endPoint === 'ConnectorTargetEnd')) { + var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + if (connector["" + nodeEndId]) { //connector.sourceID || connector.targetID + oldChanges["" + nodeEndId] = connector["" + nodeEndId]; + connector["" + nodeEndId] = ''; + newChanges["" + nodeEndId] = connector["" + nodeEndId]; + if (connector.sourcePortID || connector.targetPortID) { + oldChanges["" + portEndId] = connector["" + portEndId]; + connector["" + portEndId] = ''; + newChanges["" + portEndId] = connector["" + portEndId]; + } + returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel); + } + } + else if ((endPoint !== 'OrthoThumb' && endPoint !== 'SegmentEnd') && (connector.sourceID || connector.targetID)) { + oldChanges = { + sourceID: connector.sourceID, sourcePortID: connector.sourcePortID, + targetID: connector.targetID, targetPortID: connector.targetPortID + }; + connector.sourceID = ''; + connector.sourcePortID = ''; + connector.targetID = ''; + connector.targetPortID = ''; + newChanges = { + sourceID: connector.sourceID, sourcePortID: connector.sourcePortID, + targetID: connector.targetID, targetPortID: connector.targetPortID + }; + var arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: oldChanges, + newValue: newChanges, cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), + oldValue: { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(oldChanges) }, + newValue: { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(newChanges) }, + cancel: false, state: 'Changed', connectorEnd: endPoint + }; + returnargs = arg; + } + if (!checkBlazor) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].connectionChange, arg); + } + if (arg.cancel) { + connector.sourceID = oldChanges.sourceID; + connector.sourcePortID = oldChanges.sourcePortID; + connector.targetID = oldChanges.targetID; + connector.targetPortID = oldChanges.targetPortID; + } + else { + this.diagram.connectorPropertyChange(connector, oldChanges, newChanges); + this.diagram.updateDiagramObject(connector); + arg = { + connector: connector, oldValue: oldChanges, + newValue: newChanges, cancel: false, state: 'Changed', connectorEnd: endPoint + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: { connector: oldChanges }, + newValue: { connector: newChanges }, cancel: false, state: 'Changed', connectorEnd: endPoint + }; + returnargs = arg; + } + if (!checkBlazor) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].connectionChange, arg); + } + } + } + } + return returnargs; + }; + CommandHandler.prototype.connectionEventChange = function (connector, oldChanges, newChanges, endPoint, canCancel) { + var checkBlazor = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])(); + var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + var connectedNode; + if (this.enableCloneObject) { + connectedNode = this.diagram.nameTable[newChanges["" + nodeEndId]]; + var nodeObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connectedNode); + this.diagram.insertValue(nodeObject, true); + } + var returnargs; + var arg = { + cancel: false, state: 'Changing', connectorEnd: endPoint, + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: { nodeId: oldChanges["" + nodeEndId], portId: oldChanges["" + portEndId] }, + newValue: { nodeId: newChanges["" + nodeEndId], portId: newChanges["" + portEndId] } + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), + cancel: false, state: 'Changing', connectorEnd: endPoint, + oldValue: undefined, newValue: undefined + }; + if (endPoint === 'ConnectorSourceEnd') { + arg.oldValue = { + connectorSourceValue: { + portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] + } + }; + arg.newValue = { + connectorSourceValue: { nodeId: newChanges["" + nodeEndId], portId: newChanges["" + portEndId] } + }; + } + else { + arg.oldValue = { + connectorTargetValue: { nodeId: oldChanges["" + nodeEndId], portId: oldChanges["" + portEndId] } + }; + arg.newValue = { + connectorTargetValue: { nodeId: newChanges["" + nodeEndId], portId: newChanges["" + portEndId] } + }; + } + returnargs = arg; + } + if (!checkBlazor) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].connectionChange, arg); + } + if (arg.cancel || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && canCancel)) { + connector["" + nodeEndId] = oldChanges["" + nodeEndId]; + connector["" + portEndId] = oldChanges["" + portEndId]; + newChanges = oldChanges; + } + else { + this.diagram.connectorPropertyChange(connector, oldChanges, newChanges); + this.diagram.updateDiagramObject(connector); + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: { nodeId: oldChanges["" + nodeEndId], portId: oldChanges["" + portEndId] }, + newValue: { + nodeId: newChanges["" + nodeEndId], + portId: newChanges["" + portEndId] + }, + cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), + oldValue: undefined, + newValue: undefined, + cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (endPoint === 'ConnectorSourceEnd') { + arg.newValue = { + connectorSourceValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + arg.oldValue = { + connectorSourceValue: { portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] } + }; + } + else { + arg.oldValue = { + connectorTargetValue: { nodeId: oldChanges["" + nodeEndId], portId: oldChanges["" + portEndId] } + }; + arg.newValue = { + connectorTargetValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + } + returnargs = arg; + } + } + if (this.enableCloneObject) { + if (connectedNode === undefined) { + connectedNode = this.diagram.nameTable[oldChanges["" + nodeEndId]]; + var nodeObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connectedNode); + this.diagram.insertValue(nodeObject, true); + } + } + return returnargs; + }; + /** + * insertBlazorObject method\ + * + * @returns { void } insertBlazorObject method .\ + * @param {IElement} object - provide the object value. + * @param {boolean} isNode - provide the isNode value. + * @private + */ + CommandHandler.prototype.insertBlazorObject = function (object, isNode) { + var node; + var connector; + if (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + this.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + for (var i = 0; i < object.nodes.length; i++) { + node = this.diagram.getObject(object.nodes[parseInt(i.toString(), 10)].id); + this.diagram.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node), true); + } + for (var i = 0; i < object.connectors.length; i++) { + connector = this.diagram.getObject(object.connectors[parseInt(i.toString(), 10)].id); + this.diagram.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector), false); + } + } + else { + object = this.diagram.getObject(object.id); + this.diagram.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(object), (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? true : false); + } + }; + /** + * updatePropertiesToBlazor method\ + * + * @returns { void } updatePropertiesToBlazor method .\ + * @param {MouseEventArgs} args - provide the args value. + * @param {PointModel} labelDrag - provide the labelDrag value. + * @private + */ + CommandHandler.prototype.updatePropertiesToBlazor = function (args, labelDrag) { + this.enableCloneObject(false); + this.ismouseEvents(false); + this.getBlazorOldValues(args, labelDrag); + this.updateBlazorSelector(); + }; + /** + * insertSelectedObjects method\ + * + * @returns { void } insertSelectedObjects method .\ + * @private + */ + CommandHandler.prototype.insertSelectedObjects = function () { + this.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + }; + /** + * findTarget method\ + * + * @returns { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel } findTarget method .\ + * @param {DiagramElement} element - provide the element value. + * @param {IElement} argsTarget - provide the argsTarget value. + * @param {boolean} source - provide the source value. + * @param {boolean} connection - provide the connection value. + * @private + */ + CommandHandler.prototype.findTarget = function (element, argsTarget, source, connection) { + var target; + if (argsTarget instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + if (element && element.id === argsTarget.id + '_content') { + return argsTarget; + } + if (source && argsTarget.shape.type === 'Bpmn' && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && argsTarget.shape.shape === 'Activity') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && argsTarget.shape.bpmnShape === 'Activity'))) { + if (argsTarget.shape.activity.subProcess.type === 'Transaction') { + var transaction = argsTarget.shape.activity.subProcess.transaction; + if (transaction.success.visible && element.id.indexOf(argsTarget.id + '_success') === 0) { + return transaction.success; + } + if (transaction.cancel.visible && element.id.indexOf(argsTarget.id + '_cancel') === 0) { + return transaction.cancel; + } + if (transaction.failure.visible && element.id.indexOf(argsTarget.id + '_failure') === 0) { + return transaction.failure; + } + } + } + if (element instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_2__["PathElement"]) { + for (var i = 0; i < argsTarget.ports.length; i++) { + var port = argsTarget.ports[parseInt(i.toString(), 10)]; + if (element.id === argsTarget.id + '_' + port.id) { + return port; + } + } + } + } + if (!connection) { + var annotation = void 0; + for (var i = 0; i < argsTarget.annotations.length; i++) { + annotation = argsTarget.annotations[parseInt(i.toString(), 10)]; + if (element.id === argsTarget.id + '_' + annotation.id) { + return annotation; + } + } + } + return argsTarget; + }; + /** + * canDisconnect method\ + * + * @returns { boolean } canDisconnect method .\ + * @param {string} endPoint - provide the endPoint value. + * @param {MouseEventArgs} args - provide the args value. + * @param {string} targetPortId - provide the targetPortId value. + * @param {string} targetNodeId - provide the targetNodeId value. + * @private + */ + CommandHandler.prototype.canDisconnect = function (endPoint, args, targetPortId, targetNodeId) { + var selector; + var connect; + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + selector = args.source; + connect = selector.connectors[0]; + } + else if (args.source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && this.diagram.currentDrawingObject) { + connect = this.diagram.currentDrawingObject; + } + var targetObject = this.findTarget(args.targetWrapper, args.target, endPoint === 'ConnectorSourceEnd', true); + var nodeEnd = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + var portEnd = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + if (connect["" + nodeEnd] !== targetNodeId || connect["" + portEnd] !== targetPortId) { + return true; + } + return false; + }; + /** + * changeAnnotationDrag method\ + * + * @returns { void } changeAnnotationDrag method .\ + * @param {MouseEventArgs} args - provide the endPoint value. + * @private + */ + CommandHandler.prototype.changeAnnotationDrag = function (args) { + var selectorModel; + var connector; + if (args.source && args.source.connectors && + args.source.connectors.length && this.diagram.bpmnModule && + this.diagram.bpmnModule.textAnnotationConnectors.indexOf(args.source.connectors[0]) > -1) { + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + selectorModel = args.source; + connector = selectorModel.connectors[0]; + } + var id = connector.id.split('_'); + var annotationId = id[id.length - 1]; + var nodeId = id[id.length - 3] || id[0]; + if (args.target && args.target.id !== nodeId && + ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && args.target.shape.shape !== 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && args.target.shape.bpmnShape !== 'TextAnnotation'))) { + this.diagram.startGroupAction(); + var parentNode = this.diagram.nameTable[id[0]]; + var clonedNode = this.getAnnotation(parentNode, id[1]); + var annotationNode = { + id: id[1] + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(), + angle: _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(connector.intermediatePoints[0], connector.intermediatePoints[1]), + text: clonedNode.text, + length: _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(connector.intermediatePoints[0], connector.intermediatePoints[1]), + shape: { shape: 'TextAnnotation', type: 'Bpmn' }, + nodeId: clonedNode.nodeId + }; + var annotationObj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["BpmnAnnotation"](args.target.shape, 'annotations', annotationNode, true); + this.diagram.bpmnModule.checkAndRemoveAnnotations(this.diagram.nameTable[connector.targetID], this.diagram); + this.diagram.refreshCanvasLayers(); + annotationObj.id = id[1]; + this.diagram.addTextAnnotation(annotationObj, args.target); + this.diagram.endGroupAction(); + } + else if (connector) { + connector.sourceID = nodeId; + this.diagram.connectorPropertyChange(connector, {}, { sourceID: nodeId }); + this.diagram.updateDiagramObject(connector); + } + } + }; + /* tslint:disable */ + /** + * connect method\ + * + * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } connect method .\ + * @param {string} endPoint - provide the endPoint value. + * @param {MouseEventArgs} args - provide the args value. + * @param {boolean} canCancel - provide the canCancel value. + * @private + */ + CommandHandler.prototype.connect = function (endPoint, args, canCancel) { + var checkBlazor; + var newChanges = {}; + var oldChanges = {}; + var oldNodeId; + var oldPortId; + var selectorModel; + var connector; + var returnargs; + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + selectorModel = args.source; + connector = selectorModel.connectors[0]; + } + else if (args.source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && this.diagram.currentDrawingObject) { + connector = this.diagram.currentDrawingObject; + } + var target = this.findTarget((args.targetWrapper || args.sourceWrapper), (args.target || args.actualObject), endPoint === 'ConnectorSourceEnd', true); + var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + if (target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + oldChanges["" + nodeEndId] = connector["" + nodeEndId]; + connector["" + nodeEndId] = target.id; + newChanges["" + nodeEndId] = connector["" + nodeEndId]; + oldChanges["" + portEndId] = connector["" + portEndId]; + returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel); + } + else { + oldNodeId = connector["" + nodeEndId]; + oldPortId = connector["" + portEndId]; + connector["" + portEndId] = target.id; + connector["" + nodeEndId] = (args.target && args.target.id || args.actualObject.id); + newChanges["" + nodeEndId] = connector["" + nodeEndId]; + newChanges["" + portEndId] = connector["" + portEndId]; + var arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId }, + newValue: { nodeId: newChanges["" + nodeEndId], portId: newChanges["" + portEndId] }, + cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), + oldValue: undefined, + newValue: undefined, + cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (endPoint === 'ConnectorSourceEnd') { + arg.oldValue = { + connectorSourceValue: { portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] } + }; + arg.newValue = { + connectorSourceValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + } + else { + arg.newValue = { + connectorTargetValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + arg.oldValue = { + connectorTargetValue: { portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] } + }; + } + returnargs = arg; + } + if (!checkBlazor) { + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].connectionChange, arg); + } + if (arg.cancel || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && canCancel)) { + connector["" + nodeEndId] = oldNodeId; + connector["" + portEndId] = oldPortId; + newChanges["" + nodeEndId] = oldNodeId; + newChanges["" + portEndId] = oldPortId; + } + else { + this.diagram.connectorPropertyChange(connector, oldChanges, newChanges); + this.diagram.updateDiagramObject(connector); + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId }, + newValue: { nodeId: newChanges["" + nodeEndId], portId: newChanges["" + portEndId] }, cancel: false, + state: 'Changing', connectorEnd: endPoint + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + newValue: undefined, + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(connector), + oldValue: undefined, + cancel: false, state: 'Changing', connectorEnd: endPoint + }; + if (endPoint === 'ConnectorSourceEnd') { + arg.oldValue = { + connectorSourceValue: { portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] } + }; + arg.newValue = { + connectorTargetValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + } + else { + arg.oldValue = { + connectorTargetValue: { portId: oldChanges["" + portEndId], nodeId: oldChanges["" + nodeEndId] } + }; + arg.newValue = { + connectorTargetValue: { portId: newChanges["" + portEndId], nodeId: newChanges["" + nodeEndId] } + }; + } + } + } + } + this.renderHighlighter(args, undefined, endPoint === 'ConnectorSourceEnd'); + return returnargs; + }; + /* tslint:enable */ + /** @private */ + /** + * cut method\ + * + * @returns { void } cut method .\ + * @private + */ + CommandHandler.prototype.cut = function () { + var index; + this.clipboardData.pasteIndex = 0; + if (this.diagram.undoRedoModule) { + this.diagram.historyManager.startGroupAction(); + } + this.clipboardData.clipObject = this.copyObjects(); + if (this.diagram.undoRedoModule) { + this.diagram.historyManager.endGroupAction(); + } + if (this.diagram.mode !== 'SVG') { + this.diagram.refreshDiagramLayer(); + } + }; + CommandHandler.prototype.UpdateBlazorDiagramModelLayers = function (layer, isRemove) { + var blazorInterop = 'sfBlazor'; + var updatedModel = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(layer); + var blazor = 'Blazor'; + if (window && window["" + blazor]) { + var obj = { + 'methodName': 'UpdateBlazorDiagramModelLayers', + 'diagramobj': JSON.stringify(updatedModel), 'isRemove': isRemove + }; + if (!this.diagram.isLoading) { + window["" + blazorInterop].updateBlazorProperties(obj, this.diagram); + } + } + }; + /** + * addLayer method\ + * + * @returns { void } addLayer method .\ + * @param {LayerModel} layer - provide the endPoint value. + * @param {Object[]} objects - provide the args value. + * @param {boolean} isServerUpdate - provide the canCancel value. + * @private + */ + CommandHandler.prototype.addLayer = function (layer, objects, isServerUpdate) { + if (isServerUpdate === void 0) { isServerUpdate = true; } + layer.id = layer.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + layer.zIndex = this.diagram.layers.length; + var isEnableServerDatabind = this.diagram.allowServerDataBinding; + this.diagram.enableServerDataBinding(false); + layer = new _diagram_layer__WEBPACK_IMPORTED_MODULE_15__["Layer"](this.diagram, 'layers', layer, true); + this.diagram.enableServerDataBinding(isEnableServerDatabind); + layer.objectZIndex = -1; + layer.zIndexTable = {}; + this.diagram.layers.push(layer); + if (isServerUpdate) { + this.UpdateBlazorDiagramModelLayers(layer, false); + } + this.diagram.layerZIndexTable[layer.zIndex] = layer.id; + this.diagram.activeLayer = layer; + var layers = layer.objects; + if (objects) { + for (var i = 0; i < objects.length; i++) { + this.diagram.add(objects[parseInt(i.toString(), 10)]); + } + } + }; + /** + * getObjectLayer method\ + * + * @returns { LayerModel } getObjectLayer method .\ + * @param {string} objectName - provide the endPoint value. + * @private + */ + CommandHandler.prototype.getObjectLayer = function (objectName) { + var layers = this.diagram.layers; + if (layers.length > 1) { + for (var i = 0; i < layers.length; i++) { + var objIndex = layers[parseInt(i.toString(), 10)].objects.indexOf(objectName); + if (objIndex > -1) { + return layers[parseInt(i.toString(), 10)]; + } + } + } + return this.diagram.activeLayer; + }; + /** + * getLayer method\ + * + * @returns { LayerModel } getLayer method .\ + * @param {string} layerName - provide the endPoint value. + * @private + */ + CommandHandler.prototype.getLayer = function (layerName) { + var layers = this.diagram.layers; + for (var i = 0; i < layers.length; i++) { + if (layers[parseInt(i.toString(), 10)].id === layerName) { + return layers[parseInt(i.toString(), 10)]; + } + } + return undefined; + }; + /** + * removeLayer method\ + * + * @returns { void } removeLayer method .\ + * @param {string} layerId - provide the endPoint value. + * @param {boolean} isServerUpdate - provide the endPoint value. + * @private + */ + CommandHandler.prototype.removeLayer = function (layerId, isServerUpdate) { + if (isServerUpdate === void 0) { isServerUpdate = true; } + var layers = this.getLayer(layerId); + if (layers) { + var index = this.diagram.layers.indexOf(layers); + var layerObject = layers.objects; + for (var i = layerObject.length - 1; i >= 0; i--) { + this.diagram.unSelect(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]); + this.diagram.remove(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]); + if (layers.id !== 'default_layer') { + if (this.diagram.activeLayer.id === layerId) { + this.diagram.activeLayer = this.diagram.layers[this.diagram.layers.length - 1]; + } + } + } + if (isServerUpdate) { + this.UpdateBlazorDiagramModelLayers(this.diagram.layers[parseInt(index.toString(), 10)], true); + } + delete this.diagram.layerZIndexTable[layers.zIndex]; + this.diagram.layers.splice(index, 1); + if (this.diagram.mode !== 'SVG') { + this.diagram.refreshDiagramLayer(); + } + } + }; + /** + * moveObjects method\ + * + * @returns { void } moveObjects method .\ + * @param {string[]]} objects - provide the objects value. + * @param {string} targetLayer - provide the targetLayer value. + * @private + */ + CommandHandler.prototype.moveObjects = function (objects, targetLayer) { + var layer = this.getLayer(targetLayer) || this.diagram.activeLayer; + this.diagram.setActiveLayer(layer.id); + var targerNodes; + for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) { + var i = objects_1[_i]; + var layer_1 = this.getObjectLayer(i); + var index = layer_1.objects.indexOf(i); + if (index > -1) { + targerNodes = this.diagram.nameTable["" + i]; + this.diagram.unSelect(targerNodes); + this.diagram.remove(this.diagram.nameTable["" + i]); + this.diagram.add(targerNodes); + } + } + }; + /** + * cloneLayer method\ + * + * @returns { void } cloneLayer method .\ + * @param {string[]} layerName - provide the objects value. + * @private + */ + CommandHandler.prototype.cloneLayer = function (layerName) { + var layers = this.diagram.layers; + var layer = this.getLayer(layerName); + if (layer) { + var cloneObject_1 = []; + var newlayer = { + id: layerName + '_' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(), objects: [], visible: true, lock: false + }; + this.addLayer(newlayer, null, true); + newlayer.zIndex = this.diagram.layers.length - 1; + var multiSelect = cloneObject_1.length !== 1; + for (var _i = 0, _a = layer.objects; _i < _a.length; _i++) { + var obj = _a[_i]; + cloneObject_1.push(this.diagram.nameTable["" + obj]); + } + this.paste(cloneObject_1); + } + }; + /** + * copy method\ + * + * @returns { void } copy method .\ + * @private + */ + CommandHandler.prototype.copy = function () { + this.clipboardData.pasteIndex = 1; + this.clipboardData.clipObject = this.copyObjects(); + return this.clipboardData.clipObject; + }; + /** + * copyObjects method\ + * + * @returns { Object[] } copyObjects method .\ + * @private + */ + CommandHandler.prototype.copyObjects = function () { + var selectedItems = []; + var obj = []; + this.clipboardData.childTable = {}; + if (this.diagram.selectedItems.connectors.length > 0) { + selectedItems = this.diagram.selectedItems.connectors; + for (var j = 0; j < selectedItems.length; j++) { + var element = void 0; + if (this.diagram.bpmnModule && + this.diagram.bpmnModule.textAnnotationConnectors.indexOf(selectedItems[parseInt(j.toString(), 10)]) > -1) { + element = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])((this.diagram.nameTable[selectedItems[parseInt(j.toString(), 10)].targetID])); + } + else { + element = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])((selectedItems[parseInt(j.toString(), 10)])); + } + obj.push(element); + } + } + if (this.diagram.selectedItems.nodes.length > 0) { + selectedItems = selectedItems.concat(this.diagram.selectedItems.nodes); + for (var j = 0; j < this.diagram.selectedItems.nodes.length; j++) { + if (!selectedItems[parseInt(j.toString(), 10)].isPhase) { + var node = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)]); + if (node.wrapper && (node.offsetX !== node.wrapper.offsetX)) { + node.offsetX = node.wrapper.offsetX; + } + if (node.wrapper && (node.offsetY !== node.wrapper.offsetY)) { + node.offsetY = node.wrapper.offsetY; + } + var processTable = {}; + this.copyProcesses(node); + obj.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node)); + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, -node.rotateAngle, node.offsetX, node.offsetY); + if (node.children) { + var childTable = this.clipboardData.childTable; + var tempNode = void 0; + var elements = []; + var nodes = this.getAllDescendants(node, elements, true); + for (var i = 0; i < nodes.length; i++) { + tempNode = this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id]; + var clonedObject = childTable[tempNode.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(tempNode); + var newOffset = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, { x: clonedObject.wrapper.offsetX, y: clonedObject.wrapper.offsetY }); + if (tempNode instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + clonedObject.offsetX = newOffset.x; + clonedObject.offsetY = newOffset.y; + clonedObject.rotateAngle -= node.rotateAngle; + } + } + this.clipboardData.childTable = childTable; + } + if (node.shape.type === 'SwimLane') { + var swimlane = this.diagram.getObject(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].id); + var childTable = this.clipboardData.childTable; + var connectorsList = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["getConnectors"])(this.diagram, swimlane.wrapper.children[0], 0, true); + for (var i = 0; i < connectorsList.length; i++) { + var connector = this.diagram.getObject(connectorsList[parseInt(i.toString(), 10)]); + childTable[connector.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector); + } + } + if (node && node.isLane) { + var childTable = this.clipboardData.childTable; + var swimlane = this.diagram.getObject(node.parentId); + var lane = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["findLane"])(node, this.diagram); + childTable[node.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(lane); + childTable[node.id].width = swimlane.wrapper.actualSize.width; + } + } + } + } + if (this.clipboardData.pasteIndex === 0) { + this.startGroupAction(); + for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) { + var item = selectedItems_1[_i]; + if (this.diagram.nameTable[item.id]) { + if (this.diagram.bpmnModule && + this.diagram.bpmnModule.textAnnotationConnectors.indexOf(item) > -1) { + this.diagram.remove(this.diagram.nameTable[item.targetID]); + } + else { + this.diagram.remove(item); + } + } + } + this.endGroupAction(); + } + this.sortByZIndex(obj, 'zIndex'); + return obj; + }; + CommandHandler.prototype.copyProcesses = function (node) { + if (node.shape.type === 'Bpmn' && node.shape.activity && + node.shape.activity.subProcess.processes && + node.shape.activity.subProcess.processes.length > 0) { + var processes = node.shape.activity.subProcess.processes; + for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) { + var i = processes_1[_i]; + this.processTable["" + i] = (Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + i])); + if (this.processTable["" + i].shape.activity.subProcess.processes && + this.processTable["" + i].shape.activity.subProcess.processes.length > 0) { + this.copyProcesses(this.processTable["" + i]); + } + } + this.clipboardData.processTable = this.processTable; + } + }; + /** + * group method\ + * + * @returns { void } group method .\ + * @private + */ + CommandHandler.prototype.group = function () { + this.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + var propName = 'isProtectedOnChange'; + var protectedChange = this.diagram["" + propName]; + this.diagram.protectPropertyChange(true); + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].Group; + var selectedItems = []; + var obj = {}; + //let group: Node | Connector; + obj.id = 'group' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + obj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](this.diagram, 'nodes', obj, true); + obj.children = []; + selectedItems = this.diagram.selectedItems.nodes; + selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors); + var order = selectedItems.sort(function (a, b) { + return a.zIndex - b.zIndex; + }); + for (var i = 0; i < order.length; i++) { + if (!order[parseInt(i.toString(), 10)].parentId) { + obj.children.push(order[parseInt(i.toString(), 10)].id); + } + } + var group = this.diagram.add(obj); + if (group) { + this.select(group); + } + var entry = { type: 'Group', undoObject: obj, redoObject: obj, category: 'Internal' }; + this.addHistoryEntry(entry); + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].Group; + this.diagram.protectPropertyChange(protectedChange); + this.updateBlazorSelector(); + }; + /** + * unGroup method\ + * + * @returns { void } unGroup method .\ + * @param {NodeModel} obj - provide the angle value. + * @private + */ + CommandHandler.prototype.unGroup = function (obj) { + var propName = 'isProtectedOnChange'; + var protectedChange = this.diagram["" + propName]; + this.diagram.protectPropertyChange(true); + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].Group; + var selectedItems = []; + if (obj) { + selectedItems.push(obj); + } + else { + selectedItems = this.diagram.selectedItems.nodes; + } + this.diagram.startGroupAction(); + for (var i = 0; i < selectedItems.length; i++) { + var node = selectedItems[parseInt(i.toString(), 10)]; + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node); + var childCollection = []; + for (var k = 0; k < node.children.length; k++) { + childCollection.push(node.children[parseInt(k.toString(), 10)]); + } + if (node.children) { + if (node.ports && node.ports.length > 0) { + this.diagram.removePorts(node, node.ports); + } + if (node.annotations && node.annotations.length > 0 + && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.annotations[0].content !== '')) { + this.diagram.removeLabels(node, node.annotations); + } + var parentNode = this.diagram.nameTable[node.parentId]; + for (var j = node.children.length - 1; j >= 0; j--) { + (this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]]).parentId = ''; + this.diagram.deleteChild(this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]], node); + if (node.parentId && node.children[parseInt(j.toString(), 10)]) { + this.diagram.addChild(parentNode, node.children[parseInt(j.toString(), 10)]); + } + } + this.resetDependentConnectors(node.inEdges, true); + this.resetDependentConnectors(node.outEdges, false); + var entry = { + type: 'UnGroup', undoObject: undoObject, + redoObject: undoObject, category: 'Internal' + }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + if (node.parentId) { + this.diagram.deleteChild(node, parentNode); + } + } + this.diagram.removeNode(node, childCollection); + this.clearSelection(); + } + this.diagram.endGroupAction(); + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].Group; + this.diagram.protectPropertyChange(protectedChange); + }; + CommandHandler.prototype.resetDependentConnectors = function (edges, isInEdges) { + for (var i = 0; i < edges.length; i++) { + var newConnector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]]; + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(newConnector); + var newProp = void 0; + if (isInEdges) { + newConnector.targetID = ''; + newConnector.targetPortID = ''; + newProp = { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID }; + } + else { + newConnector.sourceID = ''; + newConnector.sourcePortID = ''; + newProp = { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID }; + } + this.diagram.connectorPropertyChange(newConnector, {}, newProp); + var entry = { + type: 'ConnectionChanged', undoObject: { connectors: [undoObject], nodes: [] }, + redoObject: { connectors: [Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(newConnector)], nodes: [] }, category: 'Internal' + }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + } + }; + /** + * paste method\ + * + * @returns { void } paste method .\ + * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value. + * @private + */ + CommandHandler.prototype.paste = function (obj) { + if (obj || this.clipboardData.clipObject) { + this.diagram.protectPropertyChange(true); + var copiedItems = obj ? this.getNewObject(obj) : + this.clipboardData.clipObject; + if (copiedItems) { + var multiSelect = copiedItems.length !== 1; + var groupAction = false; + var objectTable = {}; + var keyTable = {}; + if (this.clipboardData.pasteIndex !== 0) { + this.clearSelection(); + } + if (this.diagram.undoRedoModule) { + groupAction = true; + this.diagram.historyManager.startGroupAction(); + } + for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) { + var copy = copiedItems_1[_i]; + objectTable[copy.id] = copy; + } + var copiedObject = []; + if (multiSelect) { + // This bool is also consider to prevent selection change event is triggered after every object clone + this.diagram.isServerUpdate = true; + } + for (var j = 0; j < copiedItems.length; j++) { + var copy = copiedItems[parseInt(j.toString(), 10)]; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(copy) === _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + var clonedObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(copy); + var nodeId = clonedObj.sourceID; + clonedObj.sourceID = ''; + if (objectTable["" + nodeId] && keyTable["" + nodeId]) { + clonedObj.sourceID = keyTable["" + nodeId]; + } + nodeId = clonedObj.targetID; + clonedObj.targetID = ''; + if (objectTable["" + nodeId] && keyTable["" + nodeId]) { + clonedObj.targetID = keyTable["" + nodeId]; + } + var newObj = this.cloneConnector(clonedObj, multiSelect); + copiedObject.push(newObj); + keyTable[copy.id] = newObj.id; + } + else { + var newNode = this.cloneNode(copy, multiSelect); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && newNode && newNode.children && newNode.children.length > 0) { + copiedObject = copiedObject.concat(this.cloneGroupChildCollection); + this.cloneGroupChildCollection = []; + } + else { + copiedObject.push(newNode); + } + //bpmn text annotations will not be pasted + if (newNode) { + keyTable[copy.id] = newNode.id; + var edges = copy.inEdges; + if (edges) { + for (var _a = 0, edges_1 = edges; _a < edges_1.length; _a++) { + var edge = edges_1[_a]; + if (objectTable["" + edge] && keyTable["" + edge]) { + var newConnector = this.diagram.nameTable[keyTable["" + edge]]; + newConnector.targetID = keyTable[copy.id]; + this.diagram.connectorPropertyChange(newConnector, { targetID: '', targetPortID: '' }, { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID }); + } + } + } + edges = copy.outEdges; + if (edges) { + for (var _b = 0, edges_2 = edges; _b < edges_2.length; _b++) { + var edge = edges_2[_b]; + if (objectTable["" + edge] && keyTable["" + edge]) { + var newConnector = this.diagram.nameTable[keyTable["" + edge]]; + newConnector.sourceID = keyTable[copy.id]; + this.diagram.connectorPropertyChange(newConnector, { sourceID: '', sourcePortID: '' }, { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID }); + } + } + } + } + } + } + if (multiSelect) { + this.diagram.isServerUpdate = false; + this.diagram.UpdateBlazorDiagramModelCollection(copiedItems[0], copiedObject); + this.getBlazorOldValues(); + this.diagram.select(copiedObject, true); + } + if (groupAction === true) { + this.diagram.historyManager.endGroupAction(); + groupAction = false; + } + if (this.diagram.mode !== 'SVG') { + this.diagram.refreshDiagramLayer(); + } + this.clipboardData.pasteIndex++; + this.diagram.protectPropertyChange(false); + } + } + }; + CommandHandler.prototype.getNewObject = function (obj) { + var newObj; + var newobjs = []; + this.clipboardData.pasteIndex = 1; + for (var i = 0; i < obj.length; i++) { + newObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(obj[parseInt(i.toString(), 10)]); + newobjs.push(newObj); + } + return newobjs; + }; + CommandHandler.prototype.cloneConnector = function (connector, multiSelect) { + //let newConnector: Node | Connector; + var cloneObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector); + this.translateObject(cloneObject); + cloneObject.zIndex = -1; + var newConnector = this.diagram.add(cloneObject); + if (!this.diagram.isServerUpdate) { + this.selectObjects([newConnector], multiSelect); + } + return newConnector; + }; + CommandHandler.prototype.cloneNode = function (node, multiSelect, children, groupnodeID) { + var newNode; + var connectorsTable = {}; + var cloneObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node); + var process; + var temp = this.diagram.nameTable[node.parentId]; + if (node.shape && node.shape.type === 'Bpmn' && node.shape.activity && + node.shape.activity.subProcess.processes + && node.shape.activity.subProcess.processes.length) { + process = cloneObject.shape.activity.subProcess.processes; + cloneObject.zIndex = -1; + cloneObject.shape.activity.subProcess.processes = undefined; + } + if (node.shape && node.shape.type === 'SwimLane') { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["pasteSwimLane"])(node, this.diagram, this.clipboardData); + } + else if (temp && temp.shape.type === 'SwimLane') { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["pasteSwimLane"])(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(temp), this.diagram, this.clipboardData, node, true); + } + else if (node.children && node.children.length && (!children || !children.length)) { + newNode = this.cloneGroup(node, multiSelect); + } + else if (node.shape && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.shape === 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.bpmnShape === 'TextAnnotation')) && node.id.indexOf('_textannotation_') !== -1 && + this.diagram.nameTable[node.id]) { + var checkAnnotation = node.id.split('_textannotation_'); + //const parentNode: Node; + var annotation = this.diagram.nameTable[node.id]; + for (var j = 0; j < annotation.inEdges.length; j++) { + var connector = this.diagram.nameTable[annotation.inEdges[parseInt(j.toString(), 10)]]; + if (connector) { + var parentNode = this.diagram.nameTable[connector.sourceID]; + var clonedNode = this.getAnnotation(parentNode, checkAnnotation[1]); + var annotationNode = { + id: checkAnnotation[1] + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(), + angle: clonedNode.angle, + text: clonedNode.text, + length: clonedNode.length, + shape: { shape: 'TextAnnotation', type: 'Bpmn' }, + nodeId: clonedNode.nodeId + }; + this.diagram.addTextAnnotation(annotationNode, parentNode); + } + } + } + else { + this.translateObject(cloneObject, groupnodeID); + cloneObject.zIndex = -1; + if (children) { + cloneObject.children = children; + } + newNode = this.diagram.add(cloneObject); + } + for (var _i = 0, _a = Object.keys(connectorsTable); _i < _a.length; _i++) { + var i = _a[_i]; + this.diagram.add(connectorsTable["" + i]); + } + if (process && process.length) { + newNode.shape.activity.subProcess.processes = process; + this.cloneSubProcesses(newNode); + } + if (newNode && !this.diagram.isServerUpdate) { + this.selectObjects([newNode], multiSelect); + } + return newNode; + }; + CommandHandler.prototype.getAnnotation = function (parent, annotationId) { + var currentAnnotation = parent.shape.annotations; + if (currentAnnotation && currentAnnotation.length) { + for (var g = 0; g <= currentAnnotation.length; g++) { + if (currentAnnotation[parseInt(g.toString(), 10)].id === annotationId) { + return currentAnnotation[parseInt(g.toString(), 10)]; + } + } + } + return undefined; + }; + CommandHandler.prototype.cloneSubProcesses = function (node) { + var connector = []; + var temp = {}; + if (node.shape.type === 'Bpmn' && node.shape.activity && + node.shape.activity.subProcess.processes + && node.shape.activity.subProcess.processes.length) { + var process = node.shape.activity.subProcess.processes; + for (var g = 0; g < process.length; g++) { + var child = this.diagram.nameTable[process[parseInt(g.toString(), 10)]] || this.clipboardData.processTable[process[parseInt(g.toString(), 10)]]; + for (var _i = 0, _a = child.outEdges; _i < _a.length; _i++) { + var j = _a[_i]; + if (connector.indexOf(j) < 0) { + connector.push(j); + } + } + for (var _b = 0, _c = child.inEdges; _b < _c.length; _b++) { + var j = _c[_b]; + if (connector.indexOf(j) < 0) { + connector.push(j); + } + } + var innerChild = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.clipboardData.processTable[process[parseInt(g.toString(), 10)]]); + innerChild.processId = node.id; + var newNode = this.cloneNode(innerChild, false); + temp[process[parseInt(g.toString(), 10)]] = newNode.id; + process[parseInt(g.toString(), 10)] = newNode.id; + this.diagram.addProcess(newNode, node.id); + for (var _d = 0, connector_1 = connector; _d < connector_1.length; _d++) { + var i = connector_1[_d]; + var node_1 = this.diagram.nameTable["" + i] || this.diagram.connectorTable["" + i]; + var clonedNode = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node_1); + if (temp[clonedNode.sourceID] && temp[clonedNode.targetID]) { + clonedNode.zIndex = -1; + clonedNode.id += Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + clonedNode.sourceID = temp[clonedNode.sourceID]; + clonedNode.targetID = temp[clonedNode.targetID]; + connector.splice(connector.indexOf(i), 1); + this.diagram.add(clonedNode); + } + } + } + } + }; + CommandHandler.prototype.cloneGroup = function (obj, multiSelect) { + var value; + var newChildren = []; + var children = []; + var connectorObj = []; + var newObj; + var oldID = []; + children = children.concat(obj.children); + var id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + var objectCollection = []; + this.diagram.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].GroupClipboardInProcess; + if (this.clipboardData.childTable || obj.children.length > 0) { + for (var i = 0; i < children.length; i++) { + var childObj = void 0; + if (this.clipboardData.childTable) { + childObj = this.clipboardData.childTable[children[parseInt(i.toString(), 10)]]; + } + else { + childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]]; + } + childObj.parentId = ''; + if (childObj) { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(childObj) === _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + connectorObj.push(childObj); + } + else { + newObj = this.cloneNode(childObj, multiSelect, undefined, id); + oldID.push(childObj.id); + newChildren.push(newObj.id); + objectCollection.push(newObj); + } + } + } + } + for (var k = 0; k < connectorObj.length; k++) { + if (connectorObj[parseInt(k.toString(), 10)].sourceID || connectorObj[parseInt(k.toString(), 10)].targetID) { + for (var j = 0; j < oldID.length; j++) { + if (connectorObj[parseInt(k.toString(), 10)].sourceID === (oldID[parseInt(j.toString(), 10)])) { + connectorObj[parseInt(k.toString(), 10)].sourceID += id; + } + if (connectorObj[parseInt(k.toString(), 10)].targetID === (oldID[parseInt(j.toString(), 10)])) { + connectorObj[parseInt(k.toString(), 10)].targetID += id; + } + } + } + newObj = this.cloneConnector(connectorObj[parseInt(k.toString(), 10)], multiSelect); + newChildren.push(newObj.id); + objectCollection.push(newObj); + } + var parentObj = this.cloneNode(obj, multiSelect, newChildren); + objectCollection.push(parentObj); + if (parentObj && parentObj.container && parentObj.shape && parentObj.shape.type === 'UmlClassifier') { + this.diagram.updateDiagramObject(parentObj); + parentObj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"]()); + } + this.diagram.blazorActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].GroupClipboardInProcess; + if (!this.diagram.isServerUpdate) { + this.diagram.UpdateBlazorDiagramModelCollection(undefined, objectCollection, undefined, true); + } + else { + this.cloneGroupChildCollection = objectCollection; + } + return parentObj; + }; + /** + * translateObject method\ + * + * @returns { Object[] } translateObject method .\ + * @param {Node | Connector} obj - provide the objects value. + * @param {string} groupnodeID - provide the objects value. + * @private + */ + CommandHandler.prototype.translateObject = function (obj, groupnodeID) { + obj.id += groupnodeID || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + var diff = this.clipboardData.pasteIndex * 10; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(obj) === _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + obj.sourcePoint = { + x: obj.sourcePoint.x + diff, y: obj.sourcePoint.y + diff + }; + obj.targetPoint = { + x: obj.targetPoint.x + diff, y: obj.targetPoint.y + diff + }; + if (obj.type === 'Bezier') { + var segments = obj.segments; + for (var i = 0; i < segments.length; i++) { + if (!_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segments[parseInt(i.toString(), 10)].point1)) { + segments[parseInt(i.toString(), 10)].point1 = { + x: segments[parseInt(i.toString(), 10)].point1.x + diff, y: segments[parseInt(i.toString(), 10)].point1.y + diff + }; + } + if (!_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segments[parseInt(i.toString(), 10)].point2)) { + segments[parseInt(i.toString(), 10)].point2 = { + x: segments[parseInt(i.toString(), 10)].point2.x + diff, y: segments[parseInt(i.toString(), 10)].point2.y + diff + }; + } + } + } + if (obj.type === 'Straight' || obj.type === 'Bezier') { + if (obj.segments && obj.segments.length > 0) { + var segments = obj.segments; + for (var i = 0; i < segments.length - 1; i++) { + segments[parseInt(i.toString(), 10)].point.x += diff; + segments[parseInt(i.toString(), 10)].point.y += diff; + } + } + } + } + else { + obj.offsetX += diff; + obj.offsetY += diff; + } + }; + /** + * drawObject method\ + * + * @returns { Node | Connector } drawObject method .\ + * @param {Node | Connector} obj - provide the objects value. + * @private + */ + CommandHandler.prototype.drawObject = function (obj) { + var oldProtectPropertyChangeValue; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + oldProtectPropertyChangeValue = this.diagram.getProtectPropertyChangeValue(); + this.diagram.protectPropertyChange(true); + } + var newObj; + //let cloneObject: Node | Connector; + if (obj && obj.shape) { + if (obj.shape.type === 'Text') { + obj.width = this.diagram.drawingObject.width ? this.diagram.drawingObject.width : 50; + obj.height = this.diagram.drawingObject.height ? this.diagram.drawingObject.height : 20; + } + } + var cloneObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.drawingObject); + for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { + var prop = _a[_i]; + cloneObject["" + prop] = obj["" + prop]; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.diagram.drawingObject) === _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] || (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.diagram.drawingObject) === _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && this.diagram.drawingObject.type === 'Freehand' && obj.type !== 'Bezier')) { + newObj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](this.diagram, 'nodes', cloneObject, true); + newObj.id = (this.diagram.drawingObject.id || 'node') + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + } + else { + newObj = new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"](this.diagram, 'connectors', cloneObject, true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && !this.diagram.drawingObject) { + newObj.type === 'Orthogonal'; + } + newObj.id = (this.diagram.drawingObject ? (this.diagram.drawingObject.id ? this.diagram.drawingObject.id : 'connector') + : 'connector') + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateDefaultValues"])(newObj, cloneObject, (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(this.diagram.drawingObject) === _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? this.diagram.nodeDefaults : this.diagram.connectorDefaults); + } + this.diagram.initObject(newObj); + this.diagram.updateDiagramObject(newObj); + this.diagram.currentDrawingObject = newObj; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.protectPropertyChange(oldProtectPropertyChangeValue); + } + return newObj; + }; + /** + * addObjectToDiagram method\ + * + * @returns { void } addObjectToDiagram method .\ + * @param {Node | Connector} obj - provide the objects value. + * @private + */ + CommandHandler.prototype.addObjectToDiagram = function (obj) { + //let newObj: Node | Connector; + this.diagram.removeFromAQuad(obj); + this.diagram.removeObjectsFromLayer(this.diagram.nameTable[obj.id]); + delete this.diagram.nameTable[obj.id]; + //EJ2-62652 - Added below code to empty the segment collection if connector type is bezier + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && obj.type === 'Bezier' && obj.segments.length > 0 + && (this.diagram.drawingObject && this.diagram.drawingObject.type === 'Bezier')) { + obj.segments = []; + } + var newObj = this.diagram.add(obj); + if (this.diagram.mode !== 'SVG') { + this.diagram.refreshDiagramLayer(); + } + this.selectObjects([newObj]); + if (obj && (!(Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canContinuousDraw"])(this.diagram)))) { + this.diagram.tool &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramTools"].DrawOnce; + this.diagram.currentDrawingObject = undefined; + } + }; + /** + * addObjectToDiagram method\ + * + * @returns { void } addObjectToDiagram method .\ + * @param {boolean} enable - provide the objects value. + * @private + */ + CommandHandler.prototype.enableServerDataBinding = function (enable) { + this.diagram.enableServerDataBinding(enable); + }; + /** + * addText method\ + * + * @returns { void } addText method .\ + * @param {boolean} obj - provide the objects value. + * @param {PointModel} currentPosition - provide the objects value. + * @private + */ + CommandHandler.prototype.addText = function (obj, currentPosition) { + var annotation = this.diagram.findElementUnderMouse(obj, currentPosition); + this.diagram.startTextEdit(obj, annotation instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_3__["TextElement"] ? (annotation.id).split('_')[1] : undefined); + }; + CommandHandler.prototype.updateArgsObject = function (obj, arg1, argValue) { + if (obj) { + var connector = void 0; + for (var i = 0; i < obj.length; i++) { + connector = (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getObjectType"])(obj[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]); + if (connector) { + // In Blazor web assembly, deserialize the object. Itb takes time. - Suganthi + //argValue.connectors.push(cloneBlazorObject(obj[i])); + argValue.connectorCollection.push(obj[parseInt(i.toString(), 10)].id); + } + else { + //argValue.nodes.push(cloneBlazorObject(obj[i])); + argValue.nodeCollection.push(obj[parseInt(i.toString(), 10)].id); + } + //connector ? argValue.connectors.push(cloneBlazorObject(obj[i])) : argValue.nodes.push(cloneBlazorObject(obj[i])); + } + } + }; + CommandHandler.prototype.updateSelectionChangeEventArgs = function (arg, obj, oldValue) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = { + cause: this.diagram.diagramActions, newValue: {}, oldValue: {}, + state: arg.state, type: arg.type, cancel: false + }; + var argOldValue = arg.oldValue; + var argNewValue = arg.newValue; + argOldValue.connectors = []; + argOldValue.nodes = []; + argNewValue.connectors = []; + argNewValue.nodes = []; + argOldValue.nodeCollection = []; + argOldValue.connectorCollection = []; + argNewValue.nodeCollection = []; + argNewValue.connectorCollection = []; + this.updateArgsObject(this.getSelectedObject(), arg, argNewValue); + this.updateArgsObject(oldValue, arg, argOldValue); + return arg; + } + return arg; + }; + /** + * isUserHandle method\ + * + * @returns { boolean } isUserHandle method .\ + * @param {PointModel} position - provide the objects value. + * @private + */ + CommandHandler.prototype.isUserHandle = function (position) { + var handle = this.diagram.selectedItems; + if (handle.wrapper && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["canShowCorner"])(handle.constraints, 'UserHandle')) { + for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) { + var obj = _a[_i]; + if (obj.visible) { + var paddedBounds = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getUserHandlePosition"])(handle, obj, this.diagram.scroller.transform); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["contains"])(position, paddedBounds, obj.size / (2 * this.diagram.scroller.transform.scale))) { + return true; + } + } + } + } + return false; + }; + /** + * selectObjects method\ + * + * @returns { Promise } selectObjects method .\ + * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value. + * @param {boolean} multipleSelection - provide the objects value. + * @param {(NodeModel | ConnectorModel)[]} oldValue - provide the objects value. + * @private + */ + CommandHandler.prototype.selectObjects = function (obj, multipleSelection, oldValue) { + return __awaiter(this, void 0, void 0, function () { + var arg, swimlaneNode, laneId, j, i, parentId, select, oldSelectedItems, canDoMultipleSelection, canDoSingleSelection, i, newObj, i_1, parentNode, blazorArgs, eventObj, selectedObjects, i; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + arg = { + oldValue: oldValue ? oldValue : this.getSelectedObject(), + newValue: obj, cause: this.diagram.diagramActions, + state: 'Changing', type: 'Addition', cancel: false + }; + // EJ2-57157 - Added to consider the lane header at selection change when selecting a lane. + if (obj.length > 0 && (obj[0] && obj[0].isLane)) { + swimlaneNode = this.diagram.getObject(obj[0].parentId); + obj[0].shape.header = []; + laneId = ''; + for (j = 0; j < obj.length; j++) { + for (i = 0; i < swimlaneNode.shape.lanes.length; i++) { + parentId = obj[0].id.split(obj[0].parentId); + laneId = parentId[1].slice(0, -1); + if (laneId === swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].id) { + obj[0].shape.header.push(swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].header); + } + } + } + } + this.diagram.enableServerDataBinding(false); + select = true; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + } + else { + this.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + } + oldSelectedItems = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors)); + canDoMultipleSelection = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canMultiSelect"])(this.diagram); + canDoSingleSelection = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canSingleSelect"])(this.diagram); + if (canDoSingleSelection || canDoMultipleSelection) { + if (!canDoMultipleSelection && ((obj.length > 1) || (multipleSelection && obj.length === 1))) { + if (obj.length === 1) { + this.clearSelection(); + } + else { + return [2 /*return*/]; + } + } + if (!(canDoSingleSelection || canDoMultipleSelection) && obj.length === 1 + && (!multipleSelection || !Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram))) { + this.clearSelection(); + return [2 /*return*/]; + } + } + if (!!arg.cancel) return [3 /*break*/, 5]; + for (i = 0; i < obj.length; i++) { + newObj = obj[parseInt(i.toString(), 10)]; + if (newObj) { + select = true; + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram)) { + this.select(newObj, i > 0 || multipleSelection, true); + } + else { + if ((i > 0 || multipleSelection) && newObj.children && !newObj.parentId) { + for (i_1 = 0; i_1 < this.diagram.selectedItems.nodes.length; i_1++) { + parentNode = this.diagram.nameTable[this.diagram.selectedItems.nodes[parseInt(i_1.toString(), 10)].parentId]; + if (parentNode) { + parentNode = this.findParent(parentNode); + if (parentNode) { + if (newObj.id === parentNode.id) { + this.selectGroup(newObj); + } + } + } + } + } + this.selectProcesses(newObj); + select = this.selectBpmnSubProcesses(newObj); + if (select) { + this.select(newObj, i > 0 || multipleSelection, true); + } + } + } + } + if (oldValue === undefined) { + oldValue = oldSelectedItems; + } + arg = { + oldValue: oldValue ? oldValue : [], + newValue: this.getSelectedObject(), + cause: this.diagram.diagramActions, state: 'Changed', type: 'Addition', cancel: false + }; + this.diagram.renderSelector(multipleSelection || (obj && obj.length > 1)); + this.updateBlazorSelectorModel(oldValue); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && this.diagram.selectionChange) { + arg = this.updateSelectionChangeEventArgs(arg, obj, oldValue ? oldValue : []); + this.updateBlazorSelector(); + } + if (!!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) return [3 /*break*/, 1]; + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + return [3 /*break*/, 4]; + case 1: + blazorArgs = void 0; + if (!(window && window[this.blazor] && this.diagram.selectionChange)) return [3 /*break*/, 3]; + eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) }; + return [4 /*yield*/, window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram)]; + case 2: + blazorArgs = _a.sent(); + _a.label = 3; + case 3: + // let blazorArgs: void | object = await this.diagram.triggerEvent(DiagramEvent.selectionChange, arg); + if (blazorArgs && blazorArgs.cancel) { + selectedObjects = []; + if (blazorArgs.oldValue.nodes.length > 0) { + selectedObjects = blazorArgs.oldValue.nodes; + } + if (blazorArgs.oldValue.connectors.length > 0) { + selectedObjects = selectedObjects.concat(blazorArgs.oldValue.connectors); + } + if (selectedObjects) { + if (selectedObjects.length > 0) { + for (i = 0; i < selectedObjects.length; i++) { + this.select(this.diagram.nameTable[selectedObjects[parseInt(i.toString(), 10)].id], (i !== 0 && selectedObjects.length > 1) ? true : false); + } + } + else { + this.clearSelection(); + } + } + } + _a.label = 4; + case 4: + this.diagram.enableServerDataBinding(true); + this.updateBlazorSelector(); + _a.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + /** + * updateBlazorSelector method\ + * + * @returns { void } updateBlazorSelector method .\ + * @private + */ + CommandHandler.prototype.updateBlazorSelector = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && this.oldSelectedObjects) { + this.newSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + var result = this.deepDiffer.map(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.newSelectedObjects), this.oldSelectedObjects); + var diffValue = this.deepDiffer.frameObject({}, result); + var diff = this.deepDiffer.removeEmptyValues(diffValue); + diff.nodes = []; + for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) { + diff.nodes.push(this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].id); + } + diff.connectors = []; + for (var i = 0; i < this.diagram.selectedItems.connectors.length; i++) { + diff.connectors.push(this.diagram.selectedItems.connectors[parseInt(i.toString(), 10)].id); + } + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor]) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': { selectedItems: diff } }; + window["" + blazorInterop].updateBlazorProperties(obj, this.diagram); + } + this.oldSelectedObjects = undefined; + this.newSelectedObjects = undefined; + } + }; + /** + * findParent method\ + * + * @returns { Node } findParent method .\ + * @param {Node} node - provide the objects value. + * @private + */ + CommandHandler.prototype.findParent = function (node) { + if (node.parentId) { + node = this.diagram.nameTable[node.parentId]; + this.findParent(node); + } + return node; + }; + CommandHandler.prototype.selectProcesses = function (newObj) { + if (this.hasProcesses(newObj)) { + var processes = (newObj).shape.activity.subProcess.processes; + for (var i = 0; i < processes.length; i++) { + var innerChild = this.diagram.nameTable[processes[parseInt(i.toString(), 10)]]; + if (this.hasProcesses(innerChild)) { + this.selectObjects([innerChild], true); + } + this.unSelect(innerChild); + } + } + }; + CommandHandler.prototype.selectGroup = function (newObj) { + for (var j = 0; j < newObj.children.length; j++) { + var innerChild = this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]]; + if (innerChild.children) { + this.selectGroup(innerChild); + } + this.unSelect(this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]]); + } + }; + CommandHandler.prototype.selectBpmnSubProcesses = function (node) { + var select = true; + var parent; + if (node.processId) { + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, this.diagram.nameTable[node.processId])) { + select = false; + } + else { + select = this.selectBpmnSubProcesses(this.diagram.nameTable[node.processId]); + } + } + else if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + if (node.sourceID && this.diagram.nameTable[node.sourceID] && + this.diagram.nameTable[node.sourceID].processId) { + parent = this.diagram.nameTable[node.sourceID].processId; + } + if (node.targetID && this.diagram.nameTable[node.targetID] && + this.diagram.nameTable[node.targetID].processId) { + parent = this.diagram.nameTable[node.targetID].processId; + } + if (parent) { + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, this.diagram.nameTable["" + parent])) { + return false; + } + else { + select = this.selectBpmnSubProcesses(this.diagram.nameTable["" + parent]); + } + } + } + else if (node.parentId && this.diagram.nameTable[node.parentId] && + this.diagram.nameTable[node.parentId].shape.type === 'UmlClassifier') { + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, this.diagram.nameTable[node.parentId])) { + select = false; + } + } + return select; + }; + CommandHandler.prototype.hasProcesses = function (node) { + if (node) { + if ((node.shape.type === 'Bpmn') && node.shape.activity && + node.shape.activity.subProcess.processes && + node.shape.activity.subProcess.processes.length > 0) { + return true; + } + } + return false; + }; + /** + * select method\ + * + * @returns { void } select method .\ + * @param {NodeModel | ConnectorModel} obj - provide the objects value. + * @param {boolean} multipleSelection - provide the objects value. + * @param {boolean} preventUpdate - provide the objects value. + * @private + */ + CommandHandler.prototype.select = function (obj, multipleSelection, preventUpdate) { + var hasLayer = this.getObjectLayer(obj.id); + if ((Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canSelect"])(obj) && !(obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) && !Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, obj)) + && (hasLayer && !hasLayer.lock && hasLayer.visible) && obj.wrapper.visible) { + multipleSelection = Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram) ? multipleSelection : false; + if (!multipleSelection) { + this.clearSelection(); + } + this.diagram.enableServerDataBinding(false); + var selectorModel = this.diagram.selectedItems; + var convert = obj; + if (convert instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + if (obj.isHeader) { + var node = this.diagram.nameTable[obj.parentId]; + selectorModel.nodes.push(node); + } + else { + selectorModel.nodes.push(obj); + } + } + else { + selectorModel.connectors.push(obj); + } + // EJ2-56919 - Push the newly selected objects in selectedObjects collection + selectorModel.selectedObjects.push(obj); + if (!multipleSelection) { + selectorModel.init(this.diagram); + if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) { + var wrapper = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["gridSelection"])(this.diagram, selectorModel); + if (wrapper) { + selectorModel.wrapper.children[0] = wrapper; + } + selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle; + selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle; + selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot; + } + } + else { + selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0; + selectorModel.wrapper.children.push(obj.wrapper); + } + if (!preventUpdate) { + this.diagram.renderSelector(multipleSelection); + } + this.diagram.enableServerDataBinding(true); + } + }; + CommandHandler.prototype.getObjectCollectionId = function (isNode, clearSelection) { + var id = []; + var i = 0; + var selectedObject = isNode ? this.diagram.selectedItems.nodes + : this.diagram.selectedItems.connectors; + while (!clearSelection && i < selectedObject.length) { + id[parseInt(i.toString(), 10)] = selectedObject[parseInt(i.toString(), 10)].id; + i++; + } + return id; + }; + CommandHandler.prototype.updateBlazorSelectorModel = function (oldItemsCollection, clearSelection) { + var blazorInterop = 'sfBlazor'; + if (window && window["" + blazorInterop]) { + var i = 0; + var nodes = []; + var connectors = []; + var oldItems = []; + while (oldItemsCollection && i < oldItemsCollection.length) { + oldItems[parseInt(i.toString(), 10)] = oldItemsCollection[parseInt(i.toString(), 10)].id; + i++; + } + i = 0; + nodes = this.getObjectCollectionId(true, clearSelection); + connectors = this.getObjectCollectionId(false, clearSelection); + var items = { nodes: nodes, connectors: connectors }; + var newItems = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(items); + if (window["" + blazorInterop].updateDiagramCollection) { + window["" + blazorInterop].updateDiagramCollection.call(this.diagram, 'selectedItems', newItems, oldItems, false, true); + } + } + }; + /** + * labelSelect method\ + * + * @returns { void } labelSelect method .\ + * @param {NodeModel | ConnectorModel} obj - provide the objects value. + * @param {DiagramElement} textWrapper - provide the objects value. + * @private + */ + CommandHandler.prototype.labelSelect = function (obj, textWrapper) { + this.oldSelectedObjects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneSelectedObjects"])(this.diagram); + var selectorModel = (this.diagram.selectedItems); + var isEnableServerDatabind = this.diagram.allowServerDataBinding; + this.diagram.allowServerDataBinding = false; + selectorModel.nodes = selectorModel.connectors = []; + this.diagram.allowServerDataBinding = isEnableServerDatabind; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + selectorModel.nodes[0] = obj; + } + else { + selectorModel.connectors[0] = obj; + } + selectorModel.annotation = (this.findTarget(textWrapper, obj)); + selectorModel.init(this.diagram); + this.diagram.renderSelector(false); + this.updateBlazorSelector(); + }; + /** + * unSelect method\ + * + * @returns { void } unSelect method .\ + * @param {NodeModel | ConnectorModel} obj - provide the objects value. + * @private + */ + CommandHandler.prototype.unSelect = function (obj) { + var objArray = []; + objArray.push(obj); + var items = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors)); + var selectedObjects = items.filter(function (items) { + return items.id !== obj.id; + }); + var arg = { + oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions, + state: 'Changing', type: 'Removal', cancel: false + }; + if (!this.diagram.currentSymbol) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + } + } + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, obj)) { + var selectormodel = this.diagram.selectedItems; + var index = void 0; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + index = selectormodel.nodes.indexOf(obj, 0); + selectormodel.nodes.splice(index, 1); + } + else { + index = selectormodel.connectors.indexOf(obj, 0); + selectormodel.connectors.splice(index, 1); + } + index = selectormodel.selectedObjects.indexOf(obj, 0); + selectormodel.selectedObjects.splice(index, 1); + arg = { + oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions, + state: 'Changed', type: 'Removal', cancel: false + }; + this.updateBlazorSelectorModel(objArray); + arg = { + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(items), newValue: selectedObjects, cause: this.diagram.diagramActions, + state: 'Changed', type: 'Removal', cancel: arg.cancel + }; + if (!arg.cancel) { + index = selectormodel.wrapper.children.indexOf(obj.wrapper, 0); + selectormodel.wrapper.children.splice(index, 1); + this.diagram.updateSelector(); + if (!this.diagram.currentSymbol) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = this.updateSelectionChangeEventArgs(arg, [], objArray); + this.updateBlazorSelector(); + if (window && window[this.blazor] && this.diagram.selectionChange) { + var eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) }; + window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram); + } + } + else { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + } + } + } + } + }; + /** + * getChildElements method\ + * + * @returns { string[] } getChildElements method .\ + * @param {DiagramElement[]} child - provide the objects value. + * @private + */ + CommandHandler.prototype.getChildElements = function (child) { + var children = []; + for (var i = 0; i < child.length; i++) { + var childNode = child[parseInt(i.toString(), 10)]; + if (childNode.children && childNode.children.length > 0) { + children.concat(this.getChildElements(childNode.children)); + } + else { + children.push(childNode.id); + if (childNode instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_3__["TextElement"]) { + children.push(childNode.id + '_text'); + } + } + } + return children; + }; + /** + * moveSvgNode method\ + * + * @returns { void } moveSvgNode method .\ + * @param {string} nodeId - provide the objects value. + * @param {string} targetID - provide the objects value. + * @private + */ + CommandHandler.prototype.moveSvgNode = function (nodeId, targetID) { + var diagramDiv = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(targetID + '_groupElement', this.diagram.element.id); + var backNode = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(nodeId + '_groupElement', this.diagram.element.id); + diagramDiv.parentNode.insertBefore(backNode, diagramDiv); + }; + /** + * sendLayerBackward method\ + * + * @returns { void } sendLayerBackward method .\ + * @param {string} layerName - provide the objects value. + * @private + */ + CommandHandler.prototype.sendLayerBackward = function (layerName) { + var layer = this.getLayer(layerName); + if (layer && layer.zIndex !== 0) { + var index = layer.zIndex; + if (this.diagram.mode === 'SVG') { + var currentLayerObject = layer.objects; + var targetObject = this.getLayer(this.diagram.layerZIndexTable[index - 1]).objects[0]; + if (targetObject) { + for (var _i = 0, currentLayerObject_1 = currentLayerObject; _i < currentLayerObject_1.length; _i++) { + var obj = currentLayerObject_1[_i]; + this.moveSvgNode(obj, targetObject); + } + } + } + var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index - 1]); + targetLayer.zIndex = targetLayer.zIndex + 1; + layer.zIndex = layer.zIndex - 1; + var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)]; + this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index - 1]; + this.diagram.layerZIndexTable[index - 1] = temp; + if (this.diagram.mode === 'Canvas') { + this.diagram.refreshDiagramLayer(); + } + } + }; + /** + * bringLayerForward method\ + * + * @returns { void } bringLayerForward method .\ + * @param {string} layerName - provide the objects value. + * @private + */ + CommandHandler.prototype.bringLayerForward = function (layerName) { + var layer = this.getLayer(layerName); + if (layer && layer.zIndex < this.diagram.layers.length - 1) { + var index = layer.zIndex; + var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index + 1]); + if (this.diagram.mode === 'SVG') { + var currentLayerObject = layer.objects[0]; + var targetLayerObjects = targetLayer.objects; + for (var _i = 0, targetLayerObjects_1 = targetLayerObjects; _i < targetLayerObjects_1.length; _i++) { + var obj = targetLayerObjects_1[_i]; + if (obj) { + this.moveSvgNode(obj, currentLayerObject); + } + } + } + targetLayer.zIndex = targetLayer.zIndex - 1; + layer.zIndex = layer.zIndex + 1; + var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)]; + this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index + 1]; + this.diagram.layerZIndexTable[index + 1] = temp; + if (this.diagram.mode === 'Canvas') { + this.diagram.refreshDiagramLayer(); + } + } + }; + /** + * sendToBack method\ + * + * @returns { void } sendToBack method .\ + * @param {NodeModel | ConnectorModel} object - provide the objects value. + * @private + */ + CommandHandler.prototype.sendToBack = function (object) { + this.diagram.protectPropertyChange(true); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram) || object) { + // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and + // perform send to back operation + var selectedItems = this.diagram.selectedItems; + var objects = []; + if (object && object.id) { + objects.push(object); + } + else { + objects = objects.concat(selectedItems.nodes); + objects = objects.concat(selectedItems.connectors); + } + var objectId = (object && object.id); + for (var i = 0; i < objects.length; i++) { + var clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(objects[parseInt(i.toString(), 10)]); + objectId = objects[parseInt(i.toString(), 10)].id; + var index = this.diagram.nameTable["" + objectId].zIndex; + var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId)); + var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable; + var tempTable = JSON.parse(JSON.stringify(zIndexTable)); + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + var tempIndex = 0; + //Checks whether the selected node is the only node in the node array. + //Checks whether it is not a group and the nodes behind it are not it’s children. + if (this.diagram.nodes.length !== 1 && (this.diagram.nameTable["" + objectId].children === undefined || + this.checkObjectBehind(objectId, zIndexTable, index))) { + var obj = this.diagram.nameTable["" + objectId]; + for (var i_2 = index; i_2 > 0; i_2--) { + if (zIndexTable[parseInt(i_2.toString(), 10)]) { + //When there are empty records in the zindex table + if (!zIndexTable[i_2 - 1]) { + zIndexTable[i_2 - 1] = zIndexTable[parseInt(i_2.toString(), 10)]; + this.diagram.nameTable[zIndexTable[i_2 - 1]].zIndex = i_2; + delete zIndexTable[parseInt(i_2.toString(), 10)]; + } + else { + //bringing the objects forward + zIndexTable[parseInt(i_2.toString(), 10)] = zIndexTable[i_2 - 1]; + this.diagram.nameTable[zIndexTable[parseInt(i_2.toString(), 10)]].zIndex = i_2; + } + } + } + for (var i_3 = index; i_3 > 0; i_3--) { + if (zIndexTable[parseInt(i_3.toString(), 10)]) { + this.diagram.nameTable[zIndexTable[parseInt(i_3.toString(), 10)]].zIndex = i_3; + } + } + if (obj.shape.type !== 'SwimLane') { + zIndexTable[0] = this.diagram.nameTable["" + objectId].id; + this.diagram.nameTable["" + objectId].zIndex = 0; + } + else { + tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable); + } + if (this.diagram.mode === 'SVG') { + var obj_1 = this.diagram.nameTable["" + objectId]; + var i_4 = obj_1.shape.type !== 'SwimLane' ? 1 : tempIndex; + if (i_4 !== tempIndex) { + i_4 = (obj_1.children && obj_1.children.length > 0) ? index : 1; + } + var target = zIndexTable[parseInt(i_4.toString(), 10)]; + // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node. + while (!target && i_4 < index) { + target = zIndexTable[++i_4]; + } + // EJ2-46656 - CR issue fix + target = this.resetTargetNode(objectId, target, i_4, zIndexTable); + //EJ2-69654 - Send to back command not working when there is single node in layer + if (target) { + target = this.diagram.nameTable["" + target].parentId ? this.checkParentExist(target) : target; + this.moveSvgNode(objectId, target); + } + this.updateNativeNodeIndex(objectId); + } + else { + this.diagram.refreshCanvasLayers(); + } + var redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + var entry = { type: 'SendToBack', category: 'Internal', undoObject: undoObject, redoObject: redoObject }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + } + this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]); + } + } + this.diagram.protectPropertyChange(false); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.getZIndexObjects(); + } + }; + CommandHandler.prototype.swapZIndexObjects = function (index, zIndexTable, objectId, tempTable) { + var tempIndex = 0; + var childCount = 0; + var childIndex = -1; + var j = 1; + // Get the swimlane's Children count + for (var i = 0; i <= index; i++) { + if (zIndexTable[parseInt(i.toString(), 10)] && this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].parentId === objectId) { + // Get the swimlane's first children position from z index table + if (childIndex === -1) { + childIndex = i; + } + childCount++; + } + } + // Swap the swimlane children to the top of the z index table + for (var i = 0; i <= index; i++) { + if (zIndexTable[parseInt(i.toString(), 10)] && j <= childCount) { + while (!zIndexTable[parseInt(childIndex.toString(), 10)]) { + childIndex++; + } + zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[parseInt(childIndex.toString(), 10)]; + this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i; + childIndex++; + j++; + } + } + var k = 0; + // Get the Z index from ZindexTable in the child's count position. In that position we want to put the swimlane + for (var i = 0; i < childCount; i++) { + while (!zIndexTable[parseInt(k.toString(), 10)]) { + k++; + } + tempIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex; + k++; + } + tempIndex = tempIndex + 1; + // Check if there is a object in the z index table or not + while (!zIndexTable[parseInt(tempIndex.toString(), 10)]) { + ++tempIndex; + } + k = 0; + // Place the swimlane at the next position of the swimlane's last children. + zIndexTable[parseInt(tempIndex.toString(), 10)] = this.diagram.nameTable["" + objectId].id; + this.diagram.nameTable["" + objectId].zIndex = tempIndex; + tempIndex = tempIndex + 1; + // Now swap the intersect nodes at next position of the swimlane. + for (var i = tempIndex; i <= index; i++) { + if (zIndexTable[parseInt(i.toString(), 10)]) { + while (!tempTable[parseInt(k.toString(), 10)]) { + k++; + } + zIndexTable[parseInt(i.toString(), 10)] = tempTable[parseInt(k.toString(), 10)]; + this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i; + k++; + } + } + return tempIndex; + }; + CommandHandler.prototype.resetTargetNode = function (objectId, target, i, zIndexTable) { + if (this.diagram.nameTable["" + objectId].shape.type === 'SwimLane' + && this.diagram.nameTable["" + target].parentId !== undefined && this.diagram.nameTable["" + target].parentId !== '' && this.diagram.nameTable[this.diagram.nameTable["" + target].parentId].isLane) { + i = i + 1; + if (zIndexTable[parseInt(i.toString(), 10)]) { + target = zIndexTable[parseInt(i.toString(), 10)]; + return target = this.resetTargetNode(objectId, target, i, zIndexTable); + } + else { + return target; + } + } + else { + return target; + } + }; + CommandHandler.prototype.getZIndexObjects = function () { + var element = []; + var i; + var j; + for (i = 0; i < this.diagram.nodes.length; i++) { + element.push(this.diagram.nodes[parseInt(i.toString(), 10)]); + } + for (j = 0; j < this.diagram.connectors.length; j++) { + element.push(this.diagram.connectors[parseInt(j.toString(), 10)]); + } + this.updateBlazorZIndex(element); + }; + CommandHandler.prototype.updateBlazorZIndex = function (element) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + var diagramobject = {}; + var nodeObject = []; + var connectorObject = []; + var k; + if (element && element.length > 0) { + for (k = 0; k < element.length; k++) { + var elementObject = element[parseInt(k.toString(), 10)]; + if (elementObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + nodeObject.push(this.getBlazorObject(elementObject)); + } + else if (elementObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + connectorObject.push(this.getBlazorObject(elementObject)); + } + } + } + diagramobject = { + nodes: nodeObject, + connectors: connectorObject + }; + if (window && window["" + blazor]) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramobject }; + window["" + blazorInterop].updateBlazorProperties(obj, this.diagram); + } + }; + CommandHandler.prototype.getBlazorObject = function (objectName) { + var object = { + sfIndex: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getIndex"])(this.diagram, objectName.id), + zIndex: objectName.zIndex + }; + return object; + }; + //Checks whether the target is a child node. + CommandHandler.prototype.checkParentExist = function (target) { + var objBehind = target; + while (this.diagram.nameTable["" + objBehind].parentId) { + objBehind = this.diagram.nameTable["" + objBehind].parentId; + } + return objBehind; + }; + //Checks whether the selected node is not a parent of another node. + CommandHandler.prototype.checkObjectBehind = function (objectId, zIndexTable, index) { + for (var i = 0; i < index; i++) { + var z = zIndexTable[parseInt(i.toString(), 10)]; + if (this.diagram.nameTable["" + z] && objectId !== this.diagram.nameTable["" + z].parentId) { + return true; + } + } + return false; + }; + /** + * bringToFront method\ + * + * @returns { void } bringToFront method .\ + * @param {NodeModel | ConnectorModel } obj - Provide the nodeArray element . + * @private + */ + CommandHandler.prototype.bringToFront = function (obj) { + var _this = this; + this.diagram.protectPropertyChange(true); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram) || obj) { + // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and + // perform bring to front operation + var objectName_1 = (obj && obj.id); + var selectedItems = this.diagram.selectedItems; + var objects = []; + if (obj && obj.id) { + objects.push(obj); + } + else { + objects = objects.concat(selectedItems.nodes); + objects = objects.concat(selectedItems.connectors); + } + var _loop_1 = function (i) { + var clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(objects[parseInt(i.toString(), 10)]); + objectName_1 = objects[parseInt(i.toString(), 10)].id; + var layerNum = this_1.diagram.layers.indexOf(this_1.getObjectLayer(objectName_1)); + var zIndexTable = this_1.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable; + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this_1.diagram.selectedItems); + var tempTable = JSON.parse(JSON.stringify(zIndexTable)); + var tempIndex = 0; + //find the maximum zIndex of the tabel + var tabelLength = Number(Object.keys(zIndexTable).sort(function (a, b) { return Number(a) - Number(b); }).reverse()[0]); + var index = this_1.diagram.nameTable["" + objectName_1].zIndex; + var oldzIndexTable = []; + var length_1 = 0; + for (var i_5 = 0; i_5 <= tabelLength; i_5++) { + oldzIndexTable.push(zIndexTable[parseInt(i_5.toString(), 10)]); + } + var object = this_1.diagram.nameTable["" + objectName_1]; + if (object.shape.type === 'SwimLane') { + for (var i_6 = tabelLength; i_6 >= index; i_6--) { + if (zIndexTable[parseInt(i_6.toString(), 10)] && !(this_1.diagram.nameTable[zIndexTable[parseInt(i_6.toString(), 10)]].parentId === objectName_1)) { + length_1 = i_6; + tabelLength = length_1; + break; + } + } + } + for (var i_7 = index; i_7 < tabelLength; i_7++) { + //When there are empty records in the zindex table + if (zIndexTable[parseInt(i_7.toString(), 10)]) { + if (!zIndexTable[i_7 + 1]) { + zIndexTable[i_7 + 1] = zIndexTable[parseInt(i_7.toString(), 10)]; + this_1.diagram.nameTable[zIndexTable[i_7 + 1]].zIndex = i_7; + delete zIndexTable[parseInt(i_7.toString(), 10)]; + } + else { + //bringing the objects backward + zIndexTable[parseInt(i_7.toString(), 10)] = zIndexTable[i_7 + 1]; + this_1.diagram.nameTable[zIndexTable[parseInt(i_7.toString(), 10)]].zIndex = i_7; + } + } + } + for (var i_8 = index; i_8 < tabelLength; i_8++) { + if (zIndexTable[parseInt(i_8.toString(), 10)]) { + this_1.diagram.nameTable[zIndexTable[parseInt(i_8.toString(), 10)]].zIndex = i_8; + } + } + if (object.shape.type !== 'SwimLane') { + zIndexTable[parseInt(tabelLength.toString(), 10)] = this_1.diagram.nameTable["" + objectName_1].id; + this_1.diagram.nameTable["" + objectName_1].zIndex = tabelLength; + } + else { + var childCount = 0; + var childIndex = -1; + var tempIndex_1 = 0; + var laneIndex = 0; + var cloneTable = JSON.parse(JSON.stringify(zIndexTable)); + for (var i_9 = 0; i_9 <= index; i_9++) { + if (zIndexTable[parseInt(i_9.toString(), 10)] && this_1.diagram.nameTable[zIndexTable[parseInt(i_9.toString(), 10)]].parentId === objectName_1) { + if (childIndex === -1) { + childIndex = i_9; + tempIndex_1 = i_9; + break; + } + } + } + for (var i_10 = 0; i_10 <= tabelLength; i_10++) { + if (tempTable[parseInt(i_10.toString(), 10)] && tempTable[parseInt(i_10.toString(), 10)] !== objectName_1 && this_1.diagram.nameTable[tempTable[parseInt(i_10.toString(), 10)]].parentId !== objectName_1) { + var node = this_1.diagram.nameTable[tempTable[parseInt(i_10.toString(), 10)]]; + var swimlaneObject = this_1.diagram.nameTable["" + objectName_1]; + if (node.zIndex >= swimlaneObject.zIndex) { + childCount++; + } + } + } + var k = childIndex; + for (var i_11 = 0; i_11 <= childCount; i_11++) { + while (!zIndexTable[parseInt(k.toString(), 10)]) { + k++; + } + laneIndex = this_1.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex; + k++; + } + for (var i_12 = laneIndex; i_12 <= tabelLength; i_12++) { + while (!cloneTable[parseInt(childIndex.toString(), 10)]) { + childIndex++; + } + while (!zIndexTable[parseInt(i_12.toString(), 10)]) { + i_12++; + } + zIndexTable[parseInt(i_12.toString(), 10)] = cloneTable[parseInt(childIndex.toString(), 10)]; + this_1.diagram.nameTable[zIndexTable[parseInt(i_12.toString(), 10)]].zIndex = i_12; + childIndex++; + } + zIndexTable[parseInt(tabelLength.toString(), 10)] = this_1.diagram.nameTable["" + objectName_1].id; + this_1.diagram.nameTable["" + objectName_1].zIndex = tabelLength; + k = index + 1; + var j = tempIndex_1; + for (var i_13 = 0; i_13 < childCount; i_13++) { + while (!tempTable[parseInt(k.toString(), 10)]) { + k++; + } + while (this_1.diagram.nameTable[tempTable[parseInt(k.toString(), 10)]].parentId === objectName_1) { + k++; + } + while (!zIndexTable[parseInt(j.toString(), 10)]) { + j++; + } + zIndexTable[parseInt(j.toString(), 10)] = tempTable[parseInt(k.toString(), 10)]; + this_1.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j; + k++; + j++; + } + } + if (this_1.diagram.mode === 'SVG') { + var diagramLayer = this_1.diagram.diagramLayer; + //const child: string[] = this.getChildElements(this.diagram.nameTable[objectName].wrapper.children); + //const targerNodes: Object = []; + var element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(objectName_1 + '_groupElement', this_1.diagram.element.id); + var nodes = this_1.diagram.selectedItems.nodes; + if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) { + element.parentNode.removeChild(element); + for (var j = 0; j < this_1.diagram.views.length; j++) { + element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(objectName_1 + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'), this_1.diagram.views[parseInt(j.toString(), 10)]); + var lastChildNode = element.parentNode.lastChild; + lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling); + } + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getHTMLLayer"])(this_1.diagram.element.id); + this_1.diagram.diagramRenderer.renderElement(this_1.diagram.nameTable["" + objectName_1].wrapper, diagramLayer, htmlLayer); + } + else { + Object.keys(zIndexTable).forEach(function (key) { + var zIndexValue = zIndexTable["" + key]; + if ((zIndexValue !== objectName_1) && (_this.diagram.nameTable["" + zIndexValue].parentId) !== objectName_1) { + //EJ2-42101 - SendToBack and BringToFront not working for connector with group node + //Added @Dheepshiva to restrict the objects with lower zIndex + if (zIndexValue !== undefined && + (oldzIndexTable.indexOf(objectName_1) < oldzIndexTable.indexOf(zIndexValue))) { + var objectNode = _this.diagram.nameTable["" + objectName_1]; + var zIndexNode = _this.diagram.nameTable["" + zIndexValue]; + if (objectNode.parentId === '' && zIndexNode.parentId === '' && zIndexNode.parentId === undefined + && objectNode.parentId !== zIndexNode.id) { + _this.moveSvgNode(zIndexValue, objectName_1); + _this.updateNativeNodeIndex(objectName_1); + } + else { + if (_this.checkGroupNode(objectName_1, zIndexValue, _this.diagram.nameTable)) { + _this.moveSvgNode(zIndexValue, objectName_1); + _this.updateNativeNodeIndex(objectName_1); + } + } + } + } + }); + } + } + else { + this_1.diagram.refreshCanvasLayers(); + } + var redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this_1.diagram.selectedItems); + var entry = { type: 'BringToFront', category: 'Internal', undoObject: undoObject, redoObject: redoObject }; + if (!(this_1.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this_1.addHistoryEntry(entry); + } + this_1.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]); + }; + var this_1 = this; + for (var i = 0; i < objects.length; i++) { + _loop_1(i); + } + } + this.diagram.protectPropertyChange(false); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.getZIndexObjects(); + } + }; + CommandHandler.prototype.triggerOrderCommand = function (oldObj, newObj, obj) { + var clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(oldObj); + // EJ2-61653 - Added below code to get only changed values (zIndex) and passed as an argument to property change event + var oldValue = { + zIndex: clonedObject.zIndex + }; + var newValue = { + zIndex: newObj.zIndex + }; + var arg = { + element: obj, cause: this.diagram.diagramActions, diagramAction: this.diagram.getDiagramAction(this.diagram.diagramActions), + oldValue: oldValue, newValue: newValue + }; + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].propertyChange, arg); + }; + CommandHandler.prototype.checkGroupNode = function (selectedNodeName, layerObject, nameTable) { + return nameTable["" + layerObject].parentId === nameTable["" + selectedNodeName].parentId; + }; + /** + * sortByZIndex method\ + * + * @returns { Object[] } sortByZIndex method .\ + * @param { Object[] } nodeArray - Provide the nodeArray element . + * @param { string } sortID - Provide the sortID element . + * @private + */ + CommandHandler.prototype.sortByZIndex = function (nodeArray, sortID) { + var id = sortID ? sortID : 'zIndex'; + nodeArray = nodeArray.sort(function (a, b) { + return a["" + id] - b["" + id]; + }); + return nodeArray; + }; + /** + * orderCommands method\ + * + * @returns { void } orderCommands method .\ + * @param { boolean } isRedo - Provide the previousObject element . + * @param { Selector } selector - Provide the previousObject element . + * @param { EntryType } action - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.orderCommands = function (isRedo, selector, action) { + var selectedObject = selector.nodes; + selectedObject = selectedObject.concat(selector.connectors); + if (isRedo) { + if (action === 'SendBackward') { + this.sendBackward(selectedObject[0]); + } + else if (action === 'SendForward') { + this.sendForward(selectedObject[0]); + } + else if (action === 'BringToFront') { + this.bringToFront(selectedObject[0]); + } + else if (action === 'SendToBack') { + this.sendToBack(selectedObject[0]); + } + } + else { + var startZIndex = selectedObject[0].zIndex; + var endZIndex = this.diagram.nameTable[selectedObject[0].id].zIndex; + var undoObject = selectedObject[0]; + var layer = this.getObjectLayer(undoObject.id); + var layerIndex = layer.zIndex; + var zIndexTable = layer.zIndexTable; + if (action === 'SendBackward' || action === 'SendForward') { + for (var i = 0; i < selectedObject.length; i++) { + var undoObject_1 = selectedObject[parseInt(i.toString(), 10)]; + var layer_2 = this.diagram.layers.indexOf(this.getObjectLayer(undoObject_1.id)); + var node = this.diagram.nameTable[selectedObject[parseInt(i.toString(), 10)].id]; + node.zIndex = undoObject_1.zIndex; + this.diagram.layers[parseInt(layer_2.toString(), 10)].zIndexTable[undoObject_1.zIndex] = undoObject_1.id; + } + } + else if (action === 'BringToFront') { + if (selectedObject[0].shape.type === 'SwimLane') { + this.sendToBack(selectedObject[0]); + } + else { + var k = 1; + for (var j = endZIndex; j > startZIndex; j--) { + if (zIndexTable[parseInt(j.toString(), 10)]) { + if (!zIndexTable[j - k]) { + zIndexTable[j - k] = zIndexTable[parseInt(j.toString(), 10)]; + this.diagram.nameTable[zIndexTable[j - k]].zIndex = j; + delete zIndexTable[parseInt(j.toString(), 10)]; + } + else { + zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j - k]; + this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j; + } + } + } + } + } + else if (action === 'SendToBack') { + if (selectedObject[0].shape.type === 'SwimLane') { + this.bringToFront(selectedObject[0]); + } + else { + for (var j = endZIndex; j < startZIndex; j++) { + if (zIndexTable[parseInt(j.toString(), 10)]) { + if (!zIndexTable[j + 1]) { + zIndexTable[j + 1] = zIndexTable[parseInt(j.toString(), 10)]; + this.diagram.nameTable[zIndexTable[j + 1]].zIndex = j; + delete zIndexTable[parseInt(j.toString(), 10)]; + } + else { + zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j + 1]; + this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j; + } + } + } + } + } + if (action === 'BringToFront' || action === 'SendToBack') { + var node = this.diagram.nameTable[selectedObject[0].id]; + node.zIndex = undoObject.zIndex; + this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable[undoObject.zIndex] = undoObject.id; + } + if (this.diagram.mode === 'SVG') { + if (action === 'SendBackward') { + this.moveObject(selectedObject[1].id, selectedObject[0].id); + } + else if (action === 'SendForward') { + this.moveObject(selectedObject[0].id, selectedObject[1].id); + } + else if (action === 'BringToFront') { + if (selectedObject[0].shape.type !== 'SwimLane') { + this.moveObject(selectedObject[0].id, zIndexTable[selectedObject[0].zIndex + 1]); + } + } + else if (action === 'SendToBack') { + if (selectedObject[0].shape.type !== 'SwimLane') { + var layer_3 = this.getObjectLayer(selectedObject[0].id); + for (var i = 0; i <= selectedObject[0].zIndex; i++) { + if (layer_3.objects[parseInt(i.toString(), 10)] !== selectedObject[0].id) { + this.moveSvgNode(layer_3.objects[parseInt(i.toString(), 10)], selectedObject[0].id); + this.updateNativeNodeIndex(selectedObject[0].id); + } + } + } + } + } + else { + this.diagram.refreshCanvasLayers(); + } + } + }; + CommandHandler.prototype.moveObject = function (sourceId, targetId) { + if (targetId) { + this.moveSvgNode(sourceId, targetId); + this.updateNativeNodeIndex(sourceId, targetId); + } + }; + /** + * sendForward method\ + * + * @returns { void } sendForward method .\ + * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.sendForward = function (obj) { + this.diagram.protectPropertyChange(true); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram) || obj) { + var elements = obj || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0] + : this.diagram.selectedItems.connectors[0]); + var clonedObjects = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(elements); + var nodeId = (obj && obj.id); + nodeId = nodeId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id + : this.diagram.selectedItems.connectors[0].id); + var layerIndex = this.diagram.layers.indexOf(this.getObjectLayer(nodeId)); + var zIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable; + //const tabelLength: number = Object.keys(zIndexTable).length; + var index = this.diagram.nameTable["" + nodeId]; + var intersectArray = []; + var temp = this.diagram.spatialSearch.findObjects(index.wrapper.bounds); + if (temp.length > 2) { + temp = this.sortByZIndex(temp); + } + for (var _i = 0, temp_1 = temp; _i < temp_1.length; _i++) { + var i = temp_1[_i]; + if (index.id !== i.id) { + var currentLayer = this.getObjectLayer(i.id).zIndex; + if (layerIndex === currentLayer && (Number(this.diagram.nameTable["" + nodeId].zIndex) < Number(i.zIndex)) && + index.wrapper.bounds.intersects(i.wrapper.bounds)) { + intersectArray.push(i); + break; + } + } + } + if (intersectArray.length > 0) { + var node = this.diagram.nameTable[zIndexTable[Number(intersectArray[0].zIndex)]]; + if (node.parentId) { + var parentId = ''; + var parent_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findParentInSwimlane"])(node, this.diagram, parentId); + var obj_2 = this.diagram.nameTable["" + parent_1]; + if (obj_2.id !== nodeId) { + intersectArray[0] = obj_2; + } + } + var overlapObject = intersectArray[0].zIndex; + var currentObject = index.zIndex; + var temp_2 = zIndexTable[parseInt(overlapObject.toString(), 10)]; + //swap the nodes + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (this.diagram.nameTable["" + temp_2] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? undoObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_2])) : + undoObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_2])); + this.diagram.layers[0].zIndexTable[parseInt(overlapObject.toString(), 10)] = index.id; + this.diagram.nameTable[zIndexTable[parseInt(overlapObject.toString(), 10)]].zIndex = overlapObject; + this.diagram.layers[0].zIndexTable[parseInt(currentObject.toString(), 10)] = intersectArray[0].id; + this.diagram.nameTable[zIndexTable[parseInt(currentObject.toString(), 10)]].zIndex = currentObject; + if (this.diagram.mode === 'SVG') { + this.moveSvgNode(zIndexTable[Number(intersectArray[0].zIndex)], nodeId); + this.updateNativeNodeIndex(zIndexTable[Number(intersectArray[0].zIndex)], nodeId); + } + else { + this.diagram.refreshCanvasLayers(); + } + var redo = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + // eslint-disable-next-line + (this.diagram.nameTable[temp_2] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? redo.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable[temp_2])) : + redo.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_2])); + var historyEntry = { + type: 'SendForward', category: 'Internal', + undoObject: undoObject, redoObject: redo + }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(historyEntry); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + var elements_1 = []; + elements_1.push(index); + elements_1.push(intersectArray[intersectArray.length - 1]); + this.updateBlazorZIndex(elements_1); + } + this.triggerOrderCommand(clonedObjects, elements, elements); + } + this.diagram.protectPropertyChange(false); + }; + /** + * sendBackward method\ + * + * @returns { void } sendBackward method .\ + * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.sendBackward = function (obj) { + this.diagram.protectPropertyChange(true); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram) || obj) { + var element = obj || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0] + : this.diagram.selectedItems.connectors[0]); + var clonedObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(element); + var objectId = (obj && obj.id); + objectId = objectId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id + : this.diagram.selectedItems.connectors[0].id); + var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId)); + var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable; + //const tabelLength: number = Object.keys(zIndexTable).length; + var node = this.diagram.nameTable["" + objectId]; + var intersectArray = []; + var temp = this.diagram.spatialSearch.findObjects(node.wrapper.bounds); + if (temp.length > 2) { + temp = this.sortByZIndex(temp); + } + for (var _i = 0, temp_3 = temp; _i < temp_3.length; _i++) { + var i = temp_3[_i]; + if (node.id !== i.id) { + var currentLayer = this.getObjectLayer(i.id).zIndex; + if (layerNum === currentLayer && (Number(this.diagram.nameTable["" + objectId].zIndex) > Number(i.zIndex)) && + node.wrapper.bounds.intersects(i.wrapper.bounds)) { + intersectArray.push(i); + } + } + } + for (var i = intersectArray.length - 1; i >= 0; i--) { + var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id]; + if (child.parentId === objectId) { + intersectArray.splice(i, 1); + } + } + if (intersectArray.length > 0) { + var child = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id]; + if (child.parentId) { + var parentId = ''; + var parent_2 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findParentInSwimlane"])(child, this.diagram, parentId); + var obj_3 = this.diagram.nameTable["" + parent_2]; + if (objectId !== obj_3.id) { + intersectArray[intersectArray.length - 1] = obj_3; + } + } + var overlapObject = intersectArray[intersectArray.length - 1].zIndex; + var currentObject = node.zIndex; + var temp_4 = zIndexTable[parseInt(overlapObject.toString(), 10)]; + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + // eslint-disable-next-line + (this.diagram.nameTable["" + temp_4] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? undoObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_4])) : + undoObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_4])); + //swap the nodes + zIndexTable[parseInt(overlapObject.toString(), 10)] = node.id; + this.diagram.nameTable[zIndexTable[parseInt(overlapObject.toString(), 10)]].zIndex = overlapObject; + zIndexTable[parseInt(currentObject.toString(), 10)] = intersectArray[intersectArray.length - 1].id; + this.diagram.nameTable[zIndexTable[parseInt(currentObject.toString(), 10)]].zIndex = currentObject; + if (this.diagram.mode === 'SVG') { + this.moveSvgNode(objectId, zIndexTable[intersectArray[intersectArray.length - 1].zIndex]); + var node_2 = this.diagram.nameTable[zIndexTable[intersectArray[intersectArray.length - 1].zIndex]]; + if (node_2.children && node_2.children.length > 0) { + this.updateNativeNodeIndex(objectId); + } + else { + this.updateNativeNodeIndex(objectId, zIndexTable[intersectArray[intersectArray.length - 1].zIndex]); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + var elements = []; + elements.push(node_2); + elements.push(intersectArray[intersectArray.length - 1]); + this.updateBlazorZIndex(elements); + } + } + else { + this.diagram.refreshCanvasLayers(); + } + var redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (this.diagram.nameTable["" + temp_4] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? redoObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_4])) : + redoObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable["" + temp_4])); + var entry = { type: 'SendBackward', category: 'Internal', undoObject: undoObject, redoObject: redoObject }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].UndoRedo)) { + this.addHistoryEntry(entry); + } + //swap the nodes + } + this.triggerOrderCommand(clonedObject, element, element); + } + this.diagram.protectPropertyChange(false); + }; + /** + * updateNativeNodeIndex method\ + * + * @returns { void } updateNativeNodeIndex method .\ + * @param { string } nodeId - Provide the previousObject element . + * @param { string } targetID - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.updateNativeNodeIndex = function (nodeId, targetID) { + var node = this.diagram.selectedItems.nodes[0] || this.diagram.getObject(targetID); + for (var i = 0; i < this.diagram.views.length; i++) { + if (node && (node.shape.type === 'HTML' + || node.shape.type === 'Native')) { + var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement'; + var backNode = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]); + var diagramDiv = targetID ? Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getDiagramElement"])(targetID + id, this.diagram.views[parseInt(i.toString(), 10)]) + : backNode.parentElement.firstChild; + if (backNode && diagramDiv) { + if (backNode.parentNode.id === diagramDiv.parentNode.id) { + diagramDiv.parentNode.insertBefore(backNode, diagramDiv); + } + } + } + } + }; + /** + * initSelectorWrapper method\ + * + * @returns { void } initSelectorWrapper method .\ + * @private + */ + CommandHandler.prototype.initSelectorWrapper = function () { + var selectorModel = this.diagram.selectedItems; + selectorModel.init(this.diagram); + if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) { + selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle; + selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle; + selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot; + } + }; + /** + * doRubberBandSelection method\ + * + * @returns { void } doRubberBandSelection method .\ + * @param { Rect } region - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.doRubberBandSelection = function (region) { + this.clearSelectionRectangle(); + var selArray = []; + var rubberArray = []; + selArray = this.diagram.getNodesConnectors(selArray); + if (this.diagram.selectedItems.rubberBandSelectionMode === 'CompleteIntersect') { + rubberArray = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["completeRegion"])(region, selArray); + } + else { + rubberArray = this.diagram.spatialSearch.findObjects(region); + } + if (rubberArray.length) { + this.selectObjects(rubberArray, true); + } + }; + CommandHandler.prototype.clearSelectionRectangle = function () { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getAdornerLayerSvg"])(this.diagram.element.id); + var element = adornerSvg.getElementById(this.diagram.element.id + '_diagramAdorner_selected_region'); + if (element) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["remove"])(element); + } + }; + /** + * dragConnectorEnds method\ + * + * @returns { void } dragConnectorEnds method .\ + * @param { string } endPoint - Provide the previousObject element . + * @param { IElement } obj - Provide the previousObject element . + * @param { PointModel } point - Provide the point element . + * @param { BezierSegmentModel } segment - Provide the segment element . + * @param { IElement } target - Provide the target element . + * @param { string } targetPortId - Provide the targetPortId element . + * @private + */ + CommandHandler.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId) { + var selectorModel; + var connector; //let node: Node; + var tx; //let segmentPoint: PointModel; + var ty; //let index: number; + var checkBezierThumb = false; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + selectorModel = obj; + connector = selectorModel.connectors[0]; + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && this.diagram.currentDrawingObject) { + this.clearSelection(); + connector = this.diagram.currentDrawingObject; + } + if (endPoint === 'BezierSourceThumb' || endPoint === 'BezierTargetThumb') { + checkBezierThumb = true; + connector.isBezierEditing = true; + } + if (endPoint === 'ConnectorSourceEnd' || endPoint === 'BezierSourceThumb') { + tx = point.x - (checkBezierThumb ? segment.bezierPoint1.x : connector.sourcePoint.x); + ty = point.y - (checkBezierThumb ? segment.bezierPoint1.y : connector.sourcePoint.y); + return this.dragSourceEnd(connector, tx, ty, null, point, endPoint, undefined, target, targetPortId, undefined, segment); + } + else { + tx = point.x - (checkBezierThumb ? segment.bezierPoint2.x : connector.targetPoint.x); + ty = point.y - (checkBezierThumb ? segment.bezierPoint2.y : connector.targetPoint.y); + return this.dragTargetEnd(connector, tx, ty, null, point, endPoint, undefined, segment); + } + }; + /** + * getSelectedObject method\ + * + * @returns { void } getSelectedObject method .\ + * @private + */ + CommandHandler.prototype.getSelectedObject = function () { + var selectormodel = this.diagram.selectedItems; + return (selectormodel.nodes).concat(selectormodel.connectors); + }; + /** + * updateBlazorProperties method\ + * + * @returns { void } updateBlazorProperties method .\ + * @param { boolean } isObjectInteraction - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.updateBlazorProperties = function (isObjectInteraction) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (!isObjectInteraction) { + if (window && window["" + blazor]) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.diagramObject }; + window["" + blazorInterop].updateBlazorProperties(obj, this.diagram); + } + } + else { + if (window && window["" + blazor] && JSON.stringify(this.deepDiffer.diagramObject) !== '{}') { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.deepDiffer.diagramObject }; + if (!this.diagram.isLoading) { + window["" + blazorInterop].updateBlazorProperties(obj, this.diagram); + } + } + } + //this.diagram.enableServerDataBinding(true); + this.deepDiffer.newNodeObject = []; + this.deepDiffer.newConnectorObject = []; + this.diagramObject = []; + this.diagram.oldNodeObjects = []; + this.diagram.oldConnectorObjects = []; + }; + /** + * enableCloneObject method\ + * + * @returns { void } enableCloneObject method .\ + * @param { boolean } value - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.enableCloneObject = function (value) { + if ((!this.diagram.lineRoutingModule || !(this.diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramConstraints"].LineRouting))) { + this.diagram.canEnableBlazorObject = value; + } + }; + /** + * ismouseEvents method\ + * + * @returns { void } ismouseEvents method .\ + * @param { boolean } value - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.ismouseEvents = function (value) { + if (value) { + this.diagram.blazorActions = this.diagram.addConstraints(this.diagram.blazorActions, _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].interaction); + } + else { + this.diagram.blazorActions = this.diagram.removeConstraints(this.diagram.blazorActions, _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].interaction); + } + }; + /** + * updateLayerObject method\ + * + * @returns { void } updateLayerObject method .\ + * @param { object } oldDiagram - Provide the previousObject element . + * @param { boolean } temp - Provide the temp element . + * @private + */ + CommandHandler.prototype.updateLayerObject = function (oldDiagram, temp) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + var diffLayers = {}; + diffLayers = this.deepDiffer.getLayerObject(oldDiagram, temp, this.diagram); + this.diagramObject = diffLayers; + this.updateBlazorProperties(); + } + }; + /* tslint:enable:no-string-literal */ + /** + * getDiagramOldValues method\ + * + * @returns { void } getDiagramOldValues method .\ + * @param { object } oldDiagram - Provide the previousObject element . + * @param { string[] } attribute - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.getDiagramOldValues = function (oldDiagram, attribute) { + var newDiagram = {}; + for (var i = 0; i < attribute.length; i++) { + newDiagram[attribute[parseInt(i.toString(), 10)]] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram[attribute[parseInt(i.toString(), 10)]]); + } + var newObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(newDiagram); + var result = this.deepDiffer.map(newObject, oldDiagram); + var diffValue = this.deepDiffer.frameObject({}, result); + var diff = this.deepDiffer.removeEmptyValues(diffValue); + diff = this.deepDiffer.changeSegments(diff, newObject); + this.diagramObject = diff; + if (!(this.diagram.blazorActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].ClearObject)) { + this.updateBlazorProperties(); + } + }; + /* tslint:disable */ + /** + * getBlazorOldValues method\ + * + * @returns { void } getBlazorOldValues method .\ + * @param { MouseEventArgs } args - Provide the previousObject element . + * @param { boolean } labelDrag - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.getBlazorOldValues = function (args, labelDrag) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + var oldNodeObject = this.diagram.oldNodeObjects; + for (var i = 0; i < oldNodeObject.length; i++) { + if (oldNodeObject[parseInt(i.toString(), 10)].id) { + if (this.diagram.oldNodeObjects[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + this.diagram.oldNodeObjects[parseInt(i.toString(), 10)] = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.diagram.oldNodeObjects[parseInt(i.toString(), 10)]); + } + this.deepDiffer.getDifferenceValues(this.diagram.nameTable[oldNodeObject[parseInt(i.toString(), 10)].id], args, labelDrag, this.diagram); + } + } + var oldConnectorObject = this.diagram.oldConnectorObjects; + for (var i = 0; i < oldConnectorObject.length; i++) { + if (oldConnectorObject[parseInt(i.toString(), 10)].id) { + if (this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)] = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)]); + } + this.deepDiffer.getDifferenceValues(this.diagram.nameTable[oldConnectorObject[parseInt(i.toString(), 10)].id], args, labelDrag, this.diagram); + } + } + if (oldNodeObject.length > 0 || oldConnectorObject.length > 0) { + this.updateBlazorProperties(true); + } + } + }; + /** + * getObjectChanges method\ + * + * @returns { void } getObjectChanges method .\ + * @param { Object[] } previousObject - Provide the previousObject element . + * @param { Object[] } currentObject - Provide the previousObject element . + * @param { Object[] } previousObject - Provide the previousObject element . + * @private + */ + CommandHandler.prototype.getObjectChanges = function (previousObject, currentObject, changedNodes) { + for (var i = 0; i < previousObject.length; i++) { + var value = this.deepDiffer.map(currentObject[parseInt(i.toString(), 10)], previousObject[parseInt(i.toString(), 10)]); + var result = this.deepDiffer.frameObject({}, value); + var change = this.deepDiffer.removeEmptyValues(result); + if (change.children) { + change.children = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(currentObject[parseInt(i.toString(), 10)]).children; + } + change = this.deepDiffer.changeSegments(change, currentObject[parseInt(i.toString(), 10)]); + change.sfIndex = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getIndex"])(this.diagram, currentObject[parseInt(i.toString(), 10)].id); + changedNodes.push(change); + } + }; + /** + * clearObjectSelection method\ + * + * @returns { void } clearObjectSelection method .\ + * @param { (NodeModel | ConnectorModel) } mouseDownElement - Provide the triggerAction element . + * @private + */ + // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node + CommandHandler.prototype.clearObjectSelection = function (mouseDownElement) { + var selectedItems = this.diagram.selectedItems; + var list = []; + list = list.concat(selectedItems.nodes, selectedItems.connectors); + if (list.indexOf(mouseDownElement) === -1) { + this.clearSelection((list.length > 0) ? true : false); + this.selectObjects([mouseDownElement], true); + } + }; + /** + * clearSelection method\ + * + * @returns { void } clearSelection method .\ + * @param { boolean } triggerAction - Provide the triggerAction element . + * @param { boolean } isTriggered - Provide the isTriggered element . + * @private + */ + CommandHandler.prototype.clearSelection = function (triggerAction, isTriggered) { + return __awaiter(this, void 0, void 0, function () { + var enableServerDataBinding, selectormodel, arrayNodes, arg, blazarArgs, eventObj, selectNodes, i; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + enableServerDataBinding = this.diagram.allowServerDataBinding; + this.diagram.enableServerDataBinding(false); + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram)) return [3 /*break*/, 5]; + selectormodel = this.diagram.selectedItems; + arrayNodes = this.getSelectedObject(); + if (this.diagram.currentSymbol) { + this.diagram.previousSelectedObject = arrayNodes; + } + arg = { + oldValue: arrayNodes, newValue: [], cause: this.diagram.diagramActions, + state: 'Changing', type: 'Removal', cancel: false + }; + this.updateBlazorSelectorModel(arrayNodes, true); + if (triggerAction) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + } + else { + this.oldSelectedObjects = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(selectormodel); + } + } + if (!!arg.cancel) return [3 /*break*/, 4]; + selectormodel.offsetX = 0; + selectormodel.offsetY = 0; + selectormodel.width = 0; + selectormodel.height = 0; + selectormodel.rotateAngle = 0; + selectormodel.nodes = []; + selectormodel.connectors = []; + selectormodel.wrapper = null; + selectormodel.annotation = undefined; + // EJ2-56919 - While clear selection empty the selectedObjects collection + selectormodel.selectedObjects = []; + this.diagram.clearSelectorLayer(); + if (!triggerAction) return [3 /*break*/, 4]; + arg = { + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(arrayNodes), newValue: [], cause: this.diagram.diagramActions, + state: 'Changed', type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + arg = this.updateSelectionChangeEventArgs(arg, [], arrayNodes); + this.updateBlazorSelector(); + } + if (!!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) return [3 /*break*/, 1]; + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].selectionChange, arg); + return [3 /*break*/, 4]; + case 1: + blazarArgs = void 0; + if (!(window && window[this.blazor] && this.diagram.selectionChange)) return [3 /*break*/, 3]; + eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) }; + return [4 /*yield*/, window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram)]; + case 2: + blazarArgs = _a.sent(); + _a.label = 3; + case 3: + // let blazarArgs: void | object = await this.diagram.triggerEvent(DiagramEvent.selectionChange, arg); + if (blazarArgs && blazarArgs.cancel && !isTriggered) { + selectNodes = []; + if (blazarArgs.oldValue.nodes.length > 0) { + selectNodes = blazarArgs.oldValue.nodes; + } + if (blazarArgs.oldValue.connectors.length > 0) { + selectNodes = selectNodes.concat(blazarArgs.oldValue.connectors); + } + if (selectNodes) { + for (i = 0; i < selectNodes.length; i++) { + this.select(this.diagram.nameTable[selectNodes[parseInt(i.toString(), 10)].id], (i !== 0 && selectNodes.length > 1) ? true : false); + } + } + } + _a.label = 4; + case 4: + this.updateBlazorSelector(); + this.diagram.enableServerDataBinding(enableServerDataBinding); + _a.label = 5; + case 5: return [2 /*return*/]; + } + }); + }); + }; + /** + * clearSelectedItems method\ + * + * @returns { void } clearSelectedItems method .\ + * @private + */ + CommandHandler.prototype.clearSelectedItems = function () { + var selectedNodes = this.diagram.selectedItems.nodes ? this.diagram.selectedItems.nodes.length : 0; + var selectedConnectors = this.diagram.selectedItems.connectors ? this.diagram.selectedItems.connectors.length : 0; + this.clearSelection((selectedNodes + selectedConnectors) > 0 ? true : false); + }; + /** + * removeStackHighlighter method\ + * + * @returns { void } removeStackHighlighter method .\ + * @private + */ + CommandHandler.prototype.removeStackHighlighter = function () { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getAdornerLayerSvg"])(this.diagram.element.id); + var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter'); + if (highlighter) { + highlighter.parentNode.removeChild(highlighter); + } + }; + /** + * @param {End} args - provide the args value. + * @param {IElement} target - provide the target value. + * @private + */ + CommandHandler.prototype.renderStackHighlighter = function (args, target) { + var source = this.diagram.selectedItems.nodes[0]; + var symbolDrag; + var node; + var selectorModel; + if (!target) { + var objects = this.diagram.findObjectsUnderMouse(args.position); + target = this.diagram.findObjectUnderMouse(objects, 'Drag', true); + if (target && !(target.isLane || target.isPhase || target.isHeader)) { + for (var i = 0; i < objects.length; i++) { + var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id]; + if (!laneNode.isLane || laneNode.isPhase || laneNode.isHeader) { + target = laneNode; + this.diagram.parentObject = target; + } + } + } + } + if (source && target && target.isLane && source.shape && !source.shape.isPhase) { + node = this.diagram.nameTable[target.parentId]; + if (this.diagram.currentSymbol && node.shape.type === 'SwimLane') { + symbolDrag = true; + } + if ((source && !source.parentId && source.shape.type !== 'SwimLane') || + (source && source.parentId && this.diagram.nameTable[source.parentId] && this.diagram.nameTable[source.parentId].isLane && + (source.parentId !== target.parentId && source.parentId !== target.id))) { + selectorModel = this.diagram.selectedItems; + var canvas = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["gridSelection"])(this.diagram, selectorModel, target.id, true); + if (canvas) { + selectorModel.wrapper.children[0] = canvas; + } + this.diagram.renderSelector(false, true); + selectorModel.wrapper.children[0] = selectorModel.nodes[0].wrapper; + } + } + if (source && target && target.parentId && source.shape && source.shape.isPhase) { + var node_3 = this.diagram.nameTable[target.parentId]; + if (node_3.shape.type === 'SwimLane') { + this.diagram.selectedItems.wrapper.children[0] = this.diagram.nameTable[target.parentId].wrapper; + this.diagram.renderSelector(false, true); + } + } + if ((symbolDrag && this.diagram.currentSymbol.shape.isLane) || (source && target && + source.parentId && target.parentId && !source.isPhase && (source.parentId === target.parentId) + && (source.id !== target.id) && node && + (node.container && (node.container.type === 'Stack' || node.container.type === 'Grid')))) { + var canvas = void 0; + var value = node.container.orientation === 'Vertical'; + var isVertical = node.container === 'Stack' ? value : !value; + if (node.container.type === 'Grid' && target.isLane && + ((!this.diagram.currentSymbol && + (node.shape.orientation === 'Horizontal' && target.rowIndex !== source.rowIndex) || + (node.shape.orientation === 'Vertical' && target.columnIndex !== source.columnIndex)) + || (this.diagram.currentSymbol && + this.diagram.currentSymbol.shape.orientation === node.container.orientation))) { + selectorModel = this.diagram.selectedItems; + if ((source.isLane && Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["canLaneInterchange"])(source, this.diagram)) || !source.isLane) { + canvas = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["gridSelection"])(this.diagram, selectorModel, target.id, symbolDrag); + } + } + var wrapper = node.container.type === 'Stack' ? target.wrapper : canvas; + if (wrapper) { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderStackHighlighter"])(wrapper, isVertical, args.position, this.diagram, false, true); + } + } + }; + /** @private */ + CommandHandler.prototype.insertBlazorConnector = function (obj) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + for (var i = 0; i < obj.connectors.length; i++) { + this.diagram.insertBlazorConnector(obj.connectors[parseInt(i.toString(), 10)]); + } + } + else { + this.diagram.insertBlazorConnector(obj); + } + }; + /** @private */ + CommandHandler.prototype.drag = function (obj, tx, ty) { + var tempNode; + var elements = []; + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canMove"])(obj) && this.checkBoundaryConstraints(tx, ty, obj.wrapper.bounds) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPageEditable"])(this.diagram)) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + var oldValues = { offsetX: obj.offsetX, offsetY: obj.offsetY }; + obj.offsetX += tx; + obj.offsetY += ty; + if (obj.children && !(obj.container)) { + if (!(Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true))) { + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].isGroupDragging; + } + var nodes = this.getAllDescendants(obj, elements); + for (var i = 0; i < nodes.length; i++) { + tempNode = (this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id]); + this.drag(tempNode, tx, ty); + } + this.updateInnerParentProperties(obj); + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].isGroupDragging; + } + if (Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true)) { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkChildNodeInContainer"])(this.diagram, obj); + } + else { + if (obj && obj.shape && obj.shape.type === 'UmlClassifier') { + obj.wrapper.measureChildren = true; + } + this.diagram.nodePropertyChange(obj, oldValues, { offsetX: obj.offsetX, offsetY: obj.offsetY }, undefined, undefined, false); + obj.wrapper.measureChildren = false; + } + if (obj.shape.type === 'SwimLane' && !this.diagram.currentSymbol) { + var grid = obj.wrapper.children[0]; + var connectors = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["getConnectors"])(this.diagram, grid, 0, true); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateConnectorsProperties"])(connectors, this.diagram); + } + } + else { + var connector = obj; + var oldValues = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint }; + var update = connector.type === 'Bezier' ? true : false; + var hasEnds = false; + if (!connector.sourceWrapper) { + this.dragSourceEnd(connector, tx, ty, true, null, '', update); + } + else { + hasEnds = true; + } + if (!connector.targetWrapper) { + this.dragTargetEnd(connector, tx, ty, true, null, '', update); + } + else { + hasEnds = true; + } + var canDragPoints = false; + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + canDragPoints = true; + } + if (!hasEnds || canDragPoints) { + this.dragControlPoint(connector, tx, ty, true); + var conn = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint }; + this.diagram.connectorPropertyChange(connector, oldValues, conn); + } + } + } + }; + /** @private */ + CommandHandler.prototype.connectorSegmentChange = function (actualObject, existingInnerBounds, isRotate) { + var tx; + var ty; + var segmentChange = true; + if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) { + if (actualObject.outEdges.length > 0) { + for (var k = 0; k < actualObject.outEdges.length; k++) { + var connector = this.diagram.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]]; + if (connector.targetID !== '') { + segmentChange = this.isSelected(this.diagram.nameTable[connector.targetID]) ? false : true; + } + else { + segmentChange = this.isSelected(this.diagram.nameTable[connector.id]) ? false : true; + } + if (connector.type === 'Orthogonal' && connector.segments && connector.segments.length > 1) { + if (!isRotate) { + if (segmentChange) { + switch (connector.segments[0].direction) { + case 'Bottom': + tx = actualObject.wrapper.bounds.bottomCenter.x - existingInnerBounds.bottomCenter.x; + ty = actualObject.wrapper.bounds.bottomCenter.y - existingInnerBounds.bottomCenter.y; + break; + case 'Top': + tx = actualObject.wrapper.bounds.topCenter.x - existingInnerBounds.topCenter.x; + ty = actualObject.wrapper.bounds.topCenter.y - existingInnerBounds.topCenter.y; + break; + case 'Left': + tx = actualObject.wrapper.bounds.middleLeft.x - existingInnerBounds.middleLeft.x; + ty = actualObject.wrapper.bounds.middleLeft.y - existingInnerBounds.middleLeft.y; + break; + case 'Right': + tx = actualObject.wrapper.bounds.middleRight.x - existingInnerBounds.middleRight.x; + ty = actualObject.wrapper.bounds.middleRight.y - existingInnerBounds.middleRight.y; + break; + } + this.dragSourceEnd(connector, tx, ty, true, null, 'ConnectorSourceEnd', undefined, undefined, undefined, (actualObject.parentId && + (this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].isGroupDragging)) ? false : true); + } + } + else { + var firstSegment = connector.segments[0]; + var secondSegment = connector.segments[1]; + var cornerPoints = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["swapBounds"])(actualObject.wrapper, actualObject.wrapper.corners, actualObject.wrapper.bounds); + var sourcePoint = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findPoint"])(cornerPoints, firstSegment.direction); + sourcePoint = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["getIntersection"])(connector, connector.sourceWrapper, sourcePoint, { x: connector.sourceWrapper.offsetX, y: connector.sourceWrapper.offsetY }, false); + var source = { + corners: undefined, point: sourcePoint, margin: undefined, direction: firstSegment.direction + }; + var target = { + corners: undefined, point: secondSegment.points[1], margin: undefined, direction: undefined + }; + var intermediatePoints = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["orthoConnection2Segment"])(source, target); + firstSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(intermediatePoints[0], intermediatePoints[1]); + if (secondSegment.direction && secondSegment.length) { + secondSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(intermediatePoints[1], intermediatePoints[2]); + } + } + } + } + } + } + }; + /** @private */ + CommandHandler.prototype.updateEndPoint = function (connector, oldChanges) { + var conn = { + sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint, + sourceID: connector.sourceID ? connector.sourceID : undefined, + targetID: connector.targetID ? connector.targetID : undefined, + sourcePortID: connector.sourcePortID ? connector.sourcePortID : undefined, + targetPortID: connector.targetPortID ? connector.targetPortID : undefined, + segments: connector.segments ? connector.segments : undefined + }; + var newValue = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint }; + if (connector.sourceID) { + newValue.sourceID = connector.sourceID; + } + if (connector.targetID) { + newValue.targetID = connector.targetID; + } + if (connector.sourcePortID) { + newValue.sourcePortID = connector.sourcePortID; + } + if (connector.targetPortID) { + newValue.targetPortID = connector.targetPortID; + } + if (connector.segments) { + newValue.segments = connector.segments; + } + this.diagram.connectorPropertyChange(connector, oldChanges ? oldChanges : {}, newValue); + // this.diagram.refreshDiagramLayer(); + this.diagram.updateSelector(); + }; + /** + * @param obj + * @param tx + * @param ty + * @param preventUpdate + * @param point + * @param endPoint + * @param update + * @param target + * @param targetPortId + * @param isDragSource + * @param segment + * @private + */ + CommandHandler.prototype.dragSourceEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, target, targetPortId, isDragSource, segment) { + var connector = this.diagram.nameTable[obj.id]; + var oldChanges = {}; + var checkBoundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds); + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canDragSourceEnd"])(connector) && checkBoundaryConstraints + && (endPoint !== 'BezierSourceThumb') && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPageEditable"])(this.diagram)) { + oldChanges = { sourcePoint: connector.sourcePoint }; + oldChanges = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(oldChanges); + connector.sourcePoint.x += tx; + connector.sourcePoint.y += ty; + if (endPoint === 'ConnectorSourceEnd' && connector.type === 'Orthogonal') { + this.changeSegmentLength(connector, target, targetPortId, isDragSource); + } + if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') { + this.updatePathElementOffset(connector); + } + } + if (connector.type === 'Bezier') { + oldChanges = { sourcePoint: connector.sourcePoint }; + if (segment) { + this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, segment, point, !update); + } + else { + for (var i = 0; i < obj.segments.length; i++) { + this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update); + } + } + } + if (!preventUpdate) { + this.updateEndPoint(connector, oldChanges); + } + if (!(this.diagram.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["RealAction"].AnimationClick)) { + this.diagram.refreshCanvasLayers(); + } + return checkBoundaryConstraints; + }; + /** + * Update Path Element offset + */ + CommandHandler.prototype.updatePathElementOffset = function (connector) { + connector.wrapper.children.splice(3, 1); + var pathElement = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_2__["PathElement"](); + var anglePoints = connector.intermediatePoints; + pathElement = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updatePathElement"])(anglePoints, connector); + connector.wrapper.children.splice(3, 0, pathElement); + }; + /** + * Upadte the connector segments when change the source node + */ + CommandHandler.prototype.changeSegmentLength = function (connector, target, targetPortId, isDragSource) { + // EJ2-65063 - Added below code to check condition if connector segment length can be changed or not. + // If inconnect and outconnect removed from node constraints + var canChangeSegment = target ? this.canConnect(connector, target) : true; + if (connector.segments && connector.segments[0].direction !== null + && ((!target && connector.sourceID === '') || isDragSource) && canChangeSegment) { + var first = connector.segments[0]; + var second = connector.segments[1]; + var node = this.diagram.nameTable[connector.sourceID]; + var secPoint = void 0; + first.points[0] = connector.sourcePoint; + if (first.direction === 'Top' || first.direction === 'Bottom') { + first.points[first.points.length - 1].x = connector.sourcePoint.x; + second.points[0].y = first.points[first.points.length - 1].y; + } + else { + first.points[first.points.length - 1].y = connector.sourcePoint.y; + second.points[0].x = first.points[first.points.length - 1].x; + } + if (first.direction && (first.length || first.length === 0)) { + first.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(first.points[0], first.points[first.points.length - 1]); + } + if (second.direction && (second.length || second.length === 0)) { + second.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(first.points[first.points.length - 1], second.points[second.points.length - 1]); + second.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].direction(first.points[first.points.length - 1], second.points[second.points.length - 1]); + } + if (connector.sourcePortID !== '' && first.length < 10) { + if (connector.segments.length > 2) { + var next = connector.segments[2]; + var nextDirection = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].direction(next.points[0], next.points[1]); + if (first.direction === Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["getOppositeDirection"])(nextDirection)) { + if (first.direction === 'Right') { + next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleRight.x + 20; + } + else if (first.direction === 'Left') { + next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleLeft.x - 20; + } + else if (first.direction === 'Top') { + next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.topCenter.y - 20; + } + else { + next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.bottomCenter.y + 20; + } + if (next.direction && next.length) { + next.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(next.points[0], next.points[next.points.length - 1]); + } + first.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(first.points[0], first.points[first.points.length - 1]); + } + else if (first.direction === nextDirection && next.direction && next.length) { + if (first.direction === 'Top' || first.direction === 'Bottom') { + next.points[0] = first.points[0]; + next.points[next.points.length - 1].x = next.points[0].x; + } + else { + next.points[0] = first.points[0]; + next.points[next.points.length - 1].y = next.points[0].y; + } + next.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(next.points[0], next.points[next.points.length - 1]); + connector.segments.splice(0, 2); + } + else { + first.length = 20; + } + } + else { + first.length = 20; + } + } + else if (first.length < 1) { + if (connector.sourceID !== '') { + if (second.direction === 'Right') { + secPoint = node.wrapper.corners.middleRight; + second.points[second.points.length - 1].y = secPoint.y; + } + else if (second.direction === 'Left') { + secPoint = node.wrapper.corners.middleLeft; + second.points[second.points.length - 1].y = secPoint.y; + } + else if (second.direction === 'Top') { + secPoint = node.wrapper.corners.topCenter; + second.points[second.points.length - 1].x = secPoint.x; + } + else { + secPoint = node.wrapper.corners.bottomCenter; + second.points[second.points.length - 1].x = secPoint.x; + } + second.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(secPoint, second.points[second.points.length - 1]); + if (connector.segments.length > 2) { + var next = connector.segments[2]; + if (next.direction && next.length) { + next.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(second.points[second.points.length - 1], next.points[next.points.length - 1]); + } + } + connector.segments.splice(0, 1); + } + else { + connector.segments.splice(0, 1); + } + } + } + else { + if (target && !targetPortId && connector.sourceID !== target.id && + connector.segments && connector.segments[0].direction !== null && target && target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] && canChangeSegment) { + this.changeSourceEndToNode(connector, target); + } + if (target && targetPortId && connector.sourcePortID !== targetPortId && + connector.segments && connector.segments[0].direction !== null && target && target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] && canChangeSegment) { + this.changeSourceEndToPort(connector, target, targetPortId); + } + } + }; + // EJ2-65063 - Added below method to check if target has inConnect or outConnect. If it does not have inconnect and outconnect means then return false + CommandHandler.prototype.canConnect = function (connector, target) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canInConnect"])(target) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canOutConnect"])(target)) { + return true; + } + else { + return false; + } + }; + /** + * Change the connector endPoint to port + */ + CommandHandler.prototype.changeSourceEndToPort = function (connector, target, targetPortId) { + var port = this.diagram.getWrapper(target.wrapper, targetPortId); + var point = { x: port.offsetX, y: port.offsetY }; + var direction = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["getPortDirection"])(point, Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cornersPointsBeforeRotation"])(target.wrapper), target.wrapper.bounds, false); + var firstSegment = connector.segments[0]; + var secondSegment = connector.segments[1]; + if (firstSegment.direction !== direction) { + var segments = []; + var segValues = {}; + if (firstSegment.direction === Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["getOppositeDirection"])(direction)) { + segValues = {}; + var segValues1 = void 0; + if (direction === 'Top' || direction === 'Bottom') { + segValues1 = (direction === 'Top') ? { + type: 'Orthogonal', isTerminal: true, direction: direction, + length: Math.abs(firstSegment.points[0].y - point.y) + } : + { + type: 'Orthogonal', isTerminal: true, direction: direction, + length: Math.abs(point.y - firstSegment.points[0].y) + }; + segValues = (firstSegment.points[0].x > point.x) ? + { type: 'Orthogonal', isTerminal: true, direction: 'Right', length: (firstSegment.points[0].x - point.x) } : + { type: 'Orthogonal', isTerminal: true, direction: 'Left', length: (point.x - firstSegment.points[0].x) }; + } + else { + segValues1 = (direction === 'Right') ? { + type: 'Orthogonal', isTerminal: true, direction: direction, + length: Math.abs(firstSegment.points[0].x - point.x) + } : + { + type: 'Orthogonal', isTerminal: true, direction: direction, + length: Math.abs(point.x - firstSegment.points[0].x) + }; + segValues = (firstSegment.points[0].y > point.y) ? + { type: 'Orthogonal', direction: 'Top', isTerminal: true, length: (firstSegment.points[0].y - point.y) } : + { type: 'Orthogonal', direction: 'Bottom', isTerminal: true, length: (point.y - firstSegment.points[0].y) }; + } + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', segValues1, true)); + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', segValues, true)); + } + else { + segValues = { type: 'Orthogonal', direction: direction, length: 20, isTerminal: true }; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', segValues, true)); + } + if (firstSegment.direction !== Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["getOppositeDirection"])(direction)) { + if (direction === 'Top' || direction === 'Bottom') { + firstSegment.points[0].x = point.x; + firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = (direction === 'Top') ? + point.y - 20 : point.y + 20; + } + else { + firstSegment.points[0].y = point.y; + firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = (direction === 'Right') ? + point.x + 20 : point.x - 20; + } + firstSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]); + secondSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]); + } + connector.segments = segments.concat(connector.segments); + } + else { + firstSegment.points[0] = point; + if (direction === 'Top' || direction === 'Bottom') { + firstSegment.points[firstSegment.points.length - 1].x = point.x; + } + else { + firstSegment.points[firstSegment.points.length - 1].y = point.y; + } + firstSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]); + secondSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]); + } + }; + /** + * @param connector + * @param changeTerminal + * @private +Remove terinal segment in initial + */ + CommandHandler.prototype.removeTerminalSegment = function (connector, changeTerminal) { + for (var i = 0; i < connector.segments.length - 2; i++) { + var segment = connector.segments[0]; + if (segment.isTerminal) { + if (changeTerminal) { + segment.isTerminal = false; + } + else { + connector.segments.splice(i, 1); + i--; + } + } + } + }; + /** + * Change the connector endPoint from point to node + */ + CommandHandler.prototype.changeSourceEndToNode = function (connector, target) { + this.removeTerminalSegment(connector); + var sourceWrapper = target.wrapper.children[0].corners; + var sourcePoint; + var sourcePoint2; + var firstSegment = connector.segments[0]; + var nextSegment = connector.segments[1]; + var segments = []; + if (firstSegment.direction === 'Right' || firstSegment.direction === 'Left') { + sourcePoint = (firstSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight; + if (firstSegment.length > sourceWrapper.width || ((firstSegment.direction === 'Left' && + sourcePoint.x >= firstSegment.points[0].x) || (firstSegment.direction === 'Right' && + sourcePoint.x <= firstSegment.points[0].x))) { + firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = sourcePoint.y; + firstSegment.points[0].x = sourcePoint.x; + firstSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]); + nextSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]); + } + else { + var direction = void 0; + if (nextSegment.direction) { + direction = nextSegment.direction; + } + else { + direction = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]); + } + sourcePoint2 = (direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter; + if (nextSegment.length && nextSegment.direction) { + nextSegment.length = + (direction === 'Top') ? firstSegment.points[firstSegment.points.length - 1].y - (sourcePoint2.y + 20) : + (sourcePoint2.y + 20) - firstSegment.points[firstSegment.points.length - 1].y; + } + firstSegment.length = firstSegment.points[firstSegment.points.length - 1].x - sourcePoint2.x; + firstSegment.direction = (firstSegment.length > 0) ? 'Right' : 'Left'; + var segValues = { type: 'Orthogonal', direction: direction, length: 20 }; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', segValues, true)); + connector.segments = segments.concat(connector.segments); + } + } + else { + sourcePoint = (firstSegment.direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter; + if (firstSegment.length > sourceWrapper.height || ((firstSegment.direction === 'Top' && + sourcePoint.y >= firstSegment.points[0].y) || + (firstSegment.direction === 'Bottom' && sourcePoint.y <= firstSegment.points[0].y))) { + firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = sourcePoint.x; + firstSegment.points[0].y = sourcePoint.y; + firstSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]); + nextSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]); + } + else { + sourcePoint2 = (nextSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight; + var direction = void 0; + if (nextSegment.direction) { + direction = nextSegment.direction; + } + else { + direction = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]); + } + if (nextSegment.length && nextSegment.direction) { + nextSegment.length = + (direction === 'Left') ? firstSegment.points[firstSegment.points.length - 1].x - (sourcePoint2.x + 20) : + (sourcePoint2.x + 20) - firstSegment.points[firstSegment.points.length - 1].x; + } + firstSegment.length = firstSegment.points[firstSegment.points.length - 1].y - sourcePoint2.y; + firstSegment.direction = (firstSegment.length > 0) ? 'Bottom' : 'Top'; + var segValues = { type: 'Orthogonal', direction: direction, length: 20 }; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', segValues, true)); + connector.segments = segments.concat(connector.segments); + } + } + }; + //Translate the bezier points during the interaction + CommandHandler.prototype.translateBezierPoints = function (connector, value, tx, ty, seg, point, update) { + var index = (connector.segments.indexOf(seg)); + var segment = connector.segments[parseInt(index.toString(), 10)]; + var prevSegment = index > 0 ? connector.segments[index - 1] : null; + var startPoint = prevSegment !== null ? prevSegment.point : connector.sourcePoint; + var endPoint = index === connector.segments.length - 1 ? connector.targetPoint : segment.point; + if (segment) { + if (value === 'BezierSourceThumb' && (segment.vector1.angle || segment.vector1.distance)) { + var oldDistance = segment.vector1.distance; + var oldAngle = segment.vector1.angle; + segment.vector1 = { + distance: connector.distance(startPoint, point), + angle: _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(startPoint, point) + }; + var deltaLength = segment.vector1.distance - oldDistance; + var deltaAngle = segment.vector1.angle - oldAngle; + this.translateSubsequentSegment(connector, seg, true, deltaLength, deltaAngle); + } + else if (value === 'BezierTargetThumb' && (segment.vector2.angle || segment.vector2.distance)) { + var oldDistance = segment.vector2.distance; + var oldAngle = segment.vector2.angle; + segment.vector2 = { + distance: connector.distance(endPoint, point), + angle: _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(endPoint, point) + }; + var deltaLength = segment.vector2.distance - oldDistance; + var deltaAngle = segment.vector2.angle - oldAngle; + this.translateSubsequentSegment(connector, seg, false, deltaLength, deltaAngle); + } + else if ((value === 'ConnectorSourceEnd' && !connector.sourceID || value === 'ConnectorTargetEnd' && !connector.targetID) + && update && Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["isEmptyVector"])(segment.vector1) && Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["isEmptyVector"])(segment.vector2)) { + if (_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segment.point1)) { + segment.bezierPoint1 = Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["getBezierPoints"])(connector.sourcePoint, connector.targetPoint); + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segment.point2)) { + segment.bezierPoint2 = Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["getBezierPoints"])(connector.targetPoint, connector.sourcePoint); + } + } + else if (value === 'BezierSourceThumb' || (value === 'ConnectorSourceEnd' && !update && Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["isEmptyVector"])(segment.vector1))) { + segment.bezierPoint1.x += tx; + segment.bezierPoint1.y += ty; + if ((!_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segment.point1)) || (update)) { + segment.point1 = { x: segment.bezierPoint1.x, y: segment.bezierPoint1.y }; + } + } + else if (value === 'BezierTargetThumb' || (value === 'ConnectorTargetEnd' && !update && Object(_objects_connector__WEBPACK_IMPORTED_MODULE_0__["isEmptyVector"])(segment.vector2))) { + segment.bezierPoint2.x += tx; + segment.bezierPoint2.y += ty; + if ((!_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].isEmptyPoint(segment.point2)) || (update)) { + segment.point2 = { x: segment.bezierPoint2.x, y: segment.bezierPoint2.y }; + } + } + } + }; + CommandHandler.prototype.translateSubsequentSegment = function (connector, seg, isSourceEnd, deltaLength, deltaAngle) { + var index = (connector.segments.indexOf(seg)); + var segment = connector.segments[parseInt(index.toString(), 10)]; + if (!(connector.bezierSettings.smoothness & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BezierSmoothness"].SymmetricAngle)) { + deltaAngle = null; + } + if (!(connector.bezierSettings.smoothness & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BezierSmoothness"].SymmetricDistance)) { + deltaLength = null; + } + if (deltaLength == null && deltaAngle == null) { + return; + } + if (isSourceEnd) { + if (index !== 0) { + this.updatePreviousBezierSegment(connector, index, deltaLength, deltaAngle); + } + } + else { + if (index !== connector.segments.length - 1) { + this.updateNextBezierSegment(connector, index, deltaLength, deltaAngle); + } + } + }; + CommandHandler.prototype.updatePreviousBezierSegment = function (connector, index, deltaLength, deltaAngle) { + var segment = connector.segments[index - 1]; + var newDistance = segment.vector2.distance + deltaLength; + var newAngle = (segment.vector2.angle + deltaAngle) % 360; + if (newAngle < 0) { + newAngle += 360; + } + segment.vector2 = { distance: newDistance, angle: newAngle }; + }; + CommandHandler.prototype.updateNextBezierSegment = function (connector, index, deltaLength, deltaAngle) { + var segment = connector.segments[index + 1]; + var newDistance = segment.vector1.distance + deltaLength; + var newAngle = (segment.vector1.angle + deltaAngle) % 360; + if (newAngle < 0) { + newAngle += 360; + } + segment.vector1 = { distance: newDistance, angle: newAngle }; + }; + /** + * dragTargetEnd method \ + * + * @returns { void } dragTargetEnd method .\ + * @param {ConnectorModel} obj - provide the obj value. + * @param {number} tx - provide the tx value. + * @param {number} ty - provide the ty value. + * @param {boolean} preventUpdate - provide the preventUpdate value. + * @param {PointModel} point - provide the point value. + * @param {string} endPoint - provide the endPoint value. + * @param {boolean} update - provide the update value. + * @param {OrthogonalSegmentModel | BezierSegmentModel | StraightSegmentModel} segment - provide the segment value. + * + * @private + */ + CommandHandler.prototype.dragTargetEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, segment) { + var connector = this.diagram.nameTable[obj.id]; + var oldChanges; + var boundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds); + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canDragTargetEnd"])(connector) && endPoint !== 'BezierTargetThumb' + && boundaryConstraints && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPageEditable"])(this.diagram)) { + oldChanges = { targetPoint: connector.targetPoint }; + oldChanges = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(oldChanges); + connector.targetPoint.x += tx; + connector.targetPoint.y += ty; + if (endPoint === 'ConnectorTargetEnd' && connector.type === 'Orthogonal' && + connector.segments && connector.segments.length > 0) { + var prev = connector.segments[connector.segments.length - 2]; + if (prev && connector.segments[connector.segments.length - 1].points.length === 2) { + if (prev.direction === 'Left' || prev.direction === 'Right') { + prev.points[prev.points.length - 1].x = connector.targetPoint.x; + } + else { + prev.points[prev.points.length - 1].y = connector.targetPoint.y; + } + prev.length = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].distancePoints(prev.points[0], prev.points[prev.points.length - 1]); + prev.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].direction(prev.points[0], prev.points[prev.points.length - 1]); + } + } + if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') { + this.updatePathElementOffset(connector); + } + } + if (connector.type === 'Bezier') { + oldChanges = { targetPoint: connector.targetPoint }; + if (segment) { + this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, segment, point, !update); + } + else { + for (var i = 0; i < obj.segments.length; i++) { + this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update); + } + } + } + if (!preventUpdate) { + this.updateEndPoint(connector, oldChanges); + } + if (!(this.diagram.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["RealAction"].AnimationClick)) { + this.diagram.refreshCanvasLayers(); + } + return boundaryConstraints; + }; + /** + * dragControlPoint method \ + * + * @returns { void } dragControlPoint method .\ + * @param {ConnectorModel} obj - provide the obj value. + * @param {number} tx - provide the tx value. + * @param {number} ty - provide the ty value. + * @param {boolean} preventUpdate - provide the preventUpdate value. + * @param {number} segmentNumber - provide the segmentNumber value. + * + * @private + */ + CommandHandler.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) { + var connector = this.diagram.nameTable[obj.id]; + if ((connector.type === 'Straight' || connector.type === 'Bezier') && connector.segments.length > 0) { + if (segmentNumber !== undefined && connector.segments[parseInt(segmentNumber.toString(), 10)]) { + if (connector.type === 'Bezier') { + var seg = connector.segments[parseInt(segmentNumber.toString(), 10)]; + var isInternalSegment = seg.isInternalSegment; + if (!isInternalSegment || connector.bezierSettings === null || connector.bezierSettings.segmentEditOrientation === 'FreeForm') { + seg.point.x += tx; + seg.point.y += ty; + } + else { + if (seg.orientation === 'Horizontal') { + seg.point.x += tx; + } + else { + seg.point.y += ty; + } + this.updateDirectionalBezierCurve(connector); + } + if (isInternalSegment) { + connector.isBezierEditing = true; + } + } + else { + connector.segments[parseInt(segmentNumber.toString(), 10)].point.x += tx; + connector.segments[parseInt(segmentNumber.toString(), 10)].point.y += ty; + } + } + else { + for (var i = 0; i < connector.segments.length - 1; i++) { + connector.segments[parseInt(i.toString(), 10)].point.x += tx; + connector.segments[parseInt(i.toString(), 10)].point.y += ty; + } + } + if (!preventUpdate) { + this.updateEndPoint(connector); + } + } + return true; + }; + CommandHandler.prototype.updateDirectionalBezierCurve = function (connector) { + if (connector.segments.length < 2) { + return; + } + var pts = []; + pts.push(connector.sourcePoint); + for (var i = 0; i < connector.segments.length - 1; i++) { + var seg = connector.segments[parseInt(i.toString(), 10)]; + if (seg.orientation === 'Horizontal') { + pts.push({ x: seg.point.x, y: pts[pts.length - 1].y }); + } + else { + pts.push({ x: pts[pts.length - 1].x, y: seg.point.y }); + } + if (i === connector.segments.length - 2) { + if (seg.orientation === 'Horizontal') { + pts.push({ x: seg.point.x, y: connector.targetPoint.y }); + } + else { + pts.push({ x: connector.targetPoint.x, y: seg.point.y }); + } + } + } + pts.push(connector.targetPoint); + var start = pts[0]; + var end = pts[pts.length - 1]; + if (connector.segments.length > 1) { + var mid1 = pts[1]; + var mid2 = pts[2]; + var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 }; + var segment1 = connector.segments[0]; + segment1.vector1.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(start, mid1); + segment1.vector1.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(start, mid1) * 0.5; + segment1.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center1, mid1); + segment1.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center1, mid1) * 0.5; + segment1.point = center1; + var segment2 = connector.segments[1]; + segment2.vector1.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center1, mid2); + segment2.vector1.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center1, mid2) * 0.5; + if (connector.segments.length > 2) { + var mid3 = pts[3]; + var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 }; + segment2.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center2, mid2); + segment2.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center2, mid2) * 0.5; + segment2.point = center2; + var segment3 = connector.segments[2]; + segment3.vector1.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center2, mid3); + segment3.vector1.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center2, mid3) * 0.5; + if (connector.segments.length > 3) { + var mid4 = pts[4]; + var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 }; + segment3.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center3, mid3); + segment3.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center3, mid3) * 0.5; + segment3.point = center3; + var segment4 = connector.segments[3]; + segment4.vector1.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(center3, mid4); + segment4.vector1.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(center3, mid4) * 0.5; + segment4.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(end, mid4); + segment4.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(end, mid4) * 0.5; + } + else { + segment3.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(end, mid3); + segment3.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(end, mid3) * 0.5; + } + } + else { + segment2.vector2.angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])(end, mid2); + segment2.vector2.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(end, mid2) * 0.5; + } + } + }; + /** + * rotatePropertyChnage method \ + * + * @returns { void } rotatePropertyChnage method .\ + * @param {number} angle - provide the obj value. + * + * @private + */ + CommandHandler.prototype.rotatePropertyChnage = function (angle) { + var selectedItems = this.diagram.selectedItems; + var objects = []; + objects = objects.concat(selectedItems.nodes); + objects = objects.concat(selectedItems.connectors); + var pivotValue = { x: selectedItems.offsetX, y: selectedItems.offsetY }; + this.rotateObjects(selectedItems, objects, angle - selectedItems.rotateAngle, pivotValue); + selectedItems.wrapper.rotateAngle = selectedItems.rotateAngle = angle; + this.diagram.updateSelector(); + }; + /** + * rotateObjects method \ + * + * @returns { void } rotateObjects method .\ + * @param {NodeModel | SelectorModel} parent - provide the parent value. + * @param {(NodeModel | ConnectorModel)[]} objects - provide the objects value. + * @param {number} angle - provide the angle value. + * @param {PointModel} pivot - provide the pivot value. + * @param {boolean} includeParent - provide the includeParent value. + * + * @private + */ + CommandHandler.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent) { + pivot = pivot || {}; + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, angle, pivot.x, pivot.y); + var oldValues; + for (var _i = 0, objects_2 = objects; _i < objects_2.length; _i++) { + var obj = objects_2[_i]; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canRotate"])(obj) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPageEditable"])(this.diagram)) { + if (includeParent !== false || parent !== obj) { + oldValues = { rotateAngle: obj.rotateAngle }; + obj.rotateAngle += angle; + obj.rotateAngle = (obj.rotateAngle + 360) % 360; + var newOffset = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, { x: obj.offsetX, y: obj.offsetY }); + obj.offsetX = newOffset.x; + obj.offsetY = newOffset.y; + this.diagram.nodePropertyChange(obj, {}, { offsetX: obj.offsetX, offsetY: obj.offsetY, rotateAngle: obj.rotateAngle }); + } + if (obj.processId) { + var parent_3 = this.diagram.nameTable[obj.processId]; + var bound = this.diagram.bpmnModule.getChildrenBound(parent_3, obj.id, this.diagram); + this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram); + } + if (obj.children && obj.children.length && !obj.container) { + this.getChildren(obj, objects); + } + } + } + else { + this.rotatePoints(obj, angle, pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY }); + } + this.diagram.updateDiagramObject(obj); + } + this.diagram.refreshCanvasLayers(); + this.diagram.updateSelector(); + }; + /** + * snapConnectorEnd method \ + * + * @returns { PointModel } snapConnectorEnd method .\ + * @param {PointModel} currentPosition - provide the parent value. + * + * @private + */ + CommandHandler.prototype.snapConnectorEnd = function (currentPosition) { + if ((this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["SnapConstraints"].SnapToLines) + && this.snappingModule) { + this.diagram.snappingModule.snapConnectorEnd(currentPosition); + } + return currentPosition; + }; + /** + * snapAngle method \ + * + * @returns { number } snapAngle method .\ + * @param {number} angle - provide the parent value. + * + * @private + */ + CommandHandler.prototype.snapAngle = function (angle) { + if ((this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["SnapConstraints"].SnapToLines) + && this.snappingModule) { + return this.snappingModule.snapAngle(this.diagram, angle); + } + else { + return 0; + } + }; + /** + * rotatePoints method \ + * + * @returns { number } rotatePoints method .\ + * @param {Connector} conn - provide the parent value. + * @param {number} angle - provide the parent value. + * @param {PointModel} pivot - provide the parent value. + * + * @private + */ + CommandHandler.prototype.rotatePoints = function (conn, angle, pivot) { + if (!conn.sourceWrapper || !conn.targetWrapper) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, angle, pivot.x, pivot.y); + conn.sourcePoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, conn.sourcePoint); + conn.targetPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, conn.targetPoint); + if (conn.shape.type === 'Bpmn' && conn.shape.sequence === 'Default' && conn.shape.flow === 'Sequence') { + this.updatePathElementOffset(conn); + } + var newProp = { sourcePoint: conn.sourcePoint, targetPoint: conn.targetPoint }; + this.diagram.connectorPropertyChange(conn, {}, newProp); + if (conn.segments && conn.segments.length > 0) { + this.diagram.protectPropertyChange(true); + var connector = conn; + connector.segments = []; + this.diagram.connectorPropertyChange(connector, {}, { segments: connector.segments }); + this.diagram.protectPropertyChange(false); + } + } + }; + CommandHandler.prototype.updateInnerParentProperties = function (tempNode) { + var elements = []; + var protect = 'isProtectedOnChange'; + var protectChange = this.diagram["" + protect]; + this.diagram.protectPropertyChange(true); + var innerParents = this.getAllDescendants(tempNode, elements, false, true); + for (var i = 0; i < innerParents.length; i++) { + var obj = this.diagram.nameTable[innerParents[parseInt(i.toString(), 10)].id]; + obj.offsetX = obj.wrapper.offsetX; + obj.offsetY = obj.wrapper.offsetY; + obj.width = obj.wrapper.width; + obj.height = obj.wrapper.height; + } + this.diagram.protectPropertyChange(protectChange); + }; + /** + * scale method \ + * + * @returns { boolean } scale method .\ + * @param {NodeModel | ConnectorModel} obj - provide the parent value. + * @param {number} sw - provide the parent value. + * @param {number} sh - provide the parent value. + * @param {number} pivot - provide the parent value. + * @param {number} refObject - provide the parent value. + * @param {boolean} isOutsideBoundary - provide the parent value. + * + * @private + */ + // eslint-disable-next-line max-len + CommandHandler.prototype.scale = function (obj, sw, sh, pivot, refObject, isOutsideBoundary) { + var node = this.diagram.nameTable[obj.id]; + var tempNode = node; + var elements = []; + var element = node.wrapper; + if (!refObject) { + refObject = obj; + } + var refWrapper = refObject.wrapper; + var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x; + var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y; + var refPoint = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getPoint"])(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot); + if (element.actualSize.width !== undefined && element.actualSize.height !== undefined && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPageEditable"])(this.diagram)) { + if (tempNode.children && !(tempNode.container)) { + var nodes = this.getAllDescendants(tempNode, elements); + for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { + var temp = nodes_1[_i]; + this.scaleObject(sw, sh, refPoint, temp, element, refObject); + } + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"]()); + obj.wrapper.arrange(obj.wrapper.desiredSize); + this.diagram.updateGroupOffset(node); + this.updateInnerParentProperties(tempNode); + } + else { + this.scaleObject(sw, sh, refPoint, node, element, refObject); + } + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(obj.wrapper); + var checkBoundaryConstraints = this.checkBoundaryConstraints(undefined, undefined, bounds); + if (!checkBoundaryConstraints && isOutsideBoundary) { + this.scale(obj, 1 / sw, 1 / sh, pivot, undefined, true); + return false; + } + this.diagram.updateDiagramObject(obj); + } + return true; + }; + /** @private */ + CommandHandler.prototype.getAllDescendants = function (node, nodes, includeParent, innerParent) { + var temp = node; + var parentNodes = []; + for (var i = 0; i < temp.children.length; i++) { + node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]); + if (node) { + if (!node.children) { + nodes.push(node); + } + else { + if (includeParent) { + nodes.push(node); + } + if (innerParent) { + parentNodes.push(node); + } + nodes = this.getAllDescendants(node, nodes); + } + } + } + return (innerParent) ? parentNodes : nodes; + }; + /** + * getChildren method \ + * + * @returns { (NodeModel | ConnectorModel)[]): (NodeModel | ConnectorModel)[] } getChildren method .\ + * @param {NodeModel} node - provide the sw value. + * @param {(NodeModel | ConnectorModel)[]} nodes - provide the sw value. + * + * @private + */ + CommandHandler.prototype.getChildren = function (node, nodes) { + var temp = node; + if (node.children) { + for (var i = 0; i < temp.children.length; i++) { + node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]); + nodes.push(node); + } + } + return nodes; + }; + /** + * scaleObject method \ + * + * @returns { NodeModel } scaleObject method .\ + * @param {string} id - provide the sw value. + * + * @private + */ + CommandHandler.prototype.cloneChild = function (id) { + var node = this.diagram.nameTable["" + id]; + return node; + }; + /** + * scaleObject method \ + * + * @returns { void } scaleObject method .\ + * @param {End} sw - provide the sw value. + * @param {End} sh - provide the sh value. + * @param {PointModel} pivot - provide the pivot value. + * @param {IElement} obj - provide the pivot value. + * @param {DiagramElement} element - provide the element value. + * @param {IElement} refObject - provide the refObject value. + * + * @private + */ + CommandHandler.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject, canUpdate) { + sw = sw < 0 ? 1 : sw; + sh = sh < 0 ? 1 : sh; + var oldValues = {}; + if (sw !== 1 || sh !== 1) { + var width = void 0; + var height = void 0; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + var node = obj; + var isResize = void 0; + var bound = void 0; + oldValues = { + width: obj.wrapper.actualSize.width, height: obj.wrapper.actualSize.height, + offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY, + margin: { top: node.margin.top, left: node.margin.left } + }; + if (node.shape.type === 'Bpmn' && node.shape.activity.subProcess.processes + && node.shape.activity.subProcess.processes.length > 0) { + bound = this.diagram.bpmnModule.getChildrenBound(node, node.id, this.diagram); + isResize = node.wrapper.bounds.containsRect(bound); + } + width = node.wrapper.actualSize.width * sw; + height = node.wrapper.actualSize.height * sh; + if (node.maxWidth !== undefined && node.maxWidth !== 0) { + width = Math.min(node.maxWidth, width); + } + if (node.minWidth !== undefined && node.minWidth !== 0) { + width = Math.max(node.minWidth, width); + } + if (node.maxHeight !== undefined && node.maxHeight !== 0) { + height = Math.min(node.maxHeight, height); + } + if (node.minHeight !== undefined && node.minHeight !== 0) { + height = Math.max(node.minHeight, height); + } + if (isResize) { + width = Math.max(width, (bound.right - node.wrapper.bounds.x)); + height = Math.max(height, (bound.bottom - node.wrapper.bounds.y)); + } + sw = width / node.actualSize.width; + sh = height / node.actualSize.height; + } + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); // let refWrapper: DiagramElement; + if (!refObject) { + refObject = obj; + } + var refWrapper = refObject.wrapper; + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["scaleMatrix"])(matrix, sw, sh, pivot.x, pivot.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, refWrapper.rotateAngle, pivot.x, pivot.y); + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + var node = obj; //let left: number; let top: number; + var newPosition = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY }); + var oldleft = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x; + var oldtop = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y; + if (width > 0) { + if (node.processId) { + var parent_4 = this.diagram.nameTable[node.processId]; + if (!parent_4.maxWidth || ((node.margin.left + width) < parent_4.maxWidth)) { + node.width = width; + node.offsetX = newPosition.x; + } + } + else { + node.width = width; + node.offsetX = newPosition.x; + } + } + if (height > 0) { + if (node.processId) { + var parent_5 = this.diagram.nameTable[node.processId]; + if (!parent_5.maxHeight || ((node.margin.top + height) < parent_5.maxHeight)) { + node.height = height; + node.offsetY = newPosition.y; + } + } + else { + node.height = height; + node.offsetY = newPosition.y; + } + } + var left = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x; + var top_1 = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y; + var parent_6 = this.diagram.nameTable[node.processId]; + if (parent_6 && ((node.margin.top + (top_1 - oldtop)) <= 0 || + (node.margin.left + (left - oldleft) <= 0))) { + this.diagram.nodePropertyChange(obj, {}, { + margin: { top: node.margin.top, left: node.margin.left } + }); + } + else { + if (Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true)) { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkChildNodeInContainer"])(this.diagram, obj); + } + else { + if (!canUpdate) { + this.diagram.nodePropertyChange(obj, oldValues, { + width: node.width, height: node.height, offsetX: node.offsetX, offsetY: node.offsetY, + margin: { top: node.margin.top + (top_1 - oldtop), left: node.margin.left + (left - oldleft) } + }); + } + } + } + } + else { + var connector = obj; + var oldValues_1 = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint }; + if (!connector.sourceWrapper || !connector.targetWrapper) { + this.scaleConnector(connector, matrix, oldValues_1, sw, sh, pivot); + } + } + var parentNode = this.diagram.nameTable[obj.processId]; + if (parentNode) { + var parent_7 = parentNode.wrapper.bounds; + var child = obj.wrapper.bounds; + var bound = this.diagram.bpmnModule.getChildrenBound(parentNode, obj.id, this.diagram); + this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram); + } + } + }; + CommandHandler.prototype.scaleConnector = function (connector, matrix, oldValues, sw, sh, pivot) { + connector.sourcePoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, connector.sourcePoint); + connector.targetPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, connector.targetPoint); + if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') { + this.updatePathElementOffset(connector); + } + var newProp = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint }; + this.diagram.connectorPropertyChange(connector, oldValues, newProp); + var selector = this.diagram.selectedItems; + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["selectionHasConnector"])(this.diagram, selector)) { + var clonedSelectedItems = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + var nodeModel = { + offsetX: clonedSelectedItems.offsetX, offsetY: clonedSelectedItems.offsetY, + height: clonedSelectedItems.height, width: clonedSelectedItems.width, rotateAngle: clonedSelectedItems.rotateAngle + }; + var obj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](this.diagram, 'nodes', nodeModel, true); + obj.wrapper = clonedSelectedItems.wrapper; + obj.wrapper.rotateAngle = selector.rotateAngle; + this.scaleObject(sw, sh, pivot, obj, obj.wrapper, obj, true); + selector.wrapper.actualSize.width = obj.width; + selector.wrapper.actualSize.height = obj.height; + selector.wrapper.offsetX = obj.offsetX; + selector.wrapper.offsetY = obj.offsetY; + var child = this.diagram.selectedItems.connectors[0]; + if (child.id !== connector.id) { + this.measureSelector(selector); + } + } + }; + CommandHandler.prototype.measureSelector = function (selector) { + var desiredBounds = undefined; + //Measuring the children + var clonedSelectedItems = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.selectedItems); + var objects = []; + var bounds; + objects = clonedSelectedItems.connectors; + var pivot = { x: this.diagram.selectedItems.offsetX, y: this.diagram.selectedItems.offsetY }; + for (var i = 0; i < objects.length; i++) { + var matrix_1 = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix_1, -selector.rotateAngle, pivot.x, pivot.y); + objects[parseInt(i.toString(), 10)].sourcePoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix_1, objects[parseInt(i.toString(), 10)].sourcePoint); + objects[parseInt(i.toString(), 10)].targetPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix_1, objects[parseInt(i.toString(), 10)].targetPoint); + var p1 = { x: objects[parseInt(i.toString(), 10)].sourcePoint.x, y: objects[parseInt(i.toString(), 10)].sourcePoint.y }; + var p2 = { x: objects[parseInt(i.toString(), 10)].targetPoint.x, y: objects[parseInt(i.toString(), 10)].targetPoint.y }; + bounds = (this.calculateBounds(p1, p2)); + if (desiredBounds === undefined) { + desiredBounds = bounds; + } + else { + desiredBounds.uniteRect(bounds); + } + } + var offsetPt = {}; + if (desiredBounds !== undefined) { + offsetPt = { + x: desiredBounds.x + desiredBounds.width * selector.wrapper.pivot.x, + y: desiredBounds.y + desiredBounds.height * selector.wrapper.pivot.y + }; + } + var nodeModel = { + offsetX: offsetPt.x, offsetY: offsetPt.y, + height: desiredBounds.height, width: desiredBounds.width, rotateAngle: 0 + }; + var obj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](this.diagram, 'nodes', nodeModel, true); + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, selector.rotateAngle, pivot.x, pivot.y); + obj.rotateAngle += selector.rotateAngle; + obj.rotateAngle = (obj.rotateAngle + 360) % 360; + var newOffset = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, { x: obj.offsetX, y: obj.offsetY }); + obj.offsetX = newOffset.x; + obj.offsetY = newOffset.y; + selector.wrapper.actualSize.width = desiredBounds.width; + selector.wrapper.actualSize.height = desiredBounds.height; + selector.wrapper.offsetX = obj.offsetX; + selector.wrapper.offsetY = obj.offsetY; + var selectorEle = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getSelectorElement"])(this.diagram.element.id); + // EJ2-69511 - Added handleSize parameter to avoid exception when we perform multiselect of connectors, rotate and resize it. + this.diagram.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.diagram.scroller.currentZoom, selector.constraints, this.diagram.scroller.transform, false, Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canMove"])(selector), null, null, selector.handleSize); + }; + CommandHandler.prototype.calculateBounds = function (p1, p2) { + var left = Math.min(p1.x, p2.x); + var right = Math.max(p1.x, p2.x); + var top = Math.min(p1.y, p2.y); + var bottom = Math.max(p1.y, p2.y); + var width = right - left; + var height = bottom - top; + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](left, top, width, height); + return rect; + }; + /** + * portDrag method \ + * + * @returns { void } portDrag method .\ + * @param { NodeModel | ConnectorModel} obj - provide the obj value. + * @param {DiagramElement} portElement - provide the portElement value. + * @param {number} tx - provide the tx value. + * @param {number} ty - provide the tx value. + * + * @private + */ + CommandHandler.prototype.portDrag = function (obj, portElement, tx, ty) { + var oldValues; + var changedvalues; + var port = this.findTarget(portElement, obj); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(obj.wrapper); + if (port && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canDrag"])(port, this.diagram)) { + oldValues = this.getPortChanges(obj, port); + port.offset.x += (tx / bounds.width); + port.offset.y += (ty / bounds.height); + changedvalues = this.getPortChanges(obj, port); + this.diagram.nodePropertyChange(obj, oldValues, changedvalues); + this.diagram.updateDiagramObject(obj); + } + }; + /** @private */ + CommandHandler.prototype.labelDrag = function (obj, textElement, tx, ty) { + //let changedvalues: Object; + //let label: ShapeAnnotationModel | PathAnnotationModel; + // eslint-disable-next-line max-len + var label = this.findTarget(textElement, obj); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cornersPointsBeforeRotation"])(obj.wrapper); + var oldValues = this.getAnnotationChanges(obj, label); + if (label instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["ShapeAnnotation"]) { + label.offset.x += (tx / bounds.width); + label.offset.y += (ty / bounds.height); + } + else { + this.updatePathAnnotationOffset(obj, label, tx, ty); + if (label instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"]) { + label.alignment = 'Center'; + } + } + var changedvalues = this.getAnnotationChanges(obj, label); + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + this.diagram.nodePropertyChange(obj, oldValues, changedvalues); + } + else { + this.diagram.connectorPropertyChange(obj, oldValues, changedvalues); + } + this.diagram.updateDiagramObject(obj); + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, label, false, textElement)) { + this.labelSelect(obj, textElement); + } + }; + CommandHandler.prototype.updatePathAnnotationOffset = function (object, label, tx, ty, newPosition, size) { + var textWrapper = this.diagram.getWrapper(object.wrapper, label.id); + var offsetX = textWrapper.offsetX; + var offsetY = textWrapper.offsetY; + var offset; + var intermediatePoints = object.intermediatePoints; + var prev; + var pointLength = 0; + var totalLength = 0; + var intersectingOffset; + var currentPosition; + switch (label.verticalAlignment) { + case 'Center': + if (label.horizontalAlignment === 'Center') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty }; + } + else if (label.horizontalAlignment === 'Right') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty }; + } + else if (label.horizontalAlignment === 'Left') { + currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty }; + } + break; + case 'Top': + if (label.horizontalAlignment === 'Center') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty }; + } + else if (label.horizontalAlignment === 'Right') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty }; + } + else if (label.horizontalAlignment === 'Left') { + currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty }; + } + break; + case 'Bottom': + if (label.horizontalAlignment === 'Center') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty }; + } + else if (label.horizontalAlignment === 'Right') { + currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty }; + } + else if (label.horizontalAlignment === 'Left') { + currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty }; + } + break; + } + var intersetingPts = this.getInterceptWithSegment(currentPosition, intermediatePoints); + var newOffset = intermediatePoints[intermediatePoints.length - 1]; + totalLength = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].getLengthFromListOfPoints(intermediatePoints); + if (intersetingPts.length > 0) { + if (label.dragLimit.top || label.dragLimit.bottom || label.dragLimit.left || label.dragLimit.right) { + var minDistance = { minDistance: null }; + newOffset = this.getRelativeOffset(currentPosition, intermediatePoints, minDistance); + var distance = { minDistance: null }; + intersectingOffset = this.getRelativeOffset(currentPosition, intersetingPts, distance); + if (minDistance != null && distance.minDistance < minDistance.minDistance) { + newOffset = intersectingOffset; + } + else { + var connectorOffset = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getOffsetOfConnector"])(object.intermediatePoints, label); + newOffset = connectorOffset.point; + } + } + else { + intersectingOffset = intersetingPts[intersetingPts.length - 1]; + newOffset = intersectingOffset; + } + if (newOffset) { + var p = void 0; + var bounds = void 0; + for (p = 0; p < intermediatePoints.length; p++) { + if (prev != null) { + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"].toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]); + if (bounds.containsPoint(newOffset)) { + pointLength += _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(prev, newOffset); + break; + } + else { + pointLength += _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]); + } + } + prev = intermediatePoints[parseInt(p.toString(), 10)]; + } + offset = { x: pointLength / totalLength, y: 0 }; + } + this.updateLabelMargin(object, label, offset, currentPosition, size, tx, ty); + } + else { + this.updateLabelMargin(object, label, null, currentPosition, size, tx, ty); + } + }; + CommandHandler.prototype.getRelativeOffset = function (currentPosition, points, minDistance) { + var newOffset; + var distance; + var pt; + var i; + for (i = 0; i < points.length; i++) { + pt = points[parseInt(i.toString(), 10)]; + distance = Math.round(Math.sqrt(Math.pow((currentPosition.x - pt.x), 2) + + Math.pow((currentPosition.y - pt.y), 2))); + if (minDistance.minDistance === null || + Math.min(Math.abs(minDistance.minDistance), Math.abs(distance)) === Math.abs(distance)) { + newOffset = pt; + minDistance.minDistance = distance; + } + } + return newOffset; + }; + CommandHandler.prototype.dragLimitValue = function (label, point, tempPt, contentDimension) { + var x = false; + var y = false; + if ((tempPt.x >= (point.x - label.dragLimit.left - (contentDimension.width / 2))) && + (tempPt.x <= point.x + label.dragLimit.right + (contentDimension.width / 2))) { + x = true; + } + if ((tempPt.y >= (point.y - label.dragLimit.top - (contentDimension.height / 2))) && + (tempPt.y <= point.y + label.dragLimit.bottom + (contentDimension.height / 2))) { + y = true; + } + return { x: x, y: y }; + }; + /* eslint-disable */ + CommandHandler.prototype.updateLabelMargin = function (node, label, offset, tempPt, size, tx, ty) { + offset = offset ? offset : { x: label.offset, y: 0 }; + if (label && offset && offset.x > 0 && offset.x < 1) { + //let point: PointModel; + var length_2 = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].getLengthFromListOfPoints(node.intermediatePoints); + var point = this.getPointAtLength(length_2 * offset.x, node.intermediatePoints, 0); + var curZoomfactor = this.diagram.scrollSettings.currentZoom; + var dragLimit = label.dragLimit; + if (dragLimit.top || dragLimit.bottom || dragLimit.left || dragLimit.right) { + var labelBounds = this.diagram.getWrapper(node.wrapper, label.id); + var contentDimension = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](0, 0, 0, 0); + var annotationWrtapper = this.diagram.getWrapper(node.wrapper, label.id); + contentDimension.x = ((annotationWrtapper).offsetX / curZoomfactor) + tx; + contentDimension.y = (annotationWrtapper.offsetY / curZoomfactor) + ty; + contentDimension.width = annotationWrtapper.bounds.width / curZoomfactor; + contentDimension.height = annotationWrtapper.bounds.height / curZoomfactor; + var draggableBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](point.x - (dragLimit.left || 0) - contentDimension.width / 2, point.y - (dragLimit.top || 0) - contentDimension.height / 2, (dragLimit.left || 0) + (dragLimit.right || 0) + contentDimension.width, (dragLimit.top || 0) + (dragLimit.bottom || 0) + contentDimension.height); + if (draggableBounds.containsPoint(tempPt)) { + tempPt = tempPt; + } + else { + var lineIntersects = void 0; + var line1 = [point, tempPt]; + lineIntersects = this.boundsInterSects(line1, draggableBounds, false); + for (var _i = 0, lineIntersects_1 = lineIntersects; _i < lineIntersects_1.length; _i++) { + var i = lineIntersects_1[_i]; + var ptt = i; + tempPt = ptt; + } + } + var cursorLimit = this.dragLimitValue(label, point, tempPt, contentDimension); + label.margin = { + left: cursorLimit.x ? tempPt.x - point.x : label.margin.left, + top: cursorLimit.y ? tempPt.y - point.y : label.margin.top, right: 0, bottom: 0 + }; + } + else { + label.margin = { left: tempPt.x - point.x, top: tempPt.y - point.y, right: 0, bottom: 0 }; + } + label.offset = offset.x; + if (size) { + label.width = size.width; + label.height = size.height; + } + } + }; + CommandHandler.prototype.boundsInterSects = function (polyLine, bounds, self) { + var intersects; + if (bounds) { + var polyLine2 = [ + { x: bounds.x, y: bounds.y }, + { x: bounds.x + bounds.width, y: bounds.y }, + { x: bounds.x + bounds.width, y: bounds.y + bounds.height }, + { x: bounds.x, y: bounds.y + bounds.height }, + { x: bounds.x, y: bounds.y } + ]; + intersects = this.intersect(polyLine, polyLine2, self); + } + return intersects; + }; + CommandHandler.prototype.intersect = function (polyLine1, polyLine2, self) { + var intersect = []; + for (var i = 0; i < polyLine1.length - 1; i++) { + for (var j = 0; j < polyLine2.length - 1; j++) { + var p = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["intersect2"])(polyLine1[i], polyLine1[i + 1], polyLine2[j], polyLine2[j + 1]); + if (p.x !== 0 && p.y !== 0) { + intersect.push(p); + } + } + } + return intersect; + }; + /** + * @private + */ + CommandHandler.prototype.getPointAtLength = function (length, points, angle) { + angle = 0; + var run = 0; + var pre; + var found = { x: 0, y: 0 }; + var pt; + for (var i = 0; i < points.length; i++) { + pt = points[i]; + if (!pre) { + pre = pt; + continue; + } + else { + var l = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength(pre, pt); + var r = void 0; + var deg = void 0; + var x = void 0; + var y = void 0; + if (run + l >= length) { + r = length - run; + deg = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(pre, pt); + x = r * Math.cos(deg * Math.PI / 180); + y = r * Math.sin(deg * Math.PI / 180); + found = { x: pre.x + x, y: pre.y + y }; + angle = deg; + break; + } + else { + run += l; + } + } + pre = pt; + } + return found; + }; + CommandHandler.prototype.getInterceptWithSegment = function (currentPosition, conPoints) { + var intercepts = []; + var imgLine = []; + var segemnt = []; + var tarAngle; + var srcAngle; //let maxLength: number; + var maxLength = _primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findLength({ x: 0, y: 0 }, { x: this.diagram.scroller.viewPortWidth, y: this.diagram.scroller.viewPortHeight }); + for (var i = 1; i < conPoints.length; i++) { + segemnt = [conPoints[i - 1], conPoints[i]]; + imgLine = []; + srcAngle = Math.round(_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(segemnt[0], segemnt[1]) % 360); + tarAngle = Math.round(_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].findAngle(segemnt[1], segemnt[0]) % 360); + var angleAdd = (srcAngle > 0 && srcAngle <= 90) || (srcAngle > 180 && srcAngle <= 270) ? 90 : -90; + imgLine.push(_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].transform(currentPosition, srcAngle + angleAdd, maxLength)); + imgLine.push(_primitives_point__WEBPACK_IMPORTED_MODULE_13__["Point"].transform(currentPosition, tarAngle + angleAdd, maxLength)); + var lineUtil1 = { x1: segemnt[0].x, y1: segemnt[0].y, x2: segemnt[1].x, y2: segemnt[1].y }; + var lineUtil2 = { x1: imgLine[0].x, y1: imgLine[0].y, x2: imgLine[1].x, y2: imgLine[1].y }; + var line3 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["intersect3"])(lineUtil1, lineUtil2); + if (line3.enabled) { + intercepts.push(line3.intersectPt); + } + } + return intercepts; + }; + /** @private */ + CommandHandler.prototype.getAnnotationChanges = function (object, label) { + var index = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(object, label.id, true); + var annotations = {}; + annotations[index] = { + width: label.width, height: label.height, offset: (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? ({ + x: label.offset.x, + y: label.offset.y + }) : label.offset, + rotateAngle: label.rotateAngle, + margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom }, + horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment, + alignment: ((object instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) ? label.alignment : undefined) + }; + return { annotations: annotations }; + }; + /** @private */ + CommandHandler.prototype.getPortChanges = function (object, port) { + var index = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findObjectIndex"])(object, port.id, false); + var ports = {}; + ports[index] = { offset: port.offset }; + return { ports: ports }; + }; + /** @private */ + CommandHandler.prototype.labelRotate = function (object, label, currentPosition, selector) { + var oldValues; + var changedvalues; + oldValues = this.getAnnotationChanges(object, label); + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + var rotateAngle = label.rotateAngle; + var labelWrapper = this.diagram.getWrapper(object.wrapper, label.id); + var angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_17__["findAngle"])({ x: labelWrapper.offsetX, y: labelWrapper.offsetY }, currentPosition) + 90; + var snapAngle = this.snapAngle(angle); + angle = snapAngle !== 0 ? snapAngle : angle; + if (label instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"] && label.segmentAngle) { + var getPointloop = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getAnnotationPosition"])(object.intermediatePoints, label, object.wrapper.bounds); + angle -= getPointloop.angle; + } + angle = (angle + 360) % 360; + label.rotateAngle += angle - (label.rotateAngle + labelWrapper.parentTransform); + if (label instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"]) { + label.alignment = 'Center'; + } + selector.wrapper.rotateAngle = selector.rotateAngle = label.rotateAngle; + changedvalues = this.getAnnotationChanges(object, label); + if (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + this.diagram.nodePropertyChange(object, oldValues, changedvalues); + } + else { + this.diagram.connectorPropertyChange(object, oldValues, changedvalues); + } + this.diagram.updateDiagramObject(object); + }; + /** @private */ + CommandHandler.prototype.labelResize = function (node, label, deltaWidth, deltaHeight, pivot, selector) { + var oldValues; + var changedvalues; + var rotateAngle; + oldValues = this.getAnnotationChanges(node, label); + var textElement = selector.wrapper.children[0]; + if ((deltaWidth && deltaWidth !== 1) || (deltaHeight && deltaHeight !== 1)) { + var newMat = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(newMat, -node.rotateAngle, node.offsetX, node.offsetY); + rotateAngle = ((textElement.rotateAngle + ((node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? node.rotateAngle : 0)) + 360) % 360; + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, -rotateAngle, pivot.x, pivot.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["scaleMatrix"])(matrix, deltaWidth, deltaHeight, pivot.x, pivot.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["rotateMatrix"])(matrix, rotateAngle, pivot.x, pivot.y); + var newPosition = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(matrix, { x: textElement.offsetX, y: textElement.offsetY }); + var height = textElement.actualSize.height * deltaHeight; + var width = textElement.actualSize.width * deltaWidth; + var shape = this.findTarget(textElement, node); + if (shape instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"]) { + newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0); + newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0); + } + if (shape instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"]) { + this.updatePathAnnotationOffset(node, label, 0, 0, newPosition, new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"](width, height)); + } + else { + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cornersPointsBeforeRotation"])(node.wrapper); + newPosition = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_6__["transformPointByMatrix"])(newMat, newPosition); + newPosition.x = newPosition.x - textElement.margin.left + textElement.margin.right; + newPosition.y = newPosition.y - textElement.margin.top + textElement.margin.bottom; + newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0); + newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0); + var offsetx = bounds.width / (newPosition.x - bounds.x); + var offsety = bounds.height / (newPosition.y - bounds.y); + if (width > 1) { + shape.width = width; + shape.offset.x = 1 / offsetx; + } + if (height > 1) { + shape.height = height; + shape.offset.y = 1 / offsety; + } + } + } + if (label instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_18__["PathAnnotation"]) { + label.alignment = 'Center'; + } + changedvalues = this.getAnnotationChanges(node, label); + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + this.diagram.nodePropertyChange(node, oldValues, changedvalues); + } + else { + this.diagram.connectorPropertyChange(node, oldValues, changedvalues); + } + this.diagram.updateDiagramObject(node); + }; + /** @private */ + CommandHandler.prototype.getSubProcess = function (source) { + var selector = { nodes: [], connectors: [] }; + var process; + if (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + process = source.processId; + } + else if (source && source.nodes && (source.nodes.length) + && source.nodes[0].processId) { + process = source.nodes[0].processId; + } + if (process) { + selector.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(this.diagram.nameTable[process])); + return selector; + } + return selector; + }; + /** @private */ + CommandHandler.prototype.checkBoundaryConstraints = function (tx, ty, nodeBounds) { + var pageSettings = this.diagram.pageSettings; + var boundaryConstraints = this.diagram.pageSettings.boundaryConstraints; + var scroller = this.diagram.scroller; + if (boundaryConstraints === 'Page' || boundaryConstraints === 'Diagram') { + var selectorBounds = !nodeBounds ? this.diagram.selectedItems.wrapper.bounds : undefined; + var width = boundaryConstraints === 'Page' ? pageSettings.width : scroller.viewPortWidth; + var height = boundaryConstraints === 'Page' ? pageSettings.height : scroller.viewPortHeight; + var bounds = nodeBounds; + var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0); + var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0); + var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0); + var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0); + if (right <= width && left >= 0 + && bottom <= height && top_2 >= 0) { + return true; + } + return false; + } + return true; + }; + //interfaces + /** @private */ + CommandHandler.prototype.dragSelectedObjects = function (tx, ty) { + var obj = this.diagram.selectedItems; + if (this.state && !this.state.backup) { + this.state.backup = {}; + this.state.backup.offsetX = obj.offsetX; + this.state.backup.offsetY = obj.offsetY; + } + obj = Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderContainerHelper"])(this.diagram, obj) || obj; + if (this.checkBoundaryConstraints(tx, ty)) { + this.diagram.diagramActions = this.diagram.diagramActions | (_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].PreventZIndexOnDragging | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].DragUsingMouse); + var actualObject = this.diagram.selectedObject.actualObject; + if ((actualObject && actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] && actualObject.isLane && + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["canLaneInterchange"])(actualObject, this.diagram)) || (!actualObject || !actualObject.isLane)) { + this.diagram.drag(obj, tx, ty); + } + this.diagram.diagramActions = this.diagram.diagramActions & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].PreventZIndexOnDragging | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].DragUsingMouse); + this.diagram.refreshCanvasLayers(); + return true; + } + return false; + }; + /** @private */ + CommandHandler.prototype.scaleSelectedItems = function (sx, sy, pivot) { + var obj = this.diagram.selectedItems; + if (this.state && !this.state.backup) { + this.state.backup = {}; + this.state.backup.offsetX = obj.offsetX; + this.state.backup.offsetY = obj.offsetY; + this.state.backup.width = obj.width; + this.state.backup.height = obj.height; + this.state.backup.pivot = pivot; + } + obj = Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderContainerHelper"])(this.diagram, obj) || obj; + return this.diagram.scale(obj, sx, sy, pivot); + }; + /** @private */ + CommandHandler.prototype.rotateSelectedItems = function (angle) { + var obj = this.diagram.selectedItems; + if (this.state && !this.state.backup) { + this.state.backup = {}; + this.state.backup.angle = obj.rotateAngle; + } + obj = Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderContainerHelper"])(this.diagram, obj) || obj; + return this.diagram.rotate(obj, angle); + }; + /** @private */ + CommandHandler.prototype.hasSelection = function () { + return Object(_actions__WEBPACK_IMPORTED_MODULE_9__["hasSelection"])(this.diagram); + }; + /** @private */ + CommandHandler.prototype.isSelected = function (element) { + return Object(_actions__WEBPACK_IMPORTED_MODULE_9__["isSelected"])(this.diagram, element); + }; + /** + * initExpand is used for layout expand and collapse interaction + */ + CommandHandler.prototype.initExpand = function (args) { + var propName = 'isProtectedOnChange'; + var protectedChange = this.diagram[propName]; + this.diagram.protectPropertyChange(true); + var node = (args.target || args.source); + var oldValues = { isExpanded: node.isExpanded }; + node.isExpanded = !node.isExpanded; + this.diagram.preventNodesUpdate = true; + this.diagram.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].PreventIconsUpdate; + this.diagram.nodePropertyChange(node, oldValues, { isExpanded: node.isExpanded }); + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].PreventIconsUpdate; + this.diagram.preventNodesUpdate = false; + for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) { + var temp = _a[_i]; + var view = this.diagram.views[temp]; + if (!(view instanceof _diagram_diagram__WEBPACK_IMPORTED_MODULE_5__["Diagram"])) { + this.diagram.refreshCanvasDiagramLayer(view); + } + } + this.diagram.protectPropertyChange(protectedChange); + }; + /** @private */ + CommandHandler.prototype.expandNode = function (node, diagram, canLayout) { + var animation; + //let objects: ILayout; + var preventNodesUpdate = this.diagram.preventNodesUpdate; + var expand = node.isExpanded; + this.diagram.preventNodesUpdate = true; + this.diagram.preventConnectorsUpdate = true; + this.expandCollapse(node, expand, this.diagram); + node.isExpanded = expand; + var fixedNode = this.diagram.layout.fixedNode; + this.diagram.layout.fixedNode = node.id; + if ((this.diagram.diagramActions != _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].Render) && this.diagram.layoutAnimateModule && this.diagram.layout.enableAnimation && this.diagram.organizationalChartModule) { + this.diagram.organizationalChartModule.isAnimation = true; + } + this.diagram.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].expandNode; + var objects = {}; + if (!canLayout) { + // BLAZ-22230 - Added below code to check if its blazor means then we set canUpdateTemplate as true + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.canUpdateTemplate = true; + } + objects = this.diagram.doLayout(); + } + this.canUpdateTemplate = false; + this.diagram.blazorActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["BlazorAction"].expandNode; + this.diagram.preventNodesUpdate = preventNodesUpdate; + this.diagram.preventConnectorsUpdate = false; + if (this.diagram.layoutAnimateModule && this.diagram.organizationalChartModule && !canLayout) { + this.diagram.allowServerDataBinding = false; + this.layoutAnimateModule.expand(this.diagram.layout.enableAnimation, objects, node, this.diagram); + } + else { + var arg = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["cloneBlazorObject"])(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(node)), state: (node.isExpanded) ? true : false + }; + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].expandStateChange, arg); + if (this.diagram.lineRoutingModule && this.diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramConstraints"].LineRouting) { + this.diagram.resetSegments(); + } + } + this.diagram.layout.fixedNode = fixedNode === '' ? '' : this.diagram.layout.fixedNode; + return objects; + }; + CommandHandler.prototype.getparentexpand = function (target, diagram, visibility, connector) { + var boolean; + for (var i = 0; i < target.inEdges.length; i++) { + var newConnector = diagram.nameTable[target.inEdges[i]]; + var previousNode = diagram.nameTable[newConnector.sourceID]; + if (previousNode.isExpanded && !visibility && previousNode.id !== connector.sourceID && newConnector.visible) { + return false; + } + else { + boolean = true; + } + } + return boolean; + }; + /** + * Setinterval and Clear interval for layout animation + */ + /** @private */ + CommandHandler.prototype.expandCollapse = function (source, visibility, diagram) { + for (var i = 0; i < source.outEdges.length; i++) { + var connector = diagram.nameTable[source.outEdges[i]]; + var target = diagram.nameTable[connector.targetID]; + var value = this.getparentexpand(target, diagram, visibility, connector); + connector.visible = visibility; + var oldValues = { + visible: target.visible, + style: { opacity: target.wrapper.style.opacity } + }; + var newValues = { + visible: target.visible, + style: { opacity: target.wrapper.style.opacity } + }; + if (value) { + if (target.isExpanded) { + this.expandCollapse(target, visibility, diagram); + } + target.visible = visibility; + target.style.opacity = (this.diagram.layoutAnimateModule && + this.diagram.layout.enableAnimation && visibility) ? 0.1 : target.style.opacity; + diagram.nodePropertyChange(target, oldValues, newValues); + } + diagram.connectorPropertyChange(connector, oldValues, newValues); + } + }; + /** + * @private + */ + CommandHandler.prototype.updateNodeDimension = function (obj, rect) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + obj.offsetX = rect.x + rect.width / 2; + obj.offsetY = rect.y + rect.height / 2; + obj.width = rect.width; + obj.height = rect.height; + obj.wrapper.children[0].canMeasurePath = true; + this.diagram.nodePropertyChange(obj, {}, { + width: rect.width, height: rect.height, offsetX: obj.offsetX, + offsetY: obj.offsetY + }); + if (this.diagram.mode !== 'SVG') { + this.diagram.refreshDiagramLayer(); + } + } + }; + /** + * @private + */ + CommandHandler.prototype.updateConnectorPoints = function (obj, rect) { + if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && obj.type !== 'Bezier') { + this.diagram.connectorPropertyChange(obj, {}, { + targetPoint: obj.targetPoint + }); + this.diagram.updateDiagramObject(obj); + } + else { + this.diagram.connectorPropertyChange(obj, {}, { segments: obj.segments }); + this.diagram.updateDiagramObject(obj); + } + }; + /** + * @private + */ + CommandHandler.prototype.updateSelectedNodeProperties = function (object) { + if (this.diagram.lineRoutingModule && (this.diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramConstraints"].LineRouting)) { + var previousNodeObject = []; + var previousConnectorObject = []; + var updateNodeObject = []; + var updateConnectorObject = []; + var changeNodes = []; + var changeConnectors = []; + this.diagram.protectPropertyChange(true); + var objects = []; + var connectors = []; + var actualObject = this.diagram.selectedObject.actualObject; + var helperObject = this.diagram.selectedObject.helperObject; + if (helperObject && actualObject) { + var offsetX = (helperObject.offsetX - actualObject.offsetX); + var offsetY = (helperObject.offsetY - actualObject.offsetY); + var width = (helperObject.width - actualObject.width); + var height = (helperObject.height - actualObject.height); + var rotateAngle = (helperObject.rotateAngle - actualObject.rotateAngle); + if (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length > 0) { + this.diagram.selectedItems.wrapper.rotateAngle = this.diagram.selectedItems.rotateAngle = helperObject.rotateAngle; + } + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] && + actualObject.shape.type !== 'SwimLane' && !actualObject.isLane && !actualObject.isPhase && !actualObject.isHeader) { + if (actualObject.offsetX !== actualObject.wrapper.offsetX || actualObject.offsetY !== actualObject.wrapper.offsetY || + actualObject.width !== actualObject.wrapper.width || actualObject.height !== actualObject.wrapper.height || + actualObject.rotateAngle !== actualObject.wrapper.rotateAngle) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + previousNodeObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(actualObject, undefined, undefined, true)); + } + actualObject.offsetX += offsetX; + actualObject.offsetY += offsetY; + actualObject.width += width; + actualObject.height += height; + actualObject.rotateAngle += rotateAngle; + this.diagram.nodePropertyChange(actualObject, {}, { + offsetX: actualObject.offsetX, offsetY: actualObject.offsetY, + width: actualObject.width, height: actualObject.height, rotateAngle: actualObject.rotateAngle + }); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + updateNodeObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(actualObject, undefined, undefined, true)); + } + } + objects = this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds); + } + else if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + for (var i = 0; i < actualObject.nodes.length; i++) { + var node = actualObject.nodes[i]; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] && node.shape.type !== 'SwimLane' && !node.isLane + && !node.isPhase && !node.isHeader) { + node.offsetX += offsetX; + node.offsetY += offsetY; + node.width += width; + node.height += height; + node.rotateAngle += rotateAngle; + this.diagram.nodePropertyChange(node, {}, { + offsetX: node.offsetX, offsetY: node.offsetY, + width: node.width, height: node.height, rotateAngle: node.rotateAngle + }); + objects = objects.concat(this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds)); + } + } + } + } + else { + if (object instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"]) { + objects.push(object); + } + else if (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"] && object.connectors.length) { + objects = objects.concat(object.connectors); + } + } + for (var i = 0; i < objects.length; i++) { + if (objects[i] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && connectors.indexOf(objects[i].id) === -1) { + connectors.push(objects[i].id); + } + } + this.diagram.lineRoutingModule.renderVirtualRegion(this.diagram, true); + for (var i = 0; i < connectors.length; i++) { + var connector = this.diagram.nameTable[connectors[i]]; + if (connector instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_0__["Connector"] && connector.type === 'Orthogonal') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + previousConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector, undefined, undefined, true)); + } + // EJ2-65876 - Exception occurs on line routing injection module + if (connector.sourceID != connector.targetID) { + //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module + var sourceNode = this.diagram.getObject(connector.sourceID); + var targetNode = this.diagram.getObject(connector.targetID); + var Connectorlength1 = targetNode.wrapper.outerBounds.middleLeft.x - sourceNode.wrapper.outerBounds.middleRight.x; + var Connectorlength2 = targetNode.wrapper.outerBounds.topCenter.y - sourceNode.wrapper.outerBounds.bottomCenter.y; + if (Connectorlength1 > 30 || Connectorlength2 > 30) { + this.diagram.lineRoutingModule.refreshConnectorSegments(this.diagram, connector, true); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + updateConnectorObject.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(connector, undefined, undefined, true)); + } + } + } + this.updateSelector(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.getObjectChanges(previousNodeObject, updateNodeObject, changeNodes); + this.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors); + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + var diagramObject = { nodes: changeNodes, connectors: changeConnectors }; + if (window && window[blazor] && (changeConnectors.length + changeNodes.length)) { + var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject }; + window[blazorInterop].updateBlazorProperties(obj, this.diagram); + } + } + this.diagram.protectPropertyChange(false); + } + }; + /** @private */ + CommandHandler.prototype.drawSelectionRectangle = function (x, y, width, height) { + this.diagram.drawSelectionRectangle(x, y, width, height); + }; + /** @private */ + CommandHandler.prototype.startGroupAction = function () { + this.diagram.startGroupAction(); + }; + /** @private */ + CommandHandler.prototype.endGroupAction = function () { + this.diagram.endGroupAction(); + }; + /** @private */ + CommandHandler.prototype.removeChildFromBPmn = function (child, newTarget, oldTarget) { + var obj = this.diagram.nameTable[child.id] || child.nodes[0]; + if (oldTarget) { + if ((obj) && obj.processId && obj.processId === oldTarget.wrapper.id) { + var node = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(obj); + node.processId = obj.processId; + this.diagram.startGroupAction(); + var edges = []; + edges = edges.concat(obj.outEdges, obj.inEdges); + for (var i = edges.length - 1; i >= 0; i--) { + var connector = this.diagram.nameTable[edges[i]]; + if (connector) { + this.diagram.remove(connector); + } + } + //let nodeCollection: string[]; + var nodeCollection = (this.diagram.nameTable[obj.processId].shape.activity.subProcess.processes) || []; + nodeCollection.splice(nodeCollection.indexOf((obj).id), 1); + this.diagram.bpmnModule.removeChildFromBPMN(this.diagram.nameTable[obj.processId].wrapper, (obj).id); + this.diagram.nameTable[(obj).id].processId = ''; + obj.offsetX = obj.wrapper.offsetX; + obj.offsetY = obj.wrapper.offsetY; + var undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(obj); + var entry = { + type: 'PositionChanged', redoObject: { nodes: [undoElement] }, undoObject: { nodes: [node] }, category: 'Internal' + }; + this.addHistoryEntry(entry); + this.diagram.endGroupAction(); + } + } + }; + /** @private */ + CommandHandler.prototype.isDroppable = function (source, targetNodes) { + var node = this.diagram.nameTable[source.id] || source.nodes[0]; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.shape === 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.bpmnShape === 'TextAnnotation')) { + return true; + } + if (node && node.shape.type === 'Bpmn') { + if ((node.processId === targetNodes.id) || (node.id === targetNodes.processId) || + targetNodes.shape.type === 'Bpmn' + && targetNodes.shape.activity.subProcess.collapsed) { + return false; + } + } + return true; + } + return false; + }; + /** + * @private + */ + CommandHandler.prototype.renderHighlighter = function (args, connectHighlighter, source) { + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_4__["Rect"](); + if ((args.target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) || (connectHighlighter && (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]))) { + var tgt = connectHighlighter ? args.source : args.target; + var tgtWrap = connectHighlighter ? args.sourceWrapper : args.targetWrapper; + var target = this.findTarget(tgtWrap, tgt, source, true); + var element = void 0; + if (target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["BpmnSubEvent"]) { + var portId = target.id; + var node = args.target; + var parent_8 = node.wrapper.children[0].children[0].children[2]; + for (var _i = 0, _a = parent_8.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (child.id === node.id + '_' + portId) { + element = child.children[0]; + break; + } + } + } + else { + element = (target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? + target.wrapper : connectHighlighter ? args.sourceWrapper : args.targetWrapper; + } + this.diagram.renderHighlighter(element); + } + }; + //additional events + /** @private */ + CommandHandler.prototype.mouseOver = function (source, target, position) { + //mouse over + //returns whether the source can move over the target or not + return true; + }; + /** + * @private + */ + CommandHandler.prototype.snapPoint = function (startPoint, endPoint, tx, ty) { + var obj = this.diagram.selectedItems; + var point; + var towardsLeft = endPoint.x < startPoint.x; + var towardsTop = endPoint.y < startPoint.y; + point = { x: tx, y: ty }; + var snappedPoint = point; + if (this.snappingModule) { + snappedPoint = this.diagram.snappingModule.snapPoint(this.diagram, obj, towardsLeft, towardsTop, point, startPoint, endPoint); + } + return snappedPoint; + }; + /** + * @private + */ + CommandHandler.prototype.removeSnap = function () { + if ((this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["SnapConstraints"].SnapToObject) && this.snappingModule) { + this.snappingModule.removeGuidelines(this.diagram); + } + }; + /** @private */ + /**Bug(EJ2-62725): Exception occurs when drag and drop the connector inside the swimlane */ + CommandHandler.prototype.dropAnnotation = function (source, target) { + if (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"] || source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"]) { + var node = (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? source : source.nodes[0]; + if (this.diagram.bpmnModule && target.shape.type === 'Bpmn' + && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.shape === 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])() && node.shape.bpmnShape === 'TextAnnotation'))) { + var hasTarget = 'hasTarget'; + node[hasTarget] = target.id; + node.shape.annotation.nodeId = target.id; + if (!this.diagram.currentSymbol) { + this.diagram.addTextAnnotation(node.shape.annotation, target); + node.shape.annotation.nodeId = ''; + this.diagram.remove(node); + } + this.diagram.refreshDiagramLayer(); + } + } + }; + /** @private */ + CommandHandler.prototype.drop = function (source, target, position) { + //drop + if (this.diagram.bpmnModule) { + var sourcenode = (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? source : source.nodes[0]; + if (sourcenode && sourcenode.shape.type === 'Bpmn' && target.shape.type === 'Bpmn') { + this.diagram.bpmnModule.dropBPMNchild(target, (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) ? source : source.nodes[0], this.diagram); + this.diagram.refreshDiagramLayer(); + } + } + }; + /** @private */ + CommandHandler.prototype.addHistoryEntry = function (entry) { + this.diagram.addHistoryEntry(entry); + }; + /** @private */ + CommandHandler.prototype.align = function (objects, option, type) { + if (objects.length > 0) { + var i = 0; + objects[0] = this.diagram.nameTable[objects[0].id] || objects[0]; + var bounds = (type === 'Object') ? Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[0].wrapper) : this.diagram.selectedItems.wrapper.bounds; + var undoObj = { nodes: [], connectors: [] }; + var redoObj = { nodes: [], connectors: [] }; + for (i = ((type === 'Object') ? (i + 1) : i); i < objects.length; i++) { + var tx = 0; + var ty = 0; + objects[i] = this.diagram.nameTable[objects[i].id] || objects[i]; + var objectBounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[i].wrapper); + if (option === 'Left') { + tx = bounds.left + objectBounds.width / 2 - objectBounds.center.x; + } + else if (option === 'Right') { + tx = bounds.right - objectBounds.width / 2 - objectBounds.center.x; + } + else if (option === 'Top') { + ty = bounds.top + objectBounds.height / 2 - objectBounds.center.y; + } + else if (option === 'Bottom') { + ty = bounds.bottom - objectBounds.height / 2 - objectBounds.center.y; + } + else if (option === 'Center') { + tx = bounds.center.x - objectBounds.center.x; + } + else if (option === 'Middle') { + ty = bounds.center.y - objectBounds.center.y; + } + undoObj = this.storeObject(undoObj, objects[i]); + this.drag(objects[i], tx, ty); + this.diagram.updateSelector(); + redoObj = this.storeObject(redoObj, objects[i]); + } + undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoObj); + redoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoObj); + var entry = { + type: 'Align', category: 'Internal', + undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoObj), redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoObj) + }; + this.addHistoryEntry(entry); + } + }; + /** + * distribute method \ + * + * @returns { void } distribute method .\ + * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value. + * @param {SizingOptions} option - provide the target value. + * + * @private + */ + CommandHandler.prototype.distribute = function (objects, option) { + if (objects.length > 0) { + var i = 0; + //const j: number = 0; + //const rect: Rect = new Rect(); + //const b: Rect[] = []; + //let temp: NodeModel | ConnectorModel; + var right = 0; + var left = 0; + var top_3 = 0; + var bottom = 0; + var center = 0; + var middle = 0; + var btt = 0; + //const sum: number = 0; + var undoSelectorObj = { nodes: [], connectors: [] }; + var redoSelectorObj = { nodes: [], connectors: [] }; + for (i = 0; i < objects.length; i++) { + objects[i] = this.diagram.nameTable[objects[i].id] || objects[i]; + } + objects = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["sort"])(objects, option); + for (i = 1; i < objects.length; i++) { + right = right + objects[i].wrapper.bounds.topRight.x - objects[i - 1].wrapper.bounds.topRight.x; + left = left + objects[i].wrapper.bounds.topLeft.x - objects[i - 1].wrapper.bounds.topLeft.x; + top_3 = top_3 + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.topRight.y; + bottom = bottom + objects[i].wrapper.bounds.bottomRight.y - objects[i - 1].wrapper.bounds.bottomRight.y; + center = center + objects[i].wrapper.bounds.center.x - objects[i - 1].wrapper.bounds.center.x; + middle = middle + objects[i].wrapper.bounds.center.y - objects[i - 1].wrapper.bounds.center.y; + btt = btt + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.bottomRight.y; + } + for (i = 1; i < objects.length - 1; i++) { + var tx = 0; + var ty = 0; + var prev = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[i - 1].wrapper); + var current = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[i].wrapper); + if (option === 'RightToLeft' || option === 'Center') { + tx = prev.center.x - current.center.x + (center / (objects.length - 1)); + } + else if (option === 'Right') { + tx = prev.topRight.x - current.topRight.x + (right / (objects.length - 1)); + } + else if (option === 'Left') { + tx = prev.topLeft.x - current.topLeft.x + (left / (objects.length - 1)); + } + else if (option === 'Middle') { + ty = prev.center.y - current.center.y + (middle / (objects.length - 1)); + } + else if (option === 'Top') { + ty = prev.topRight.y - current.topRight.y + (top_3 / (objects.length - 1)); + } + else if (option === 'Bottom') { + ty = prev.bottomRight.y - current.bottomRight.y + (bottom / (objects.length - 1)); + } + else if (option === 'BottomToTop') { + ty = prev.bottomRight.y - current.topRight.y + (btt / (objects.length - 1)); + } + undoSelectorObj = this.storeObject(undoSelectorObj, objects[i]); + this.drag(objects[i], tx, ty); + this.diagram.updateSelector(); + redoSelectorObj = this.storeObject(redoSelectorObj, objects[i]); + } + undoSelectorObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoSelectorObj); + redoSelectorObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoSelectorObj); + var entry = { + type: 'Distribute', category: 'Internal', + undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoSelectorObj), redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoSelectorObj) + }; + this.addHistoryEntry(entry); + } + }; + /* eslint-enable */ + /** + * sameSize method \ + * + * @returns { void } sameSize method .\ + * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value. + * @param {SizingOptions} option - provide the target value. + * + * @private + */ + CommandHandler.prototype.sameSize = function (objects, option) { + if (objects.length > 0) { + var i = 0; + //let pivot: PointModel; + var pivot = { x: 0.5, y: 0.5 }; + objects[0] = this.diagram.nameTable[objects[0].id] || objects[0]; + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[0].wrapper); + var undoObject = { nodes: [], connectors: [] }; + var redoObject = { nodes: [], connectors: [] }; + for (i = 1; i < objects.length; i++) { + objects[parseInt(i.toString(), 10)] = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id] || objects[0]; + var rect = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["getBounds"])(objects[parseInt(i.toString(), 10)].wrapper); + var sw = 1; + var sh = 1; + if (option === 'Width') { + sw = bounds.width / rect.width; + } + else if (option === 'Height') { + sh = bounds.height / rect.height; + } + else if (option === 'Size') { + sw = bounds.width / rect.width; + sh = bounds.height / rect.height; + } + undoObject = this.storeObject(undoObject, objects[parseInt(i.toString(), 10)]); + this.scale(objects[parseInt(i.toString(), 10)], sw, sh, pivot); + redoObject = this.storeObject(redoObject, objects[parseInt(i.toString(), 10)]); + } + this.diagram.updateSelector(); + undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoObject); + redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoObject); + var entry = { + type: 'Sizing', category: 'Internal', + undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(undoObject), redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(redoObject) + }; + this.addHistoryEntry(entry); + } + }; + CommandHandler.prototype.storeObject = function (selectorObject, obj) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + selectorObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(obj)); + } + else { + selectorObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(obj)); + } + return selectorObject; + }; + /** + * updatePanState method \ + * + * @returns { any } updatePanState method .\ + * @param {number} eventCheck - provide the eventCheck value. + * + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + CommandHandler.prototype.updatePanState = function (eventCheck) { + if (eventCheck) { + this.diagram.realActions = this.diagram.realActions | _enum_enum__WEBPACK_IMPORTED_MODULE_10__["RealAction"].PanInProgress; + } + else { + this.diagram.dataBind(); + var diagramScrollSettings = this.diagram.scrollSettings; + this.diagram.realActions = this.diagram.realActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_10__["RealAction"].PanInProgress; + var Values = { + VerticalOffset: diagramScrollSettings.verticalOffset, HorizontalOffset: diagramScrollSettings.horizontalOffset, + ViewportHeight: diagramScrollSettings.viewPortHeight, ViewportWidth: diagramScrollSettings.viewPortWidth, + CurrentZoom: diagramScrollSettings.currentZoom + }; + var arg = { + oldValue: Values, + newValue: Values, source: this.diagram, panState: 'Completed' + }; + this.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramEvent"].scrollChange, arg); + } + }; + /** + * dataBinding method \ + * + * @returns { void } dataBinding method .\ + * + * @private + */ + CommandHandler.prototype.dataBinding = function () { + this.diagram.dataBind(); + }; + CommandHandler.prototype.setBlazorDiagramProps = function (arg) { + this.diagram.setBlazorDiagramProps(arg); + }; + /** + * scroll method \ + * + * @returns { void } scroll method .\ + * @param {number} scrollX - provide the source value. + * @param {number} scrollY - provide the target value. + * @param {PointModel} focusPoint - provide the layoutOrientation value. + * + * @private + */ + CommandHandler.prototype.scroll = function (scrollX, scrollY, focusPoint) { + var panx = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPanX"])(this.diagram); + var pany = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_11__["canPanY"])(this.diagram); + var canPan = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_16__["isBlazor"])()) { + this.diagram.setCursor('grabbing'); + this.diagram.scroller.zoom(1, (scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint); + } + else { + this.diagram.pan((scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint, canPan); + } + }; + /** + * drawHighlighter method \ + * + * @returns { NodeModel | ConnectorModel } drawHighlighter method .\ + * @param {IElement} element - provide the element value. + * + * @private + */ + CommandHandler.prototype.drawHighlighter = function (element) { + this.diagram.renderHighlighter(element.wrapper); + }; + /** + * removeHighlighter method \ + * + * @returns { void } removeHighlighter method .\ + * + * @private + */ + CommandHandler.prototype.removeHighlighter = function () { + this.diagram.clearHighlighter(); + }; + /** + * renderContainerHelper method \ + * + * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\ + * @param {NodeModel | SelectorModel | ConnectorModel} node - provide the parent value. + * + * @private + */ + CommandHandler.prototype.renderContainerHelper = function (node) { + return Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderContainerHelper"])(this.diagram, node); + }; + /** + * isParentAsContainer method \ + * + * @returns { boolean } isParentAsContainer method .\ + * @param {NodeModel} node - provide the parent value. + * @param {boolean} isChild - provide the target value. + * + * @private + */ + CommandHandler.prototype.isParentAsContainer = function (node, isChild) { + return Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, node, isChild); + }; + /** + * dropChildToContainer method \ + * + * @returns { void } dropChildToContainer method .\ + * @param {NodeModel} parent - provide the parent value. + * @param {NodeModel} node - provide the target value. + * + * @private + */ + CommandHandler.prototype.dropChildToContainer = function (parent, node) { + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_10__["DiagramAction"].PreventLaneContainerUpdate)) { + //EJ2-66591 - Droping BPMN text annotation node inside the swimlane is not working properly. + if (!(node.shape.type === 'Bpmn' && node.shape.shape === 'TextAnnotation')) { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["addChildToContainer"])(this.diagram, parent, node); + } + } + }; + /** + * @returns { void } updateLaneChildrenZindex method .\ + * @param {NodeModel} node - provide the node value. + * @param {IElement} target - provide the target value. + * @private + */ + CommandHandler.prototype.updateLaneChildrenZindex = function (node, target) { + var lowerIndexobject = this.findLeastIndexObject(node, target); + var swimlane = this.diagram.nameTable[target.parentId]; + if (swimlane && swimlane.zIndex > lowerIndexobject.zIndex) { + var layerIndex = this.diagram.layers.indexOf(this.diagram.getActiveLayer()); + var layerZIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable; + var tempTable = JSON.parse(JSON.stringify(layerZIndexTable)); + var startIndex = lowerIndexobject.zIndex; + var endIndex = swimlane.zIndex; + for (var i = endIndex; i >= startIndex; i--) { + if (startIndex !== i) { + if (!layerZIndexTable[i - 1]) { + layerZIndexTable[i - 1] = layerZIndexTable[parseInt(i.toString(), 10)]; + this.diagram.nameTable[layerZIndexTable[i - 1]].zIndex = i; + delete layerZIndexTable[parseInt(i.toString(), 10)]; + } + else { + //bringing the objects forward + layerZIndexTable[parseInt(i.toString(), 10)] = layerZIndexTable[i - 1]; + this.diagram.nameTable[layerZIndexTable[parseInt(i.toString(), 10)]].zIndex = i; + } + } + else { + var tempIndex = this.swapZIndexObjects(endIndex, layerZIndexTable, swimlane.id, tempTable); + } + } + if (this.diagram.mode === 'SVG') { + this.moveSvgNode(target.parentId, lowerIndexobject.id); + this.updateNativeNodeIndex(target.parentId, lowerIndexobject.id); + } + else { + this.diagram.refreshCanvasLayers(); + } + } + }; + CommandHandler.prototype.findLeastIndexConnector = function (edges, target, index) { + for (var i = 0; i < edges.length; i++) { + var connector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]]; + if (index.zIndex > connector.zIndex) { + index = connector; + } + } + return index; + }; + CommandHandler.prototype.findLeastIndexObject = function (node, target) { + var lowerIndexobject = node; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + lowerIndexobject = this.findLeastIndexConnector(node.inEdges, target, lowerIndexobject); + lowerIndexobject = this.findLeastIndexConnector(node.outEdges, target, lowerIndexobject); + } + return lowerIndexobject; + }; + /** + * checkSelection method \ + * + * @returns { void } checkSelection method .\ + * @param {SelectorModel} selector - provide the source value. + * @param {string} corner - provide the target value. + * + * @private + */ + CommandHandler.prototype.checkSelection = function (selector, corner) { + var node; // let wrapper: GridPanel; let child: Container; let index: number; let shape: SwimLaneModel; + if (selector.nodes.length === 1 && selector.connectors.length === 0) { + if (Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, selector.nodes[0], true)) { + node = (selector.nodes[0].shape === 'SwimLane') ? selector.nodes[0] : + this.diagram.nameTable[selector.nodes[0].parentId]; + var child = selector.nodes[0]; + if (node.shape.type === 'SwimLane') { + var orientation_1 = (node.shape.orientation === 'Horizontal') ? true : false; + if ((child.isPhase && ((orientation_1 && corner === 'ResizeSouth') || (!orientation_1 && corner === 'ResizeEast'))) || + (child.isLane && ((orientation_1 && corner === 'ResizeEast') || (!orientation_1 && corner === 'ResizeSouth')))) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["swimLaneSelection"])(this.diagram, node, corner); + } + } + else if (node.container.type === 'Grid') { + if (((node.container.orientation === 'Horizontal' && child.rowIndex === 1) || + (node.container.orientation === 'Vertical' && child.rowIndex > 0 && child.columnIndex > 0))) { + if (corner === 'ResizeSouth') { + for (var i = 0; i < this.diagram.nodes.length; i++) { + var obj = this.diagram.nodes[parseInt(i.toString(), 10)]; + if (obj.rowIndex === node.rows.length - 1 && obj.columnIndex === 0) { + this.select(obj); + break; + } + } + } + } + else { + if (corner === 'ResizeEast') { + for (var i = 0; i < this.diagram.nodes.length; i++) { + var obj = this.diagram.nodes[parseInt(i.toString(), 10)]; + if (obj.rowIndex === 1 && obj.columnIndex === node.columns.length - 1) { + this.select(obj); + break; + } + } + } + } + } + } + else { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["swimLaneSelection"])(this.diagram, selector.nodes[0], corner); + } + } + }; + /** + * zoom method \ + * + * @returns { void } zoom method .\ + * @param {number} scale - provide the source value. + * @param {number} scrollX - provide the target value. + * @param {number} scrollY - provide the layoutOrientation value. + * @param {PointModel} focusPoint - provide the layoutOrientation value. + * + * @private + */ + CommandHandler.prototype.zoom = function (scale, scrollX, scrollY, focusPoint) { + this.diagram.scroller.zoom(scale, scrollX * this.diagram.scroller.currentZoom, scrollY * this.diagram.scroller.currentZoom, focusPoint); + }; + return CommandHandler; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/connector-editing.js": +/*!*********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/connector-editing.js ***! + \*********************************************************************************************/ +/*! exports provided: ConnectorEditing */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorEditing", function() { return ConnectorEditing; }); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _tool__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./tool */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + + + + + + + + + +/** + * Multiple segments editing for Connector + */ +var ConnectorEditing = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectorEditing, _super); + function ConnectorEditing(commandHandler, endPoint) { + var _this = _super.call(this, commandHandler, true) || this; + _this.oldValue = null; + _this.endPoint = endPoint; + return _this; + } + /** + * mouseDown method\ + * + * @returns { void } mouseDown method .\ + * @param {MouseEventArgs} args - provide the args value. + * @private + */ + ConnectorEditing.prototype.mouseDown = function (args) { + var connectors; + var edit = true; + if (args.source && args.source.connectors) { + connectors = args.source.connectors[0]; + } + if (args.info && args.actualObject) { + edit = args.info.ctrlKey && args.actualObject.type !== 'Orthogonal'; + } + if (connectors && edit) { + this.inAction = true; + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(args.source); + _super.prototype.mouseDown.call(this, args); + // Sets the selected segment + for (var i = 0; i < connectors.segments.length; i++) { + var segment = connectors.segments[parseInt(i.toString(), 10)]; + if (this.endPoint === 'OrthoThumb') { + for (var j = 0; j < segment.points.length - 1; j++) { + var segPoint = { x: 0, y: 0 }; + segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2); + segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2); + if (Object(_actions__WEBPACK_IMPORTED_MODULE_5__["contains"])(this.currentPosition, segPoint, 30)) { + this.selectedSegment = segment; + this.segmentIndex = j; + } + } + } + else { + if (Object(_actions__WEBPACK_IMPORTED_MODULE_5__["contains"])(this.currentPosition, segment.point, 10)) { + this.selectedSegment = segment; + } + } + } + } + }; + /** + * mouseMove method\ + * + * @returns { void } mouseMove method .\ + * @param {MouseEventArgs} args - provide the args value. + * @private + */ + ConnectorEditing.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + this.currentPosition = args.position; + if (this.currentPosition && this.prevPosition) { + var diffY = this.currentPosition.y - this.prevPosition.y; + var diffX = this.currentPosition.x - this.prevPosition.x; + this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition); + var connector = void 0; + var newValue = void 0; + var isSame = false; + if (args.source && args.source.connectors) { + connector = args.source.connectors[0]; + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(this.startPosition, this.prevPosition)) { + isSame = true; + } + if (this.oldValue === null) { + this.oldValue = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(this.selectedSegment); + } + var arg = { + source: connector, state: 'Start', oldValue: this.oldValue, newValue: this.oldValue, + segment: this.selectedSegment, cancel: false + }; + //EJ2-66217 - Support to add event for segment points editing in connector. + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), state: 'Start', oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.oldValue), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.oldValue), + segment: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.selectedSegment), cancel: false + }; + if (isSame && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentChange, arg); + } + // When cancel is set to true at state Start, the segment change will be prevented. + if (arg.cancel) { + this.commandHandler.diagram.resetTool(); + } + if ((this.inAction && this.selectedSegment !== undefined && this.endPoint !== undefined) && (diffX !== 0 || diffY !== 0) && !arg.cancel) { + if (this.endPoint === 'OrthoThumb') { + this.blocked = !this.dragOrthogonalSegment(connector, this.selectedSegment, this.currentPosition, this.segmentIndex); + if (this.oldValue.length === null && this.oldValue.direction === null) { + this.oldValue = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(this.selectedSegment); + } + newValue = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(this.selectedSegment); + } + else { + var tx = this.currentPosition.x - this.selectedSegment.point.x; + var ty = this.currentPosition.y - this.selectedSegment.point.y; + var index = connector.segments.indexOf(this.selectedSegment); + this.blocked = !this.commandHandler.dragControlPoint(connector, tx, ty, false, index); + newValue = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(this.selectedSegment); + } + this.commandHandler.updateSelector(); + this.currentPosition = args.position; + var arg1 = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), state: 'Progress', oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.oldValue), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(newValue), + segment: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.selectedSegment), cancel: false + }; + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentChange, arg1); + } + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + /** + * mouseUp method\ + * + * @returns { void } mouseUp method .\ + * @param {MouseEventArgs} args - provide the args value. + * @private + */ + ConnectorEditing.prototype.mouseUp = function (args) { + var connector; + var oldValues; + if (args.source && args.source.connectors) { + connector = args.source.connectors[0]; + oldValues = { segments: connector.segments }; + } + if (args && args.source && args.info && args.info.ctrlKey && args.info.shiftKey && connector.type === 'Straight') { + this.addOrRemoveSegment(connector, this.currentPosition); + } + else { + if (this.endPoint === 'OrthoThumb' && this.selectedSegment) { + var index = connector.segments.indexOf(this.selectedSegment); + var prev = connector.segments[index - 1]; + var next = connector.segments[index + 1]; + if (index === connector.segments.length - 2 + && this.updateLastSegment(connector, this.selectedSegment)) { + connector.segments.splice(connector.segments.length - 2, 1); + } + else { + if (prev && Math.abs(prev.length) < 5) { + if (index !== 1) { + this.removePrevSegment(connector, index); + } + } + else if (next) { + var len = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(next.points[0], next.points[1]); + var length_1 = ((next.length || next.length === 0) ? next.length : len); + if ((Math.abs(length_1) <= 5)) { + this.removeNextSegment(connector, index); + } + } + } + this.commandHandler.updateEndPoint(connector, oldValues); + // EJ2-65063 - While mouseUp set the selectedSegmentIndex as zero. + connector.selectedSegmentIndex = 0; + } + } + if (this.undoElement) { + //let obj: SelectorModel; + var obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(args.source); + var entry = { + type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry); + } + if (connector.isBezierEditing) { + connector.isBezierEditing = false; + } + if (this.prevPosition !== this.startPosition) { + var arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), state: 'Completed', oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.oldValue), + newValue: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(this.selectedSegment), cancel: false, segment: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(this.selectedSegment) + }; + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentChange, arg); + } + _super.prototype.mouseUp.call(this, args); + }; + ConnectorEditing.prototype.removePrevSegment = function (connector, index) { + var first = connector.segments[index - 2]; + var next = connector.segments[index + 1]; + var length = (next.length || next.length === 0) ? next.length : _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(next.points[0], next.points[1]); + if (!(length <= 5)) { + var removeSegments = connector.segments.slice(index - 1, index + 1); + var args = { + element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), removeSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(removeSegments), + type: 'Removal', cancel: args.cancel + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args); + if (!args.cancel) { + var last = connector.segments[index + 1]; + connector.segments.splice(index - 1, 2); + var segment = this.selectedSegment; + if (segment.direction === 'Left' || segment.direction === 'Right') { + first.points[first.points.length - 1].x = last.points[0].x; + last.points[0].y = first.points[first.points.length - 1].y; + } + else { + first.points[first.points.length - 1].y = last.points[0].y; + last.points[0].x = first.points[first.points.length - 1].x; + } + if (segment.length || segment.length === 0) { + this.findSegmentDirection(first); + } + this.findSegmentDirection(last); + } + } + }; + ConnectorEditing.prototype.findSegmentDirection = function (segment) { + if (segment.direction && (segment.length || segment.length === 0)) { + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[segment.points.length - 1]); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(segment.points[0], segment.points[segment.points.length - 1]); + } + }; + ConnectorEditing.prototype.removeNextSegment = function (connector, index) { + var segment = this.selectedSegment; + var first = connector.segments[index - 1]; + var last = connector.segments[index + 2]; + var next = connector.segments[index + 1]; + // eslint-disable-next-line + var removeSegments; + var args; + if (next.length || next.length === 0) { + removeSegments = connector.segments.slice(index, 2); + args = { + element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false + }; + args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), removeSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(removeSegments), + type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), removeSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(removeSegments), + type: 'Removal', cancel: false + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args); + if (!args.cancel) { + connector.segments.splice(index, 2); + if (segment.direction === 'Top' || segment.direction === 'Bottom') { + last.points[0].y = segment.points[0].y; + first.points[first.points.length - 1].x = last.points[0].x; + } + else { + last.points[0].x = segment.points[0].x; + first.points[first.points.length - 1].y = last.points[0].y; + } + } + } + else { + removeSegments = connector.segments.slice(index + 1, 1); + args = { + element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args = { + element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args); + if (!args.cancel) { + connector.segments.splice(index + 1, 1); + if (segment.direction === 'Top' || segment.direction === 'Bottom') { + first.points[first.points.length - 1].x = next.points[next.points.length - 1].x; + } + else { + first.points[first.points.length - 1].y = next.points[next.points.length - 1].y; + } + this.findSegmentDirection(first); + segment.length = segment.direction = null; + } + } + if (first && last && !args.cancel) { + first.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(first.points[0], last.points[0]); + first.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(first.points[0], last.points[0]); + if (last.length || last.length === 0) { + last.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(first.points[first.points.length - 1], last.points[last.points.length - 1]); + var point1 = first.points; + var point2 = last.points; + last.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(point1[point1.length - 1], point2[point2.length - 1]); + } + } + }; + ConnectorEditing.prototype.addOrRemoveSegment = function (connector, point) { + var updateSeg; + var segmentIndex; + var oldValues = { segments: connector.segments }; + for (var i = 0; i < connector.segments.length; i++) { + var segment = (connector.segments)[parseInt(i.toString(), 10)]; + if (Object(_actions__WEBPACK_IMPORTED_MODULE_5__["contains"])(point, segment.point, connector.hitPadding)) { + segmentIndex = i; + updateSeg = true; + } + } + if (updateSeg && segmentIndex !== undefined) { + if (connector.segments && connector.segments[parseInt(segmentIndex.toString(), 10)] && connector.segments[parseInt(segmentIndex.toString(), 10)].type === 'Straight') { + var segment = connector.segments[parseInt(segmentIndex.toString(), 10)]; + var previous = connector.segments[segmentIndex + 1]; + if (previous) { + connector.segments.splice(segmentIndex, 1); + previous.points[0] = segment.points[0]; + } + } + } + else { + this.commandHandler.enableServerDataBinding(false); + var index = this.findIndex(connector, point); + if (connector.segments && connector.segments[parseInt(index.toString(), 10)] && connector.segments[parseInt(index.toString(), 10)].type === 'Straight') { + var segment = connector.segments[parseInt(index.toString(), 10)]; + var newseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["StraightSegment"](connector, 'segments', { type: 'Straight', point: point }, true); + newseg.points[0] = segment.points[0]; + newseg.points[1] = point; + segment.points[0] = point; + connector.segments.splice(index, 0, newseg); + updateSeg = true; + } + this.commandHandler.enableServerDataBinding(true); + } + if (updateSeg) { + this.commandHandler.updateEndPoint(connector, oldValues); + } + }; + ConnectorEditing.prototype.findIndex = function (connector, point) { + var intersectingSegs = []; + for (var i = 0; i < connector.segments.length; i++) { + var segment = connector.segments[parseInt(i.toString(), 10)]; + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds([segment.points[0], segment.points[1]]); + rect.Inflate(connector.hitPadding); + if (rect.containsPoint(point)) { + intersectingSegs.push(segment); + } + } + if (intersectingSegs.length === 1) { + return connector.segments.indexOf(intersectingSegs[0]); + } + else { + var ratio = void 0; + var min = void 0; + var index = void 0; + var seg = void 0; + var v = void 0; + var h = void 0; + for (var i = 0; i < intersectingSegs.length; i++) { + seg = intersectingSegs[parseInt(i.toString(), 10)]; + v = (point.y - seg.points[0].y) / (seg.points[1].y - point.y); + h = (point.x - seg.points[0].x) / (seg.points[1].x - point.x); + ratio = Math.abs(v - h); + if (i === 0) { + min = ratio; + index = 0; + } + if (ratio < min) { + min = ratio; + index = i; + } + } + return connector.segments.indexOf(intersectingSegs[parseInt(index.toString(), 10)]); + } + }; + ConnectorEditing.prototype.dragOrthogonalSegment = function (obj, segment, point, segmentIndex) { + var segmentPoint = { x: 0, y: 0 }; + var oldValues = { segments: obj.segments }; + segmentPoint.x = ((segment.points[parseInt(segmentIndex.toString(), 10)].x + segment.points[segmentIndex + 1].x) / 2); + segmentPoint.y = ((segment.points[parseInt(segmentIndex.toString(), 10)].y + segment.points[segmentIndex + 1].y) / 2); + var ty = point.y - segmentPoint.y; + var tx = point.x - segmentPoint.x; + var index = obj.segments.indexOf(segment); + var update = false; + //const orientation: string = (segment.points[0].y.toFixed(2) === segment.points[1].y.toFixed(2)) ? 'horizontal' : 'vertical'; + //const prevSegment: OrthogonalSegmentModel; const nextSegment: OrthogonalSegmentModel; + // EJ2-65063 - If the allowNodeOverlap is set as true means then we set the segment index which is going to drag in selectedSegmentIndex property + if (obj.allowNodeOverlap) { + obj.selectedSegmentIndex = index ? index : segmentIndex; + } + if (index !== -1) { + if (index === 0 && obj.segments.length === 1 && segment.points.length === 2) { + index = this.addSegments(obj, segment, tx, ty, index); + update = true; + } + else if (index === obj.segments.length - 1 && (segment.direction === null || segment.length === null)) { + index = this.addTerminalSegment(obj, segment, tx, ty, segmentIndex); + update = true; + } + else if (index === 0) { + index = this.insertFirstSegment(obj, segment, tx, ty, index); + update = true; + } + if (index) { + if (update) { + this.selectedSegment = segment = obj.segments[parseInt(index.toString(), 10)]; + this.segmentIndex = 0; + } + this.updateAdjacentSegments(obj, index, tx, ty); + this.commandHandler.updateEndPoint(obj, oldValues); + } + } + return true; + }; + ConnectorEditing.prototype.addSegments = function (obj, segment, tx, ty, coll) { + var index; + var segments = []; //let len: number; + var length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[1]); + var segmentDirection = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(segment.points[0], segment.points[1]); + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 4 }, true)); + var direction = (segment.points[0].y === segment.points[1].y) ? ((ty > 0) ? 'Bottom' : 'Top') : ((tx > 0) ? 'Right' : 'Left'); + var len = (segment.points[0].x === segment.points[1].x) ? ty : tx; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', { type: 'Orthogonal', direction: direction, length: len }, true)); + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 2 }, true)); + var args = { + element: obj, addSegments: segments, type: 'Addition', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args = { + addSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(segments), type: 'Addition', + cancel: args.cancel, element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(obj) + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args); + if (!args.cancel) { + obj.segments = segments.concat(obj.segments); + index = coll + 2; + } + return index; + }; + // eslint-disable-next-line + ConnectorEditing.prototype.insertFirstSegment = function (obj, segment, tx, ty, coll) { + var direction; + var length; + var segments = []; + var segValues; + var index; + var insertseg; + if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) { + var prev = void 0; + for (var i = 0; i < segment.points.length - 1; i++) { + var len = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]); + var dir = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]); + insertseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', { type: 'Orthogonal', direction: dir, length: len }, true); + if (insertseg.length === 0) { + if (prev && (prev.direction === 'Top' || prev.direction === 'Bottom')) { + insertseg.direction = tx > 0 ? 'Right' : 'Left'; + } + else { + insertseg.direction = ty > 0 ? 'Bottom' : 'Top'; + } + } + prev = insertseg; + segments.push(insertseg); + } + } + else { + segValues = { type: 'Orthogonal', direction: segment.direction, length: segment.length / 3 }; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', segValues, true)); + if (segment.direction === 'Bottom' || segment.direction === 'Top') { + length = Math.abs(tx); + direction = tx > 0 ? 'Right' : 'Left'; + } + else { + length = Math.abs(ty); + direction = ty > 0 ? 'Bottom' : 'Top'; + } + insertseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](obj, 'segments', { type: 'Orthogonal', direction: direction, length: length }, true); + segments.push(insertseg); + } + var args = { + element: obj, addSegments: segments, type: 'Addition', cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(obj), addSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(segments), type: 'Addition', + cancel: args.cancel + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args); + if (!args.cancel) { + if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) { + obj.segments.splice(0, 1); + index = 1; + } + else { + var nextseg = obj.segments[1]; + if (nextseg && nextseg.length) { + nextseg.length = (direction !== nextseg.direction) ? nextseg.length + length : nextseg.length - length; + } + index = 2; + segment.length = 2 * segment.length / 3; + } + obj.segments = segments.concat(obj.segments); + } + return index; + }; + ConnectorEditing.prototype.updateAdjacentSegments = function (obj, index, tx, ty) { + var current = obj.segments[parseInt(index.toString(), 10)]; + var endPoint = current.points[current.points.length - 1]; + var startPoint = current.points[0]; + var isNextUpdate = true; + if (current.type === 'Orthogonal') { + current.points[0] = startPoint; + current.points[current.points.length - 1] = endPoint; + var prev = obj.segments[index - 1]; + if (prev) { + isNextUpdate = this.updatePreviousSegment(tx, ty, obj, index); + } + if (obj.segments.length - 1 > index && isNextUpdate) { + var nextSegment = obj.segments[index + 1]; + this.updateNextSegment(obj, current, nextSegment, tx, ty); + } + } + }; + ConnectorEditing.prototype.addTerminalSegment = function (connector, segment, tx, ty, segmentIndex) { + //const oldValues: Connector = { segments: connector.segments } as Connector; + var index = connector.segments.indexOf(segment); + var first; + var insertseg; + var len; + var dir; + var segments = []; + var removeSegment = connector.segments.pop(); + var last = connector.segments[connector.segments.length - 1]; + first = (last && last.type === 'Orthogonal') ? last : null; + for (var i = 0; i < segment.points.length - 2; i++) { + len = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]); + dir = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]); + insertseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal', length: len, direction: dir }, true); + segments.push(insertseg); + first = insertseg; + } + var sec = segmentIndex; + if (segment.points.length === 2 || sec === segment.points.length - 2) { + if (first) { + first.length += 5; + } + if (sec !== undefined) { + //let newseg: OrthogonalSegment; + len = 2 * _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]) / 3; + dir = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]); + var newseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal', length: len, direction: dir }); + segments.push(newseg); + } + } + var lastseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segments.push(lastseg); + var args = { + element: connector, addSegments: segments, type: 'Addition', cancel: false + }; + var args1; + args1 = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), addSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(segments), + type: 'Addition', cancel: args.cancel + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_9__["isBlazor"])()) { + args1 = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(connector), addSegments: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["cloneBlazorObject"])(segments), + type: 'Addition', cancel: args.cancel + }; + } + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramEvent"].segmentCollectionChange, args1); + if (!args1.cancel) { + connector.segments = connector.segments.concat(segments); + index = index + segmentIndex; + } + else { + connector.segments.push(removeSegment); + } + this.commandHandler.updateEndPoint(connector); + return index; + }; + // eslint-disable-next-line + ConnectorEditing.prototype.updatePortSegment = function (prev, connector, index, tx, ty) { + if (index === 1 && prev.points.length === 2 && prev.length < 0) { + var source = connector.sourceWrapper.corners; + var current = connector.segments[parseInt(index.toString(), 10)]; + var next = connector.segments[index + 1]; + var newseg = void 0; + var segment = []; + newseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal', length: 13, direction: prev.direction }); + segment.push(newseg); + var len = void 0; + if (current.direction === 'Left') { + len = (current.points[0].x - (source.middleLeft.x - 20)); + } + else if (current.direction === 'Right') { + len = ((source.middleRight.x + 20) - current.points[0].x); + } + else if (current.direction === 'Bottom') { + len = ((source.bottomCenter.y + 20) - current.points[0].y); + } + else { + len = (current.points[0].y - (source.topCenter.y - 20)); + } + //const dir: Direction = current.direction; + newseg = new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal', length: len, direction: current.direction }); + segment.push(newseg); + current.length = current.length - len; + if (next && next.length && next.direction) { + if (next.direction === prev.direction) { + next.length -= 13; + } + else if (next.direction === Object(_utility_connector__WEBPACK_IMPORTED_MODULE_6__["getOppositeDirection"])(prev.direction)) { + next.length += 13; + } + } + connector.segments = segment.concat(connector.segments); + this.selectedSegment = connector.segments[3]; + } + }; + ConnectorEditing.prototype.updatePreviousSegment = function (tx, ty, connector, index) { + var current = connector.segments[parseInt(index.toString(), 10)]; + var prev = connector.segments[index - 1]; + //const firstSegment: boolean = (index === 1) ? true : false; + prev.points[prev.points.length - 1] = current.points[0]; + var isSourceNode = (connector.sourceID && connector.sourcePortID === '') ? false : true; + var isNextUpdate = true; + if (prev.type === 'Orthogonal') { + if (prev.direction === 'Bottom') { + prev.length += ty; + } + else if (prev.direction === 'Top') { + prev.length -= ty; + } + else if (prev.direction === 'Right') { + prev.length += tx; + } + else { + prev.length -= tx; + } + // EJ2-65063 - Added the below condition !allowNodeOverlap to prevent the segment to split into two segments while intersect with source node. + if (connector.sourcePortID !== '' && prev.length < 0 && !connector.allowNodeOverlap) { + this.updatePortSegment(prev, connector, index, tx, ty); + } + else if (connector.sourceID && connector.sourcePortID === '' && prev.length < 0 && index === 1) { + isNextUpdate = false; + this.updateFirstSegment(connector, current); + } + if (isSourceNode) { + this.changeSegmentDirection(prev, connector); + } + } + return isNextUpdate; + }; + ConnectorEditing.prototype.changeSegmentDirection = function (segment, connector) { + if (!connector.maxSegmentThumb) { + if (segment.length < 0) { + segment.direction = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_6__["getOppositeDirection"])(segment.direction); + segment.length *= -1; + } + } + }; + ConnectorEditing.prototype.updateNextSegment = function (obj, current, next, tx, ty) { + next.points[0] = current.points[current.points.length - 1]; + if (next && next.type === 'Orthogonal') { + if (next.length || next.length === 0) { + if (next.direction === 'Left' || next.direction === 'Right') { + if (tx !== 0) { + next.length = (next.direction === 'Right') ? next.length - tx : next.length + tx; + if (next.length || next.length === 0) { + this.changeSegmentDirection(next, obj); + } + } + } + else { + if (ty !== 0) { + next.length = (next.direction === 'Bottom') ? next.length - ty : next.length + ty; + if (next.length || next.length === 0) { + this.changeSegmentDirection(next, obj); + } + } + } + } + } + }; + ConnectorEditing.prototype.updateFirstSegment = function (connector, selectedSegment) { + var index = connector.segments.indexOf(selectedSegment); + var insertfirst = false; + var current = connector.segments[parseInt(index.toString(), 10)]; + var prev = connector.segments[index - 1]; + var con = connector; + var sourcePoint; + var oldValues = { segments: connector.segments }; + if (prev.length < 0 && connector.sourceID) { + var sourceNode = connector.sourceWrapper.corners; + var segments = []; + var segValues = void 0; + var removeCurrentPrev = false; + this.changeSegmentDirection(current, connector); + var next = connector.segments[index + 1]; + var nextNext = connector.segments[index + 2]; + if (next) { + this.changeSegmentDirection(next, connector); + } + if (nextNext) { + this.changeSegmentDirection(nextNext, connector); + } + switch (prev.direction) { + case 'Top': + case 'Bottom': + sourcePoint = (current.length > 0 && current.direction === 'Left') ? sourceNode.middleLeft : sourceNode.middleRight; + if (current.length > sourceNode.width / 2) { + if (Math.abs(prev.length) < sourceNode.height / 2) { + prev.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(sourceNode.center, prev.points[prev.points.length - 1]); + current.points[0].x = sourcePoint.x; + current.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(current.points[0], current.points[current.points.length - 1]); + current.length -= 20; + insertfirst = true; + } + } + else { + if (next && next.direction && next.length) { + next.points[0].y = sourcePoint.y; + next.points[0].x = next.points[next.points.length - 1].x = (current.direction === 'Right') ? + sourcePoint.x + 20 : sourcePoint.x - 20; + } + insertfirst = true; + removeCurrentPrev = true; + } + break; + case 'Left': + case 'Right': + sourcePoint = (current.length > 0 && current.direction === 'Top') ? sourceNode.topCenter : sourceNode.bottomCenter; + if (current.length > sourceNode.height / 2) { + if (Math.abs(prev.length) < sourceNode.width / 2) { + prev.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(sourceNode.center, prev.points[prev.points.length - 1]); + current.points[0].y = sourcePoint.y; + current.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(current.points[0], current.points[current.points.length - 1]); + current.length -= 20; + insertfirst = true; + } + } + else { + if (next && next.direction && next.length) { + next.points[0].x = sourcePoint.x; + next.points[0].y = next.points[next.points.length - 1].y = (current.direction === 'Bottom') ? + sourcePoint.y + 20 : sourcePoint.y - 20; + } + insertfirst = true; + removeCurrentPrev = true; + } + break; + } + this.changeSegmentDirection(prev, connector); + this.changeSegmentDirection(current, connector); + if (insertfirst) { + segValues = { type: 'Orthogonal', direction: current.direction, length: 20 }; + segments.push(new _objects_connector__WEBPACK_IMPORTED_MODULE_7__["OrthogonalSegment"](connector, 'segments', segValues, true)); + if (removeCurrentPrev) { + if (next && next.direction && next.length) { + next.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(next.points[0], next.points[next.points.length - 1]); + } + if (nextNext && nextNext.direction && nextNext.length) { + nextNext.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(next.points[next.points.length - 1], nextNext.points[nextNext.points.length - 1]); + } + connector.segments.splice(index - 1, 2); + } + connector.segments = segments.concat(connector.segments); + } + this.selectedSegment = ((removeCurrentPrev) ? connector.segments[index - 1] : + connector.segments[index + 1]); + this.commandHandler.updateEndPoint(connector, oldValues); + } + }; + ConnectorEditing.prototype.updateLastSegment = function (connector, selectedSegment) { + if (connector.targetID && connector.targetPortID === '') { + var line1Start = void 0; + var line1End = void 0; + var line2Start = void 0; + var line2End = void 0; + var corners = connector.targetWrapper.corners; + var firstSegPoint = selectedSegment.points[0]; + var lastSegPoint = selectedSegment.points[selectedSegment.points.length - 1]; + if (selectedSegment.direction === 'Right' || selectedSegment.direction === 'Left') { + line1Start = { x: firstSegPoint.x, y: firstSegPoint.y }; + line1End = { + x: (selectedSegment.direction === 'Left') ? lastSegPoint.x - corners.width / 2 : lastSegPoint.x + corners.width / 2, + y: lastSegPoint.y + }; + line2Start = { x: corners.center.x, y: corners.center.y - corners.height }; + line2End = { x: corners.center.x, y: corners.center.y + corners.height }; + } + else { + line1Start = { x: firstSegPoint.x, y: firstSegPoint.y }; + line1End = { + x: lastSegPoint.x, + y: (selectedSegment.direction === 'Bottom') ? lastSegPoint.y + corners.height / 2 : lastSegPoint.y - corners.height / 2 + }; + line2Start = { x: corners.center.x - corners.width, y: corners.center.y }; + line2End = { x: corners.center.x + corners.width, y: corners.center.y }; + } + var line1 = { x1: line1Start.x, y1: line1Start.y, x2: line1End.x, y2: line1End.y }; + var line2 = { x1: line2Start.x, y1: line2Start.y, x2: line2End.x, y2: line2End.y }; + return (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["intersect3"])(line1, line2).enabled); + } + return false; + }; + /** + *To destroy the module + * + * @returns {void} To destroy the module + */ + ConnectorEditing.prototype.destroy = function () { + /** + * Destroys the connector editing module + */ + }; + /** + * Get module name. + */ + /** + * Get module name.\ + * + * @returns { string } Get module name.\ + */ + ConnectorEditing.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'ConnectorEditingTool'; + }; + return ConnectorEditing; +}(_tool__WEBPACK_IMPORTED_MODULE_8__["ToolBase"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js": +/*!*************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js ***! + \*************************************************************************************************/ +/*! exports provided: updateCanvasBounds, removeChildInContainer, findBounds, createHelper, renderContainerHelper, checkParentAsContainer, checkChildNodeInContainer, addChildToContainer, updateLaneBoundsAfterAddChild, renderStackHighlighter, moveChildInStack */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateCanvasBounds", function() { return updateCanvasBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeChildInContainer", function() { return removeChildInContainer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findBounds", function() { return findBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createHelper", function() { return createHelper; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderContainerHelper", function() { return renderContainerHelper; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkParentAsContainer", function() { return checkParentAsContainer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkChildNodeInContainer", function() { return checkChildNodeInContainer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addChildToContainer", function() { return addChildToContainer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLaneBoundsAfterAddChild", function() { return updateLaneBoundsAfterAddChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderStackHighlighter", function() { return renderStackHighlighter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveChildInStack", function() { return moveChildInStack; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _diagram__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagram */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); + + + + + + + + + + + + + + +/** + * Interaction for Container + */ +//#region canvas Container interaction +/** + * updateCanvasBounds method\ + * + * @returns { void } updateCanvasBounds method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel | ConnectorModel} obj - provide the isVertical value. + * @param {PointModel} position - provide the position value. + * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value. + * @private + */ +function updateCanvasBounds(diagram, obj, position, isBoundsUpdate) { + var container; + var connectorList = []; + var groupAction = false; + if (checkParentAsContainer(diagram, obj, true)) { + diagram.protectPropertyChange(true); + container = diagram.nameTable[obj.parentId]; + var wrapper = container.wrapper; + if (container && container.container.type === 'Canvas') { + if ((isBoundsUpdate || (wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x && + (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y)))) { + var parentWrapper = void 0; + var y = wrapper.bounds.y; + var x = wrapper.bounds.x; + var parent_1 = diagram.nameTable[container.parentId] || container; + var shape = parent_1.shape; + if (shape.type === 'SwimLane') { + groupAction = updateLaneBoundsAfterAddChild(container, parent_1, obj, diagram, true); + } + else { + var parent_2 = diagram.nameTable[container.parentId] || container; + var shape_1 = parent_2.shape; + parentWrapper = parent_2.wrapper; + if (wrapper.actualSize.width < wrapper.outerBounds.width && + (!(wrapper.bounds.x > wrapper.outerBounds.x))) { + if (container.rowIndex !== undefined) { + //const columnIndex:number = parent.columns.length - 1; + parentWrapper.updateColumnWidth(container.columnIndex, wrapper.outerBounds.width, true); + if (shape_1.orientation === 'Horizontal' && shape_1.phaseSize) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["updatePhaseMaxWidth"])(parent_2, diagram, wrapper, container.columnIndex); + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["updateHeaderMaxWidth"])(diagram, parent_2); + diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y); + } + else { + diagram.scale(container, (1 + ((wrapper.outerBounds.width - wrapper.actualSize.width) / wrapper.actualSize.width)), 1, ((wrapper.outerBounds.x < wrapper.bounds.x) ? { x: 1, y: 0.5 } : { x: 0, y: 0.5 })); + } + } + if (wrapper.actualSize.height < wrapper.outerBounds.height && + (!(wrapper.bounds.y > wrapper.outerBounds.y))) { + if (container.rowIndex !== undefined) { + parentWrapper.updateRowHeight(container.rowIndex, wrapper.outerBounds.height, true); + diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y); + } + else { + diagram.scale(container, 1, (1 + ((wrapper.outerBounds.height - wrapper.actualSize.height) / wrapper.actualSize.height)), ((wrapper.outerBounds.y < wrapper.bounds.y) ? { x: 0.5, y: 1 } : { x: 0.5, y: 0 })); + } + } + } + } + diagram.select([obj]); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["updateConnectorsProperties"])(connectorList, diagram); + } + diagram.protectPropertyChange(false); + } + return groupAction; +} +/** + * removeChildInContainer method\ + * + * @returns { void } removeChildInContainer method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel | ConnectorModel} obj - provide the isVertical value. + * @param {PointModel} position - provide the position value. + * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value. + * @private + */ +function removeChildInContainer(diagram, obj, position, isBoundsUpdate) { + var container; //let connectorList: string[] = []; + if (checkParentAsContainer(diagram, obj, true)) { + var isProtectedOnChange = 'isProtectedOnChange'; + var propertyChangeValue = diagram["" + isProtectedOnChange]; + diagram.protectPropertyChange(true); + container = diagram.nameTable[obj.parentId]; + var wrapper = container.wrapper; + if (container && container.container.type === 'Canvas') { + if ((!isBoundsUpdate && (!(wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x && + (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y))))) { + if (!(obj.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["NodeConstraints"].AllowMovingOutsideLane)) { + var undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj); + diagram.clearSelection(); + removeChildrenInLane(diagram, obj); + obj.parentId = ''; + //EJ2-65676 - Exception throws on updating node annotation after drag and drop from swimlane to diagram canvas. + obj.parentObj = diagram; + obj.propName = 'nodes'; + var entry = { + type: 'ChildCollectionChanged', category: 'Internal', + undoObject: undoObj, redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj) + }; + diagram.addHistoryEntry(entry); + if (diagram.commandHandler.isContainer) { + diagram.commandHandler.isContainer = false; + diagram.endGroupAction(); + } + moveSwinLaneChild(obj, diagram); + } + } + } + diagram.protectPropertyChange(propertyChangeValue); + } +} +/** + * findBounds method\ + * + * @returns { NodeModel | ConnectorModel } findBounds method .\ + * @param {NodeModel} obj - provide the diagram value. + * @param {number} columnIndex - provide the isVertical value. + * @param {boolean} isHeader - provide the isVertical value. + * @private + */ +function findBounds(obj, columnIndex, isHeader) { + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_6__["Rect"](); + var rows = (obj.shape.type === 'SwimLane') ? + obj.wrapper.children[0].rows : obj.wrapper.rows; + for (var i = ((isHeader) ? 1 : 0); i < rows.length; i++) { + rect.uniteRect(rows[parseInt(i.toString(), 10)].cells[parseInt(columnIndex.toString(), 10)].bounds); + } + return rect; +} +/** + * createHelper method\ + * + * @returns { NodeModel | ConnectorModel } createHelper method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel | ConnectorModel} obj - provide the isVertical value. + * @private + */ +function createHelper(diagram, obj) { + var newObj; + var cloneObject = {}; + for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { + var prop = _a[_i]; + cloneObject["" + prop] = obj["" + prop]; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["getObjectType"])(obj) === _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]) { + newObj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', cloneObject, true); + newObj.id = obj.id; + diagram.initObject(newObj); + } + diagram.updateDiagramObject(newObj); + return newObj; +} +/** + * renderContainerHelper method\ + * + * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel | ConnectorModel} obj - provide the isVertical value. + * @private + */ +function renderContainerHelper(diagram, obj) { + diagram.enableServerDataBinding(false); + var object; + var container; + var nodes; + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramAction"].ToolAction))) { + if (diagram.selectedObject.helperObject) { + nodes = diagram.selectedObject.helperObject; + } + else if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) { + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Selector"] && obj.nodes.length + obj.connectors.length === 1) { + object = (obj.nodes.length > 0) ? obj.nodes[0] : obj.connectors[0]; + container = diagram.selectedItems.wrapper.children[0]; + } + else { + object = obj; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (obj === diagram.selectedItems.nodes[0]) { + container = diagram.selectedItems.wrapper; + } + else { + container = obj.wrapper; + } + } + else { + container = diagram.selectedItems.wrapper; + } + } + diagram.selectedObject.actualObject = object; + if ((!diagram.currentSymbol) && (((object.isLane && Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["canLaneInterchange"])(object, diagram) && + checkParentAsContainer(diagram, object)) + || ((!object.isLane) && checkParentAsContainer(diagram, object))) || + ((diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramConstraints"].LineRouting) && diagram.selectedItems.nodes.length > 0))) { + var node = { + id: 'helper', + rotateAngle: container.rotateAngle, + offsetX: container.offsetX, offsetY: container.offsetY, + minWidth: container.minWidth, minHeight: container.minHeight, + maxWidth: container.maxWidth, maxHeight: container.maxHeight, + width: container.actualSize.width, + height: container.actualSize.height, + style: { strokeDashArray: '2 2', fill: 'transparent', strokeColor: '#7D7D7D', strokeWidth: 2 } + }; + nodes = createHelper(diagram, node); + diagram.selectedObject.helperObject = nodes; + } + } + } + diagram.enableServerDataBinding(true); + return nodes; +} +/** + * checkParentAsContainer method\ + * + * @returns { void } checkParentAsContainer method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel | ConnectorModel} obj - provide the isVertical value. + * @param {boolean} isChild - provide the isChild value. + * @private + */ +function checkParentAsContainer(diagram, obj, isChild) { + var parentNode = (isChild) ? diagram.nameTable[obj.parentId] : + (diagram.nameTable[obj.parentId] || obj); + if (parentNode && parentNode.container) { + return true; + } + return false; +} +/** + * checkChildNodeInContainer method\ + * + * @returns { void } checkChildNodeInContainer method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} obj - provide the isVertical value. + * @private + */ +function checkChildNodeInContainer(diagram, obj) { + var parentNode = diagram.nameTable[obj.parentId]; + if (parentNode.container.type === 'Canvas') { + obj.margin.left = (obj.offsetX - parentNode.wrapper.bounds.x - (obj.width / 2)); + obj.margin.top = (obj.offsetY - parentNode.wrapper.bounds.y - (obj.height / 2)); + } + diagram.nodePropertyChange(obj, {}, { + width: obj.width, height: obj.height, + offsetX: obj.offsetX, offsetY: obj.offsetY, + margin: { + left: obj.margin.left, + right: obj.margin.right, top: obj.margin.top, + bottom: obj.margin.bottom + }, rotateAngle: obj.rotateAngle + }); + if (!parentNode.isLane) { + parentNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"]()); + parentNode.wrapper.arrange(parentNode.wrapper.desiredSize); + } +} +function removeChildrenInLane(diagram, node) { + if (node.parentId && node.parentId !== '') { + var prevParentNode = diagram.nameTable[node.parentId]; + if (prevParentNode.isLane && prevParentNode.parentId) { + var swimlane = diagram.nameTable[prevParentNode.parentId]; + var canvasId = (prevParentNode.id.slice(swimlane.id.length)); + var prevParentId = canvasId.substring(0, canvasId.length - 1); + var lanes = swimlane.shape.lanes; + var lane = void 0; + for (var i = 0; i < lanes.length; i++) { + lane = lanes[parseInt(i.toString(), 10)]; + if (prevParentId === lane.id) { + for (var j = 0; j < lane.children.length; j++) { + if (lane.children[parseInt(j.toString(), 10)].id === node.id) { + lane.children.splice(j, 1); + j--; + } + } + } + } + } + diagram.deleteChild(node); + } +} +/** + * addChildToContainer method\ + * + * @returns { void } addChildToContainer method .\ + * @param {DiagramElement} diagram - provide the element value. + * @param {boolean} parent - provide the isVertical value. + * @param {PointModel} node - provide the node value. + * @param {Diagram} isUndo - provide the isUndo value. + * @param {boolean} historyAction - provide the historyAction value. + * @private + */ +function addChildToContainer(diagram, parent, node, isUndo, historyAction) { + if (!diagram.currentSymbol) { + diagram.protectPropertyChange(true); + var swimlane = diagram.nameTable[parent.parentId]; + node = diagram.getObject(node.id) || node; + var child = (diagram.nodes.indexOf(node) !== -1) ? node.id : node; + if (parent.container.type === 'Canvas' && !historyAction) { + var left = (node.wrapper.offsetX - node.wrapper.actualSize.width / 2) - + (parent.wrapper.offsetX - parent.wrapper.actualSize.width / 2); + var top_1 = (node.wrapper.offsetY - node.wrapper.actualSize.height / 2) - + (parent.wrapper.offsetY - parent.wrapper.actualSize.height / 2); + node.margin.left = left; + node.margin.top = top_1; + } + else if (swimlane) { + var swimLaneBounds = swimlane.wrapper.bounds; + var parentBounds = parent.wrapper.bounds; + if (swimlane.shape.orientation === 'Horizontal') { + node.margin.left -= parentBounds.x - swimLaneBounds.x; + } + else { + var laneHeaderId = parent.parentId + swimlane.shape.lanes[0].id + '_0_header'; + node.margin.top -= parentBounds.y - swimLaneBounds.y - diagram.nameTable["" + laneHeaderId].wrapper.bounds.height; + } + } + var container = diagram.nameTable[parent.id]; + if (!container.children) { + container.children = []; + } + if (container.children.indexOf(node.id) === -1) { + removeChildrenInLane(diagram, node); + if (diagram.getObject(node.id)) { + diagram.removeElements(node); + } + var undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(node); + diagram.addChild(container, child); + node = diagram.getObject(node.id); + if (container.isLane && container.parentId) { + swimlane = diagram.nameTable[container.parentId]; + // EJ2-63939 - Check whether the lane child is BPMN text node or not + if (node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) { + swimlane.isTextNode = true; + } + var lanes = swimlane.shape.lanes; + var canvasId = (container.id.slice(swimlane.id.length)); + var currentParentId = canvasId.substring(0, canvasId.length - 1); + for (var i = 0; i < lanes.length; i++) { + if (container.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) { + // eslint-disable-next-line + if (!(node.parentObj instanceof _diagram__WEBPACK_IMPORTED_MODULE_2__["Diagram"])) { + // eslint-disable-next-line + node.parentObj = lanes[parseInt(i.toString(), 10)]; + } + if (!diagram.nameTable.hasOwnProperty(node.id)) { + lanes[parseInt(i.toString(), 10)].children.push(node); + } + } + } + } + diagram.updateDiagramObject(node); + moveSwinLaneChild(node, diagram); + if (!container.parentId) { + diagram.updateDiagramObject(container); + } + else if (!isUndo) { + updateLaneBoundsAfterAddChild(container, swimlane, node, diagram); + } + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'ChildCollectionChanged', category: 'Internal', + undoObject: undoObj, redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(node), historyAction: historyAction ? 'AddNodeToLane' : undefined + }; + diagram.addHistoryEntry(entry); + } + } + diagram.protectPropertyChange(false); + } +} +function moveSwinLaneChild(node, diagram) { + var sourceNode = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_7__["getDiagramElement"])(node.id + '_groupElement', diagram.element.id); + var targetId = (node.parentId) ? node.parentId + '_groupElement' : diagram.element.id + '_diagramLayer'; + var targetNode = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_7__["getDiagramElement"])(targetId, diagram.element.id); + if (sourceNode && targetNode) { + targetNode.appendChild(sourceNode); + } +} +function updateLaneBoundsAfterAddChild(container, swimLane, node, diagram, isBoundsUpdate) { + var undoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(container); + var isUpdateRow; + var isGroupAction = false; + var padding = swimLane.shape.padding; + var containerBounds = container.wrapper.bounds; + var containerOuterBounds = container.wrapper.outerBounds; + var nodeBounds = node.wrapper.bounds; + if (swimLane && swimLane.shape.type === 'SwimLane' && + (containerBounds.right < nodeBounds.right + padding || + containerBounds.bottom < nodeBounds.bottom + padding)) { + var grid = swimLane.wrapper.children[0]; + var x = grid.bounds.x; + var y = grid.bounds.y; + var size = void 0; + if (containerBounds.right < nodeBounds.right + padding && + containerOuterBounds.x <= containerBounds.x) { + size = nodeBounds.right - containerBounds.right; + isUpdateRow = false; + grid.updateColumnWidth(container.columnIndex, containerBounds.width + size, true, padding); + } + if (containerBounds.bottom < nodeBounds.bottom + padding && + containerOuterBounds.y <= containerBounds.y) { + size = nodeBounds.bottom - containerBounds.bottom; + isUpdateRow = true; + grid.updateRowHeight(container.rowIndex, containerBounds.height + size, true, padding); + } + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramAction"].UndoRedo)) { + if (isBoundsUpdate) { + diagram.startGroupAction(); + isGroupAction = true; + } + if (isUpdateRow !== undefined) { + var entry = { + category: 'Internal', + type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged', + undoObject: undoObject, redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(container) + }; + diagram.addHistoryEntry(entry); + } + } + swimLane.width = swimLane.wrapper.width = grid.width; + swimLane.height = swimLane.wrapper.height = grid.height; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["swimLaneMeasureAndArrange"])(swimLane); + if (swimLane.shape.orientation === 'Horizontal') { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["updatePhaseMaxWidth"])(swimLane, diagram, container.wrapper, container.columnIndex); + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["updateHeaderMaxWidth"])(diagram, swimLane); + diagram.drag(swimLane, x - grid.bounds.x, y - grid.bounds.y); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["checkPhaseOffset"])(swimLane, diagram); + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["checkLaneSize"])(swimLane); + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_8__["considerSwimLanePadding"])(diagram, node, padding); + diagram.updateDiagramElementQuad(); + return isGroupAction; +} +//#endregion +//# reginon stack panel interaction +/** + * renderStackHighlighter method\ + * + * @returns { void } renderStackHighlighter method .\ + * @param {DiagramElement} element - provide the element value. + * @param {boolean} isVertical - provide the isVertical value. + * @param {PointModel} position - provide the position value. + * @param {Diagram} diagram - provide the diagram value. + * @param {boolean} isUml - provide the isUml value. + * @param {boolean} isSwimlane - provide the isSwimlane value. + * @private + */ +function renderStackHighlighter(element, isVertical, position, diagram, isUml, isSwimlane) { + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_7__["getAdornerLayerSvg"])(diagram.element.id); + diagram.diagramRenderer.renderStackHighlighter(element, adornerSvg, diagram.scroller.transform, isVertical, position, isUml, isSwimlane); +} +/** + * moveChildInStack method\ + * + * @returns { void } moveChildInStack method .\ + * @param {Node} sourceNode - provide the sourceNode value. + * @param {Node} target - provide the target value. + * @param {Diagram} diagram - provide the diagram value. + * @param {Actions} action - provide the action value. + * @private + */ +function moveChildInStack(sourceNode, target, diagram, action) { + var obj = sourceNode; + var parent = diagram.nameTable[obj.parentId]; + var sourceParent = diagram.nameTable[obj.parentId]; + if (target && sourceParent && sourceParent.container && sourceParent.container.type === 'Stack' && + target.container && target.container.type === 'Stack' && (sourceParent.id !== target.parentId)) { + var value = sourceParent.wrapper.children.indexOf(obj.wrapper); + if (value > -1) { + diagram.nameTable[obj.id].parentId = target.id; + sourceParent.wrapper.children.splice(value, 1); + } + } + if (target && target.parentId && obj.parentId && action === 'Drag' && + sourceParent.container && sourceParent.container.type === 'Stack') { + var targetIndex = parent.wrapper.children.indexOf(target.wrapper); + var sourceIndex = parent.wrapper.children.indexOf(obj.wrapper); + var undoElement = { + targetIndex: targetIndex, target: target, + sourceIndex: sourceIndex, source: sourceNode + }; + parent.wrapper.children.splice(sourceIndex, 1); + parent.wrapper.children.splice(targetIndex, 0, obj.wrapper); + var redoElement = { + targetIndex: sourceIndex, target: target, + sourceIndex: targetIndex, source: sourceNode + }; + var entry = { + type: 'StackChildPositionChanged', redoObject: redoElement, + undoObject: undoElement, category: 'Internal' + }; + diagram.commandHandler.addHistoryEntry(entry); + } +} +//#end region +//# region Swimlane rendering +//#end region + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/event-handlers.js": +/*!******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/event-handlers.js ***! + \******************************************************************************************/ +/*! exports provided: DiagramEventHandler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramEventHandler", function() { return DiagramEventHandler; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _tool__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tool */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _connector_editing__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./connector-editing */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/connector-editing.js"); +/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _objects_tooltip__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../objects/tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _ruler_ruler__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../ruler/ruler */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js"); +/* harmony import */ var _container_interaction__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable no-case-declarations */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/** + * This module handles the mouse and touch events + */ +var DiagramEventHandler = /** @__PURE__ @class */ (function () { + /** @private */ + function DiagramEventHandler(diagram, commandHandler) { + this.currentAction = 'None'; + this.previousAction = 'None'; + /** @private */ + this.focus = false; + this.isBlocked = false; + this.isMouseDown = false; + this.inAction = false; + this.doingAutoScroll = false; + this.diagram = null; + this.objectFinder = null; + this.tool = null; + this.eventArgs = null; + this.isKeyUp = true; + this.keyCount = 0; + this.isNudgeKey = false; + this.keyArgs = {}; + this.diagram = diagram; + this.objectFinder = new ObjectFinder(); + this.commandHandler = commandHandler; + } + Object.defineProperty(DiagramEventHandler.prototype, "action", { + get: function () { + return this.currentAction; + }, + set: function (action) { + if (action !== this.currentAction) { + if (this.currentAction === 'PortDraw') { + this.diagram.tool &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramTools"].DrawOnce; + //EJ2-70550 - Connector disconnected from source and target while dragging mutliple selected element + if (this.diagram.currentDrawingObject) { + this.diagram.currentDrawingObject = null; + } + if (this.tool) { + this.tool.mouseUp({ position: this.currentPosition }); + } + this.tool = null; + } + if (action === 'Rotate' || action === 'LabelRotate') { + this.diagram.diagramCanvas.classList.add('e-diagram-rotate'); + } + else if (this.currentAction === 'Rotate' || this.currentAction === 'LabelRotate') { + this.diagram.diagramCanvas.classList.remove('e-diagram-rotate'); + } + this.currentAction = action; + if (this.currentAction !== 'None' && this.currentAction !== 'Select' && + !(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].TextEdit) || this.commandHandler.isUserHandle(this.currentPosition)) { + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].ToolAction; + } + else { + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].ToolAction; + } + this.diagram.setCursor(this.diagram.getCursor(action, this.inAction)); + } + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DiagramEventHandler.prototype, "blocked", { + get: function () { + return this.isBlocked; + }, + set: function (blocked) { + this.isBlocked = blocked; + if (this.blocked) { + this.diagram.setCursor('not-allowed'); + } + else { + this.diagram.setCursor(this.diagram.getCursor(this.action, this.inAction)); + } + }, + enumerable: true, + configurable: true + }); + /** @private */ + DiagramEventHandler.prototype.getMousePosition = function (e) { + var touchArg; + var offsetX; + var offsetY; + if (e.type.indexOf('touch') !== -1) { + touchArg = e; + offsetX = touchArg.changedTouches[0].clientX; + offsetY = touchArg.changedTouches[0].clientY; + } + else { + offsetX = e.clientX; + offsetY = e.clientY; + } + var position = new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"](); + position = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["getRulerSize"])(this.diagram); + var boundingRect = this.diagram.element.getBoundingClientRect(); + offsetX = offsetX + this.diagram.diagramCanvas.scrollLeft - boundingRect.left - position.width; + offsetY = offsetY + this.diagram.diagramCanvas.scrollTop - boundingRect.top - position.height; + offsetX /= this.diagram.scroller.transform.scale; + offsetY /= this.diagram.scroller.transform.scale; + offsetX -= this.diagram.scroller.transform.tx; + offsetY -= this.diagram.scroller.transform.ty; + return { x: offsetX, y: offsetY }; + }; + /** + * @private + */ + DiagramEventHandler.prototype.windowResize = function (evt) { + var _this = this; + if (this.resizeTo) { + clearTimeout(this.resizeTo); + } + this.resizeTo = setTimeout(function () { + _this.updateViewPortSize(_this.diagram.element); + }, 300); + return false; + }; + /** + * @private + */ + DiagramEventHandler.prototype.updateViewPortSize = function (element) { + var container = document.getElementById(element.id); + if (container) { + var bounds = container.getBoundingClientRect(); + this.diagram.scroller.setViewPortSize(bounds.width, bounds.height); + var position = new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"](); + position = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["getRulerSize"])(this.diagram); + var width = this.diagram.getSizeValue(this.diagram.width, position.width); + var height = this.diagram.getSizeValue(this.diagram.height, position.height); + this.diagram.diagramCanvas.style.width = width; + this.diagram.diagramCanvas.style.height = height; + this.diagram.scroller.setSize(); + this.diagram.transformLayers(); + if (this.diagram.rulerSettings.showRulers) { + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["updateRuler"])(this.diagram); + } + } + }; + /** @private */ + DiagramEventHandler.prototype.canHideResizers = function () { + return ((this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["RotateTool"]) && this.isMouseDown); + }; + /** @private */ + DiagramEventHandler.prototype.updateCursor = function () { + if ((this.diagram.selectedItems.nodes.length === 1 || this.diagram.selectedItems.connectors.length === 1)) { + var list = []; + list = list.concat(this.diagram.selectedItems.nodes, this.diagram.selectedItems.connectors); + // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node + this.blocked = (this.eventArgs && this.eventArgs.source && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canMove"])(this.eventArgs.source)) ? false : + (this.isMouseDown && list.length === 1 && this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["SelectTool"] && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canMove"])(list[0])); + } + }; + DiagramEventHandler.prototype.isForeignObject = function (target, isTextBox) { + var foreignobject = target; + if (foreignobject) { + while (foreignobject.parentNode !== null) { + if (typeof foreignobject.className === 'string' && + ((!isTextBox && foreignobject.className.indexOf('foreign-object') !== -1) || + (isTextBox && foreignobject.className.indexOf('e-diagram-text-edit') !== -1))) { + return foreignobject; + } + else { + foreignobject = foreignobject.parentNode; + } + } + } + return null; + }; + DiagramEventHandler.prototype.isMetaKey = function (evt) { + //EJ2-55887 - added the beow code to perform pinch zoom in mac os and windows while pinch zoom all browser return ctrl key as true. + if (evt.type === 'mousewheel') { + return evt.ctrlKey; + } + else { + return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey; + } + }; + DiagramEventHandler.prototype.renderUmlHighLighter = function (args) { + this.diagram.commandHandler.removeStackHighlighter(); + var node = this.diagram.selectedItems.nodes[0]; + if (node && node.container && node.container.type === 'Stack' && node.shape.type === 'UmlClassifier') { + var bound = node.wrapper.bounds; + if (!bound.containsPoint(this.currentPosition)) { + // eslint-disable-next-line max-len + var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y }); + var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + if (target && target.parentId && (target.parentId === node.id)) { + // eslint-disable-next-line max-len + var isVertical = this.diagram.nameTable[target.parentId].container.orientation === 'Vertical'; + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["renderStackHighlighter"])(target.wrapper, isVertical, args.position, this.diagram, true); + } + } + } + }; + DiagramEventHandler.prototype.isDeleteKey = function (key, value) { + return (navigator.platform.match('Mac') && key === 'Backspace' && value === 'delete'); + }; + DiagramEventHandler.prototype.isMouseOnScrollBar = function (evt) { + var x = evt.offsetX; + var y = evt.offsetY; + var diagramCanvas = this.diagram.diagramCanvas; + var height = diagramCanvas.offsetHeight; + var width = diagramCanvas.offsetWidth; + var topLeft; + var topRight; + var bottomLeft; + var bottomRight; + var bounds; + if (height < diagramCanvas.scrollHeight) { + //default scrollbar width in browser is '17pixels'. + topLeft = { x: (width - 17), y: 0 }; + topRight = { x: width, y: 0 }; + bottomLeft = { x: (width - 17), y: height }; + bottomRight = { x: width, y: height }; + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_16__["Rect"].toBounds([topLeft, topRight, bottomLeft, bottomRight]); + // EJ2-64563-Added below code to calculate the bounds x and y value if vertical offset != 0 + if (this.diagram.scroller.verticalOffset !== 0) { + bounds.x = bounds.x - this.diagram.scroller.horizontalOffset; + bounds.y = bounds.y - this.diagram.scroller.verticalOffset; + } + if (bounds.containsPoint({ x: x, y: y })) { + return true; + } + } + if (width < diagramCanvas.scrollWidth) { + topLeft = { x: 0, y: (height - 17) }; + topRight = { x: width, y: (height - 17) }; + bottomLeft = { x: 0, y: height }; + bottomRight = { x: width, y: height }; + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_16__["Rect"].toBounds([topLeft, topRight, bottomLeft, bottomRight]); + // EJ2-64563-Added below code to calculate the bounds x and y value if horizontal offset != 0 + if (this.diagram.scroller.horizontalOffset !== 0) { + bounds.x = bounds.x - this.diagram.scroller.horizontalOffset; + bounds.y = bounds.y - this.diagram.scroller.verticalOffset; + } + if (bounds.containsPoint({ x: x, y: y })) { + return true; + } + } + return false; + }; + /** @private */ + DiagramEventHandler.prototype.updateVirtualization = function () { + var _this = this; + var delay = 50; + //let removeObjectInterval: Object; + var removeObjectInterval = setInterval(function (args) { + _this.diagram.removeVirtualObjects(removeObjectInterval); + }, delay); + setTimeout(function () { + _this.diagram.deleteVirtualObject = true; + }, delay); + }; + DiagramEventHandler.prototype.checkPreviousAction = function () { + if (this.action !== this.previousAction && this.diagram.selectedItems.userHandles.length) { + for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) { + if (this.previousAction && this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)]) { + this.checkUserHandleEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseLeave); + this.previousAction = 'None'; + } + } + } + }; + DiagramEventHandler.prototype.checkUserHandleEvent = function (eventName) { + if (this.diagram.selectedItems && this.diagram.selectedItems.userHandles.length > 0) { + var currentAction = (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseLeave) ? this.previousAction : this.action; + var arg = { element: undefined }; + for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) { + if ((currentAction === this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name) || + (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseUp && currentAction === 'Select')) { + arg.element = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)]; + if (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseEnter) { + this.previousAction = this.action; + // EJ2-32213- Added the below code to check whether the userhandle has tooltip content. + // If userhandle has tooltip content then we open the tooltip based on the userhandle shape + if (arg.element.tooltip && arg.element.tooltip.openOn === 'Auto' && arg.element.tooltip.content !== '') { + Object(_objects_tooltip__WEBPACK_IMPORTED_MODULE_11__["updateTooltip"])(this.diagram, arg.element); + var targetEle = void 0; + if (arg.element.pathData) { + targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle'); + } + else if (arg.element.source) { + targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_image'); + } + else if (arg.element.content) { + targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_native_element'); + } + else { + targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_html_element'); + } + if (arg.element.tooltip.openOn === 'Auto') { + this.diagram.tooltipObject.open(targetEle); + } + } + } + if (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseDown) { + this.userHandleObject = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name; + } + var element = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle'); + if (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseUp) { + if (this.commandHandler.isUserHandle(this.currentPosition) + && element && element.id === this.userHandleObject + '_userhandle') { + this.diagram.triggerEvent(eventName, arg); + } + } + if (eventName === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseLeave) { + if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') { + this.diagram.tooltipObject.close(); + } + } + else { + this.diagram.triggerEvent(eventName, arg); + } + } + } + } + }; + DiagramEventHandler.prototype.mouseDown = function (evt) { + // EJ2-57541 - Added the below code to check whether diagram tool is instance of node drawing tool or connector drawing tool. + // If node or connector drawing tool means then we have returned without perform any operation. + if (this.inAction === true && ((this.tool) instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["NodeDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"])) { + return; + } + this.focus = true; + //let touches: TouchList; + var touches = evt.touches; + var isSymblDragging = document.getElementsByClassName('e-dragclone')[0] ? true : false; + if (this.isMouseOnScrollBar(evt) && !isSymblDragging) { + this.isScrolling = true; + evt.preventDefault(); + return; + } + // commanded by gowtham- unwanted cloning of selectedItems + // if (isBlazor()) { + // this.commandHandler.oldSelectedObjects = cloneObject(this.diagram.selectedItems); + // } + this.checkUserHandleEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseDown); + if (!this.checkEditBoxAsTarget(evt) && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canUserInteract"])(this.diagram)) || + (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canZoomPan"])(this.diagram) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["defaultTool"])(this.diagram))) { + if (this.action === 'Select' || this.action === 'Drag') { + this.diagram.updatePortVisibility(this.hoverElement, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, true); + } + if (((this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"]) + && (evt.button === 2 || evt.buttons === 2))) { + // eslint-disable-next-line + var arg = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram), position: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.currentPosition), + count: evt.buttons, actualObject: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject), + button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right' + }; + this.inAction = false; + this.tool.mouseUp(this.eventArgs); + } + else if (((this.inAction === true) && this.isMouseDown === true && + (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"]))) { + this.isMouseDown = true; + this.eventArgs = {}; + this.getMouseEventArgs(this.currentPosition, this.eventArgs); + this.eventArgs.position = this.currentPosition; + this.tool.mouseDown(this.eventArgs); + } + else { + this.isMouseDown = true; + this.currentPosition = this.prevPosition = this.getMousePosition(evt); + this.eventArgs = {}; + if (this.diagram.textEditing && !this.isMouseOnScrollBar(evt)) { + this.diagram.endEdit(); + this.diagram.textEditing = false; + // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode. + if (this.diagram.mode === 'Canvas' && this.diagram.scroller.currentZoom !== 1) { + this.diagram.refreshDiagramLayer(); + } + } + var targetObject = this.getTargetElement(); + this.action = this.diagram.findActionToBeDone(targetObject.obj, targetObject.sourceElement, this.currentPosition, targetObject.target); + //work around - correct it + var ctrlKey = this.isMetaKey(evt); + if (ctrlKey && evt.shiftKey && this.diagram.connectorEditingToolModule) { + this.action = 'SegmentEnd'; + } + else if ((ctrlKey || evt.shiftKey) && (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canZoomPan"])(this.diagram))) { + this.action = 'Select'; + } + this.tool = this.diagram.getTool(this.action); + if (!this.tool) { + this.action = 'Select'; + this.tool = this.diagram.getTool(this.action); + } + this.getMouseEventArgs(this.currentPosition, this.eventArgs); + if (ctrlKey || evt.shiftKey) { + var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } : { ctrlKey: true }; + this.eventArgs.info = info; + } + this.eventArgs.position = this.currentPosition; + this.tool.mouseDown(this.eventArgs); + this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper }; + this.initialEventArgs.position = this.currentPosition; + this.initialEventArgs.info = this.eventArgs.info; + this.inAction = false; + if (evt.type === 'touchstart') { + if (touches && touches.length >= 2) { + this.touchStartList = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["addTouchPointer"])(this.touchStartList, evt, touches); + } + if (!touches) { + evt.preventDefault(); + } + } + } + } + if (!this.isForeignObject(evt.target) && !this.isForeignObject(evt.target, true) && (!touches)) { + evt.preventDefault(); + } + }; + /** @private */ + DiagramEventHandler.prototype.mouseMoveExtend = function (e, obj) { + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"]) { + this.tool.mouseMove(this.eventArgs); + } + if (this.diagram.scrollSettings.canAutoScroll) { + this.checkAutoScroll(e); + } + else { + if (!this.blocked) { + (this.tool.mouseMove(this.eventArgs)); + } + } + if (this.eventArgs.target) { + this.hoverElement = this.eventArgs.target; + } + var isNode = (this.eventArgs.target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) ? false : true; + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"]) { + this.diagram.updatePortVisibility((this.hoverElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) ? this.hoverElement : this.hoverNode, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Connect | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, isNode); + } + if (this.hoverElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] + && this.hoverNode instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && this.hoverNode && this.hoverNode.id !== this.hoverElement.id) { + this.diagram.updatePortVisibility(this.hoverNode, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Connect | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, true); + } + this.hoverElement = isNode ? null : obj; + this.hoverNode = isNode ? null : obj; + }; + /** @private */ + DiagramEventHandler.prototype.checkAction = function (obj) { + if (this.action === 'LabelSelect' && this.eventArgs.sourceWrapper && + (this.eventArgs.sourceWrapper instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_13__["TextElement"] || this.eventArgs.sourceWrapper instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_21__["DiagramHtmlElement"])) { + var annotation = this.commandHandler.findTarget(this.eventArgs.sourceWrapper, this.eventArgs.source); + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, annotation, false, this.eventArgs.sourceWrapper) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canMove"])(annotation)) { + this.action = 'LabelDrag'; + this.tool = this.getTool(this.action); + this.tool.mouseDown(this.initialEventArgs); + } + } + else if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canMove"])(obj) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canSelect"])(obj) && this.initialEventArgs && + this.initialEventArgs.source && this.action === 'Select') { + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, this.eventArgs.source, false) && + this.eventArgs.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) { + this.getMouseEventArgs(this.currentPosition, this.eventArgs); + } + if (!(obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) || (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"] && + !(Object(_actions__WEBPACK_IMPORTED_MODULE_7__["contains"])(this.currentPosition, obj.sourcePoint, obj.hitPadding) || + Object(_actions__WEBPACK_IMPORTED_MODULE_7__["contains"])(this.currentPosition, obj.targetPoint, obj.hitPadding)))) { + this.action = 'Drag'; + } + this.tool = this.getTool(this.action); + this.tool.mouseDown(this.initialEventArgs); + } + }; + DiagramEventHandler.prototype.isSwimlaneElements = function (obj) { + if (obj && (obj.isLane || obj.isPhase || obj.isHeader)) { + return false; + } + else { + return true; + } + }; + /* tslint:disable */ + /** @private */ + DiagramEventHandler.prototype.mouseMove = function (e, touches) { + this.focus = true; + if (this.isScrolling) { + e.preventDefault(); + return; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canUserInteract"])(this.diagram) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canZoomPan"])(this.diagram) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["defaultTool"])(this.diagram))) { + this.currentPosition = this.getMousePosition(e); + var objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["drawRulerMarkers"])(this.diagram, this.currentPosition); + var force = false; + var target = void 0; + if (e.type === 'touchmove') { + touches = e.touches; + if (touches && touches.length > 1) { + this.touchMoveList = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["addTouchPointer"])(this.touchMoveList, e, touches); + if (this.action !== 'PinchZoom') { + force = true; + } + } + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_1__["Point"].equals(this.currentPosition, this.prevPosition) === false || this.inAction) { + if (this.isMouseDown === false || force) { + this.eventArgs = {}; + var sourceElement = null; + if (obj !== null) { + sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition); + var tooltipTarget = this.commandHandler.findTarget(sourceElement, obj); + if (tooltipTarget !== this.hoverElement) { + var content_1 = this.getContent(); + if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content_1 !== '') { + this.elementLeave(); + } + this.diagram.updatePortVisibility(this.hoverElement, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, true); + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + this.hoverNode = obj; + } + var canResetElement = true; + if (!this.isSwimlaneElements(obj) + && (this.hoverElement && this.isSwimlaneElements(this.hoverElement))) { + canResetElement = false; + } + this.hoverElement = canResetElement ? obj : this.hoverElement; + //EJ2-62120 - Provide tooltip support for ports - to set hoverelement as PathElement if hovered on ports in Node + var portElement = null; + var portTarget = void 0; + portElement = this.diagram.findElementUnderMouse(obj, this.currentPosition); + if (portElement instanceof _index__WEBPACK_IMPORTED_MODULE_22__["PathElement"]) { + portTarget = this.commandHandler.findTarget(portElement, obj); + if (portTarget instanceof _objects_port__WEBPACK_IMPORTED_MODULE_23__["PointPort"] && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortConstraints"].ToolTip) { + this.hoverElement = portTarget; + } + } + if (canResetElement) { + this.elementEnter(this.currentPosition, false); + } + else { + this.hoverElement = obj; + } + } + // EJ2-66418 - set tooltip relativeMode as mouse + // Updating the tooltip position based on Mouse move + else if (this.hoverElement === tooltipTarget && this.hoverElement.tooltip.content && this.diagram.tooltipObject !== undefined && this.hoverElement.tooltip.relativeMode === 'Mouse') { + this.setTooltipOffset(this.currentPosition); + } + if (sourceElement) { + target = this.commandHandler.findTarget(sourceElement, obj); + } + } + this.action = this.diagram.findActionToBeDone(obj, sourceElement, this.currentPosition, target); + this.checkUserHandleEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseEnter); + this.checkPreviousAction(); + this.getMouseEventArgs(this.currentPosition, this.eventArgs); + this.tool = this.getTool(this.action); + this.mouseEvents(); + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"] || + this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"] || + this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"]) { + this.tool.mouseMove(this.eventArgs); + } + else if (touches && this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ZoomPanTool"]) { + this.tool.mouseDown(this.eventArgs); + } + this.updateCursor(); + this.renderUmlHighLighter(this.eventArgs); + var isNode = false; + if (!(this.hoverElement && (!(this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ZoomPanTool"])) + && (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && this.isSwimlaneElements(obj)) && + (this.diagram.selectedItems.nodes.length === 0 || !Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, this.hoverElement)))) { + isNode = true; + } + this.diagram.updatePortVisibility(this.hoverElement, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, isNode); + var content = this.getContent(); + if (obj === null && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content) { + this.hoverElement = null; + this.elementLeave(); + } + force = false; + } + else { + this.eventArgs.position = this.currentPosition; + if (this.action === 'Drag' && !Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, this.eventArgs.source, false) && + this.eventArgs.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) { + this.getMouseEventArgs(this.currentPosition, this.eventArgs); + } + this.mouseEvents(); + if (e.ctrlKey || e.shiftKey) { + var info = (e.ctrlKey && e.shiftKey) ? { ctrlKey: e.ctrlKey, shiftKey: e.shiftKey } : { ctrlKey: true }; + this.eventArgs.info = info; + } + this.checkAction(obj); + var padding = this.getConnectorPadding(this.eventArgs); + this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding); + this.updateCursor(); + this.inAction = true; + this.initialEventArgs = null; + if (this.action === 'Drag' || this.action === 'Rotate') { + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].Interactions; + } + this.mouseMoveExtend(e, obj); + } + this.prevPosition = this.currentPosition; + if (!this.isForeignObject(e.target, true)) { + e.preventDefault(); + } + } + } + }; + /* tslint:enable */ + DiagramEventHandler.prototype.getContent = function () { + var isPrivateTooltip = ((this.hoverElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Tooltip) || + ((this.hoverElement instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].Tooltip) || + ((this.hoverElement instanceof _objects_port__WEBPACK_IMPORTED_MODULE_23__["PointPort"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortConstraints"].ToolTip); + var node = this.hoverElement; + var childNode; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && node.children && node.children.length > 0) { + childNode = this.findIntersectChild(node); + } + var content = isPrivateTooltip ? this.hoverElement.tooltip.content : + this.diagram.tooltip.content; + content = childNode ? childNode.tooltip.content : content; + return content; + }; + DiagramEventHandler.prototype.findIntersectChild = function (node) { + var childNode; + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_16__["Rect"](this.currentPosition.x, this.currentPosition.y, 8, 8); + for (var i = 0; i < node.children.length; i++) { + childNode = this.diagram.getObject(node.children[parseInt(i.toString(), 10)]); + if (childNode.wrapper.outerBounds.intersects(rect)) { + return childNode; + } + } + return null; + }; + DiagramEventHandler.prototype.checkAutoScroll = function (e) { + var autoScrollPosition = this.startAutoScroll(e); + if (!autoScrollPosition && this.doingAutoScroll) { + this.doingAutoScroll = false; + clearInterval(this.timeOutValue); + } + else if (autoScrollPosition) { + if ((this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["NodeDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"] + || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"] + || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["SelectTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"]) && this.inAction) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var diagram_1 = this; + var delay_1 = 100; + if (this.diagram.scrollSettings.canAutoScroll && autoScrollPosition && !this.doingAutoScroll) { + this.doingAutoScroll = true; + this.timeOutValue = setInterval(function (args) { + diagram_1.doAutoScroll(autoScrollPosition, e, delay_1); + }, delay_1); + } + } + } + else { + this.blocked = !(this.tool.mouseMove(this.eventArgs)); + } + }; + /* tslint:disable */ + /** @private */ + DiagramEventHandler.prototype.mouseUp = function (evt) { + this.checkUserHandleEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].onUserHandleMouseUp); + if (this.diagram.mode === 'SVG' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canVitualize"])(this.diagram)) { + this.updateVirtualization(); + } + this.diagram.previousSelectedObject = null; + this.diagram.diagramRenderer.rendererActions = + this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["RendererAction"].DrawSelectorBorder); + var touches = evt.touches; + if (this.isScrolling) { + this.isScrolling = false; + evt.preventDefault(); + return; + } + if (!this.checkEditBoxAsTarget(evt) && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canUserInteract"])(this.diagram)) + || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canZoomPan"])(this.diagram) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["defaultTool"])(this.diagram))) { + if (this.tool && (!(this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"]) || + ((this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"]) + && evt.detail === 2))) { + if (!this.isForeignObject(evt.target) && this.isMouseDown) { + document.getElementById(this.diagram.element.id + 'content').focus(); + } + if (!this.inAction && evt.which !== 3) { + if (this.action === 'Drag') { + this.action = 'Select'; + var oldSelectedValue = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors)); + var objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + var isMultipleSelect = true; + if ((!evt.ctrlKey && this.isMouseDown + && (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length) > 1) + && evt.which === 1 && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canPreventClearSelection"])(this.diagram.diagramActions)) { + isMultipleSelect = false; + this.commandHandler.clearSelection(); + } + if (!Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, obj) || (!isMultipleSelect)) { + this.commandHandler.selectObjects([obj], undefined, oldSelectedValue); + } + } + } + var avoidDropChildren = false; + var history_1 = this.updateContainerProperties(); + var isGroupAction = void 0; + this.addUmlNode(); + this.inAction = false; + this.isMouseDown = false; + this.currentPosition = this.getMousePosition(evt); + if (this.diagram.selectedObject.helperObject) { + isGroupAction = this.updateContainerBounds(); + } + if (this.tool && (this.tool.prevPosition || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["LabelTool"])) { + this.eventArgs.position = this.currentPosition; + var padding = this.getConnectorPadding(this.eventArgs); + this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding); + var ctrlKey = this.isMetaKey(evt); + if (ctrlKey || evt.shiftKey) { + var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } : + { ctrlKey: true }; + this.eventArgs.info = info; + } + if (this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].Interactions) { + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].Interactions; + } + this.eventArgs.clickCount = evt.detail; + if (this.diagram.selectedObject.helperObject && (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"])) { + if (this.diagram.selectedObject.actualObject && + this.diagram.selectedObject.actualObject.parentId !== '') { + var parentNode = this.diagram.getObject(this.diagram.selectedObject.actualObject.parentId); + if (parentNode && parentNode.isLane) { + this.commandHandler.isContainer = true; + } + } + avoidDropChildren = this.diagram.lineRoutingModule + && this.diagram.nameTable['helper'] && this.eventArgs.target && this.eventArgs.target.isLane + && ((this.eventArgs.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"] && this.eventArgs.source.nodes.length > 0 + && this.eventArgs.source.nodes[0].parentId === '') || (this.eventArgs.source.parentId === '')); + if (avoidDropChildren) { + this.diagram.diagramActions = this.diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PreventLaneContainerUpdate; + } + this.tool.mouseUp(this.eventArgs, history_1.isPreventHistory); + } + else { + this.tool.mouseUp(this.eventArgs); + if (this.diagram.checkMenu && (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) { + if (!evt.pageY && (evt instanceof TouchEvent) && evt.changedTouches) { + window.getSelection().removeAllRanges(); + this.diagram.contextMenuModule.contextMenu.open(evt.changedTouches[0].pageY, evt.changedTouches[0].pageX, this.diagram.element); + evt.preventDefault(); + } + else { + this.diagram.contextMenuModule.contextMenu.open(evt.pageY, evt.pageX, this.diagram.element); + } + this.diagram.checkMenu = false; + } + } + if (history_1.hasStack) { + this.diagram.endGroupAction(); + } + } + if (isGroupAction) { + this.diagram.endGroupAction(); + } + this.updateContainerBounds(true); + if (this.eventArgs.clickCount !== 2) { + this.commandHandler.updateSelectedNodeProperties(this.eventArgs.source); + if (avoidDropChildren) { + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PreventLaneContainerUpdate; + var nodes = this.eventArgs.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"] + ? this.eventArgs.source.nodes : [this.eventArgs.source]; + if (nodes) { + for (var i = 0; i < nodes.length; i++) { + if (!nodes[parseInt(i.toString(), 10)].container) { + this.commandHandler.dropChildToContainer(this.eventArgs.target, nodes[parseInt(i.toString(), 10)]); + this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]); + } + } + } + } + } + if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) { + this.diagram.remove(this.diagram.selectedObject.helperObject); + this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined }; + // EJ2-42605 - Annotation undo redo not working properly if the line routing is enabled committed by sivakumar sekar + // committed to remove the diagram actions public method when line routing is enabled + // eslint-disable-next-line + if ((this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PublicMethod) && (this.diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramConstraints"].LineRouting)) { + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PublicMethod; + } + } + this.blocked = false; + if (this.hoverElement) { + var portVisibility = _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Connect; + if (Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(this.diagram, this.hoverElement)) { + portVisibility |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover; + } + this.diagram.updatePortVisibility(this.hoverElement, portVisibility, true); + this.hoverElement = null; + } + this.touchStartList = null; + this.touchMoveList = null; + if (!(this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["TextDrawingTool"])) { + this.tool = null; + } + } + if (!touches) { + evt.preventDefault(); + } + this.diagram.currentDrawingObject = undefined; + var selector = this.diagram.selectedItems; + var disbleRenderSelector = false; + if (this.commandHandler.isUserHandle(this.currentPosition)) { + if (this.isForeignObject(evt.target)) { + disbleRenderSelector = true; + } + } + if (!this.inAction && selector.wrapper && selector.userHandles.length > 0 && !disbleRenderSelector) { + this.diagram.renderSelector(true); + } + if (!this.inAction && !this.diagram.currentSymbol && this.eventArgs) { + /** + * EJ2-45543 Provide Event support to notify the port click + */ + var targetObject = this.getTargetElement(); + var arg = { + element: (targetObject.target instanceof _objects_port__WEBPACK_IMPORTED_MODULE_23__["PointPort"]) ? targetObject.target : Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.source) || Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram), + position: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.position), count: evt.detail, + actualObject: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject), + button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right' + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.diagram.click) { + arg = this.getBlazorClickEventArgs(arg); + } + if (this.diagram.tool !== _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramTools"].ZoomPan) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].click, arg); + } + } + this.eventArgs = {}; + } + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PreventLaneContainerUpdate; + this.eventArgs = {}; + this.diagram.commandHandler.removeStackHighlighter(); // end the corresponding tool + }; + /** + * return the clicked element such as node/connector/port/diagram + */ + DiagramEventHandler.prototype.getTargetElement = function () { + var target; + var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action); + var obj = this.objectFinder.findObjectUnderMouse(this.diagram, objects, this.action, this.inAction, this.eventArgs, this.currentPosition); + var sourceElement = null; + if (obj !== null) { + sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition); + if (sourceElement) { + target = this.commandHandler.findTarget(sourceElement, obj); + } + } + var targetObject = { + 'obj': obj, + 'sourceElement': sourceElement, + 'target': target + }; + return targetObject; + }; + /* tslint:enable */ + DiagramEventHandler.prototype.getConnectorPadding = function (eventArgs) { + var padding; + var targetObject = eventArgs.source; + if (targetObject && (targetObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) && targetObject.connectors.length) { + var selectedConnector = targetObject.connectors[0]; + padding = (selectedConnector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByPort) ? selectedConnector.connectionPadding : 0; + } + else if (targetObject && (targetObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && this.action === 'PortDraw' && (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"])) { + if (targetObject.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByPort) { + padding = targetObject.connectionPadding; + } + } + return padding || 0; + }; + DiagramEventHandler.prototype.getBlazorClickEventArgs = function (arg) { + arg = { + element: this.eventArgs.source ? { selector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.source) } : + { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram) }, + position: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.position), count: arg.count, + actualObject: this.eventArgs.actualObject ? { selector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject) } : + { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram) }, + button: arg.button + }; + if (this.eventArgs.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + arg.element.selector.nodes = []; + arg.element.selector.nodes.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.source)); + } + else if (this.eventArgs.source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + arg.element.selector.connectors = []; + arg.element.selector.connectors.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.source)); + } + return arg; + }; + DiagramEventHandler.prototype.addSwimLaneObject = function (selectedNode) { + var swimlaneNode; + var targetNode; + var shape; + var value; + var canInsert; + var index = 0; + var offset; + var actualShape = selectedNode.shape; + var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action); + if (!targetNode) { + targetNode = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + } + this.diagram.clearSelectorLayer(); + if (targetNode && !(targetNode.isLane || targetNode.isPhase || targetNode.isHeader)) { + for (var i = 0; i < objects.length; i++) { + var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id]; + if (laneNode.isLane || laneNode.isPhase || laneNode.isHeader) { + targetNode = laneNode; + } + } + } + if (targetNode && (actualShape.isPhase || (actualShape.isLane && targetNode.isLane))) { + var id = targetNode.parentId; + swimlaneNode = this.diagram.nameTable["" + id]; + } + if (swimlaneNode) { + shape = swimlaneNode.shape; + canInsert = (actualShape.isLane) ? actualShape.orientation === shape.orientation : + actualShape.orientation !== shape.orientation; + } + if (canInsert && targetNode) { + if (shape && shape.header && shape.hasHeader && shape.orientation === 'Horizontal') { + index = 1; + } + if (shape.phases.length > 0) { + index += 1; + } + if (actualShape.isPhase) { + if (shape.orientation === 'Horizontal') { + offset = this.currentPosition.x - swimlaneNode.wrapper.bounds.x; + } + else { + offset = this.currentPosition.y - (swimlaneNode.wrapper.bounds.y + shape.header.height); + } + var phases = { id: Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])(), offset: offset, header: { annotation: { content: 'Phase' } } }; + this.diagram.addPhases(swimlaneNode, [phases]); + } + else { + //const laneHeight: number = actualShape.lanes[0].header.height; + var lane = { + id: Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])(), style: actualShape.lanes[0].style, header: { + annotation: { + content: actualShape.lanes[0].header.annotation.content, + style: actualShape.lanes[0].header.annotation.style + }, + style: actualShape.lanes[0].header.style + } + }; + var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + orientation_1 ? lane.height = actualShape.lanes[0].height : lane.width = actualShape.lanes[0].width; + if (shape.orientation === 'Horizontal') { + value = targetNode.rowIndex ? targetNode.rowIndex : + this.diagram.nameTable[targetNode.parentId].rowIndex; + if (targetNode.wrapper.offsetY < this.currentPosition.y) { + value += 1; + } + } + else { + value = targetNode.columnIndex ? targetNode.columnIndex : + this.diagram.nameTable[targetNode.parentId].columnIndex; + if (this.currentPosition.x < targetNode.wrapper.bounds.center.x) { + value -= 1; + } + } + if (shape.lanes.length > (value)) { + lane.header.width = shape.lanes[parseInt(value.toString(), 10)].header.width; + lane.header.height = shape.lanes[parseInt(value.toString(), 10)].header.height; + } + else { + //EJ2-64457 - Not able to add lane in the existing vertical swimlane. + var ind = void 0; + if (shape.orientation === 'Horizontal') { + ind = targetNode.rowIndex < 3 ? 0 : value - index - 1; + } + else { + ind = value - 1; + } + lane.header.width = shape.lanes[parseInt(ind.toString(), 10)].header.width; + lane.header.height = shape.lanes[parseInt(ind.toString(), 10)].header.height; + } + this.diagram.addLanes(swimlaneNode, [lane], shape.orientation === 'Horizontal' ? value - index : value); + } + this.commandHandler.select(swimlaneNode); + } + else if (actualShape.isLane) { + var swimLaneobj = { + id: Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])(), width: selectedNode.width, height: selectedNode.height, addInfo: selectedNode.addInfo, + shape: { + type: 'SwimLane', header: { + annotation: { content: 'Header' }, height: 50, style: actualShape.lanes[0].header.style + }, + phases: [{ id: Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])(), header: { annotation: { content: 'Phase' } } }], + lanes: [{ + id: Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])(), height: selectedNode.height, width: selectedNode.width, style: actualShape.lanes[0].style, + header: { + annotation: { + content: actualShape.lanes[0].header.annotation.content, + style: actualShape.lanes[0].header.annotation.style + }, + style: actualShape.lanes[0].header.style + } + }], orientation: actualShape.orientation + } + }; + if (actualShape.orientation === 'Vertical') { + swimLaneobj.width += 20; + } + swimLaneobj.offsetX = this.currentPosition.x + (swimLaneobj.width / 2); + swimLaneobj.offsetY = this.currentPosition.y + (swimLaneobj.height / 2); + this.diagram.add(swimLaneobj); + } + }; + /** @private */ + DiagramEventHandler.prototype.mouseLeave = function (evt) { + //Define what has to happen on mouse leave + if (this.tool && this.inAction) { + this.tool.mouseLeave(this.eventArgs); + } + if (this.diagram.selectedObject.helperObject) { + this.updateContainerProperties(); + var isGroupAction = this.updateContainerBounds(); + if (isGroupAction) { + this.diagram.endGroupAction(); + } + } + if (this.eventArgs && this.eventArgs.source) { + this.diagram.updatePortVisibility(this.eventArgs.source, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover, true); + this.hoverElement = null; + } + if (this.eventArgs && !this.eventArgs.source && this.hoverElement) { + this.hoverElement = null; + } + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"] && this.eventArgs && this.eventArgs.target && this.eventArgs.target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + this.diagram.updatePortVisibility(this.eventArgs.target, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Hover | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortVisibility"].Connect, true); + this.hoverElement = null; + } + var selector = this.diagram.selectedItems; + if (selector && selector.wrapper) { + if (!(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["selectionHasConnector"])(this.diagram, selector))) { + this.diagram.renderSelector(true); + } + } + if (this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].Interactions || this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].ToolAction) { + this.diagram.diagramActions = this.diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].ToolAction; + } + this.isMouseDown = false; + this.focus = false; + this.touchStartList = null; + this.touchMoveList = null; + this.elementLeave(); + this.commandHandler.removeSnap(); + this.inAction = false; + this.eventArgs = {}; + if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) { + this.diagram.remove(this.diagram.selectedObject.helperObject); + this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined }; + } + this.tool = null; + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["removeRulerMarkers"])(); + if (this.action === 'Rotate') { + this.diagram.diagramCanvas.classList.remove('e-diagram-rotate'); + } + evt.preventDefault(); + }; + /** @private */ + DiagramEventHandler.prototype.mouseWheel = function (evt) { + this.diagram.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["BlazorAction"].interaction; + // EJ2-64831 - Need to provide support to override the mousewheel event + var arg = { + event: evt, + cancel: false + }; + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].mouseWheel, arg); + if (!arg.cancel) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var up = (evt.wheelDelta > 0 || -40 * evt.detail > 0) ? true : false; + var mousePosition = this.getMousePosition(evt); + this.diagram.tooltipObject.close(); + var ctrlKey = this.isMetaKey(evt); + if (ctrlKey) { + // SF-362356 - Command below line to implement smooth scroll in diagram. + // this.diagram.zoom(up ? (1.2) : 1 / (1.2), mousePosition); + // EJ2-59803 - Added the below code to get the zoom factor value from scroll settings and + // set it to zoomFactor args in zoomTo method. + var zoomFactor = this.diagram.scrollSettings.zoomFactor; + if (up) { + this.diagram.zoomTo({ type: 'ZoomIn', zoomFactor: zoomFactor, focusPoint: mousePosition }); + } + else { + this.diagram.zoomTo({ type: 'ZoomOut', zoomFactor: zoomFactor, focusPoint: mousePosition }); + } + evt.preventDefault(); + } + else { + var horizontalOffset = this.diagram.scroller.horizontalOffset; + var verticalOffset = this.diagram.scroller.verticalOffset; + var change = up ? 10 : -10; + if (this.tool && (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"])) { + this.eventArgs = {}; + this.getMouseEventArgs(mousePosition, this.eventArgs); + this.eventArgs.position = mousePosition; + this.tool.mouseWheel(this.eventArgs); + } + this.diagram.scrollActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ScrollActions"].Interaction; + var canMouseWheel = true; + // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad. + // Added the below condition to check whether the mouse wheel is from trackpad or not. + var isTrackpadScroll = false; + if ((Math.abs(evt.deltaY) < 100 && Math.abs(evt.deltaX) === -0) || + (Math.abs(evt.deltaX) < 100 && Math.abs(evt.deltaY) === -0)) { + isTrackpadScroll = true; + } + if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0)) { + this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll); + } + else if ((evt.deltaY && evt.deltaY !== -0)) { + this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll); + } + this.diagram.scrollActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["ScrollActions"].Interaction; + if (horizontalOffset !== this.diagram.scroller.horizontalOffset + || verticalOffset !== this.diagram.scroller.verticalOffset) { + evt.preventDefault(); + } + } + if (this.diagram.textEditing) { + this.diagram.isTriggerEvent = true; + if (this.diagram.activeLabel.parentId) { + var node = this.diagram.getObject(this.diagram.activeLabel.parentId); + this.diagram.startTextEdit(node, this.diagram.activeLabel.id); + } + this.diagram.isTriggerEvent = false; + } + this.diagram.blazorActions = this.diagram.blazorActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["BlazorAction"].interaction; + } + }; + /** @private */ + DiagramEventHandler.prototype.keyDown = function (evt) { + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].TextEdit) && + !(this.checkEditBoxAsTarget(evt)) || (evt.key === 'Escape' || evt.keyCode === 27)) { + var i = void 0; + var inAction = 'inAction'; + var command = void 0; + var keycode = evt.keyCode ? evt.keyCode : evt.which; + var key = evt.key; + if (key === 'ArrowDown' || key === 'ArrowUp' || key === 'ArrowLeft' || key === 'ArrowRight') { + this.isNudgeKey = true; + } + var ctrlKey = this.isMetaKey(evt); + if (this.diagram.commandManager && this.diagram.commands) { + var commands = this.diagram.commands; + for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) { + var i_1 = _a[_i]; + command = this.diagram.commands["" + i_1]; + if (command && (command.gesture.keyModifiers || command.gesture.key)) { + if ((keycode === command.gesture.key || (key === _enum_enum__WEBPACK_IMPORTED_MODULE_8__["Keys"][command.gesture.key]) + || this.isDeleteKey(key, i_1)) + && (((!command.gesture.keyModifiers) && (!evt.altKey) && (!evt.shiftKey) && (!ctrlKey)) || + (command.gesture.keyModifiers && (ctrlKey || evt.altKey || evt.shiftKey) && + (this.altKeyPressed(command.gesture.keyModifiers) && evt.altKey) || + (this.shiftKeyPressed(command.gesture.keyModifiers) && evt.shiftKey) || + (this.ctrlKeyPressed(command.gesture.keyModifiers) && ctrlKey)))) { + var canExecute = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["getFunction"])(command.canExecute); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() || (canExecute && + canExecute({ + 'keyDownEventArgs': KeyboardEvent, + parameter: command.parameter + }))) { + evt.preventDefault(); + if (evt.key === 'Escape') { + if (this.checkEditBoxAsTarget(evt)) { + document.getElementById(this.diagram.diagramCanvas.id).focus(); + } + else if (this.diagram.currentSymbol) { + var selectedSymbols = 'selectedSymbols'; + var source = 'sourceElement'; + var intDestroy = 'intDestroy'; + this.diagram.removeFromAQuad(this.diagram.currentSymbol); + this.diagram.removeObjectsFromLayer(this.diagram.nameTable[this.diagram.currentSymbol.id]); + this.diagram.removeElements(this.diagram.currentSymbol); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["removeChildNodes"])(this.diagram.currentSymbol, this.diagram); + delete this.diagram.nameTable[this.diagram.currentSymbol.id]; + var sourceElement = this.diagram.droppable["" + source]; + sourceElement.draggable["" + intDestroy](); + var element = this.diagram.droppable["" + selectedSymbols]; + element.parentNode.removeChild(element); + var diagramActions = this.diagram.diagramActions; + this.diagram.diagramActions = + this.diagram.addConstraints(diagramActions, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PreventClearSelection); + this.tool.mouseUp(this.eventArgs); + this.diagram.diagramRenderer.rendererActions = this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["RendererAction"].DrawSelectorBorder); + if (this.diagram.previousSelectedObject) { + this.diagram.select(this.diagram.previousSelectedObject); + } + this.action = 'Select'; + this.diagram.previousSelectedObject = null; + this.diagram.currentSymbol = null; + this.diagram.diagramActions = + this.diagram.removeConstraints(diagramActions, _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].PreventClearSelection); + this.isMouseDown = false; + } + else if (this.inAction && this.diagram.drawingObject && this.tool && this.tool["" + inAction]) { + this.tool.mouseUp(this.eventArgs); + this.tool = null; + this.isMouseDown = false; + } + } + if (command.execute) { + if (this.diagram.tool !== _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramTools"].ZoomPan) { + // if (i === 'nudgeUp' || i === 'nudgeRight' || i === 'nudgeDown' || i === 'nudgeLeft') { + // command.execute() + // } else { + var execute = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["getFunction"])(command.execute); + // Bug 832880: Need to improve performance while nudging multiple nodes. + if (this.isNudgeKey) { + if (!this.isKeyUp) { + this.keyCount++; + if (this.keyCount > 4) { + execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter, type: 'KEYDOWN' }); + this.keyCount = 0; + } + } + this.isKeyUp = false; + } + else { + execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter }); + } + } + // } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var arg = { gesture: command.gesture }; + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].commandExecute, arg); + } + break; + } + } + } + } + } + } + // eslint-disable-next-line + var selectedObject = (this.diagram.selectedItems.nodes.length) ? + this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors; + this.keyArgs = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram.selectedItems), + key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which + }; + this.getKeyModifier(this.keyArgs, evt); + if ((this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].TextEdit)) { + this.getlabel(this.keyArgs, evt); + } + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].keyDown, this.keyArgs); + }; + DiagramEventHandler.prototype.getlabel = function (args, evt) { + var label = this.diagram.activeLabel; + args.target = this.diagram.element.id + '_editBox'; + var node = this.diagram.nameTable[label.parentId]; + if (document.getElementById(this.diagram.element.id + '_editBox')) { + args.text = document.getElementById(this.diagram.element.id + '_editBox').value; + for (var i = 0; i < node.annotations.length; i++) { + if (node.annotations[parseInt(i.toString(), 10)].id === label.id) { + args.label = node.annotations[parseInt(i.toString(), 10)]; + break; + } + } + } + }; + DiagramEventHandler.prototype.getKeyModifier = function (args, evt) { + args.keyModifiers = _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].None; + if (evt.ctrlKey) { + args.keyModifiers |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Control; + } + if (evt.shiftKey) { + args.keyModifiers |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Shift; + } + if (evt.altKey) { + args.keyModifiers |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Alt; + } + if (this.isMetaKey(evt)) { + args.keyModifiers |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Meta; + } + }; + DiagramEventHandler.prototype.keyUp = function (evt) { + this.keyArgs = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram.selectedItems), key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which + }; + var selectedObject = (this.diagram.selectedItems.nodes.length) ? + this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors; + this.getKeyModifier(this.keyArgs, evt); + if ((this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].TextEdit)) { + this.getlabel(this.keyArgs, evt); + } + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].keyUp, this.keyArgs); + // this.isKeyUp = true; + // Bug 832880: Need to improve performance while nudging multiple nodes. + if (!this.isKeyUp && this.isNudgeKey) { + var direction = evt.code === 'ArrowUp' ? 'Up' : evt.code === 'ArrowDown' ? 'Down' : evt.code === 'ArrowLeft' ? 'Left' : 'Right'; + this.diagram.nudge(direction); + this.isNudgeKey = false; + this.keyCount = 0; + } + }; + DiagramEventHandler.prototype.startAutoScroll = function (e) { + var position = this.getMousePosition(e); + position.x *= this.diagram.scroller.currentZoom; + position.y *= this.diagram.scroller.currentZoom; + var rulerSize = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_18__["getRulerSize"])(this.diagram); + var movingPosition; + var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'mozilla') { + if (this.diagram.scroller.viewPortWidth === 0) { + var bounds = document.getElementById(this.diagram.element.id).getBoundingClientRect(); + if (bounds.width !== this.diagram.scroller.viewPortWidth) { + this.diagram.scroller.setViewPortSize(bounds.width, bounds.height); + } + } + } + if (this.diagram.scrollSettings.canAutoScroll) { + if (position.x + this.diagram.scroller.horizontalOffset + autoScrollBorder.right + rulerSize.width >= + this.diagram.scroller.viewPortWidth - 18) { + movingPosition = 'right'; + } + else if (position.x + this.diagram.scroller.horizontalOffset < autoScrollBorder.left) { + movingPosition = 'left'; + } + else if (position.y + this.diagram.scroller.verticalOffset + autoScrollBorder.bottom + rulerSize.height > + this.diagram.scroller.viewPortHeight - 18) { + movingPosition = 'bottom'; + } + else if (position.y + this.diagram.scroller.verticalOffset < autoScrollBorder.top) { + movingPosition = 'top'; + } + } + return movingPosition; + }; + DiagramEventHandler.prototype.doAutoScroll = function (option, e, delay, autoScroll) { + var position = option; + var canAutoScroll = true; + if ((this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["NodeDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"] + || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"] + || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["SelectTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"]) && this.inAction) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var diagram = this; + var pos = this.getMousePosition(e); + var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder; + var newDelay = delay ? delay : 100; + var left = 0; + var top_1 = 0; + var canUpdate = false; + var corner = ''; + var point = { x: pos.x, y: pos.y }; + // EJ2-61979 - Added below code to check whether we resize the node around four corners + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"] && (this.tool.corner === 'ResizeSouthEast' || this.tool.corner === 'ResizeSouthWest' || + this.tool.corner === 'ResizeNorthWest' || this.tool.corner === 'ResizeNorthEast')) { + canUpdate = true; + corner = this.tool.corner; + } + switch (position) { + case 'right': + point.x = pos.x + 10; + left = 10; + // EJ2-61979 - If node gets resized on southeast or northeast corner means then update the y position along with x position + if (canUpdate) { + if (corner === 'ResizeSouthEast') { + point.y = pos.y + 10; + top_1 = 10; + } + else { + point.y = pos.y - 10; + top_1 = -10; + } + } + break; + case 'left': + point.x = pos.x - 10; + left = -10; + // EJ2-61979 - If node gets resized on northwest or southwest corner means then update the y position along with x position + if (canUpdate) { + if (corner === 'ResizeNorthWest') { + point.y = pos.y - 10; + top_1 = -10; + } + else { + point.y = pos.y + 10; + top_1 = 10; + } + } + break; + case 'bottom': + point.y = pos.y + 10; + top_1 = 10; + // EJ2-61979 - If node gets resized on southeast or southwest corner means then update the x position along with y position + if (canUpdate) { + if (corner === 'ResizeSouthEast') { + point.x = pos.x + 10; + left = 10; + } + else { + point.x = pos.x - 10; + left = -10; + } + } + break; + case 'top': + point.y = pos.y - 10; + top_1 = -10; + // EJ2-61979 - If node gets resized on northeast or northwest corner means then update the x position along with y position + if (canUpdate) { + if (corner === 'ResizeNorthEast') { + point.x = pos.x + 10; + left = 10; + } + else { + point.x = pos.x - 10; + left = -10; + } + } + break; + } + this.eventArgs.position = { x: point.x, y: point.y }; + this.currentPosition = this.eventArgs.position; + var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action); + this.eventArgs.target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + this.tool.mouseMove(this.eventArgs); + this.diagram.scrollActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ScrollActions"].Interaction; + this.diagram.scroller.zoom(1, -left, -top_1, pos, canAutoScroll); + this.diagram.scrollActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["ScrollActions"].Interaction; + } + }; + DiagramEventHandler.prototype.mouseEvents = function () { + var target = this.diagram.findObjectsUnderMouse(this.currentPosition); + for (var i = 0; i < target.length; i++) { + if (this.eventArgs.actualObject === target[parseInt(i.toString(), 10)]) { + target.splice(i, 1); + } + } + var arg = { + targets: {} + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + arg = { + targets: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(target), + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])((this.eventArgs.source === this.eventArgs.actualObject) ? undefined : this.eventArgs.source), + actualObject: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject) + }; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (this.diagram.mouseEnter || this.diagram.mouseOver)) { + arg.actualObject = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectType"])(this.eventArgs.actualObject) === _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"] ? { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject) + } + : { + node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.eventArgs.actualObject) + }; + arg.targets.connector = []; + arg.targets.node = []; + this.getBlazorCollectionObject(target, arg); + } + if (this.lastObjectUnderMouse && this.diagram.mouseLeave + && (!this.eventArgs.actualObject || (this.lastObjectUnderMouse !== this.eventArgs.actualObject))) { + var arg_1 = { + targets: undefined, element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.lastObjectUnderMouse), actualObject: undefined + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + arg_1 = { + targets: undefined, + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectType"])(this.lastObjectUnderMouse) === _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(target) } + : { + node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.lastObjectUnderMouse) + }, + actualObject: undefined + }; + } + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].mouseLeave, arg_1); + this.lastObjectUnderMouse = null; + } + if (!this.lastObjectUnderMouse && this.eventArgs.source || (this.lastObjectUnderMouse !== this.eventArgs.actualObject)) { + this.lastObjectUnderMouse = this.eventArgs.actualObject; + if (this.eventArgs.actualObject !== undefined) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].mouseEnter, arg); + } + } + if (this.eventArgs.actualObject) { + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].mouseOver, arg); + } + }; + DiagramEventHandler.prototype.getBlazorCollectionObject = function (obj, arg1) { + if (obj) { + for (var i = 0; i < obj.length; i++) { + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectType"])(obj[parseInt(i.toString(), 10)]) === _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + arg1.targets.connector.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj[parseInt(i.toString(), 10)])); + } + else { + arg1.targets.node.push(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj[parseInt(i.toString(), 10)])); + } + } + } + }; + DiagramEventHandler.prototype.elementEnter = function (mousePosition, elementOver) { + if (!elementOver) { + var isPrivateTooltip = ((this.hoverElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Tooltip) || + ((this.hoverElement instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].Tooltip) || + ((this.hoverElement instanceof _objects_port__WEBPACK_IMPORTED_MODULE_23__["PointPort"]) && this.hoverElement.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["PortConstraints"].ToolTip); + var content = this.getContent(); + var children = void 0; + if (this.hoverElement && this.hoverElement.children && this.hoverElement.children.length > 0) { + // EJ2-56981 - Below method is used to check if the mouse pointer position and group children node gets intersect or not + children = this.findIntersectChild(this.hoverElement); + } + if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') { + // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node. + if (children) { + Object(_objects_tooltip__WEBPACK_IMPORTED_MODULE_11__["updateTooltip"])(this.diagram, children); + } + else { + Object(_objects_tooltip__WEBPACK_IMPORTED_MODULE_11__["updateTooltip"])(this.diagram, isPrivateTooltip ? this.hoverElement : undefined); + } + } + // EJ2-66418 - set tooltip relativeMode as mouse + // Calculating offset position for relativeMode Mouse + if (this.hoverElement.tooltip.content) { + if (this.hoverElement.tooltip.relativeMode === 'Mouse') { + this.setTooltipOffset(mousePosition); + } + else { + this.diagram.tooltipObject.offsetX = 0; + this.diagram.tooltipObject.offsetY = 0; + } + } + var objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + var targetEle = void 0; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && obj.children && obj.children.length > 0) { + // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node. + obj = children ? children : obj; + } + //EJ2-62120 - check if the Node has Ports and hoverElement is Port as mousepointer hovered over Port + if (obj.ports && this.hoverElement instanceof _objects_port__WEBPACK_IMPORTED_MODULE_23__["PointPort"]) { + //executed to set target as port + targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id); + } + else { + //executed to set target as Node or Connector + var idName = (obj.shape && ((obj.shape) instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Native"])) ? '_content_native_element' : '_groupElement'; + targetEle = document.getElementById(obj.id + idName); + } + if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') { + this.diagram.tooltipObject.close(); + this.diagram.tooltipObject.openOn = this.hoverElement.tooltip.openOn; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.diagram.tooltipObject.open(targetEle, {}); + } + else { + this.diagram.tooltipObject.dataBind(); + } + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canEnableToolTip"])(this.hoverElement, this.diagram) && this.hoverElement.tooltip.openOn === 'Auto') { + this.diagram.tooltipObject.target = this.hoverElement.id; + if (this.hoverElement.tooltip.relativeMode === 'Mouse') { + this.diagram.tooltipObject.open(this.diagram.element); + } + else { + this.diagram.tooltipObject.open(targetEle); + } + } + } + }; + DiagramEventHandler.prototype.elementLeave = function () { + if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') { + this.diagram.tooltipObject.close(); + } + }; + // EJ2-66418 - set tooltip relativeMode as mouse + // Calculating offset position for relativeMode Mouse + DiagramEventHandler.prototype.setTooltipOffset = function (mousePosition) { + var offset = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getTooltipOffset"])(this.diagram, mousePosition, this.hoverElement); + this.diagram.tooltipObject.offsetX = offset.x; + this.diagram.tooltipObject.offsetY = offset.y; + }; + DiagramEventHandler.prototype.altKeyPressed = function (keyModifier) { + if (keyModifier & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Alt) { + return true; + } + return false; + }; + DiagramEventHandler.prototype.ctrlKeyPressed = function (keyModifier) { + if (keyModifier & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Control) { + return true; + } + return false; + }; + DiagramEventHandler.prototype.shiftKeyPressed = function (keyModifier) { + if (keyModifier & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["KeyModifiers"].Shift) { + return true; + } + return false; + }; + /** @private */ + DiagramEventHandler.prototype.scrolled = function (evt) { + this.diagram.updateScrollOffset(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (this.diagram.realActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["RealAction"].OverViewAction)) { + this.diagram.setBlazorDiagramProps(false); + } + }; + /** @private */ + DiagramEventHandler.prototype.doubleClick = function (evt) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canUserInteract"])(this.diagram)) { + var annotation = void 0; + var objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + if (obj !== null && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canUserInteract"])(this.diagram)) { + var node = obj; + annotation = this.diagram.findElementUnderMouse(obj, this.currentPosition); + if (this.tool && (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"] || this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"])) { + var arg_2 = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj) || Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram), + position: this.currentPosition, count: evt.detail + }; + this.tool.mouseUp(this.eventArgs); + this.isMouseDown = false; + this.eventArgs = {}; + this.tool = null; + evt.preventDefault(); + } + else { + var layer = this.diagram.commandHandler.getObjectLayer(obj.id); + if (layer && !layer.lock && layer.visible) { + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].TextEdit)) { + var id = ''; + if (obj.shape.shape === 'TextAnnotation') { + id = obj.wrapper.children[1].id.split('_')[1]; + } + this.diagram.startTextEdit(obj, id || (annotation instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_13__["TextElement"] ? + (annotation.id).split(obj.id + '_')[1] : undefined)); + } + } + } + } + var arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj) || Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram), + position: this.currentPosition, count: evt.detail + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var selector = void 0; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + selector = { nodes: [Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj)] }; + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + selector = { connectors: [Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj)] }; + } + else { + selector = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(obj); + } + arg = { + source: obj ? { selector: selector } : { diagram: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["cloneBlazorObject"])(this.diagram) }, + position: this.currentPosition, count: evt.detail + }; + } + this.diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramEvent"].doubleClick, arg); + } + }; + /** + * @private + */ + DiagramEventHandler.prototype.itemClick = function (actualTarget, diagram) { + var obj = actualTarget; + if (Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true)) { + return obj; + } + return null; + }; + /** + * @private + */ + DiagramEventHandler.prototype.inputChange = function (evt) { + var minWidth = 90; + var maxWidth; + var minHeight = 12; + var fontsize; + var textWrapper; + var node; + var height; + var width; + var textBounds; + var textBoxWidth; + var transforms; + var scale; + var editTextBox = document.getElementById(this.diagram.element.id + '_editBox'); + var editTextBoxDiv = document.getElementById(this.diagram.element.id + '_editTextBoxDiv'); + var text = (editTextBox.value); + var line = text.split('\n'); + node = (this.diagram.selectedItems.nodes[0]) ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0]; + if ((!node && this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["TextDrawingTool"]) || (node && node.shape.type === 'SwimLane')) { + node = this.diagram.nameTable[this.diagram.activeLabel.parentId]; + } + if (node && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) { + textWrapper = this.diagram.getWrapper(node.wrapper, this.diagram.activeLabel.id); + maxWidth = node.wrapper.bounds.width < textWrapper.bounds.width ? node.wrapper.bounds.width : textWrapper.bounds.width; + maxWidth = maxWidth > minWidth ? maxWidth : minWidth; + textBounds = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["measureHtmlText"])(textWrapper.style, text, undefined, undefined, maxWidth); + fontsize = Number((editTextBox.style.fontSize).split('px')[0]); + if (line.length > 1 && line[line.length - 1] === '') { + textBounds.height = textBounds.height + fontsize; + } + transforms = this.diagram.scroller.transform; + scale = Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canZoomTextEdit"])(this.diagram) ? transforms.scale : 1; + width = textBounds.width; + width = ((minWidth > width) ? minWidth : width) * scale; + height = ((minHeight > textBounds.height) ? minHeight : textBounds.height) * scale; + if (!(node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"] && node.type === 'Bezier')) { + editTextBoxDiv.style.left = ((((textWrapper.bounds.center.x + transforms.tx) * transforms.scale) - width / 2) - 2.5) + 'px'; + editTextBoxDiv.style.top = ((((textWrapper.bounds.center.y + transforms.ty) * transforms.scale) - height / 2) - 3) + 'px'; + } + editTextBoxDiv.style.width = width + 'px'; + editTextBoxDiv.style.height = height + 'px'; + editTextBox.style.minHeight = minHeight + 'px'; + editTextBox.style.minWidth = minWidth + 'px'; + editTextBox.style.width = width + 'px'; + editTextBox.style.height = height + 'px'; + } + }; + /** + * @private + */ + DiagramEventHandler.prototype.isAddTextNode = function (node, focusOut) { + if (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["TextDrawingTool"] || focusOut) { + this.tool = null; + if (node && (!(Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canContinuousDraw"])(this.diagram)))) { + this.diagram.drawingObject = undefined; + this.diagram.currentDrawingObject = undefined; + } + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectFromCollection"])(this.diagram.nodes, node.id) || + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectFromCollection"])(this.diagram.connectors, node.id) || + (this.diagram.bpmnModule && this.diagram.bpmnModule.textAnnotationConnectors.indexOf(node) > -1)) { + return false; + } + return true; + } + return false; + }; + DiagramEventHandler.prototype.checkEditBoxAsTarget = function (evt) { + if ((evt.target && evt.target.id === this.diagram.element.id + '_editBox')) { + return true; + } + return false; + }; + DiagramEventHandler.prototype.getMouseEventArgs = function (position, args, source, padding) { + args.position = position; + var obj; + var objects; + if (!source) { + if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' || + this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' || + this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) { + obj = this.diagram.selectedItems; + if (!this.diagram.currentSymbol && this.action === 'Drag' && obj && this.diagram.selectedItems.nodes.length > 0 && + this.diagram.selectedItems.nodes[0].shape.type === 'SwimLane') { + objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + } + } + else { + objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + } + } + else { + objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source); + obj = this.diagram.findTargetObjectUnderMouse(objects, this.action, this.inAction, args.position, source); + } + if (obj && obj.isHeader) { + obj = this.diagram.nameTable[obj.parentId]; + this.eventArgs.actualObject = obj; + } + var wrapper; + if (obj) { + wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, padding); + var currentConnector = void 0; + var nearNode = void 0; + var i = void 0; + if ((wrapper && obj.ports && obj.ports.length && !Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["checkPort"])(obj, wrapper) || !wrapper || + !obj) && objects && objects.length && (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"])) { + currentConnector = source.connectors[0]; + for (i = objects.length - 1; i >= 0; i--) { + nearNode = objects[parseInt(i.toString(), 10)]; + if ((nearNode instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && currentConnector && currentConnector.connectionPadding) { + obj = nearNode; + wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, padding); + if (((currentConnector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByPort) && obj && + obj.ports && obj.ports.length && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["checkPort"])(obj, wrapper))) { + break; + } + if ((nearNode instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && currentConnector && currentConnector.connectionPadding + && nearNode.wrapper.outerBounds.containsPoint(this.currentPosition) && + (currentConnector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByNode) && + !(currentConnector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByPort)) { + obj = nearNode; + wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, 0); + break; + } + } + } + } + } + if (!source) { + args.source = obj; + args.sourceWrapper = wrapper; + } + else { + args.target = obj; + args.targetWrapper = wrapper; + } + args.actualObject = this.eventArgs.actualObject; + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"] && args.actualObject === undefined && + (args.source.nodes.length > 0 || args.source.connectors.length > 0)) { + args.actualObject = args.source.nodes.length > 0 ? this.diagram.nameTable[args.source.nodes[0].id] + : this.diagram.nameTable[args.source.connectors[0].id]; + } + args.startTouches = this.touchStartList; + args.moveTouches = this.touchMoveList; + return args; + }; + /** @private */ + DiagramEventHandler.prototype.resetTool = function () { + this.action = 'Select'; + this.hoverElement = null; + this.hoverNode = null; + this.tool = this.diagram.getTool(this.action); + this.updateCursor(); + }; + /** @private */ + DiagramEventHandler.prototype.getTool = function (action) { + switch (action) { + case 'Select': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["SelectTool"](this.commandHandler, true); + case 'Drag': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"](this.commandHandler); + case 'Rotate': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["RotateTool"](this.commandHandler); + case 'LayoutAnimation': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ExpandTool"](this.commandHandler); + case 'FixedUserHandle': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["FixedUserHandleTool"](this.commandHandler, true); + case 'Hyperlink': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["LabelTool"](this.commandHandler); + case 'ResizeSouthEast': + case 'ResizeSouthWest': + case 'ResizeNorthEast': + case 'ResizeNorthWest': + case 'ResizeSouth': + case 'ResizeNorth': + case 'ResizeWest': + case 'ResizeEast': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"](this.commandHandler, action); + case 'ConnectorSourceEnd': + case 'ConnectorTargetEnd': + case 'BezierSourceThumb': + case 'BezierTargetThumb': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"](this.commandHandler, action); + case 'SegmentEnd': + case 'OrthoThumb': + return new _connector_editing__WEBPACK_IMPORTED_MODULE_6__["ConnectorEditing"](this.commandHandler, action); + case 'Draw': + var shape = 'shape'; + var basicShape = 'basicShape'; + var type = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["findObjectType"])(this.diagram.drawingObject); + if (type === 'Node' && this.diagram.drawingObject.shape.type === 'Text') { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["TextDrawingTool"](this.commandHandler); + } + else if (type === 'Connector' && this.diagram.drawingObject.type === 'Freehand') { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["FreeHandTool"](this.commandHandler); + } + else if (type === 'Node' && (this.diagram.drawingObject.shape["" + shape] === 'Polygon' || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.diagram.drawingObject.shape["" + basicShape] === 'Polygon')) && + !(this.diagram.drawingObject.shape.points)) { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["PolygonDrawingTool"](this.commandHandler); + } + else if (type === 'Node' || + (type === 'Node' && this.diagram.drawingObject.shape["" + shape] === 'Polygon' && + (this.diagram.drawingObject.shape.points))) { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["NodeDrawingTool"](this.commandHandler, this.diagram.drawingObject); + } + else if (type === 'Connector' && this.diagram.drawingObject.type === 'Polyline') { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["PolyLineDrawingTool"](this.commandHandler); + } + else if (type === 'Connector') { + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"](this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject); + } + break; + case 'Pan': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ZoomPanTool"](this.commandHandler, false); + case 'PinchZoom': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ZoomPanTool"](this.commandHandler, true); + case 'PortDrag': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"](this.commandHandler, 'Port'); + case 'PortDraw': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectorDrawingTool"](this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject); + case 'LabelSelect': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["SelectTool"](this.commandHandler, true, 'LabelSelect'); + case 'LabelDrag': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["LabelDragTool"](this.commandHandler); + case 'LabelResizeSouthEast': + case 'LabelResizeSouthWest': + case 'LabelResizeNorthEast': + case 'LabelResizeNorthWest': + case 'LabelResizeSouth': + case 'LabelResizeNorth': + case 'LabelResizeWest': + case 'LabelResizeEast': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["LabelResizeTool"](this.commandHandler, action); + case 'LabelRotate': + return new _tool__WEBPACK_IMPORTED_MODULE_4__["LabelRotateTool"](this.commandHandler); + //for coverage + // case 'Custom': + // return this.diagram.getTool(action); + } + return null; + }; + /** @private */ + DiagramEventHandler.prototype.getCursor = function (action) { + var object = (this.diagram.selectedItems.annotation) ? + this.diagram.selectedItems.wrapper.children[0] : this.diagram.selectedItems; + var rotateAngle = (this.diagram.selectedItems.annotation) ? + (object.rotateAngle + object.parentTransform) : object.rotateAngle; + return Object(_actions__WEBPACK_IMPORTED_MODULE_7__["getCursor"])(action, rotateAngle); + }; + //start region - interface betweend diagram and interaction + /** @private */ + DiagramEventHandler.prototype.findElementUnderMouse = function (obj, position, padding) { + return this.objectFinder.findElementUnderSelectedItem(obj, position, padding); + }; + /** @private */ + DiagramEventHandler.prototype.findObjectsUnderMouse = function (position, source) { + return this.objectFinder.findObjectsUnderMouse(position, this.diagram, this.eventArgs, source); + }; + /** @private */ + DiagramEventHandler.prototype.findObjectUnderMouse = function (objects, action, inAction) { + return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, this.currentPosition); + }; + /** @private */ + DiagramEventHandler.prototype.findTargetUnderMouse = function (objects, action, inAction, position, source) { + return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, position, source); + }; + /** @private */ + DiagramEventHandler.prototype.findActionToBeDone = function (obj, wrapper, position, target) { + return Object(_actions__WEBPACK_IMPORTED_MODULE_7__["findToolToActivate"])(obj, wrapper, this.currentPosition, this.diagram, this.touchStartList, this.touchMoveList, target); + }; + DiagramEventHandler.prototype.updateContainerBounds = function (isAfterMouseUp) { + var isGroupAction = false; + if (this.diagram.selectedObject.helperObject && this.diagram.selectedObject.actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + var boundsUpdate = (this.tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ResizeTool"]) ? true : false; + var obj = this.diagram.selectedObject.actualObject; + var parentNode = this.diagram.nameTable[obj.parentId]; + if (isAfterMouseUp) { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["removeChildInContainer"])(this.diagram, obj, this.currentPosition, boundsUpdate); + } + else { + if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) { + this.diagram.updateDiagramObject(obj); + } + isGroupAction = Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["updateCanvasBounds"])(this.diagram, obj, this.currentPosition, boundsUpdate); + this.diagram.updateSelector(); + if (obj.isLane || obj.isPhase) { + this.diagram.clearSelection(); + this.commandHandler.selectObjects([obj]); + } + } + } + return isGroupAction; + }; + // tslint:disable-next-line:max-func-body-length + DiagramEventHandler.prototype.updateContainerProperties = function () { + var helperObject; + var isChangeProperties = false; + var hasStack; + var connectors; + var hasGroup = false; + var obj; + var history = { hasStack: false, isPreventHistory: false }; + if (this.diagram.selectedObject.helperObject) { + var objects = this.diagram.findObjectsUnderMouse(this.currentPosition); + var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + helperObject = this.diagram.selectedObject.helperObject; + obj = this.diagram.selectedObject.actualObject; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + if (obj.shape.type === 'SwimLane') { + connectors = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["getConnectors"])(this.diagram, obj.wrapper.children[0], 0, true); + } + if (obj.shape.type !== 'SwimLane' && obj.parentId && + this.diagram.getObject(obj.parentId).shape.type === 'SwimLane') { + if (target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && this.diagram.getObject(target.parentId) && + this.diagram.getObject(target.parentId).shape.type !== 'SwimLane') { + target = this.diagram.getObject(target.parentId); + } + } + if (this.currentAction === 'Drag' && obj.container && obj.container.type === 'Canvas' && obj.parentId && + this.diagram.getObject(obj.parentId).shape.type === 'SwimLane' && target && target !== obj && + target.container && target.container.type === 'Canvas' && target.isLane && + obj.isLane && target.parentId === obj.parentId) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["laneInterChanged"])(this.diagram, obj, target, this.currentPosition); + history.isPreventHistory = true; + } + else { + var parentNode = this.diagram.nameTable[obj.parentId]; + if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) { + if (parentNode && parentNode.isLane && (obj.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].AllowMovingOutsideLane)) { + var swimlane = this.diagram.getObject(parentNode.parentId); + var laneId = swimlane.id + swimlane.shape.lanes[0].id + '0'; + var firstlane = this.diagram.getObject(laneId); + var x = firstlane.wrapper.bounds.x; + var y = firstlane.wrapper.bounds.y; + var width = swimlane.wrapper.bounds.bottomRight.x - x; + var height = swimlane.wrapper.bounds.bottomRight.y - y; + var swimlaneBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_16__["Rect"](x, y, width, height); + if (swimlaneBounds.containsPoint(this.currentPosition)) { + obj.offsetX = helperObject.offsetX; + obj.offsetY = helperObject.offsetY; + obj.width = helperObject.width; + obj.height = helperObject.height; + obj.rotateAngle = helperObject.rotateAngle; + } + } + else { + obj.offsetX = helperObject.offsetX; + obj.offsetY = helperObject.offsetY; + if (obj && obj.shape && obj.shape.type !== 'UmlClassifier') { + if (obj.shape.type !== 'Bpmn' || + (obj.shape.type === 'Bpmn' && obj.shape.shape !== 'TextAnnotation')) { + obj.width = helperObject.width; + obj.height = helperObject.height; + } + } + obj.rotateAngle = helperObject.rotateAngle; + } + } + var undoElement = void 0; + if (parentNode && parentNode.container && parentNode.container.type === 'Stack') { + this.diagram.startGroupAction(); + hasGroup = true; + } + if (!target && parentNode && parentNode.container && parentNode.container.type === 'Stack' && this.action === 'Drag') { + var index = parentNode.wrapper.children.indexOf(obj.wrapper); + undoElement = { targetIndex: undefined, target: undefined, sourceIndex: index, source: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["cloneObject"])(obj) }; + if (index > -1) { + var children = parentNode.children; + children.splice(children.indexOf(obj.id), 1); + this.diagram.nameTable[obj.id].parentId = ''; + hasStack = true; + parentNode.wrapper.children.splice(index, 1); + } + } + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["moveChildInStack"])(obj, target, this.diagram, this.action); + parentNode = Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj) ? this.diagram.nameTable[obj.parentId] : + (this.diagram.nameTable[obj.parentId] || obj); + if (parentNode && parentNode.container && parentNode.container.type === 'Canvas') { + parentNode.wrapper.maxWidth = parentNode.maxWidth = parentNode.wrapper.actualSize.width; + parentNode.wrapper.maxHeight = parentNode.maxHeight = parentNode.wrapper.actualSize.height; + isChangeProperties = true; + } + if (Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true) && parentNode && parentNode.container.type === 'Canvas') { + Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkChildNodeInContainer"])(this.diagram, obj); + } + else { + history = this.updateContainerPropertiesExtend(parentNode, obj, connectors, helperObject, history); + } + if ((this.diagram.lineRoutingModule && (this.diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramConstraints"].LineRouting)) + && (!Object(_container_interaction__WEBPACK_IMPORTED_MODULE_19__["checkParentAsContainer"])(this.diagram, obj, true))) { + if (obj.children) { + this.diagram.realActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_8__["RealAction"].EnableGroupAction; + } + this.diagram.nodePropertyChange(obj, {}, { + width: obj.width, height: obj.height, + offsetX: obj.offsetX, offsetY: obj.offsetY + }); + if (obj.children) { + this.diagram.realActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_8__["RealAction"].EnableGroupAction; + } + } + if (obj.shape.lanes) { + this.updateLaneChildNode(obj); + } + if (isChangeProperties) { + parentNode.maxWidth = parentNode.wrapper.maxWidth = undefined; + parentNode.maxHeight = parentNode.wrapper.maxHeight = undefined; + } + if (hasStack) { + this.diagram.nodePropertyChange(parentNode, {}, { + offsetX: parentNode.offsetX, offsetY: parentNode.offsetY, width: parentNode.width, height: parentNode.height, + rotateAngle: parentNode.rotateAngle + }); + var entry = { + redoObject: { sourceIndex: undefined, source: undoElement.source }, + type: 'StackChildPositionChanged', undoObject: undoElement, category: 'Internal' + }; + if (!(this.diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["DiagramAction"].UndoRedo)) { + this.diagram.addHistoryEntry(entry); + } + } + if (obj && obj.container && (obj.container.type === 'Stack' || + (obj.container.type === 'Canvas' && obj.parentId === ''))) { + if (obj && obj.shape && obj.shape.type === 'UmlClassifier') { + obj.wrapper.measureChildren = true; + } + this.diagram.nodePropertyChange(obj, {}, { + offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle + }); + if (obj && obj.shape && obj.shape.type === 'UmlClassifier') { + obj.wrapper.measureChildren = false; + } + } + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateConnectorsProperties"])(connectors, this.diagram); + history.hasStack = hasGroup; + } + } + if (obj && (obj.isPhase || obj.isLane || + (obj.shape && obj.shape.type === 'SwimLane'))) { + this.diagram.updateDiagramElementQuad(); + } + return history; + }; + DiagramEventHandler.prototype.updateLaneChildNode = function (obj) { + for (var i = 0; i < (obj.shape.lanes.length); i++) { + if (obj.shape.lanes[parseInt(i.toString(), 10)].children && obj.shape.lanes[parseInt(i.toString(), 10)].children.length > 0) { + for (var j = 0; j < obj.shape.lanes[parseInt(i.toString(), 10)].children.length; j++) { + var id = obj.shape.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)].id; + var childNode = this.diagram.nameTable["" + id]; + //828489 - Exception occurs while dragging swimlane after adding shape & undo action is performed + if (childNode) { + childNode.offsetX = childNode.wrapper.offsetX; + childNode.offsetY = childNode.wrapper.offsetY; + } + } + } + } + }; + DiagramEventHandler.prototype.updateContainerPropertiesExtend = function (parentNode, obj, connectors, helperObject, history) { + if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth' || obj.shape.type === 'SwimLane') { + var undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["cloneObject"])(obj); + var isUpdateRow = false; + if (parentNode && parentNode.container && parentNode.container.type === 'Grid') { + var shape = parentNode.shape.type === 'SwimLane' ? true : false; + var container = (shape ? parentNode.wrapper.children[0] : parentNode.wrapper); + var padding = shape ? parentNode.shape.padding : undefined; + var x = parentNode.wrapper.bounds.x; + var y = parentNode.wrapper.bounds.y; + if (obj.columnIndex !== undefined && (parentNode.container.orientation === 'Horizontal' && + ((shape && obj.isPhase) || (!shape && obj.rowIndex === 1))) || + (parentNode.container.orientation === 'Vertical' && + ((!shape && obj.rowIndex > 0 && obj.columnIndex > 0) || (shape && obj.isLane)))) { + if (parentNode.container.orientation === 'Horizontal' && obj.isPhase && obj.wrapper.width > obj.maxWidth) { + obj.maxWidth = obj.wrapper.width; + obj.wrapper.maxWidth = obj.wrapper.width; + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateSwimLaneObject"])(this.diagram, obj, parentNode, helperObject); + container.updateColumnWidth(obj.columnIndex, helperObject.width, true, padding); + if (obj.isPhase) { + var id = parentNode.shape.phases[obj.columnIndex].header.id; + var node = this.diagram.nameTable["" + id]; + if (node.maxWidth < helperObject.width) { + node.maxWidth = helperObject.width; + node.wrapper.maxWidth = helperObject.width; + } + } + if (parentNode.shape.type === 'SwimLane') { + parentNode.width = (parentNode.width) ? container.width : parentNode.width; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateHeaderMaxWidth"])(this.diagram, parentNode); + parentNode.wrapper.width = parentNode.width; + connectors = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["getConnectors"])(this.diagram, container, obj.rowIndex, false); + } + } + else if (obj.rowIndex !== undefined) { + isUpdateRow = true; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateSwimLaneObject"])(this.diagram, obj, parentNode, helperObject); + container.updateRowHeight(obj.rowIndex, helperObject.height, true, padding); + if (parentNode.shape.type === 'SwimLane') { + parentNode.height = (parentNode.height) ? container.height : parentNode.height; + parentNode.wrapper.height = parentNode.height; + connectors = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["getConnectors"])(this.diagram, container, obj.rowIndex, true); + } + } + if (parentNode.shape.type === 'SwimLane') { + history.isPreventHistory = true; + } + this.diagram.nodePropertyChange(parentNode, {}, { + offsetX: parentNode.offsetX, offsetY: parentNode.offsetY, + rotateAngle: parentNode.rotateAngle + }); + this.diagram.drag(parentNode, x - parentNode.wrapper.bounds.x, y - parentNode.wrapper.bounds.y); + } + else { + if (obj && obj.shape && obj.shape.type === 'UmlClassifier') { + obj.wrapper.measureChildren = true; + } + this.diagram.nodePropertyChange(obj, {}, { + offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle + }); + obj.wrapper.measureChildren = false; + } + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_14__["Size"](obj.wrapper.width, obj.wrapper.height)); + obj.wrapper.arrange(obj.wrapper.desiredSize); + if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth') { + var redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["cloneObject"])(obj); + var entry = { + category: 'Internal', + type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged', + undoObject: undoObj, redoObject: redoObject + }; + this.diagram.addHistoryEntry(entry); + } + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_20__["updateConnectorsProperties"])(connectors, this.diagram); + return history; + }; + DiagramEventHandler.prototype.addUmlNode = function () { + var node = this.diagram.selectedItems.nodes[0]; + var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x + 20, y: this.currentPosition.y }); + var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + if (!target) { + objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y }); + target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction); + } + if (node && node.container && node.container.type === 'Stack' && target && target.parentId + && target.parentId === node.id) { + var innerNode = target; + var adornerSvg = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_12__["getAdornerLayerSvg"])(this.diagram.element.id); + var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter'); + if (highlighter) { + var index = node.wrapper.children.indexOf(target.wrapper) + 1; + this.diagram.enableServerDataBinding(false); + var temp = new _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"](this.diagram, 'nodes', { + style: { + fill: node.style.fill, + strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor + }, + annotations: target.annotations, verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch', + constraints: (_enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].HideThumbs) & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Drag | _enum_enum__WEBPACK_IMPORTED_MODULE_8__["NodeConstraints"].Resize), + minHeight: 25 + }, true); + temp.annotations[0].content = ' + Name : Type'; + var id = innerNode.id.split('_'); + temp.id = Object(_index__WEBPACK_IMPORTED_MODULE_22__["randomId"])() + temp.id; + temp.parentId = node.id; + temp.zIndex = -1; + temp.umlIndex = index; + this.diagram.startGroupAction(); + var redoElement = { + sourceIndex: node.wrapper.children.indexOf(temp.wrapper), source: temp, + target: undefined, targetIndex: undefined + }; + this.diagram.enableServerDataBinding(true); + this.diagram.add(temp); + this.diagram.updateConnectorEdges(node); + this.diagram.clearSelection(); + this.diagram.select([this.diagram.nameTable[temp.id]]); + this.diagram.endGroupAction(); + this.diagram.startTextEdit(); + } + } + }; + return DiagramEventHandler; +}()); + +/** @private */ +var ObjectFinder = /** @__PURE__ @class */ (function () { + function ObjectFinder() { + } + /** @private */ + ObjectFinder.prototype.findObjectsUnderMouse = function (pt, diagram, eventArgs, source, actions) { + // finds the collection of the object that is under the mouse; + var actualTarget = []; + if (source && source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) { + if (source.nodes.length + source.connectors.length === 1) { + source = (source.nodes[0] || source.connectors[0]); + if (source.children && source.children.length === 0) { + eventArgs.actualObject = source; + } + } + } + var container; + var bounds; + var child; + var matrix; + var endPadding = (source && (source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && + ((source.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByNode) || + (source.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_8__["ConnectorConstraints"].ConnectToNearByPort)) && source.connectionPadding) || 0; + var objArray = diagram.spatialSearch.findObjects(new _primitives_rect__WEBPACK_IMPORTED_MODULE_16__["Rect"](pt.x - 50 - endPadding, pt.y - 50 - endPadding, 100 + endPadding, 100 + endPadding)); + var layerObjTable = {}; + var layerTarger; + for (var _i = 0, objArray_1 = objArray; _i < objArray_1.length; _i++) { + var obj = objArray_1[_i]; + var point = pt; + bounds = obj.wrapper.outerBounds; + var pointInBounds = (obj.rotateAngle) ? false : bounds.containsPoint(point, endPadding); + if ((obj !== source || diagram.currentDrawingObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && + (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) ? obj !== diagram.currentDrawingObject : true && obj.wrapper.visible) { + var layer = diagram.commandHandler.getObjectLayer(obj.id); + if (layer && !layer.lock && layer.visible) { + layerTarger = layerObjTable[layer.zIndex] = layerObjTable[layer.zIndex] || []; + if (obj.rotateAngle) { + container = obj.wrapper; + bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["cornersPointsBeforeRotation"])(container); + for (var _a = 0, _b = container.children; _a < _b.length; _a++) { + child = _b[_a]; + matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["rotateMatrix"])(matrix, -(child.rotateAngle + child.parentTransform), child.offsetX, child.offsetY); + point = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["transformPointByMatrix"])(matrix, pt); + if (Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_15__["cornersPointsBeforeRotation"])(child).containsPoint(point, endPadding)) { + pointInBounds = true; + } + } + } + if (!source || (Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(diagram, obj) === false)) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canEnablePointerEvents"])(obj, diagram)) { + if ((obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) ? Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["isPointOverConnector"])(obj, pt) : pointInBounds) { + var padding = (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) ? obj.hitPadding || 0 : 0; //let element: DiagramElement; + var element = this.findElementUnderMouse(obj, pt, endPadding || padding); + if (element && obj.id !== 'helper') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["insertObject"])(obj, 'zIndex', layerTarger); + } + } + } + } + } + } + } + for (var _c = 0, _d = diagram.layers; _c < _d.length; _c++) { + var layer = _d[_c]; + actualTarget = actualTarget.concat(layerObjTable[layer.zIndex] || []); + for (var _e = 0, actualTarget_1 = actualTarget; _e < actualTarget_1.length; _e++) { + var obj = actualTarget_1[_e]; + var eventHandler = 'eventHandler'; + if (obj.shape.type === 'Bpmn' && obj.processId && (!(diagram["" + eventHandler].tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"]) || + (diagram["" + eventHandler].tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"]) && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canAllowDrop"])(obj))) { + var index = actualTarget.indexOf(diagram.nameTable[obj.processId]); + if (index > -1) { + actualTarget.splice(index, 1); + } + } + if (obj.shape.type === 'UmlClassifier' && obj.container && obj.container.type === 'Stack') { + var index = actualTarget.indexOf(diagram.nameTable[diagram.nameTable[obj.id].wrapper.children[0].id]); + if (index > -1) { + actualTarget.splice(index, 1); + } + } + } + } + for (var i = 0; i < actualTarget.length; i++) { + var parentObj = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId]; + if (parentObj) { + var portElement = this.findElementUnderMouse(parentObj, pt); + for (var j = 0; j < parentObj.ports.length; j++) { + if (portElement.id.match('_' + parentObj.ports[parseInt(j.toString(), 10)].id + '$')) { + var port = parentObj.ports[parseInt(j.toString(), 10)]; + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canDrag"])(port, diagram) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canDraw"])(port, diagram)) { + return actualTarget; + } + } + } + } + while (parentObj) { + var index = actualTarget.indexOf(parentObj); + if (index !== -1) { + actualTarget.splice(index, 1); + } + else { + break; + } + parentObj = diagram.nameTable[parentObj.parentId]; + } + } + this.checkSwimlane(actualTarget, diagram); + if (eventArgs && !eventArgs.source) { + for (var i = 0; i < actualTarget.length; i++) { + var parentNode = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId]; + if (parentNode && parentNode.shape.type === 'SwimLane') { + for (var j = 0; j < actualTarget.length; j++) { + var connector = actualTarget[parseInt(j.toString(), 10)]; + if (connector instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + actualTarget.splice(i, 1); + } + } + } + } + } + return actualTarget; + }; + /** @private */ + ObjectFinder.prototype.checkSwimlane = function (actualTarget, diagram) { + var isNode; + for (var m = 0; m < actualTarget.length; m++) { + var obj = actualTarget[parseInt(m.toString(), 10)]; + var parentNode = void 0; + var node = void 0; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + parentNode = actualTarget[parseInt(m.toString(), 10)].parentId; + node = obj; + } + if (parentNode === '') { + if (node.shape.type !== 'SwimLane') { + isNode = true; + } + else { + isNode = false; + } + } + var parent_1 = diagram.nameTable["" + parentNode]; + if (parent_1 && parent_1.isLane && diagram.nameTable[parent_1.parentId].zIndex > obj.zIndex) { + actualTarget[parseInt(m.toString(), 10)] = parent_1; + } + if (m > 0 && isNode && node && (node.isLane || node.isPhase || node.isHeader)) { + if (actualTarget[parseInt(m.toString(), 10)].zIndex < actualTarget[m - 1].zIndex) { + var swap = actualTarget[parseInt(m.toString(), 10)]; + actualTarget[parseInt(m.toString(), 10)] = actualTarget[m - 1]; + actualTarget[m - 1] = swap; + } + } + } + if (actualTarget.length >= 2) { + var parent_2 = ''; + for (var i = actualTarget.length - 1; i >= 0; i--) { + if (actualTarget[parseInt(i.toString(), 10)].parentId) { + var parent1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["findParentInSwimlane"])(actualTarget[parseInt(i.toString(), 10)], diagram, parent_2); + var parent2 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["findParentInSwimlane"])(actualTarget[i - 1], diagram, parent_2); + var parentNode1 = diagram.nameTable["" + parent1]; + var parentNode2 = diagram.nameTable["" + parent2]; + if (parentNode2 && parent1 !== parent2 && parentNode1.zIndex < parentNode2.zIndex) { + actualTarget.splice(i, 1); + } + } + } + } + }; + /** @private */ + ObjectFinder.prototype.isTarget = function (actualTarget, diagram, action) { + var connector = diagram.selectedItems.connectors[0]; + var node; + node = action === 'ConnectorSourceEnd' ? diagram.nameTable[connector.targetID] : + node = diagram.nameTable[connector.sourceID]; + if (node && !(node.processId && !actualTarget.processId || node.processId !== actualTarget.processId)) { + if (node.processId !== actualTarget.processId) { + actualTarget = null; + } + if (actualTarget && actualTarget.parentId && + diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') { + actualTarget = diagram.nameTable[actualTarget.parentId]; + } + } + if (action === 'ConnectorSourceEnd' && connector.targetID) { + var targetNode = diagram.nameTable[connector.targetID]; + if (targetNode && targetNode.shape && (targetNode.shape.shape === 'TextAnnotation')) { + var id = connector.id.split('_'); + if (((targetNode.shape.type === 'Bpmn') && actualTarget.shape.type !== 'Bpmn') || (id[0] === actualTarget.id) || + actualTarget.shape.shape === 'TextAnnotation') { + actualTarget = null; + } + if (actualTarget.parentId && + diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') { + actualTarget = diagram.nameTable[actualTarget.parentId]; + } + } + } + return actualTarget; + }; + /* tslint:disable */ + /** @private */ + ObjectFinder.prototype.findObjectUnderMouse = function (diagram, objects, action, inAction, eventArg, position, source) { + //we will get the wrapper object here + //we have to choose the object to be interacted with from the given wrapper + //Find the object that is under mouse + var eventHandler = 'eventHandler'; + var endPoint = 'endPoint'; + var inPort; + var outPort; + var actualTarget = null; + if (objects.length !== 0) { + if (source && source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) { + if (source.nodes.length + source.connectors.length === 1) { + source = (source.nodes[0] || source.connectors[0]); + } + } + if ((action === 'ConnectorSourceEnd' && source || action === 'PortDraw') || + ((Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canDrawOnce"])(diagram) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canContinuousDraw"])(diagram)) && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getObjectType"])(diagram.drawingObject) === _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"])) { + var connector = diagram.selectedItems.connectors[0]; + for (var i = objects.length - 1; i >= 0; i--) { + outPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getInOutConnectPorts"])(objects[parseInt(i.toString(), 10)], false); + inPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getInOutConnectPorts"])(objects[parseInt(i.toString(), 10)], true); + var tool = diagram["" + eventHandler].tool; + var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, undefined); + if (action === 'Draw' && portElement && (objects[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && !Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["checkPort"])(objects[parseInt(i.toString(), 10)], portElement)) { + if (((tool && tool["" + endPoint] === 'ConnectorSourceEnd') && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canOutConnect"])(objects[parseInt(i.toString(), 10)])) || + ((tool && tool["" + endPoint] === 'ConnectorTargetEnd') && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canInConnect"])(objects[parseInt(i.toString(), 10)]))) { + return actualTarget; + } + } + // eslint-disable-next-line max-len + if ((objects[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) && ((Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canOutConnect"])(objects[parseInt(i.toString(), 10)]) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canPortOutConnect"])(outPort)) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canInConnect"])(objects[parseInt(i.toString(), 10)]) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canPortInConnect"])(inPort))) || + (action === 'PortDraw' && (tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["ConnectTool"]) && tool["" + endPoint] === 'ConnectorTargetEnd' && + (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canInConnect"])(objects[parseInt(i.toString(), 10)]) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canPortInConnect"])(inPort)))))) { + actualTarget = objects[parseInt(i.toString(), 10)]; + if (connector) { + actualTarget = this.isTarget(actualTarget, diagram, action); + } + eventArg.actualObject = actualTarget; + return actualTarget; + } + } + } + else if (action === 'ConnectorTargetEnd' && source) { + for (var i = objects.length - 1; i >= 0; i--) { + inPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_9__["getInOutConnectPorts"])(objects[parseInt(i.toString(), 10)], true); + if (objects[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canInConnect"])(objects[parseInt(i.toString(), 10)]) || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canPortInConnect"])(inPort)))) { + actualTarget = objects[parseInt(i.toString(), 10)]; + actualTarget = this.isTarget(actualTarget, diagram, action); + eventArg.actualObject = actualTarget; + return actualTarget; + } + } + } + else if (source && (action === 'Drag' || (diagram["" + eventHandler].tool instanceof _tool__WEBPACK_IMPORTED_MODULE_4__["MoveTool"]))) { + var index = 0; + for (var i = 0; i < objects.length; i++) { + var temp = objects[parseInt(i.toString(), 10)]; + if (source !== temp && (temp instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"] || + !position || temp.wrapper.bounds.containsPoint(position))) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canAllowDrop"])(temp)) { + if (!actualTarget) { + actualTarget = temp; + index = actualTarget.zIndex; + } + else { + actualTarget = index >= temp.zIndex ? actualTarget : temp; + index = Math.max(index, temp.zIndex); + } + } + } + } + if (actualTarget && actualTarget.shape.type === 'Bpmn') { + if (diagram.selectedItems.nodes.length > 0 && diagram.selectedItems.nodes[0].shape.type === 'Bpmn') { + // eslint-disable-next-line no-self-assign + actualTarget = actualTarget; + } + else { + actualTarget = null; + } + } + if (actualTarget) { + eventArg.actualObject = actualTarget; + } + return actualTarget; + } + else if ((action === 'Select' || action === 'Pan') && diagram["" + eventHandler].tool) { + for (var i = objects.length - 1; i >= 0; i--) { + if (objects[parseInt(i.toString(), 10)] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + var objj1 = objects[i - 1]; + if (objects[i - 1] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] && objj1.ports) { + var portElement = this.findTargetElement(objj1.wrapper, position, undefined); + if ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$')))) { + return objj1; + } + for (var j = 0; j < objj1.ports.length; j++) { + if (portElement && portElement.id.match('_' + objj1.ports[parseInt(j.toString(), 10)].id + '$')) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canDraw"])(objj1.ports[parseInt(j.toString(), 10)], diagram)) { + return objj1; + } + } + } + } + } + } + actualTarget = objects[objects.length - 1]; + eventArg.actualObject = actualTarget; + if (!diagram["" + eventHandler].itemClick(actualTarget, true)) { + if (actualTarget.parentId) { + var obj = actualTarget; + var selected = Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(diagram, obj); + while (obj) { + if (Object(_actions__WEBPACK_IMPORTED_MODULE_7__["isSelected"])(diagram, obj) && !selected) { + break; + } + actualTarget = obj; + obj = diagram.nameTable[obj.parentId]; + } + } + } + } + else if (action === 'Pan' || action === 'LayoutAnimation') { + for (var i = objects.length - 1; i >= 0; i--) { + if (objects[parseInt(i.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"] || objects[parseInt(i.toString(), 10)] instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) { + var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, undefined); + if ((action === 'Pan') || ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$'))))) { + return objects[parseInt(i.toString(), 10)]; + } + } + } + } + else { + actualTarget = objects[objects.length - 1]; + if (eventArg && actualTarget) { + eventArg.actualObject = actualTarget; + } + } + } + return actualTarget; + }; + /* tslint:enable */ + /** @private */ + ObjectFinder.prototype.findElementUnderSelectedItem = function (obj, position, padding) { + //rewrite this for multiple selection + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Selector"]) { + if (obj.nodes.length === 1 && (!obj.connectors || !obj.connectors.length)) { + return this.findElementUnderMouse(obj.nodes[0], position); + } + else if ((!obj.nodes || obj.nodes.length) && obj.connectors.length === 1) { + return this.findElementUnderMouse(obj.connectors[0], position); + } + } + else { + return this.findElementUnderMouse(obj, position, padding); + } + return null; + }; + ObjectFinder.prototype.findElementUnderMouse = function (obj, position, padding) { + return this.findTargetElement(obj.wrapper, position, padding); + }; + /** @private */ + ObjectFinder.prototype.findTargetElement = function (container, position, padding) { + for (var i = container.children.length - 1; i >= 0; i--) { + var element = container.children[parseInt(i.toString(), 10)]; + if (element && element.outerBounds.containsPoint(position, padding || 0)) { + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_2__["Container"]) { + var target = this.findTargetElement(element, position); + if (target) { + return target; + } + } + //EJ2-69047 - Node selection is improper while adding annotation for multiple nodes + //Checked textOverflow property to avoid the selection of text element with clip and ellipsis; + if (element.bounds.containsPoint(position, padding || 0) && element.style.textOverflow !== 'Clip' && element.style.textOverflow !== 'Ellipsis') { + return element; + } + } + } + if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') { + return container; + } + return null; + }; + return ObjectFinder; +}()); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-distribution.js": +/*!*********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-distribution.js ***! + \*********************************************************************************************/ +/*! exports provided: LineDistribution */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LineDistribution", function() { return LineDistribution; }); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); + + + + + + + +/** + * Line Distribution + * @private + */ +var LineDistribution = /** @__PURE__ @class */ (function () { + /** + * Constructor for the line distribution module + * @private + */ + function LineDistribution() { + //constructs the line distribution module + } + /** + * To destroy the line distribution module + * @returns {void} + * @private + */ + LineDistribution.prototype.destroy = function () { + /** + * Destroys the line distribution module + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + LineDistribution.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'LineDistribution'; + }; + /** @private */ + LineDistribution.prototype.initLineDistribution = function (graph, diagram) { + var srcDirection = 'Bottom'; + this.diagram = diagram; + if (diagram.layout.connectionPointOrigin === 'DifferentPoint' || diagram.layout.enableRouting) { + var tarDirection = 'Top'; + if (graph.orientation === 'BottomToTop') { + srcDirection = 'Top'; + tarDirection = 'Bottom'; + } + else if (graph.orientation === 'RightToLeft') { + srcDirection = 'Left'; + tarDirection = 'Right'; + } + else if (graph.orientation === 'LeftToRight') { + srcDirection = 'Right'; + tarDirection = 'Left'; + } + var graphnodes = diagram.nodes; + if (graphnodes.length > 0) { + for (var i = 0; i < graphnodes.length; i++) { + var node = diagram.nameTable[graphnodes[parseInt(i.toString(), 10)].id]; + this.addDynamicPortandDistrrbuteLine(graph, node, srcDirection, tarDirection, diagram); + } + } + } + }; + LineDistribution.prototype.ObstacleSegment = function (options) { + options.direction = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getConnectorDirection"])(options.startpt, options.endpt); + options.distance = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findLength(options.startpt, options.endpt); + options.orientation = options.direction === 'Left' || options.direction === 'Right' ? 'horizontal' : 'vertical'; + // eslint-disable-next-line no-self-assign + options.id = options.id; + if (options.orientation === 'horizontal') { + options.coord = options.startpt.y; + if (options.direction === 'Left') { + options.start = options.endpt.x; + options.end = options.startpt.x; + } + else { + options.start = options.startpt.x; + options.end = options.endpt.x; + } + } + else { + options.coord = options.startpt.x; + if (options.direction === 'Top') { + options.start = options.endpt.y; + options.end = options.startpt.y; + } + else { + options.start = options.startpt.y; + options.end = options.endpt.y; + } + } + return options; + }; + /** @private */ + LineDistribution.prototype.distributeLines = function (layout, diagram) { + var isHorizontal = layout.orientation === 'LeftToRight' + || layout.orientation === 'RightToLeft'; + var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing; + var srcdecoratorSize = 8.0; + var obstacleCollection = 'obstaclePointCollection'; + var tardecoratorSize = 10.0; + var avaibaleSpace = inversespacing - srcdecoratorSize - tardecoratorSize; + var graph = []; + var connectorObstacles = []; + var globalConnectors = diagram.connectors; + for (var i = 0; i < globalConnectors.length; i++) { + var connector = globalConnectors[parseInt(i.toString(), 10)]; + var pts = []; + for (var key = 0; key < connector.segments.length; key++) { + var seg = connector.segments[parseInt(key.toString(), 10)]; + for (var k = 0; k < seg.points.length; k++) { + var pt = seg.points[parseInt(k.toString(), 10)]; + if (pts.length === 0 || !(_primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].equals(pt, pts[pts.length - 1]))) { + pts.push(pt); + } + } + } + var obssegments = []; + for (var j = 1; j < pts.length; j++) { + var obstacle = this.ObstacleSegment({ startpt: pts[j - 1], endpt: pts[parseInt(j.toString(), 10)], id: connector.id }); + obssegments.push(obstacle); + } + var connectorObstacle = { wrapper: connector, segments: obssegments }; + var segments = []; + if (!isHorizontal) { + for (var key = 0; key < connectorObstacle.segments.length; key++) { + var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)]; + if (obstacle.orientation === 'horizontal') { + segments.push(obstacle); + } + } + } + else { + for (var key = 0; key < connectorObstacle.segments.length; key++) { + var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)]; + if (obstacle.orientation === 'vertical') { + segments.push(obstacle); + } + } + } + for (var j = 0; j < segments.length; j++) { + var obstacleSegment = segments[parseInt(j.toString(), 10)]; + if (!this.containsValue(graph, obstacleSegment.coord)) { + graph.push({ key: obstacleSegment.coord, value: [] }); + } + var index = void 0; + for (var k = 0; k < graph.length; k++) { + var key = graph[parseInt(k.toString(), 10)].key; + if (Number(key) === obstacleSegment.coord) { + index = k; + break; + } + } + graph[parseInt(index.toString(), 10)].value.push(obstacleSegment); + } + connectorObstacles.push(connectorObstacle); + } + var modifiedgrap = []; + for (var m = 0; m < graph.length; m++) { + var row = graph[parseInt(m.toString(), 10)]; + var sortedrow = row.value; + sortedrow.sort(); + var groupby = void 0; + groupby = []; + var index = 0; + var maxEnd = Number.MIN_VALUE; + groupby.push([]); + for (var n = 0; n < sortedrow.length; n++) { + var obstacleSegment = sortedrow[parseInt(n.toString(), 10)]; + if (!(groupby[parseInt(index.toString(), 10)].length > 0) || maxEnd >= obstacleSegment.start) { + groupby[parseInt(index.toString(), 10)].push(obstacleSegment); + maxEnd = Math.max(maxEnd, groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end); + } + else { + index++; + groupby.push([]); + groupby[parseInt(index.toString(), 10)].push(obstacleSegment); + maxEnd = groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end; + } + } + for (var n = 0; n < groupby.length; n++) { + var group = groupby[parseInt(n.toString(), 10)]; + var sortedGroup = []; + for (var j = 0; j < group.length; j++) { + var e = group[parseInt(j.toString(), 10)]; + if (e.start) { + sortedGroup.push(e); + } + } + var comparingDir = isHorizontal ? 'Bottom' : 'Right'; + var directed = []; + for (var j = 0; j < sortedGroup.length; j++) { + var e = sortedGroup[parseInt(j.toString(), 10)]; + if (e.direction === comparingDir) { + directed.push(e); + } + } + var reversedirected = []; + for (var j = 0; j < sortedGroup.length; j++) { + var e = sortedGroup[parseInt(j.toString(), 10)]; + if (e.direction !== comparingDir) { + reversedirected.push(e); + } + } + var mutual = []; + if (directed.length > 0) { + var temp = directed[0].start; + var j = 0; + while (j < reversedirected.length) { + if (reversedirected[parseInt(j.toString(), 10)].end > temp) { + mutual.push(reversedirected[parseInt(j.toString(), 10)]); + reversedirected.splice(j, 1); + } + else { + j++; + } + } + } + var mutualRow = []; + mutualRow = this.updateSegmentRow(mutual, mutualRow); + var directedRow = []; + directedRow = []; + directedRow = this.updateSegmentRow(reversedirected, directedRow); + directed.reverse(); + directedRow = this.updateSegmentRow(directed, directedRow); + if (!(mutualRow[mutualRow.length - 1].length > 0)) { + mutualRow.splice(mutualRow.length - 1, 1); + } + if (!(directedRow[directedRow.length - 1].length > 0)) { + directedRow.splice(directedRow.length - 1, 1); + } + var subrow = []; + var descAdding = mutual.length > 0 && (sortedGroup[0].direction === mutual[0].direction + || sortedGroup[sortedGroup.length - 1].direction === mutual[mutual.length - 1].direction); + if (descAdding) { + subrow = directedRow; + for (var p = 0; p < mutualRow.length; p++) { + var obj = mutualRow[parseInt(p.toString(), 10)]; + subrow[subrow.length] = obj; + } + } + else { + subrow = mutualRow; + for (var p = 0; p < directedRow.length; p++) { + var obj = directedRow[parseInt(p.toString(), 10)]; + subrow[subrow.length] = obj; + } + } + if (subrow.length > 1) { + var directionModifier = 1; + if (layout.orientation === 'BottomToTop' + || layout.orientation === 'RightToLeft') { + directionModifier = -1; + } + var startCoord = row.key - (directionModifier * avaibaleSpace / 2.0); + var diff = avaibaleSpace / subrow.length; + for (var i = 0; i < subrow.length; i++) { + var newcoord = startCoord + (i * diff * directionModifier); + for (var p = 0; p < subrow[parseInt(i.toString(), 10)].length; p++) { + var obstacleSegment = subrow[parseInt(i.toString(), 10)][parseInt(p.toString(), 10)]; + obstacleSegment.coord = newcoord; + if (!this.containsValue(modifiedgrap, obstacleSegment.coord)) { + modifiedgrap.push({ key: obstacleSegment.coord, value: [] }); + } + var index_1 = void 0; + for (var k = 0; k < modifiedgrap.length; k++) { + var keyCheck = modifiedgrap[parseInt(k.toString(), 10)].key; + if (keyCheck === obstacleSegment.coord) { + index_1 = k; + break; + } + } + modifiedgrap[parseInt(index_1.toString(), 10)].value.push(obstacleSegment); + } + } + } + } + } + for (var m = 0; m < connectorObstacles.length; m++) { + var connectorObstacle = connectorObstacles[parseInt(m.toString(), 10)]; + var pts = []; + for (var i = 0; i < connectorObstacle.segments.length; i++) { + if (i === 0) { + pts.push(this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)])); + } + else if (isHorizontal) { + if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'vertical') { + pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]); + } + } + else if (!isHorizontal) { + if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'horizontal') { + pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]); + } + } + pts.push(this.getObstacleEndPoint(connectorObstacle.segments[parseInt(i.toString(), 10)])); + } + /* tslint:disable */ + connectorObstacle.wrapper["" + obstacleCollection] = []; + for (var j = 0; j < pts.length; j++) { + var point = pts[parseInt(j.toString(), 10)]; + if (j === 0 || (j > 0 && !(_primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].equals(point, pts[j - 1])))) { + connectorObstacle.wrapper["" + obstacleCollection].push(this.getPointvalue(point.x, point.y)); + } + } + /* tslint:enable */ + //EJ2-70198 - The layout ConnectionPointOrigin DifferentPoint property is not working for bezier connector + if (connectorObstacle.wrapper === "Orthogonal") { + this.resetConnectorPoints(connectorObstacle.wrapper, diagram); + } + } + }; + LineDistribution.prototype.inflate = function (rect, x, y) { + rect.x -= x; + rect.y -= y; + rect.width += 2 * x; + rect.height += 2 * y; + return rect; + }; + LineDistribution.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, bounds, orientation) { + var layoutBounds = bounds; + var isHorizontal = orientation === 'LeftToRight' || orientation === 'RightToLeft'; + var pts = connectorPoints; + if (pts.length > 2) { + var newPt = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].transform(pts[0], _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findAngle(pts[0], pts[1]), startSegmentSize); + var nextPt = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].transform(newPt, _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findAngle(pts[1], pts[2]), _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findLength(pts[1], pts[2])); + pts.splice(1, 2, newPt, nextPt); + if (intermediatePoint != null) { + var index = 2; + var ptsCount = pts.length; + var newPt1 = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].transform(pts[ptsCount - 1], _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findAngle(pts[ptsCount - 1], pts[ptsCount - 2]), startSegmentSize); + pts.splice(ptsCount - 1, 0, newPt1); + while (index < (pts.length - 2)) { + pts.splice(index, 1); + } + var edgePt = intermediatePoint; + this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height); + var line1 = []; + line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y); + line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height); + var line2 = []; + line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y); + line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y); + var line3 = []; + line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y); + line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y); + if (isHorizontal) { + line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y); + line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y); + line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y); + line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height); + line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y); + line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height); + } + var intercepts1 = [Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["intersect2"])(line1[0], line1[1], line2[0], line2[1])]; + var intercepts2 = [Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["intersect2"])(line1[0], line1[1], line3[0], line3[1])]; + if (intercepts2.length > 0) { + pts.splice(2, 0, intercepts2[0]); + } + if (intercepts1.length > 0) { + pts.splice(2, 0, intercepts1[0]); + } + } + } + var i = 1; + while (i < pts.length - 1) { + if (_primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) { + pts.splice(i, 1); + } + else if (_primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)]) === _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) { + pts.splice(i, 1); + } + else { + i++; + } + } + return pts; + }; + /* tslint:disable */ + LineDistribution.prototype.resetConnectorPoints = function (edge, diagram) { + var obstacleCollection = 'obstaclePointCollection'; + if (edge.segments[0].points + && edge.segments[0].points.length > 0 && edge["" + obstacleCollection]) { + var connector = edge; + connector.sourcePoint = edge["" + obstacleCollection][0]; + connector.targetPoint = edge["" + obstacleCollection][edge["" + obstacleCollection].length - 1]; + var segments = void 0; + segments = []; + for (var i = 0; i < edge["" + obstacleCollection].length - 1; i++) { + var point1 = edge["" + obstacleCollection][parseInt(i.toString(), 10)]; + var point2 = edge["" + obstacleCollection][i + 1]; + var length_1 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findDistance"])(point1, point2); + var direction = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getConnectorDirection"])(point1, point2); + if (i === edge["" + obstacleCollection].length - 2) { + if ((diagram.layout.orientation === 'RightToLeft' && direction === 'Left') + || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right') + || (diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom') + || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) { + length_1 = length_1 / 2; + } + } + /* tslint:enable */ + var tempSegment = new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](edge, 'segments', { type: 'Orthogonal' }, true); + tempSegment.length = length_1; + tempSegment.direction = direction; + segments.push(tempSegment); + } + connector.segments = segments; + connector.type = 'Orthogonal'; + diagram.connectorPropertyChange(connector, {}, { + type: 'Orthogonal', + segments: connector.segments + }); + } + }; + LineDistribution.prototype.getObstacleEndPoint = function (segment) { + if (segment.orientation === 'horizontal') { + if (segment.direction === 'Left') { + return this.getPointvalue(segment.start, segment.coord); + } + return this.getPointvalue(segment.end, segment.coord); + } + if (segment.direction === 'Top') { + return this.getPointvalue(segment.coord, segment.start); + } + return this.getPointvalue(segment.coord, segment.end); + }; + LineDistribution.prototype.getObstacleStartPoint = function (segment) { + if (segment.orientation === 'horizontal') { + if (segment.direction === 'Left') { + return this.getPointvalue(segment.end, segment.coord); + } + return this.getPointvalue(segment.start, segment.coord); + } + if (segment.direction === 'Top') { + return this.getPointvalue(segment.coord, segment.end); + } + return this.getPointvalue(segment.coord, segment.start); + }; + LineDistribution.prototype.updateSegmentRow = function (obstacleSegments, segmentRow) { + var k = 0; + if (!(segmentRow.length > 0)) { + segmentRow[0] = []; + } + for (var i = 0; i < obstacleSegments.length; i++) { + var obstacleSegment = obstacleSegments[parseInt(i.toString(), 10)]; + while (k < segmentRow.length) { + if (k === segmentRow.length - 1) { + segmentRow[k + 1] = []; + } + if (!(segmentRow[parseInt(k.toString(), 10)].length > 0) + || segmentRow[parseInt(k.toString(), 10)][segmentRow[parseInt(k.toString(), 10)].length - 1].end < obstacleSegment.start) { + segmentRow[parseInt(k.toString(), 10)].push(obstacleSegment); + break; + } + k++; + } + } + return segmentRow; + }; + LineDistribution.prototype.portOffsetCalculation = function (port, length, direction, i) { + if (direction === 'Top') { + port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 0 }; + } + if (direction === 'Bottom') { + port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 1 }; + } + if (direction === 'Left') { + port.offset = { x: 0, y: (i + 1) * (1.0 / (length + 1)) }; + } + if (direction === 'Right') { + port.offset = { x: 1, y: (i + 1) * (1.0 / (length + 1)) }; + } + }; + LineDistribution.prototype.addDynamicPortandDistrrbuteLine = function (layout, node, sourceDirection, targetDirection, diagram) { + if ((node.ports && node.ports.length > 0)) { + var port = node.ports; + diagram.removePorts(node, port); + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var existingPorts = node.ports; + var outConnectors = node.outEdges; + var inConnectors = node.inEdges; + this.initPort(outConnectors, diagram, node, sourceDirection, false); + this.initPort(inConnectors, diagram, node, targetDirection, true); + }; + /* tslint:disable */ + LineDistribution.prototype.initPort = function (connectors, diagram, node, targetDirection, inConnectors) { + var obstacleCollection = 'obstaclePointCollection'; + var objects = connectors; + // EJ2-61463 - Added below code to sort the objects based on the source node offset position + if (connectors.length > 1 && inConnectors) { + connectors = this.sortObjects(objects, inConnectors, diagram); + } + for (var i = 0; i <= connectors.length - 1; i++) { + var internalConnector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]]; + internalConnector["" + obstacleCollection] = []; + var newPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findPort"])(node, inConnectors ? internalConnector.targetPortID : internalConnector.sourcePortID); + var direction = targetDirection; + if (newPort === undefined) { + newPort = new _objects_port__WEBPACK_IMPORTED_MODULE_5__["PointPort"](node, 'ports', '', true); + newPort.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])() + '_LineDistribution'; + if (inConnectors) { + internalConnector.targetPortID = newPort.id; + } + else { + internalConnector.sourcePortID = newPort.id; + } + } + this.portOffsetCalculation(newPort, connectors.length, direction, i); + node.ports.push(newPort); + var portWrapper = node.initPortWrapper(node.ports[node.ports.length - 1]); + node.wrapper.children.push(portWrapper); + // EJ2-66867 - Exception occurs on calling doLayout while injecting Linerouting module + // nodes portWrapper bouds is updated below + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](node.width, node.height), node.id); + node.wrapper.arrange(node.wrapper.desiredSize); + diagram.connectorPropertyChange(internalConnector, inConnectors ? { targetPortID: '' } : { sourcePortID: '' }, + // eslint-disable-next-line + inConnectors ? { targetPortID: newPort.id } : { sourcePortID: newPort.id }); + } + }; + /* tslint:enable */ + //EJ2-61463 - Method used to sort the connectors based on the source node offset position + LineDistribution.prototype.sortObjects = function (objects, inConnectors, diagram) { + var temp; + for (var i = 0; i < objects.length; i++) { + for (var j = i + 1; j < objects.length; j++) { + var internalConnector = diagram.nameTable[objects[parseInt(i.toString(), 10)]]; + var internalConnector2 = diagram.nameTable[objects[parseInt(j.toString(), 10)]]; + if (inConnectors) { + var childNode = diagram.nameTable[internalConnector.sourceID]; + var childNode2 = diagram.nameTable[internalConnector2.sourceID]; + // For LeftToRight and RightToLeft we want to consider source node offsetY position + if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') { + if (childNode.offsetY > childNode2.offsetY) { + temp = objects[parseInt(i.toString(), 10)]; + objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)]; + objects[parseInt(j.toString(), 10)] = temp; + } + } + else { + // For TopToBottom or BottomToTop means we want to consider source node offsetX position + if (childNode.offsetX > childNode2.offsetX) { + temp = objects[parseInt(i.toString(), 10)]; + objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)]; + objects[parseInt(j.toString(), 10)] = temp; + } + } + } + } + } + return objects; + }; + LineDistribution.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell, matrixModel) { + if (!(value === 0)) { + var matrix = matrixModel.matrix; + var matrixRow = matrix[startingCell.level].value; + var index = matrixRow.indexOf(startingCell); + for (var i = index; i < matrixRow.length; i++) { + matrixRow[parseInt(i.toString(), 10)].offset += value; + } + if (shiftChildren) { + if (startingCell.visitedChildren.length > 0) { + this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell, matrixModel); + } + else { + var i = 1; + var nextSibilingwithChild = null; + while (index + i < matrixRow.length) { + var nextCell = matrixRow[index + i]; + if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) { + if (nextCell.visitedChildren.length > 0) { + nextSibilingwithChild = nextCell; + } + else { + i++; + continue; + } + } + break; + } + if (nextSibilingwithChild != null) { + this.shiftMatrixCells(value, nextSibilingwithChild.visitedChildren[0], true, nextSibilingwithChild, matrixModel); + } + } + } + } + }; + LineDistribution.prototype.arrangeMatrix = function (cell, parent, matrixModel) { + var layoutSettings = matrixModel.model.layout; + var isHorizontal = layoutSettings.orientation === 'LeftToRight' + || layoutSettings.orientation === 'RightToLeft'; + var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + var matrix = matrixModel.matrix; + var matrixRow = matrix[cell.level].value; + var matrixIndex = matrixRow.indexOf(cell); + if (cell.visitedParents.length > 0) { + if (cell.visitedParents.length === 1) { + cell.initialOffset = cell.offset; + } + if (matrixIndex + 1 < matrixRow.length) { + var nextCell = matrixRow[matrixIndex + 1]; + if (nextCell.visitedParents.length > 0) { + if (!this.containsValue(cell.visitedParents, parent)) { + cell.visitedParents.push(parent); + parent.ignoredChildren.push(cell); + return; + } + } + } + } + if (!(cell.children.length > 0)) { + var validOffset = cell.offset; + if (matrixIndex > 0) { + var prevCell = matrixRow[matrixIndex - 1]; + validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2); + } + this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel); + } + else { + for (var i = 0; i < cell.children.length; i++) { + var matrixCellChild = cell.children[parseInt(i.toString(), 10)]; + if (!this.containsValue(cell.visitedChildren, matrixCellChild)) { + this.arrangeMatrix(matrixCellChild, cell, matrixModel); + cell.visitedChildren.push(matrixCellChild); + } + } + if (cell.visitedChildren.length > 0) { + var children = cell.visitedChildren.slice(); + for (var i = 0; i < cell.ignoredChildren.length; i++) { + //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i]; + children.splice(0, 1); + cell.visitedChildren.splice(0, 1); + } + if (children.length > 0) { + var firstChild = cell.visitedChildren[0]; + var lastChild = cell.visitedChildren[cell.visitedChildren.length - 1]; + var x1 = firstChild.offset - (firstChild.size / 2); + var x2 = lastChild.offset + (lastChild.size / 2); + var newoffset = (x1 + x2) / 2; + if (newoffset < cell.offset) { + this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel); + } + else if (newoffset > cell.offset) { + this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel); + } + } + } + } + if (!this.containsValue(cell.visitedParents, parent)) { + cell.visitedParents.push(parent); + } + }; + LineDistribution.prototype.getFixedTerminalPoint = function () { + var pt = null; + return pt; + }; + LineDistribution.prototype.setAbsoluteTerminalPoint = function (point, isSource, edge) { + var absolutePoints = 'absolutePoints'; + if (isSource) { + if (edge["" + absolutePoints] == null) { + edge["" + absolutePoints] = []; + } + if (edge["" + absolutePoints].length === 0) { + edge["" + absolutePoints].push(point); + } + else { + edge["" + absolutePoints][0] = point; + } + } + else { + if (edge["" + absolutePoints] == null) { + edge["" + absolutePoints] = []; + edge["" + absolutePoints].push(null); + edge["" + absolutePoints].push(point); + } + else if (edge["" + absolutePoints].length === 1) { + edge["" + absolutePoints].push(point); + } + else { + edge["" + absolutePoints][edge["" + absolutePoints].length - 1] = point; + } + } + }; + LineDistribution.prototype.updateFixedTerminalPoint = function (edge, source) { + this.setAbsoluteTerminalPoint(this.getFixedTerminalPoint(), source, edge); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + LineDistribution.prototype.updateFixedTerminalPoints = function (connectors, diagram) { + this.updateFixedTerminalPoint(connectors, true); + this.updateFixedTerminalPoint(connectors, false); + }; + LineDistribution.prototype.updatePoints = function (edge, points) { + var absolutePoints = 'absolutePoints'; + if (edge != null) { + var pts = []; + pts.push(edge["" + absolutePoints][0]); + for (var i = 0; i < points.length; i++) { + if (points[parseInt(i.toString(), 10)] != null) { + var pt = points[parseInt(i.toString(), 10)]; + pts.push(pt); + } + } + var tmp = edge["" + absolutePoints]; + pts.push(tmp[tmp.length - 1]); + edge["" + absolutePoints] = pts; + } + }; + LineDistribution.prototype.updateFloatingTerminalPoint = function (edge, start, end, source) { + this.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(edge, start, end, source), source, edge); + }; + LineDistribution.prototype.getNextPoint = function (edge, opposite, source) { + var absolutePoints = 'absolutePoints'; + var pts = edge["" + absolutePoints]; + var point = null; + if (pts != null && pts.length >= 2) { + var count = pts.length; + point = pts[(source) ? Math.min(1, count - 1) : Math.max(0, count - 2)]; + } + return point; + }; + LineDistribution.prototype.getCenterX = function (start) { + if (start.offsetX) { + return start.offsetX + start.width; + } + else { + return start.x + start.width; + } + }; + LineDistribution.prototype.getCenterY = function (start) { + if (start.offsetY) { + return start.offsetY + start.height; + } + else { + return start.y + start.height; + } + }; + LineDistribution.prototype.getPerimeterBounds = function (border) { + //let newBounds: Rect; + var newBounds = border.wrapper.outerBounds; + return newBounds; + }; + LineDistribution.prototype.getPerimeterFunction = function (bounds, next, orthogonal) { + var cx = this.getCenterX(bounds); + var cy = this.getCenterY(bounds); + var dx = next.x - cx; + var dy = next.y - cy; + var alpha = Math.atan2(dy, dx); + var point = this.getPointvalue(0, 0); + var pi = Math.PI; + var pi2 = Math.PI / 2; + var beta = pi2 - alpha; + var t = Math.atan2(bounds.height, bounds.width); + if (alpha < -pi + t || alpha > pi - t) { + // Left edge + point.x = bounds.x; + point.y = cy - bounds.width * Math.tan(alpha) / 2; + } + else if (alpha < -t) { + // Top Edge + point.y = bounds.y; + point.x = cx - bounds.height * Math.tan(beta) / 2; + } + else if (alpha < t) { + // Right Edge + point.x = bounds.x + bounds.width; + point.y = cy + bounds.width * Math.tan(alpha) / 2; + } + else { + // Bottom Edge + point.y = bounds.y + bounds.height; + point.x = cx + bounds.height * Math.tan(beta) / 2; + } + if (orthogonal) { + if (next.x >= bounds.x && + next.x <= bounds.x + bounds.width) { + point.x = next.x; + } + else if (next.y >= bounds.y && + next.y <= bounds.y + bounds.height) { + point.y = next.y; + } + if (next.x < bounds.x) { + point.x = bounds.x; + } + else if (next.x > bounds.x + bounds.width) { + point.x = bounds.x + bounds.width; + } + if (next.y < bounds.y) { + point.y = bounds.y; + } + else if (next.y > bounds.y + bounds.height) { + point.y = bounds.y + bounds.height; + } + } + return point; + }; + LineDistribution.prototype.getPerimeterPoint = function (terminal, next, orthogonal) { + var point = null; + if (terminal != null) { + if (next != null) { + var bounds = this.getPerimeterBounds(terminal); + if (bounds.width > 0 || bounds.height > 0) { + point = this.getPointvalue(next.x, next.y); + point = this.getPerimeterFunction(bounds, point, orthogonal); + } + } + } + return point; + }; + LineDistribution.prototype.getFloatingTerminalPoint = function (edge, start, end, source) { + start = start; + var next = this.getNextPoint(edge, end, source); + var orth = 1; + var alpha = 0; + var pt = this.getPerimeterPoint(start, next, alpha === 0 && orth); + return pt; + }; + LineDistribution.prototype.updateFloatingTerminalPoints = function (state, source, target) { + var absolutePoints = 'absolutePoints'; + var pts = state["" + absolutePoints]; + var p0 = pts[0]; + var pe = pts[pts.length - 1]; + if (pe == null && target != null) { + this.updateFloatingTerminalPoint(state, target, source, false); + } + if (p0 == null && source != null) { + this.updateFloatingTerminalPoint(state, source, target, true); + } + }; + LineDistribution.prototype.getConnectorPoints = function (connectors, diagram) { + var absolutePoints = 'absolutePoints'; + var geometry = 'geometry'; + this.updateFixedTerminalPoints(connectors, diagram); + this.updatePoints(connectors, connectors["" + geometry].points); + this.updateFloatingTerminalPoints(connectors, diagram.nameTable[connectors.sourceID], diagram.nameTable[connectors.targetID]); + connectors["" + absolutePoints][0].y = connectors.sourcePoint.y; + connectors["" + absolutePoints][connectors["" + absolutePoints].length - 1].y = connectors.targetPoint.y; + }; + LineDistribution.prototype.adjustSegmentPoints = function (temppoints, points, diagram) { + if (diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop') { + temppoints[0].x = points[0].x; + temppoints[1].x = points[1].x; + temppoints[temppoints.length - 1].x = points[points.length - 1].x; + temppoints[temppoints.length - 2].x = points[points.length - 2].x; + if (diagram.layout.orientation === 'TopToBottom') { + temppoints[temppoints.length - 2].y = temppoints[temppoints.length - 1].y - diagram.layout.verticalSpacing / 2; + temppoints[1].y = temppoints[0].y + diagram.layout.verticalSpacing / 2; + } + else { + temppoints[1].y = temppoints[0].y - diagram.layout.verticalSpacing / 2; + temppoints[temppoints.length - 2].y = temppoints[temppoints.length - 1].y + diagram.layout.verticalSpacing / 2; + } + temppoints[2].y = temppoints[1].y; + temppoints[temppoints.length - 3].y = temppoints[temppoints.length - 2].y; + } + if (diagram.layout.orientation === 'RightToLeft' || diagram.layout.orientation === 'LeftToRight') { + temppoints[0] = points[0]; + temppoints[1] = points[1]; + temppoints[temppoints.length - 1] = points[points.length - 1]; + temppoints[temppoints.length - 2] = points[points.length - 2]; + if (diagram.layout.orientation === 'RightToLeft') { + temppoints[1].x = temppoints[0].x - diagram.layout.verticalSpacing / 2; + } + if (diagram.layout.orientation === 'LeftToRight') { + temppoints[1].x = temppoints[0].x + diagram.layout.verticalSpacing / 2; + } + temppoints[2].x = temppoints[1].x; + if (diagram.layout.orientation === 'RightToLeft') { + temppoints[temppoints.length - 2].x = temppoints[temppoints.length - 1].x + diagram.layout.verticalSpacing / 2; + } + if (diagram.layout.orientation === 'LeftToRight') { + temppoints[temppoints.length - 2].x = temppoints[temppoints.length - 1].x - diagram.layout.verticalSpacing / 2; + } + temppoints[temppoints.length - 3].x = temppoints[temppoints.length - 2].x; + } + }; + LineDistribution.prototype.updateConnectorSegmentPoints = function (temppoints, diagram) { + if (temppoints.length > 1) { + if ((diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop')) { + for (var i = 1; i < temppoints.length - 1; i = i + 2) { + if (temppoints[parseInt(i.toString(), 10)].y !== temppoints[i + 1].y && (diagram.layout.orientation === 'TopToBottom' + || diagram.layout.orientation === 'BottomToTop')) { + temppoints[i + 1].y = temppoints[parseInt(i.toString(), 10)].y; + } + } + } + else { + var check = false; + for (var i = temppoints.length - 1; i > 1; i = i = i - 2) { + if (diagram.layout.orientation === 'RightToLeft' || diagram.layout.orientation === 'LeftToRight') { + if (!check) { + temppoints[i - 1].x = temppoints[i - 2].x; + check = true; + } + else { + temppoints[i - 2].x = temppoints[i - 1].x; + check = false; + } + } + else { + temppoints[i + 1].x = temppoints[parseInt(i.toString(), 10)].x; + } + } + } + } + }; + LineDistribution.prototype.updateConnectorSegmentPoint = function (connector, diagram) { + var absolutePoints = 'absolutePoints'; + var segments = []; + for (var i = 0; i < connector["" + absolutePoints].length - 1; i++) { + var point1 = connector["" + absolutePoints][parseInt(i.toString(), 10)]; + var point2 = connector["" + absolutePoints][i + 1]; + var length_2 = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findDistance"])(point1, point2); + var direction = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getConnectorDirection"])(point1, point2); + if (i === connector["" + absolutePoints].length - 2) { + if ((diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom') + || (diagram.layout.orientation === 'RightToLeft' && direction === 'Left') + || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right') + || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) { + length_2 = length_2 / 2; + } + } + var tempSegment = new _objects_connector__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + tempSegment.length = length_2; + tempSegment.direction = direction; + segments.push(tempSegment); + } + connector.segments = segments; + connector.type = 'Orthogonal'; + diagram.connectorPropertyChange(connector, {}, { + type: 'Orthogonal', + segments: connector.segments + }); + }; + /** @private */ + LineDistribution.prototype.resetConnectorSegments = function (connector) { + var segements = connector.segments; + for (var i = segements.length; i > 1; i--) { + segements.splice(i - 1, 1); + } + }; + /* tslint:disable */ + /** @private */ + LineDistribution.prototype.resetRoutingSegments = function (connector, diagram, points) { + if (connector['levelSkip']) { + var absolutePoints = 'absolutePoints'; + //let temppoints: PointModel[]; + this.getConnectorPoints(connector, diagram); + var temppoints = connector["" + absolutePoints]; + this.updateConnectorSegmentPoints(temppoints, diagram); + this.adjustSegmentPoints(temppoints, points, diagram); + this.updateConnectorSegmentPoint(connector, diagram); + } + }; + /* tslint:enable */ + /** @private */ + LineDistribution.prototype.arrangeElements = function (matrixModel, layout) { + var layoutSettings = matrixModel.model.layout; + var isHorizontal; + if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + else { + isHorizontal = false; + } + var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + // Need to group element before + this.groupLayoutCells(matrixModel); + this.createMatrixCells(matrixModel); + for (var j = 0; j < matrixModel.matrix.length; j++) { + var matrixKey = matrixModel.matrix[parseInt(j.toString(), 10)].key; + var matrixrow = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value; + for (var i = 1; i < matrixrow.length; i++) { + var cell = matrixrow[parseInt(i.toString(), 10)]; + var prevCell = matrixrow[i - 1]; + cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2); + } + } + for (var j = 0; j < matrixModel.matrix[0].value.length; j++) { + var root = matrixModel.matrix[0].value[parseInt(j.toString(), 10)]; + this.arrangeMatrix(root, null, matrixModel); + } + for (var k = 0; k < matrixModel.matrix.length; k++) { + var row = matrixModel.matrix[parseInt(k.toString(), 10)].value; + for (var i = 0; i < row.length; i++) { + var cell = row[parseInt(i.toString(), 10)]; + if (cell.visitedParents.length > 1) { + var firstParent = cell.visitedParents[0]; + var lastParent = cell.visitedParents[cell.visitedParents.length - 1]; + var firstVertexParent = this.findParentVertexCellGroup(firstParent); + var lastVertexParent = this.findParentVertexCellGroup(lastParent); + if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) { + firstParent = firstVertexParent; + } + if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) { + lastParent = firstVertexParent; + } + var newoffset = (firstParent.offset + lastParent.offset) / 2; + var availOffsetMin = cell.initialOffset; + var availOffsetMax = cell.offset; + if (!(availOffsetMax === availOffsetMin)) { + if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) { + this.translateMatrixCells(newoffset - cell.offset, cell); + } + else if (newoffset < availOffsetMin) { + this.translateMatrixCells(availOffsetMin - cell.offset, cell); + } + } + } + } + } + this.setXYforMatrixCell(matrixModel); + }; + LineDistribution.prototype.findParentVertexCellGroup = function (cell) { + if (cell.cells[0]) { + return cell; + } + if (cell.parents.length > 0) { + return this.findParentVertexCellGroup(cell.parents[0]); + } + return cell; + }; + LineDistribution.prototype.setXYforMatrixCell = function (matrixModel) { + var layoutSettings = matrixModel.model.layout; + var isHorizontal = layoutSettings.orientation === 'LeftToRight' + || layoutSettings.orientation === 'RightToLeft'; + var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + for (var i = 0; i < matrixModel.matrix.length; i++) { + var matrixrow1 = matrixModel.matrix[parseInt(i.toString(), 10)].value; + for (var j = 0; j < matrixrow1.length; j++) { + var matrixCell = matrixrow1[parseInt(j.toString(), 10)]; + var start = matrixCell.offset - (matrixCell.size / 2); + for (var k = 0; k < matrixCell.cells.length; k++) { + var cell = matrixCell.cells[parseInt(k.toString(), 10)]; + var type = this.getType(cell.type); + if (type === 'internalVertex') { + var internalVertex = cell; + var width = internalVertex.cell.geometry.width; + var height = internalVertex.cell.geometry.height; + if (isHorizontal) { + internalVertex.cell.geometry = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](matrixModel.rowOffset[matrixCell.level] - (width / 2), start, width, height); + } + else { + internalVertex.cell.geometry = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](start, matrixModel.rowOffset[matrixCell.level] - (height / 2), width, height); + } + start += (isHorizontal ? height : width) + spacing; + } + else if (type === 'internalEdge') { + var internalEdges = cell; + var parent_1 = matrixCell.visitedParents[0]; + var isContainSibilingVertex = false; + if (parent_1) { + for (var l = 0; l < parent_1.visitedChildren.length; l++) { + var children = parent_1.visitedChildren[parseInt(l.toString(), 10)]; + var cells = []; + for (var m = 0; m < children.cells.length; m++) { + var cell_1 = children.cells[parseInt(m.toString(), 10)]; + var type_1 = this.getType(cell_1.type); + if (type_1 === 'internalVertex') { + cells.push(cell_1); + } + } + if (cells.length > 0) { + isContainSibilingVertex = true; + break; + } + } + } + // Need to updated line width + var lineWidth = 1; + var edgeSpacing = 5; + for (var m = 0; m < internalEdges.edges.length; m++) { + var internalConnector = internalEdges.edges[parseInt(m.toString(), 10)]; + var pt = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]); + if (isHorizontal) { + pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0)); + } + if (this.containsValue(this.getEdgeMapper(), internalConnector)) { + var key = void 0; + for (var l = 0; l < this.getEdgeMapper().length; l++) { + if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) { + key = l; + break; + } + } + (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt); + } + start += lineWidth + edgeSpacing; + } + start += spacing; + } + } + } + } + }; + LineDistribution.prototype.getEdgeMapper = function () { + return this.edgeMapper; + }; + /** @private */ + LineDistribution.prototype.setEdgeMapper = function (value) { + this.edgeMapper.push(value); + }; + LineDistribution.prototype.translateMatrixCells = function (value, cell) { + if (!(value === 0)) { + cell.offset += value; + if (cell.visitedChildren.length > 0) { + for (var i = 0; i < cell.visitedChildren.length; i++) { + var cellVisitedChild = cell.visitedChildren[parseInt(i.toString(), 10)]; + this.translateMatrixCells(value, cellVisitedChild); + } + } + } + }; + LineDistribution.prototype.groupLayoutCells = function (matrixModel) { + var ranks = matrixModel.model.ranks; + for (var j = ranks.length - 1; j >= 0; j--) { + var vertices = []; + for (var v = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) { + var rank = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]; + var type = this.getType(rank.type); + if (type === 'internalVertex') { + vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]); + } + } + var edges = []; + for (var e = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) { + var rank = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)]; + var type = this.getType(rank.type); + if (type === 'internalEdge') { + edges.push(rank); + } + } + while (vertices.length > 1) { + var vertex1 = vertices[0]; + var parentset1 = this.selectIds(vertex1.connectsAsTarget, true); + var childset1 = this.selectIds(vertex1.connectsAsSource, false); + while (vertices.length > 1) { + var vertex2 = vertices[1]; + var parentset2 = this.selectIds(vertex2.connectsAsTarget, true); + var childset2 = this.selectIds(vertex2.connectsAsSource, false); + var parentequals = this.compareLists(parentset1, parentset2); + var childequals = this.compareLists(childset1, childset2); + if (parentequals && childequals) { + this.updateMutualSharing(vertices[0], vertex2.id); + this.updateMutualSharing(vertices[1], vertex1.id); + vertices.splice(1, 1); + continue; + } + break; + } + vertices.splice(0, 1); + } + while (edges.length > 1) { + var internalEdge = edges[0]; + var parentset = internalEdge.source; + var childset = internalEdge.target; + if (parentset.identicalSibiling != null) { + var groupedges = []; + for (var i = 0; i < edges.length; i++) { + var edge = edges[parseInt(i.toString(), 10)]; + if (edge.target === childset) { + groupedges.push(edge); + } + } + for (var i = 0; i < groupedges.length; i++) { + var internalEdgese = groupedges[parseInt(i.toString(), 10)]; + if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) { + internalEdgese.source.identicalSibiling = null; + } + } + internalEdge.source.identicalSibiling = null; + } + edges.splice(0, 1); + } + } + }; + LineDistribution.prototype.getType = function (type) { + if (type === 'internalVertex') { + return 'internalVertex'; + } + else { + return 'internalEdge'; + } + }; + LineDistribution.prototype.selectIds = function (node, source) { + var returnIds = []; + for (var i = 0; i < node.length; i++) { + var connector = node[parseInt(i.toString(), 10)]; + if (source) { + { + returnIds.push(connector.source.id); + } + } + else { + returnIds.push(connector.target.id); + } + } + return returnIds; + }; + LineDistribution.prototype.compareLists = function (list1, list2) { + var newList1 = list1.slice(); + var newList2 = list2.slice(); + if (newList1.length === newList2.length) { + if (newList1.length === 0) { + return true; + } + else { + var isSame = true; + for (var i = 0; i < newList2.length; i++) { + var o = newList2[parseInt(i.toString(), 10)]; + // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement. + if (newList1.indexOf(o) === -1) { + isSame = false; + break; + } + } + return isSame; + } + } + return false; + }; + LineDistribution.prototype.updateMutualSharing = function (cell, id) { + if (cell.identicalSibiling != null) { + cell.identicalSibiling.push(id); + } + else { + cell.identicalSibiling = []; + cell.identicalSibiling.push(id); + } + }; + LineDistribution.prototype.matrixCellGroup = function (options) { + options.level = options.level; + options.parents = options.parents; + options.children = options.children; + options.visitedChildren = options.visitedChildren; + options.visitedParents = options.visitedParents; + options.ignoredChildren = options.ignoredChildren; + options.cells = options.cells; + options.offset = options.offset; + options.initialOffset = options.initialOffset; + return options; + }; + LineDistribution.prototype.getPointvalue = function (x, y) { + return { 'x': Number(x) || 0, 'y': Number(y) || 0 }; + }; + LineDistribution.prototype.containsValue = function (list, keyValue) { + for (var i = 0; i < list.length; i++) { + if (list[parseInt(i.toString(), 10)].key === keyValue || list[parseInt(i.toString(), 10)] === keyValue) { + return true; + } + } + return false; + }; + /* tslint:disable */ + LineDistribution.prototype.createMatrixCells = function (matrixModel) { + var layoutSettings = matrixModel.model.layout; + var isHorizontal = layoutSettings.orientation === 'LeftToRight' + || layoutSettings.orientation === 'RightToLeft'; + var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + var spacingInverse = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing; + var ranks = matrixModel.model.ranks; + var matrixCellMapper = []; + var rowoffset = -spacingInverse; + for (var j = ranks.length - 1; j >= 0; j--) { + var maxDimension = 0.0; + var index = (ranks.length - 1) - j; + var rank = ranks[parseInt(j.toString(), 10)].slice(); //.ToList(); + // Creating new row and adding it to matrix + var matrixRow = []; + matrixModel.matrix.push({ key: index, value: matrixRow }); + // Creating new row mapper + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var tempMatrixRow = []; + matrixCellMapper.push({ index: index, value: tempMatrixRow }); + while (rank.length > 0) //.Any()) + { + var layoutCell = rank[0]; + // eslint-disable-next-line max-len + var matrixCell = this.matrixCellGroup({ level: index, parents: [], children: [], visitedParents: [], visitedChildren: [], ignoredChildren: [], cells: [], size: 0, offset: 0, initialOffset: 0 }); + matrixRow.push(matrixCell); + var type = this.getType(layoutCell.type); + if (type === 'internalVertex') { + matrixCell.cells.push(layoutCell); + if (layoutCell.identicalSibiling != null) { + for (var i = 0; i < rank.length; i++) { + var internalVertex = rank[parseInt(i.toString(), 10)]; + var type_2 = this.getType(internalVertex.type); + if (type_2 === 'internalVertex' && this.containsValue(layoutCell.identicalSibiling, internalVertex.id)) { + matrixCell.cells.push(internalVertex); + if (matrixCell.cells.length > layoutCell.identicalSibiling.length) { + break; + } + } + } + } + for (var i = 0; i < matrixCell.cells.length; i++) { + var internalVertex = matrixCell.cells[parseInt(i.toString(), 10)]; + var type_3 = this.getType(internalVertex.type); + if (type_3 === 'internalVertex') { + var geometry = internalVertex.cell.geometry; + matrixCell.size += isHorizontal ? geometry.height : geometry.width; + maxDimension = Math.max(maxDimension, !isHorizontal ? geometry.height : geometry.width); + tempMatrixRow.push({ key: internalVertex.id, value: matrixCell }); + if (internalVertex.connectsAsTarget.length > 0) { + for (var k = 0; k < internalVertex.connectsAsTarget.length; k++) { + var internalEdgese = internalVertex.connectsAsTarget[parseInt(k.toString(), 10)]; + var key = null; + if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.ids)) { + key = internalEdgese.ids; + } + else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.source.id)) { + key = internalEdgese.source.id; + } + if (key != null) { + var parentcellValue = matrixCellMapper[index - 1].value; + var parentMartixCell = void 0; + for (var v = 0; v < parentcellValue.length; v++) { + if (parentcellValue[parseInt(v.toString(), 10)].key === key) { + parentMartixCell = parentcellValue[parseInt(v.toString(), 10)].value; + break; + } + } + if (!this.containsValue(matrixCell.parents, parentMartixCell)) { + matrixCell.parents.push(parentMartixCell); + } + if (!this.containsValue(parentMartixCell.children, matrixCell)) { + parentMartixCell.children.push(matrixCell); + } + } + } + } + rank.reverse(); + rank.pop(); + rank.reverse(); + } + } + matrixCell.size += (matrixCell.cells.length - 1) * spacing; + } + else if (type === 'internalEdge') { + matrixCell.cells.push(layoutCell); + for (var i = 0; i < matrixCell.cells.length; i++) { + var internalEdge = matrixCell.cells[parseInt(i.toString(), 10)]; + var type1 = this.getType(internalEdge.type); + if (type1 === 'internalEdge' && internalEdge.edges != null) { + // need to spacing based on its source and target Node + var edgeSpacing = 5; + var cellSize = -edgeSpacing; + for (var k = 0; k < internalEdge.edges.length; k++) { + //const internalConnector = internalEdge.edges[k]; + // need to summ up the line width + cellSize += 1 + edgeSpacing; + } + matrixCell.size += cellSize; + } + tempMatrixRow.push({ key: internalEdge.ids, value: matrixCell }); + var key = null; + if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.ids)) { + key = internalEdge.ids; + } + else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.source.id)) { + key = internalEdge.source.id; + } + if (key != null) { + var parentcell = matrixCellMapper[index - 1].value; + var parentMartixCell = void 0; + for (var v = 0; v < parentcell.length; v++) { + if (parentcell[parseInt(v.toString(), 10)].key === key) { + parentMartixCell = parentcell[parseInt(v.toString(), 10)].value; + break; + } + } + if (!this.containsValue(matrixCell.parents, parentMartixCell)) { + matrixCell.parents.push(parentMartixCell); + } + if (!this.containsValue(parentMartixCell.children, matrixCell)) { + parentMartixCell.children.push(matrixCell); + } + } + rank.reverse(); + rank.pop(); + rank.reverse(); + } + matrixCell.size += (matrixCell.cells.length - 1) * spacing; + } + } + matrixModel.rowOffset.push(rowoffset + (maxDimension / 2) + spacingInverse); + rowoffset += maxDimension + spacingInverse; + } + }; + /* eslint-disable */ + /** @private */ + LineDistribution.prototype.updateLayout = function (viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable) { + { + var trnsX = ((viewPort.x - modelBounds.width) / 2) - modelBounds.x; + var trnsY = ((viewPort.y - modelBounds.height) / 2) - modelBounds.y; + trnsX = Math.round(trnsX); + trnsY = Math.round(trnsY); + var modifiedConnectors = []; + var transModelBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](modelBounds.x + trnsX, modelBounds.y + trnsY, modelBounds.width, modelBounds.height); + var margin = layoutProp.margin; + var isHorizontal = layout.orientation === 'RightToLeft' || layout.orientation === 'LeftToRight'; + var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing; + for (var i = 0; i < nodeWithMultiEdges.length; i++) { + var node = nodeWithMultiEdges[i]; + if (node.outEdges != null && node.outEdges.length > 0) { + var count = node.outEdges.length; + for (var j = 0; j < count; j++) { + var internalConnector = nameTable[node.outEdges[j]]; + internalConnector['pointCollection'] = []; + if (count > 1) { + var segmentsize = inversespacing / 2.0; + var intermediatePoint = null; + var key = void 0; + var edgeMapper = this.getEdgeMapper(); + for (var k = 0; k < edgeMapper.length; k++) { + if (edgeMapper[k].key === internalConnector) { + key = k; + break; + } + } + if (edgeMapper[key].value.length > 0) { + var edgePoint = edgeMapper[key].value[0]; + var dxValue1 = edgePoint.x + margin.left; + var dyValue1 = edgePoint.y + margin.top; + var x1 = dxValue1; + var y1 = dyValue1; + if (layout.orientation === 'BottomToTop') { + y1 = modelBounds.height - dyValue1; + } + else if (layout.orientation === 'RightToLeft') { + x1 = modelBounds.width - dxValue1; + } + x1 += trnsX; + y1 += trnsY; + intermediatePoint = this.getPointvalue(x1, y1); + } + var pts = []; + for (var i_1 = 0; i_1 < internalConnector.segments.length; i_1++) { + var pt = internalConnector.segments[i_1].points; + // eslint-disable-next-line guard-for-in + for (var temp in pt) { + pts.push(pt[temp]); + } + } + // eslint-disable-next-line max-len + pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layout.orientation); + for (var p = 0; p < pts.length; p++) { + var pt = pts[p]; + internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y)); + } + this.resetConnectorPoints(internalConnector, this.diagram); + } + modifiedConnectors.push(internalConnector); + } + } + if (node.inEdges != null && node.inEdges.length > 1) { + var count = node.inEdges.length; + var edgeMapper = this.getEdgeMapper(); + for (var j = 0; j < count; j++) { + var internalConnector = nameTable[node.inEdges[j]]; + if (!this.containsValue(modifiedConnectors, internalConnector)) { + internalConnector['pointCollection'] = []; + } + if (count > 1) { + var segmentsize = inversespacing / 2.0; + var intermediatePoint = null; + var key = void 0; + var k = void 0; + for (k = 0; k < edgeMapper.length; k++) { + if (edgeMapper[k].key === internalConnector) { + key = k; + break; + } + } + if (edgeMapper[key].value.length > 0 + && !this.containsValue(modifiedConnectors, internalConnector)) { + var edgePt = edgeMapper[k].value[0]; + var dx1 = edgePt.x + margin.left; + var dy1 = edgePt.y + margin.top; + // eslint-disable-next-line one-var + var x1 = dx1, y1 = dy1; + if (layout.orientation === 'BottomToTop') { + y1 = modelBounds.height - dy1; + } + else if (layout.orientation === 'RightToLeft') { + x1 = modelBounds.width - dx1; + } + x1 += trnsX; + y1 += trnsY; + intermediatePoint = this.getPointvalue(x1, y1); + } + var pts = []; + for (var p = 0; p < internalConnector.segments.length; p++) { + var pt = internalConnector.segments[p].points; + // eslint-disable-next-line guard-for-in + for (var temp in pt) { + pts.push(pt[temp]); + } + } + pts.reverse(); + // eslint-disable-next-line + pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layoutProp.orientation); + pts.reverse(); + internalConnector['pointCollection'] = []; + for (var p = 0; p < pts.length; p++) { + var pt = pts[p]; + internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y)); + } + this.resetConnectorPoints(internalConnector, this.diagram); + } + } + } + } + } + }; + return LineDistribution; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-routing.js": +/*!****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/line-routing.js ***! + \****************************************************************************************/ +/*! exports provided: LineRouting */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LineRouting", function() { return LineRouting; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); + + + +/** + * Line Routing + */ +var LineRouting = /** @__PURE__ @class */ (function () { + /** + * Constructor for the line routing module + * + * @private + */ + function LineRouting() { + this.size = 20; + this.intermediatePoints = []; + this.gridCollection = []; + this.startArray = []; + this.targetGridCollection = []; + this.sourceGridCollection = []; + this.considerWalkable = []; + //constructs the line routing module + } + /** + * lineRouting method \ + * + * @returns { void } lineRouting method .\ + * @param {Diagram} diagram - provide the source value. + * + * @private + */ + LineRouting.prototype.lineRouting = function (diagram) { + var length = diagram.connectors.length; + this.renderVirtualRegion(diagram); + if (length > 0) { + for (var k = 0; k < length; k++) { + var connector = diagram.connectors[parseInt(k.toString(), 10)]; + if (connector.type === 'Orthogonal' && connector.visible) { + this.refreshConnectorSegments(diagram, connector, true); + } + } + } + }; + /** @private */ + /** + * renderVirtualRegion method \ + * + * @returns { void } renderVirtualRegion method .\ + * @param {Diagram} diagram - provide the source value. + * @param {boolean} isUpdate - provide the target value. + * + * @private + */ + LineRouting.prototype.renderVirtualRegion = function (diagram, isUpdate) { + /* tslint:disable */ + var extraBounds = this.size; + if (diagram.spatialSearch['pageTop'] < 0 || diagram.spatialSearch['pageLeft'] < 0) { + extraBounds = this.size + (this.size / 2); + } + var right = diagram.spatialSearch['pageRight'] + extraBounds; + var bottom = diagram.spatialSearch['pageBottom'] + extraBounds; + var left = diagram.spatialSearch['pageLeft'] - extraBounds; + var top = diagram.spatialSearch['pageTop'] - extraBounds; + left = left < 0 ? left - 20 : 0; + top = top < 0 ? top - 20 : 0; + /* tslint:enable */ + if ((isUpdate && (this.width !== (right - left) || this.height !== (bottom - top) || + this.diagramStartX !== left || this.diagramStartY !== top)) || isUpdate === undefined) { + this.width = right - left; + this.height = bottom - top; + this.diagramStartX = left; + this.diagramStartY = top; + this.gridCollection = []; + this.noOfRows = this.width / this.size; + this.noOfCols = this.height / this.size; + var size = this.size; + var x = this.diagramStartX < 0 ? this.diagramStartX : 0; + var y = this.diagramStartY < 0 ? this.diagramStartY : 0; + for (var i = 0; i < this.noOfCols; i++) { + for (var j = 0; j < this.noOfRows; j++) { + if (i === 0) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.gridCollection.push([0]); + } + var grid = { + x: x, y: y, width: size, height: size, gridX: j, + gridY: i, walkable: true, tested: undefined, nodeId: [] + }; + this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)] = grid; + x += size; + } + x = this.diagramStartX < 0 ? this.diagramStartX : 0; + y += size; + } + } + var nodes = this.findNodes(diagram.nodes); + this.updateNodesInVirtualRegion(nodes); + }; + LineRouting.prototype.findNodes = function (nodes) { + var objects = []; + var node; + for (var i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if (node.shape.type !== 'SwimLane' && !node.isLane && !node.isPhase && !node.isHeader && node.visible) { + objects.push(node); + } + } + return objects; + }; + LineRouting.prototype.updateNodesInVirtualRegion = function (diagramNodes) { + var size = this.size; + var x = this.diagramStartX < 0 ? this.diagramStartX : 0; + var y = this.diagramStartY < 0 ? this.diagramStartY : 0; + for (var i = 0; i < this.noOfCols; i++) { + for (var j = 0; j < this.noOfRows; j++) { + var grid = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)]; + var rectangle = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](x, y, this.size, this.size); + var isContains = void 0; + var k = void 0; + grid.walkable = true; + grid.tested = undefined; + grid.nodeId = []; + for (k = 0; k < diagramNodes.length; k++) { + if (diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds) { + isContains = this.intersectRect(rectangle, diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds); + } + if (isContains) { + grid.nodeId.push(diagramNodes[parseInt(k.toString(), 10)].id); + grid.walkable = false; + if (diagramNodes[parseInt(k.toString(), 10)].parentId !== '') { + grid.parentNodeId = diagramNodes[parseInt(k.toString(), 10)].parentId; + } + } + } + x += size; + } + x = this.diagramStartX < 0 ? this.diagramStartX : 0; + y += size; + } + }; + LineRouting.prototype.intersectRect = function (r1, r2) { + return !(r2.left >= r1.right || r2.right <= r1.left || + r2.top >= r1.bottom || r2.bottom <= r1.top); + }; + LineRouting.prototype.findEndPoint = function (connector, isSource, isPortBounds) { + var endPoint; + var portDirection; + // EJ2-65876 - Exception occurs on line routing injection module + if ((isSource && connector.sourcePortID !== '' && connector.sourcePortWrapper) || (!isSource && connector.targetPortID !== '' && connector.targetPortWrapper)) { + endPoint = (isSource) ? { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY } : + { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY }; + portDirection = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_1__["getPortDirection"])(endPoint, undefined, (isSource) ? connector.sourceWrapper.bounds : connector.targetWrapper.bounds, false); + var bounds = (isSource) ? connector.sourcePortWrapper.bounds : connector.targetPortWrapper.bounds; + if (isPortBounds) { + if (portDirection === 'Top') { + endPoint = { x: bounds.topCenter.x, y: bounds.topCenter.y }; + } + else if (portDirection === 'Left') { + endPoint = { x: bounds.middleLeft.x, y: bounds.middleLeft.y }; + } + else if (portDirection === 'Right') { + endPoint = { x: bounds.middleRight.x, y: bounds.middleRight.y }; + } + else { + endPoint = { x: bounds.bottomCenter.x, y: bounds.bottomCenter.y }; + } + } + else { + endPoint = { x: bounds.center.x, y: bounds.center.y }; + } + } + else { + if ((isSource && this.startNode) || (!isSource && this.targetNode)) { + endPoint = (isSource) ? { x: this.startNode.wrapper.offsetX, y: this.startNode.wrapper.offsetY } : + { x: this.targetNode.wrapper.offsetX, y: this.targetNode.wrapper.offsetY }; + } + else { + endPoint = (isSource) ? { x: connector.sourcePoint.x, y: connector.sourcePoint.y } : + { x: connector.targetPoint.x, y: connector.targetPoint.y }; + } + } + return endPoint; + }; + /** + * refreshConnectorSegments method \ + * + * @returns { void } refreshConnectorSegments method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {Connector} connector - provide the connector value. + * @param {boolean} isUpdate - provide the diagram value. + * + * @private + */ + LineRouting.prototype.refreshConnectorSegments = function (diagram, connector, isUpdate) { + var sourceId = connector.sourceID; + var targetId = connector.targetID; + var sourcePortID = connector.sourcePortID; + var targetPortID = connector.targetPortID; + var startPoint; + var targetPoint; + var sourcePortDirection; + var targetPortDirection; + var grid; + var sourceTop; + var sourceBottom; + var isBreak; + var sourceLeft; + var sourceRight; + var targetRight; + var targetTop; + var targetBottom; + var targetLeft; + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_2__["canEnableRouting"])(connector, diagram)) { + this.startNode = diagram.nameTable["" + sourceId]; + this.targetNode = diagram.nameTable["" + targetId]; + this.intermediatePoints = []; + this.startArray = []; + this.targetGridCollection = []; + this.sourceGridCollection = []; + this.startGrid = undefined; + this.targetGrid = undefined; + for (var i = 0; i < this.noOfCols; i++) { + for (var j = 0; j < this.noOfRows; j++) { + this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].tested = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].parent = undefined; + this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].previousDistance = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].afterDistance = undefined; + this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].totalDistance = undefined; + } + } + // Set the source point and target point + startPoint = this.findEndPoint(connector, true); + targetPoint = this.findEndPoint(connector, false); + // Find the start grid and target grid + for (var i = 0; i < this.noOfRows; i++) { + for (var j = 0; j < this.noOfCols; j++) { + grid = this.gridCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]; + var rectangle = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](grid.x, grid.y, grid.width, grid.height); + if (rectangle.containsPoint(startPoint) && !this.startGrid && + (grid.nodeId.indexOf(sourceId) !== -1 || sourceId === '')) { + this.startGrid = (sourcePortID && this.startGrid && + (sourcePortDirection === 'Left' || sourcePortDirection === 'Top')) ? this.startGrid : grid; + } + if (rectangle.containsPoint(targetPoint) && !this.targetGrid && + (grid.nodeId.indexOf(targetId) !== -1 || targetId === '')) { + this.targetGrid = (targetPortID && this.targetGrid && + (targetPortDirection === 'Left' || targetPortDirection === 'Top')) ? this.targetGrid : grid; + } + if (!sourcePortID && this.startNode) { + var bounds = this.startNode.wrapper.bounds; + if (rectangle.containsPoint(bounds.topCenter) && !sourceTop) { + sourceTop = grid; + } + if (rectangle.containsPoint(bounds.middleLeft) && !sourceLeft) { + sourceLeft = grid; + } + if (rectangle.containsPoint(bounds.middleRight) && !sourceRight) { + sourceRight = grid; + } + if (rectangle.containsPoint(bounds.bottomCenter) && !sourceBottom) { + sourceBottom = grid; + } + } + if (!targetPortID && this.targetNode) { + var bounds = this.targetNode.wrapper.bounds; + if (rectangle.containsPoint(bounds.topCenter) && !targetTop) { + targetTop = grid; + } + if (rectangle.containsPoint(bounds.middleLeft) && !targetLeft) { + targetLeft = grid; + } + if (rectangle.containsPoint(bounds.middleRight) && !targetRight) { + targetRight = grid; + } + if (rectangle.containsPoint({ x: bounds.bottomCenter.x, y: bounds.bottomCenter.y }) && !targetBottom) { + targetBottom = grid; + } + } + } + } + this.findEdgeBoundary(sourcePortID, sourceLeft, sourceRight, sourceTop, sourceBottom, true); + this.findEdgeBoundary(targetPortID, targetLeft, targetRight, targetTop, targetBottom, false); + this.startGrid.totalDistance = 0; + this.startGrid.previousDistance = 0; + this.intermediatePoints.push({ x: this.startGrid.gridX, y: this.startGrid.gridY }); + this.startArray.push(this.startGrid); + if (connector && targetLeft && targetRight && targetTop && targetBottom) { + this.checkObstacles(connector, diagram, targetLeft, targetRight, targetTop, targetBottom); + } + // eslint-disable-next-line no-labels + renderPathElement: while (this.startArray.length > 0) { + var startGridNode = this.startArray.pop(); + for (var i = 0; i < this.targetGridCollection.length; i++) { + var target = this.targetGridCollection[parseInt(i.toString(), 10)]; + if (startGridNode.gridX === target.gridX && startGridNode.gridY === target.gridY) { + this.getIntermediatePoints(startGridNode); + isBreak = this.updateConnectorSegments(diagram, this.intermediatePoints, this.gridCollection, connector, isUpdate); + if (!isBreak) { + this.targetGridCollection.splice(this.targetGridCollection.indexOf(target), 1); + startGridNode = this.startArray.pop(); + } + else { + this.considerWalkable = []; + // eslint-disable-next-line no-labels + break renderPathElement; + } + } + } + this.findPath(startGridNode); + } + } + }; + LineRouting.prototype.checkChildNodes = function (grid, isSource) { + var check = false; + var reject = false; + if (grid.nodeId.length >= 1 && !isSource) { + for (var i = 0; i < grid.nodeId.length; i++) { + var id = grid.nodeId[parseInt(i.toString(), 10)]; + for (var j = 0; j < grid.nodeId.length; j++) { + if (this.targetNode.parentId === grid.nodeId[parseInt(j.toString(), 10)]) { + reject = true; + } + } + if (!reject && this.targetNode.id === id) { + check = true; + } + else { + check = false; + } + } + } + else { + if (grid.nodeId.length === 1) { + check = true; + } + } + return check; + }; + LineRouting.prototype.findEdgeBoundary = function (portID, left, right, top, bottom, isSource) { + var grid; + var collection = (isSource) ? this.sourceGridCollection : this.targetGridCollection; + if (!portID && ((isSource) ? this.startNode : this.targetNode)) { + for (var i = left.gridX; i <= right.gridX; i++) { + grid = this.gridCollection[parseInt(i.toString(), 10)][left.gridY]; + if ((this.checkChildNodes(grid, isSource) && (i === left.gridX || i === right.gridX)) || + (i !== left.gridX && i !== right.gridX)) { + collection.push(grid); + } + } + for (var i = top.gridY; i <= bottom.gridY; i++) { + grid = this.gridCollection[top.gridX][parseInt(i.toString(), 10)]; + if (((this.checkChildNodes(grid, isSource) && (i === top.gridY || i === bottom.gridY)) || + (i !== top.gridY && i !== bottom.gridY)) && collection.indexOf(grid) === -1) { + collection.push(grid); + } + } + } + else { + collection.push((isSource) ? this.startGrid : this.targetGrid); + } + }; + LineRouting.prototype.checkObstacles = function (connector, diagram, targetLeft, targetRight, targetTop, targetBottom) { + var neigbours = this.findNearestNeigbours(this.startGrid, this.gridCollection, true); + if (neigbours.length === 0) { + if (connector.sourcePortID !== '') { + var endPoint = { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY }; + var portDirection = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_1__["getPortDirection"])(endPoint, undefined, connector.sourceWrapper.bounds, false); + if (portDirection === 'Top') { + this.resetGridColl(this.startGrid, 'top', true); + } + else if (portDirection === 'Right') { + this.resetGridColl(this.startGrid, 'right', true); + } + else if (portDirection === 'Bottom') { + this.resetGridColl(this.startGrid, 'bottom', true); + } + else { + this.resetGridColl(this.startGrid, 'left', true); + } + } + else { + this.resetGridColl(this.startGrid, 'top', true); + this.resetGridColl(this.startGrid, 'right', true); + this.resetGridColl(this.startGrid, 'bottom', true); + this.resetGridColl(this.startGrid, 'left', true); + } + } + neigbours = this.findNearestNeigbours(this.targetGrid, this.gridCollection, false); + if (neigbours.length === 0) { + if (connector.targetPortID !== '') { + var endPoint = { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY }; + var portDirection = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_1__["getPortDirection"])(endPoint, undefined, connector.targetWrapper.bounds, false); + if (portDirection === 'Top') { + this.resetGridColl(this.targetGrid, 'top', true); + } + else if (portDirection === 'Right') { + this.resetGridColl(this.targetGrid, 'right', true); + } + else if (portDirection === 'Bottom') { + this.resetGridColl(this.targetGrid, 'bottom', true); + } + else { + this.resetGridColl(this.targetGrid, 'left', true); + } + } + else { + this.resetGridColl(this.targetGrid, 'top', false); + this.resetGridColl(this.targetGrid, 'right', false); + this.resetGridColl(this.targetGrid, 'bottom', false); + this.resetGridColl(this.targetGrid, 'left', false); + } + } + if (this.targetGridCollection.length > 0 && this.targetGridCollection[0].nodeId.length > 1) { + for (var i = 0; i <= 1; i++) { + var gridX = this.targetGridCollection[parseInt(i.toString(), 10)].gridX; + var gridY = this.targetGridCollection[parseInt(i.toString(), 10)].gridY; + var gridNodes = this.targetGridCollection[parseInt(i.toString(), 10)].nodeId; + var targetNode = void 0; + for (var k = 0; k < gridNodes.length; k++) { + if (this.targetNode.id !== gridNodes[parseInt(k.toString(), 10)]) { + targetNode = gridNodes[parseInt(k.toString(), 10)]; + break; + } + } + var targetNodewrapper = void 0; + var overLapNode = void 0; + var contains = void 0; + if (diagram.nameTable[this.targetNode.id]) { + targetNodewrapper = diagram.nameTable[this.targetNode.id].wrapper; + } + if (diagram.nameTable["" + targetNode]) { + overLapNode = diagram.nameTable["" + targetNode].wrapper; + } + if (targetNodewrapper && overLapNode) { + contains = this.contains(overLapNode.bounds, targetNodewrapper.bounds); + } + var reject = void 0; + for (var j = 0; j < gridNodes.length; j++) { + if (this.targetNode.parentId === gridNodes[parseInt(j.toString(), 10)]) { + reject = true; + } + } + if (!this.gridCollection[parseInt(gridX.toString(), 10)][parseInt(gridY.toString(), 10)].walkable && contains && !reject) { + var grid = void 0; + var diff = void 0; + grid = this.getEndvalue(targetLeft, 'left'); + diff = targetLeft.gridX - grid.gridX; + this.changeValue(targetLeft, diff, 'left'); + grid = this.getEndvalue(targetRight, 'right'); + diff = grid.gridX - targetRight.gridX; + this.changeValue(targetRight, diff, 'right'); + grid = this.getEndvalue(targetTop, 'top'); + diff = targetTop.gridY - grid.gridY; + this.changeValue(targetTop, diff, 'top'); + grid = this.getEndvalue(targetBottom, 'bottom'); + diff = targetBottom.gridY - grid.gridY; + this.changeValue(targetBottom, diff, 'top'); + } + } + } + }; + LineRouting.prototype.contains = function (rect1, rect2) { + return rect1.left <= rect2.left && rect1.right >= rect2.right && rect1.top <= rect2.top && rect1.bottom >= rect2.bottom; + }; + LineRouting.prototype.getEndvalue = function (target, direction) { + if (!this.gridCollection[target.gridX][target.gridY].walkable) { + if (direction === 'left') { + return this.getEndvalue(this.gridCollection[target.gridX - 1][target.gridY], direction); + } + if (direction === 'right') { + return this.getEndvalue(this.gridCollection[target.gridX + 1][target.gridY], direction); + } + if (direction === 'top') { + return this.getEndvalue(this.gridCollection[target.gridX][target.gridY - 1], direction); + } + if (direction === 'bottom') { + return this.getEndvalue(this.gridCollection[target.gridX][target.gridY + 1], direction); + } + } + else { + return target; + } + return target; + }; + LineRouting.prototype.changeValue = function (targetLeft, diff, direction) { + if (!targetLeft.walkable) { + this.considerWalkable.push(targetLeft); + } + var grid; + for (var i = 0; i <= diff; i++) { + if (direction === 'left') { + grid = this.gridCollection[targetLeft.gridX - i][targetLeft.gridY]; + } + else if (direction === 'right') { + grid = this.gridCollection[targetLeft.gridX + i][targetLeft.gridY]; + } + else if (direction === 'top') { + grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY - i]; + } + else if (direction === 'bottom') { + grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY + i]; + } + if (!grid.walkable) { + this.considerWalkable.push(grid); + } + } + }; + // Get all the intermediated points from target grid + LineRouting.prototype.getIntermediatePoints = function (target) { + var distance; + this.intermediatePoints = []; + while (target) { + this.intermediatePoints.push({ x: target.gridX, y: target.gridY }); + target = target.parent; + } + this.intermediatePoints.reverse(); + if (this.intermediatePoints.length >= 1) { + if (this.intermediatePoints[0].x === this.intermediatePoints[1].x) { + if (this.intermediatePoints[0].y < this.intermediatePoints[1].y) { + distance = this.neigbour(this.startGrid, 'bottom', undefined, true); + this.intermediatePoints[0].y += distance - 1; + } + else { + distance = this.neigbour(this.startGrid, 'top', undefined, true); + this.intermediatePoints[0].y -= distance - 1; + } + } + else { + if (this.intermediatePoints[0].x < this.intermediatePoints[1].x) { + distance = this.neigbour(this.startGrid, 'right', undefined, true); + this.intermediatePoints[0].x += distance - 1; + } + else { + distance = this.neigbour(this.startGrid, 'left', undefined, true); + this.intermediatePoints[0].x -= distance - 1; + } + } + } + }; + // Connector rendering + /* tslint:disable */ + LineRouting.prototype.updateConnectorSegments = function (diagram, intermediatePoints, gridCollection, connector, isUpdate) { + var segments = []; + var seg; + var targetPoint; + var pointX; + var pointY; + var node; + var points = []; + var direction; + var length; + var currentdirection; + var prevDirection; + var targetWrapper = connector.targetWrapper; + var sourceWrapper = connector.sourceWrapper; + var sourcePoint = this.findEndPoint(connector, true); + if (connector.targetPortID !== '' || !connector.targetWrapper) { + targetPoint = this.findEndPoint(connector, false, true); + } + for (var i = 0; i < intermediatePoints.length; i++) { + node = gridCollection[intermediatePoints[parseInt(i.toString(), 10)].x][intermediatePoints[parseInt(i.toString(), 10)].y]; + pointX = node.x + node.width / 2; + pointY = node.y + node.height / 2; + points.push({ x: pointX, y: pointY }); + if (i >= 1) { + if (points[points.length - 2].x !== points[points.length - 1].x) { + currentdirection = (points[points.length - 2].x > points[points.length - 1].x) ? 'Left' : 'Right'; + } + else { + currentdirection = (points[points.length - 2].y > points[points.length - 1].y) ? 'Top' : 'Bottom'; + } + } + if (i >= 2 && prevDirection === currentdirection) { + points.splice(points.length - 2, 1); + } + prevDirection = currentdirection; + } + for (var j = 0; j < points.length - 1; j++) { + if (points[parseInt(j.toString(), 10)].x !== points[j + 1].x) { + if (j === 0 && connector.sourcePortID === '' && sourceWrapper) { + sourcePoint = (points[parseInt(j.toString(), 10)].x > points[j + 1].x) ? sourceWrapper.bounds.middleLeft : sourceWrapper.bounds.middleRight; + } + if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) { + targetPoint = (points[parseInt(j.toString(), 10)].x > points[j + 1].x) ? targetWrapper.bounds.middleRight : targetWrapper.bounds.middleLeft; + } + if (j === 0 && sourcePoint) { + points[parseInt(j.toString(), 10)].x = sourcePoint.x; + points[parseInt(j.toString(), 10)].y = points[j + 1].y = sourcePoint.y; + } + if (j === points.length - 2 && targetPoint) { + if (((targetPoint.x - points[j + 1].x) < 0) && + (Math.abs(targetPoint.x - points[parseInt(j.toString(), 10)].x) < connector.targetDecorator.width + 1)) { + points[parseInt(j.toString(), 10)].x = points[j - 1].x -= this.size / 2; + } + if (((targetPoint.x - points[j + 1].x) > 0) && + (Math.abs(targetPoint.x - points[parseInt(j.toString(), 10)].x) < connector.targetDecorator.width + 1)) { + points[parseInt(j.toString(), 10)].x = points[j - 1].x += this.size / 2; + } + points[j + 1].x = targetPoint.x; + points[parseInt(j.toString(), 10)].y = points[j + 1].y = targetPoint.y; + } + } + else { + if (j === 0 && sourceWrapper) { + sourcePoint = (points[parseInt(j.toString(), 10)].y > points[j + 1].y) ? sourceWrapper.bounds.topCenter : sourceWrapper.bounds.bottomCenter; + } + if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) { + targetPoint = (points[parseInt(j.toString(), 10)].y > points[j + 1].y) ? targetWrapper.bounds.bottomCenter : targetWrapper.bounds.topCenter; + } + if (j === 0 && sourcePoint) { + points[parseInt(j.toString(), 10)].y = sourcePoint.y; + points[parseInt(j.toString(), 10)].x = points[j + 1].x = sourcePoint.x; + } + if (j === points.length - 2 && targetPoint) { + if (((targetPoint.y - points[j + 1].y) < 0) && + (Math.abs(targetPoint.y - points[parseInt(j.toString(), 10)].y) < connector.targetDecorator.height + 1)) { + points[parseInt(j.toString(), 10)].y = points[j - 1].y -= this.size / 2; + } + if (((targetPoint.y - points[j + 1].y) > 0) && + (Math.abs(targetPoint.y - points[parseInt(j.toString(), 10)].y) < connector.targetDecorator.width + 1)) { + points[parseInt(j.toString(), 10)].y = points[j - 1].y += this.size / 2; + } + points[j + 1].y = targetPoint.y; + points[parseInt(j.toString(), 10)].x = points[j + 1].x = targetPoint.x; + } + } + } + for (var j = 0; j < points.length - 1; j++) { + if (points[parseInt(j.toString(), 10)].x !== points[j + 1].x) { + if (points[parseInt(j.toString(), 10)].x > points[j + 1].x) { + direction = 'Left'; + length = points[parseInt(j.toString(), 10)].x - points[j + 1].x; + } + else { + direction = 'Right'; + length = points[j + 1].x - points[parseInt(j.toString(), 10)].x; + } + } + else { + if (points[parseInt(j.toString(), 10)].y > points[j + 1].y) { + direction = 'Top'; + length = points[parseInt(j.toString(), 10)].y - points[j + 1].y; + } + else { + direction = 'Bottom'; + length = points[j + 1].y - points[parseInt(j.toString(), 10)].y; + } + } + seg = { type: 'Orthogonal', length: length, direction: direction }; + segments.push(seg); + } + var lastSeg = segments[segments.length - 1]; + if (segments.length === 1) { + lastSeg.length -= 20; + } + if (lastSeg.length < 10 && segments.length === 2) { + segments.pop(); + segments[0].length -= 20; + lastSeg = segments[0]; + } + if (((lastSeg.direction === 'Top' || lastSeg.direction === 'Bottom') && lastSeg.length > connector.targetDecorator.height + 1) || + ((lastSeg.direction === 'Right' || lastSeg.direction === 'Left') && lastSeg.length > connector.targetDecorator.width + 1)) { + connector.segments = segments; + if (isUpdate) { + diagram.connectorPropertyChange(connector, {}, { type: 'Orthogonal', segments: segments }); + } + return true; + } + return false; + }; + /* tslint:enable */ + // Shortest path + LineRouting.prototype.findPath = function (startGrid) { + var intermediatePoint; + var collection = []; + var neigbours = this.findNearestNeigbours(startGrid, this.gridCollection, true); + for (var i = 0; i < neigbours.length; i++) { + intermediatePoint = this.findIntermediatePoints(neigbours[parseInt(i.toString(), 10)].gridX, neigbours[parseInt(i.toString(), 10)].gridY, startGrid.gridX, startGrid.gridY, this.targetGrid.gridX, this.targetGrid.gridY); + if (intermediatePoint !== null) { + var grid = this.gridCollection[intermediatePoint.x][intermediatePoint.y]; + var h = this.octile(Math.abs(intermediatePoint.x - startGrid.gridX), Math.abs(intermediatePoint.y - startGrid.gridY)); + var l = startGrid.previousDistance + h; + if ((!grid.previousDistance || grid.previousDistance > l) && + (!(intermediatePoint.x === startGrid.gridX && intermediatePoint.y === startGrid.gridY))) { + collection.push(intermediatePoint); + grid.previousDistance = l; + grid.afterDistance = grid.afterDistance || this.manhattan(Math.abs(intermediatePoint.x - this.targetGrid.gridX), Math.abs(intermediatePoint.y - this.targetGrid.gridY)); + grid.totalDistance = grid.previousDistance + grid.afterDistance; + grid.parent = startGrid; + } + } + } + if (collection.length > 0) { + for (var i = 0; i < collection.length; i++) { + var grid = this.gridCollection[collection[parseInt(i.toString(), 10)].x][collection[parseInt(i.toString(), 10)].y]; + if (this.startArray.indexOf(grid) === -1) { + this.startArray.push(grid); + } + } + } + this.sorting(this.startArray); + }; + // sorting the array based on total distance between source and target node + LineRouting.prototype.sorting = function (array) { + var done = false; + while (!done) { + done = true; + for (var i = 1; i < array.length; i += 1) { + if (array[i - 1].totalDistance < array[parseInt(i.toString(), 10)].totalDistance) { + done = false; + var tmp = array[i - 1]; + array[i - 1] = array[parseInt(i.toString(), 10)]; + array[parseInt(i.toString(), 10)] = tmp; + } + } + } + return array; + }; + LineRouting.prototype.octile = function (t, e) { + var r = Math.SQRT2 - 1; + return e > t ? r * t + e : r * e + t; + }; + LineRouting.prototype.manhattan = function (t, e) { + return t + e; + }; + // Find the nearest neigbour from the current boundaries, the neigbour is use to find next intermdiate point. + LineRouting.prototype.findNearestNeigbours = function (startGrid, gridCollection, isSource) { + var neigbours = []; + var parent = startGrid.parent; + if (parent) { + var dx = (startGrid.gridX - parent.gridX) / Math.max(Math.abs(startGrid.gridX - parent.gridX), 1); + var dy = (startGrid.gridY - parent.gridY) / Math.max(Math.abs(startGrid.gridY - parent.gridY), 1); + if (dx !== 0) { + if (this.isWalkable(startGrid.gridX, startGrid.gridY - 1, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY - 1]) === -1) { + neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY - 1]); + } + if (this.isWalkable(startGrid.gridX, startGrid.gridY + 1, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + 1])) { + neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + 1]); + } + if (this.isWalkable(startGrid.gridX + dx, startGrid.gridY, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + dx][startGrid.gridY]) === -1) { + neigbours.push(gridCollection[startGrid.gridX + dx][startGrid.gridY]); + } + } + else if (dy !== 0) { + if (this.isWalkable(startGrid.gridX - 1, startGrid.gridY, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX - 1][startGrid.gridY]) === -1) { + neigbours.push(gridCollection[startGrid.gridX - 1][startGrid.gridY]); + } + if (this.isWalkable(startGrid.gridX + 1, startGrid.gridY, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + 1][startGrid.gridY]) === -1) { + neigbours.push(gridCollection[startGrid.gridX + 1][startGrid.gridY]); + } + if (this.isWalkable(startGrid.gridX, startGrid.gridY + dy, true) && + this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + dy]) === -1) { + neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + dy]); + } + } + } + else { + this.neigbour(startGrid, 'top', neigbours, isSource); + this.neigbour(startGrid, 'right', neigbours, isSource); + this.neigbour(startGrid, 'bottom', neigbours, isSource); + this.neigbour(startGrid, 'left', neigbours, isSource); + } + return neigbours; + }; + LineRouting.prototype.neigbour = function (startGrid, direction, neigbours, isSource) { + var i = 1; + var nearGrid; + while (i > 0) { + var x = (direction === 'top' || direction === 'bottom') ? + (startGrid.gridX) : ((direction === 'left') ? startGrid.gridX - i : startGrid.gridX + i); + var y = (direction === 'right' || direction === 'left') ? + (startGrid.gridY) : ((direction === 'top') ? startGrid.gridY - i : startGrid.gridY + i); + nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)]; + if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1) + || (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) { + if (neigbours && this.isWalkable(x, y)) { + neigbours.push(nearGrid); + } + return i; + } + if (x > 0 && y > 0) { + i++; + } + else { + break; + } + } + return null; + }; + LineRouting.prototype.resetGridColl = function (grid, direction, isSource) { + var i = 1; + var nearGrid; + while (i > 0) { + var x = (direction === 'top' || direction === 'bottom') ? + (grid.gridX) : ((direction === 'left') ? grid.gridX - i : grid.gridX + i); + var y = (direction === 'right' || direction === 'left') ? + (grid.gridY) : ((direction === 'top') ? grid.gridY - i : grid.gridY + i); + nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)]; + if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1) || + (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) { + if (this.isWalkable(x, y)) { + break; + } + else { + var grid_1 = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)]; + this.considerWalkable.push(grid_1); + } + } + if (x > 0 && y > 0) { + if (direction === 'top' || direction === 'left') { + i--; + } + else { + i++; + } + } + else { + break; + } + } + return null; + }; + LineRouting.prototype.isWalkable = function (x, y, isparent) { + if (x >= 0 && x < this.noOfRows && y >= 0 && y < this.noOfCols) { + var grid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)]; + if (grid && (grid.walkable || ((grid.nodeId.length === 1 || (grid.nodeId.length === 2 && grid.parentNodeId || (this.considerWalkable.indexOf(grid) !== -1))) && + (this.sourceGridCollection.indexOf(grid) !== -1 || this.targetGridCollection.indexOf(grid) !== -1 || + this.considerWalkable.indexOf(grid) !== -1)))) { + if ((isparent && !grid.parent) || !isparent) { + return true; + } + } + } + return false; + }; + LineRouting.prototype.findIntermediatePoints = function (neigbourGridX, neigbourGridY, startGridX, startGridY, endGridX, endGridY) { + var dx = neigbourGridX - startGridX; + var dy = neigbourGridY - startGridY; + var gridX = neigbourGridX; + var gridY = neigbourGridY; + for (var i = 0; i < this.targetGridCollection.length; i++) { + if (neigbourGridX === this.targetGridCollection[parseInt(i.toString(), 10)].gridX && neigbourGridY === this.targetGridCollection[parseInt(i.toString(), 10)].gridY) { + return { x: neigbourGridX, y: neigbourGridY }; + } + } + if (!this.isWalkable(neigbourGridX, neigbourGridY)) { + return null; + } + var neigbourGrid = this.gridCollection[parseInt(neigbourGridX.toString(), 10)][parseInt(neigbourGridY.toString(), 10)]; + if (neigbourGrid.tested) { + return { x: neigbourGridX, y: neigbourGridY }; + } + neigbourGrid.tested = true; + if (dx !== 0) { + dx = (dx > 0) ? 1 : -1; + if ((this.isWalkable(gridX, gridY - 1) && !this.isWalkable(gridX - dx, gridY - 1)) || + (this.isWalkable(gridX, gridY + 1) && !this.isWalkable(gridX - dx, gridY + 1))) { + return { x: neigbourGridX, y: neigbourGridY }; + } + } + if (dy !== 0) { + dy = (dy > 0) ? 1 : -1; + if ((this.isWalkable(gridX - 1, gridY) && !this.isWalkable(gridX - 1, gridY - dy)) || + (this.isWalkable(gridX + 1, gridY) && !this.isWalkable(gridX + 1, gridY - dy))) { + return { x: neigbourGridX, y: neigbourGridY }; + } + if (this.findIntermediatePoints(gridX + 1, gridY, gridX, gridY, endGridX, endGridY) || + this.findIntermediatePoints(gridX - 1, gridY, gridX, gridY, endGridX, endGridY)) { + return { x: neigbourGridX, y: neigbourGridY }; + } + } + return this.findIntermediatePoints(gridX + dx, gridY + dy, gridX, gridY, endGridX, endGridY); + }; + /** + *To destroy the line routing + * + * @returns {void} To destroy the line routing + */ + LineRouting.prototype.destroy = function () { + /** + * Destroys the line routing module + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + LineRouting.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'LineRouting'; + }; + return LineRouting; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/scroller.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/scroller.js ***! + \************************************************************************************/ +/*! exports provided: DiagramScroller */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramScroller", function() { return DiagramScroller; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _ruler_ruler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ruler/ruler */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); + + + + + +/** + */ +var DiagramScroller = /** @__PURE__ @class */ (function () { + function DiagramScroller(diagram) { + /** @private */ + this.transform = { tx: 0, ty: 0, scale: 1 }; + /** @private */ + this.oldCollectionObjects = []; + /** @private */ + this.removeCollection = []; + this.vPortWidth = 0; + this.vPortHeight = 0; + this.currentZoomFActor = 1; + this.hOffset = 0; + this.vOffset = 0; + this.scrolled = false; + this.hScrollSize = 0; + this.vScrollSize = 0; + this.diagram = diagram; + this.objects = []; + this.transform = diagram.scroller ? diagram.scroller.transform : { tx: 0, ty: 0, scale: 1 }; + this.vPortWidth = diagram.scrollSettings.viewPortWidth; + this.vPortHeight = diagram.scrollSettings.viewPortHeight; + this.currentZoomFActor = diagram.scrollSettings.currentZoom; + this.hOffset = diagram.scrollSettings.horizontalOffset; + this.vOffset = diagram.scrollSettings.verticalOffset; + } + Object.defineProperty(DiagramScroller.prototype, "viewPortHeight", { + /** + * verticalOffset method \ + * + * @returns { number } verticalOffset method .\ + * + * @private + */ + get: function () { + return this.vPortHeight; + }, + /** + * verticalOffset method \ + * + * @returns { void } verticalOffset method .\ + * @param {number} offset - provide the hOffset value. + * + * @private + */ + set: function (offset) { + this.vPortHeight = offset; + this.diagram.scrollSettings.viewPortHeight = offset; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DiagramScroller.prototype, "currentZoom", { + /** + * verticalOffset method \ + * + * @returns { number } verticalOffset method .\ + * + * @private + */ + get: function () { + return this.currentZoomFActor; + }, + /** + * verticalOffset method \ + * + * @returns { void } verticalOffset method .\ + * @param {number} offset - provide the hOffset value. + * + * @private + */ + set: function (offset) { + this.currentZoomFActor = offset; + this.diagram.scrollSettings.currentZoom = offset; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DiagramScroller.prototype, "viewPortWidth", { + /** + * verticalOffset method \ + * + * @returns { number } verticalOffset method .\ + * + * @private + */ + get: function () { + return this.vPortWidth; + }, + /** + * verticalOffset method \ + * + * @returns { void } verticalOffset method .\ + * @param {number} offset - provide the hOffset value. + * + * @private + */ + set: function (offset) { + this.vPortWidth = offset; + this.diagram.scrollSettings.viewPortWidth = offset; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DiagramScroller.prototype, "horizontalOffset", { + /** + * verticalOffset method \ + * + * @returns { number } verticalOffset method .\ + * + * @private + */ + get: function () { + return this.hOffset; + }, + /** + * verticalOffset method \ + * + * @returns { void } verticalOffset method .\ + * @param {number} offset - provide the hOffset value. + * + * @private + */ + set: function (offset) { + this.hOffset = offset; + if (Math.abs(this.hOffset - this.diagram.scrollSettings.horizontalOffset) > 1) { + this.diagram.realActions = this.diagram.realActions | _enum_enum__WEBPACK_IMPORTED_MODULE_1__["RealAction"].hScrollbarMoved; + this.scrolled = true; + } + this.diagram.scrollSettings.horizontalOffset = offset; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DiagramScroller.prototype, "verticalOffset", { + /** + * verticalOffset method \ + * + * @returns { number } verticalOffset method .\ + * + * @private + */ + get: function () { + return this.vOffset; + }, + /** + * verticalOffset method \ + * + * @returns { void } verticalOffset method .\ + * @param {number} offset - provide the hOffset value. + * + * @private + */ + set: function (offset) { + this.vOffset = offset; + if (Math.abs(this.vOffset - this.diagram.scrollSettings.verticalOffset) > 1) { + this.diagram.realActions = this.diagram.realActions | _enum_enum__WEBPACK_IMPORTED_MODULE_1__["RealAction"].vScrollbarMoved; + this.scrolled = true; + } + this.diagram.scrollSettings.verticalOffset = offset; + }, + enumerable: true, + configurable: true + }); + // Method added to get bounds value if diagram is loaded from negative axis. + // SF-359118 implemented for this ticket requirement. + DiagramScroller.prototype.getBounds = function () { + var pageBounds; + var postion = this.diagram.spatialSearch.getPageBounds(0, 0); + if ((postion.x < 0 || postion.y < 0) && !this.diagram.pageSettings.multiplePage) { + pageBounds = this.getPageBounds(undefined, undefined, true, true); + } + else { + pageBounds = this.getPageBounds(undefined, undefined, true); + } + return pageBounds; + }; + /** + * updateScrollOffsets method \ + * + * @returns { void } updateScrollOffsets method .\ + * @param {number} hOffset - provide the hOffset value. + * @param {number} vOffset - provide the vOffset value. + * + * @private + */ + DiagramScroller.prototype.updateScrollOffsets = function (hOffset, vOffset) { + var offsetX = 0; + var offsetY = 0; + var pageBounds = this.getBounds(); + pageBounds.x *= this.currentZoom; + pageBounds.y *= this.currentZoom; + pageBounds.width *= this.currentZoom; + pageBounds.height *= this.currentZoom; + offsetX = Math.max(0, hOffset - pageBounds.left); + offsetY = Math.max(0, vOffset - pageBounds.top); + if (hOffset !== undefined && vOffset !== undefined) { + this.horizontalOffset = offsetX; + this.verticalOffset = offsetY; + this.diagram.setOffset(offsetX, offsetY); + } + else { + this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y); + } + this.transform = { + tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom, + scale: this.currentZoom + }; + }; + /** + * setScrollOffset method \ + * + * @returns { void } setScrollOffset method .\ + * @param {number} hOffset - provide the hOffset value. + * @param {number} vOffset - provide the vOffset value. + * + * @private + */ + DiagramScroller.prototype.setScrollOffset = function (hOffset, vOffset) { + this.scrolled = false; + var pageBounds = this.getBounds(); + pageBounds.x *= this.currentZoom; + pageBounds.y *= this.currentZoom; + pageBounds.width *= this.currentZoom; + pageBounds.height *= this.currentZoom; + var x = -pageBounds.left; + var y = -pageBounds.top; + var set = false; + var viewWidth = this.viewPortWidth * this.currentZoom; + var viewHeight = this.viewPortHeight * this.currentZoom; + var newX = x - hOffset; + if (newX !== this.horizontalOffset) { + if (x < this.horizontalOffset) { + if (this.horizontalOffset > newX) { + this.horizontalOffset -= hOffset; + } + else { + this.horizontalOffset = newX; + } + set = true; + } + var right = Math.max(pageBounds.right + this.vScrollSize, viewWidth); + if (!set && right < -newX + this.viewPortWidth) { + var actualRight = -newX + viewWidth - this.vScrollSize; + var currentRight = -this.horizontalOffset + viewWidth - this.vScrollSize; + if (actualRight < currentRight) { + //define + this.horizontalOffset = newX; + } + else { + if (actualRight - pageBounds.right > actualRight - currentRight) { + this.horizontalOffset = newX; + } + else { + this.horizontalOffset = -(pageBounds.right + this.vScrollSize - viewWidth); + } + } + set = true; + } + if (!set) { + this.horizontalOffset = x - hOffset; + } + } + set = false; + //vertical offset + var newY = y - vOffset; + if (newY !== this.verticalOffset) { + if (y < this.verticalOffset) { + if (this.verticalOffset > newY) { + this.verticalOffset -= vOffset; + } + else { + this.verticalOffset = newY; + } + set = true; + } + var bottom = Math.max(pageBounds.bottom + this.hScrollSize, viewHeight); + if (!set && bottom < -newY + viewHeight) { + var actualBottom = -newY + viewHeight - this.hScrollSize; + var currentBottom = -this.verticalOffset + viewHeight - this.hScrollSize; + if (actualBottom < currentBottom) { + //define + this.verticalOffset = newY; + } + else { + if (actualBottom - pageBounds.bottom > actualBottom - currentBottom) { + this.verticalOffset = newY; + } + else { + this.verticalOffset = -(pageBounds.bottom + this.hScrollSize - viewHeight); + } + } + set = true; + } + if (!set) { + this.verticalOffset = y - vOffset; + } + } + this.transform = { + tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom, + scale: this.currentZoom + }; + this.setSize(); + }; + /** + * getObjects \ + * + * @returns { string[] } To get page pageBounds.\ + * @param {string[]} coll1 - provide the source value. + * @param {string[]} coll2 - provide the source value. + * @private + */ + DiagramScroller.prototype.getObjects = function (coll1, coll2) { + var objects = []; + for (var i = 0; i < coll1.length; i++) { + var isExist = false; + for (var j = 0; j < coll2.length; j++) { + if (coll1[parseInt(i.toString(), 10)] === coll2[parseInt(j.toString(), 10)]) { + isExist = true; + break; + } + } + if (!isExist) { + objects.push(coll1[parseInt(i.toString(), 10)]); + } + } + return objects; + }; + /** + * virtualizeElements \ + * + * @returns { void } To get page pageBounds.\ + * + * @private + */ + DiagramScroller.prototype.virtualizeElements = function () { + var viewWidth = this.viewPortWidth / this.currentZoom; + var viewHeight = this.viewPortHeight / this.currentZoom; + var oObjects = this.diagram.spatialSearch.findObjects(new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](-this.horizontalOffset / this.currentZoom, -this.verticalOffset / this.currentZoom, viewWidth, viewHeight)); + var oObjectsID = []; + var renderOrder = []; + for (var j = 0; j < oObjects.length; j++) { + var bpmnShape = oObjects[parseInt(j.toString(), 10)].shape; + if (bpmnShape.type === 'Bpmn' && bpmnShape && bpmnShape.activity && bpmnShape.activity.subProcess && bpmnShape.activity.subProcess.processes && bpmnShape.activity.subProcess.processes.length > 0) { + for (var k = 0; k < bpmnShape.activity.subProcess.processes.length; k++) { + renderOrder.push(bpmnShape.activity.subProcess.processes[parseInt(k.toString(), 10)]); + } + renderOrder.push(oObjects[parseInt(j.toString(), 10)].id); + } + else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) { + renderOrder.push(oObjects[parseInt(j.toString(), 10)].id); + } + } + oObjectsID = renderOrder; + var zindexOrder = []; + for (var j = 0; j < oObjects.length; j++) { + var items = oObjects[parseInt(j.toString(), 10)].shape; + if (items.type === 'Bpmn' && items && items.activity && items.activity.subProcess && items.activity.subProcess.processes && items.activity.subProcess.processes.length > 0) { + zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id); + for (var t = 0; t < items.activity.subProcess.processes.length; t++) { + zindexOrder.push(items.activity.subProcess.processes[parseInt(t.toString(), 10)]); + } + } + else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) { + zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id); + } + } + for (var j = 0; j < oObjects.length; j++) { + for (var k_1 = 0; k_1 < zindexOrder.length; k_1++) { + if (oObjects[parseInt(j.toString(), 10)].id === zindexOrder[parseInt(k_1.toString(), 10)]) { + oObjects[parseInt(j.toString(), 10)].zIndex = k_1; + break; + } + } + } + var newObjects = this.getObjects(oObjectsID, this.oldCollectionObjects); + if (this.oldCollectionObjects.length === 0) { + this.oldCollectionObjects = oObjectsID; + } + var removeObjects = this.getObjects(this.oldCollectionObjects, oObjectsID); + this.diagram.updateVirtualObjects(newObjects, false, removeObjects); + this.oldCollectionObjects = oObjectsID; + }; + /** + * setSize \ + * + * @returns { void } To get page pageBounds.\ + * @param {PointModel} newOffset - provide the newOffset value. + * + * @private + */ + DiagramScroller.prototype.setSize = function (newOffset) { + var pageBounds = this.getPageBounds(undefined, undefined, true); + pageBounds.x *= this.currentZoom; + pageBounds.y *= this.currentZoom; + pageBounds.width *= this.currentZoom; + pageBounds.height *= this.currentZoom; + var x = Math.min(pageBounds.x, -this.horizontalOffset); + var y = Math.min(pageBounds.y, -this.verticalOffset); + var difX = -this.horizontalOffset + this.viewPortWidth - pageBounds.right; + var difY = -this.verticalOffset + this.viewPortHeight - pageBounds.bottom; + var hScrollSize = this.scrollerWidth; + var vScrollSize = this.scrollerWidth; + if (-this.verticalOffset <= pageBounds.y && -this.verticalOffset + this.viewPortHeight >= pageBounds.bottom) { + vScrollSize = 0; + } + if (-this.horizontalOffset <= pageBounds.x && -this.horizontalOffset + this.viewPortWidth >= pageBounds.right) { + hScrollSize = 0; + } + this.hScrollSize = hScrollSize; + this.vScrollSize = vScrollSize; + var oldWidth = this.diagramWidth; + var oldHeight = this.diagramHeight; + this.diagramWidth = Math.max(pageBounds.right, -this.horizontalOffset + this.viewPortWidth - vScrollSize) - x; + this.diagramHeight = Math.max(pageBounds.bottom, -this.verticalOffset + this.viewPortHeight - hScrollSize) - y; + if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight) && this.diagram.scrollSettings.scrollLimit !== 'Diagram') { + this.diagram.setSize(this.diagramWidth, this.diagramHeight); + } + if (this.diagram.scrollSettings.scrollLimit === 'Diagram') { + if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight || this.currentZoom !== 1) + && ((!this.diagram.diagramActions || !newOffset) || (this.diagram.diagramActions && newOffset && + ((this.verticalOffset !== 0 || this.verticalOffset === newOffset.y) && + (this.horizontalOffset !== 0 || this.horizontalOffset === newOffset.x))))) { + if ((this.diagram.scrollActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ScrollActions"].Interaction) && newOffset) { + this.transform = { + tx: Math.max(newOffset.x, -(pageBounds.left / this.currentZoom)) / this.currentZoom, + ty: Math.max(newOffset.y, -(pageBounds.top / this.currentZoom)) / this.currentZoom, + scale: this.currentZoom + }; + this.horizontalOffset = newOffset.x; + this.verticalOffset = newOffset.y; + } + this.diagram.setSize(this.diagramWidth, this.diagramHeight); + if ((!(this.diagram.scrollActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ScrollActions"].PropertyChange)) && newOffset) { + this.horizontalOffset = newOffset.x; + this.verticalOffset = newOffset.y; + this.transform = { + tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom, + ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom, + scale: this.currentZoom + }; + } + } + else if (newOffset && oldWidth === this.diagramWidth && oldHeight === this.diagramHeight && + ((this.diagram.diagramCanvas.scrollHeight > this.viewPortHeight && + newOffset.y < 0 && this.horizontalOffset === newOffset.x && this.verticalOffset === 0) || + (this.diagram.diagramCanvas.scrollWidth > this.viewPortWidth && + newOffset.x < 0 && this.verticalOffset === newOffset.y && this.horizontalOffset === 0))) { + this.verticalOffset = newOffset.y; + this.horizontalOffset = newOffset.x; + this.transform = { + tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom, + ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom, + scale: this.currentZoom + }; + } + } + this.diagram.transformLayers(); + this.diagram.element.style.overflow = 'hidden'; + }; + /** + * setViewPortSize \ + * + * @returns { void } To get page pageBounds.\ + * @param {number} width - provide the factor value. + * @param {number} height - provide the factor value. + * + * @private + */ + DiagramScroller.prototype.setViewPortSize = function (width, height) { + this.viewPortWidth = width; + this.viewPortHeight = height; + }; + /** + * To get page pageBounds \ + * + * @returns { Rect } To get page pageBounds.\ + * @param {boolean} boundingRect - provide the factor value. + * @param {DiagramRegions} region - provide the factor value. + * @param {boolean} hasPadding - provide the factor value. + * @param {boolean} isnegativeRegion - provide the isnegativeRegion value. + * + * @private + */ + DiagramScroller.prototype.getPageBounds = function (boundingRect, region, hasPadding, isnegativeRegion) { + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](); + var temp = 0; + var pageBounds; + if (region !== 'Content' && !isnegativeRegion && this.diagram.pageSettings.width !== null && this.diagram.pageSettings.height !== null) { + var width = this.diagram.pageSettings.width; + var height = this.diagram.pageSettings.height; + var negwidth = 0; + var negheight = 0; + if (this.diagram.pageSettings.multiplePage) { + rect = this.diagram.spatialSearch.getPageBounds(0, 0); + if (rect.right > width) { + var x = Math.ceil(rect.right / width); + width = width * x; + } + if (rect.bottom > height) { + var x = Math.ceil(rect.bottom / height); + height = height * x; + } + if (rect.left < 0 && Math.abs(rect.left) > negwidth) { + var x = Math.ceil(Math.abs(rect.left) / this.diagram.pageSettings.width); + negwidth = this.diagram.pageSettings.width * x; + } + if (rect.top < 0 && Math.abs(rect.top) > negheight) { + var x = Math.ceil(Math.abs(rect.top) / this.diagram.pageSettings.height); + negheight = this.diagram.pageSettings.height * x; + } + } + pageBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"]((-negwidth), (-negheight), width + negwidth, height + negheight); + } + else { + var origin_1 = boundingRect ? undefined : 0; + pageBounds = this.diagram.spatialSearch.getPageBounds(origin_1, origin_1); + } + if (hasPadding) { + var scrollpadding = this.diagram.scrollSettings.padding; + pageBounds.x -= scrollpadding.left; + pageBounds.y -= scrollpadding.top; + pageBounds.width += (scrollpadding.left + scrollpadding.right); + pageBounds.height += (scrollpadding.top + scrollpadding.bottom); + } + return pageBounds; + }; + /** + * To get page break when PageBreak is set as true \ + * + * @returns { Segment[] } To get page break when PageBreak is set as true.\ + * @param {Rect} pageBounds - provide the factor value. + * + * @private + */ + DiagramScroller.prototype.getPageBreak = function (pageBounds) { + var i = 0; + var j = 0; + var v = -1; + var collection = []; + var x1 = 0; + var x2 = 0; + var y1 = 0; + var y2 = 0; + var left = this.diagram.pageSettings.margin.left; + var right = this.diagram.pageSettings.margin.right; + var top = this.diagram.pageSettings.margin.top; + var bottom = this.diagram.pageSettings.margin.bottom; + var widthCount = 1; + var heightCount = 1; + var segment = { x1: x1, y1: y1, x2: x2, y2: y2 }; + while (pageBounds.width > i) { + i = i + (this.diagram.pageSettings.width ? this.diagram.pageSettings.width : pageBounds.width); + if (i === this.diagram.pageSettings.width) { + segment = { + x1: pageBounds.left + left, y1: pageBounds.top + top, + x2: pageBounds.left + left, y2: pageBounds.bottom - bottom + }; + collection[++v] = segment; + } + if (i < pageBounds.width) { + x1 = pageBounds.topLeft.x + this.diagram.pageSettings.width * widthCount; + y1 = pageBounds.topLeft.y + top; + x2 = pageBounds.bottomLeft.x + this.diagram.pageSettings.width * widthCount; + y2 = pageBounds.bottomLeft.y - bottom; + segment = { x1: x1, y1: y1, x2: x2, y2: y2 }; + collection[++v] = segment; + widthCount++; + } + if (pageBounds.width === i) { + segment = { + x1: pageBounds.right - right, y1: pageBounds.top + top, + x2: pageBounds.right - right, y2: pageBounds.bottom - bottom + }; + collection[++v] = segment; + } + } + while (pageBounds.height > j) { + j = j + (this.diagram.pageSettings.height ? this.diagram.pageSettings.height : pageBounds.height); + if (j === this.diagram.pageSettings.height) { + segment = { + x1: pageBounds.left + left, y1: pageBounds.top + top, + x2: pageBounds.right - right, y2: pageBounds.top + top + }; + collection[++v] = segment; + } + if (j < pageBounds.height) { + x1 = pageBounds.topLeft.x + left; + y1 = pageBounds.topLeft.y + this.diagram.pageSettings.height * heightCount; + x2 = pageBounds.topRight.x - right; + y2 = pageBounds.topRight.y + this.diagram.pageSettings.height * heightCount; + segment = { x1: x1, y1: y1, x2: x2, y2: y2 }; + collection[++v] = segment; + heightCount++; + } + if (pageBounds.height === j) { + segment = { + x1: pageBounds.left + left, y1: pageBounds.bottom - bottom, + x2: pageBounds.right - right, y2: pageBounds.bottom - bottom + }; + collection[++v] = segment; + } + } + return collection; + }; + /** + * zoom method \ + * + * @returns { void } zoom method .\ + * @param {number} factor - provide the factor value. + * @param {number} deltaX - provide the bounds value. + * @param {number} deltaY - provide the bounds value. + * @param {PointModel} focusPoint - provide the bounds value. + * @param {boolean} isInteractiveZoomPan - provide the isInteractiveZoomPan value. + * @param {boolean} isBringIntoView - provide the isBringIntoView value. + * + * @private + */ + DiagramScroller.prototype.zoom = function (factor, deltaX, deltaY, focusPoint, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_4__["canZoom"])(this.diagram) && factor !== 1 || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_4__["canPan"])(this.diagram) && factor === 1)) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["scaleMatrix"])(matrix, this.currentZoom, this.currentZoom); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["translateMatrix"])(matrix, this.horizontalOffset, this.verticalOffset); + focusPoint = focusPoint || { + x: (this.viewPortWidth / 2 - this.horizontalOffset) / this.currentZoom, + y: (this.viewPortHeight / 2 - this.verticalOffset) / this.currentZoom + }; + focusPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, focusPoint); + if ((this.currentZoom * factor) >= this.diagram.scrollSettings.minZoom && + (this.currentZoom * factor) <= this.diagram.scrollSettings.maxZoom) { + this.currentZoom *= factor; + var pageBounds = this.getPageBounds(undefined, undefined, true); + pageBounds.x *= this.currentZoom; + pageBounds.y *= this.currentZoom; + //target Matrix + var targetMatrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["scaleMatrix"])(targetMatrix, factor, factor, focusPoint.x, focusPoint.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["translateMatrix"])(targetMatrix, deltaX || 0, deltaY || 0); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["multiplyMatrix"])(matrix, targetMatrix); + var newOffset = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, { x: 0, y: 0 }); + if (factor === 1) { + // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset + newOffset = this.applyScrollLimit(newOffset.x, newOffset.y, isInteractiveZoomPan, isBringIntoView); + } + // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad. + // The below condition is used to avoid the flickering of the scroll bar on scrolling the diagram using trackpad. + (-(pageBounds.y) >= newOffset.y && -(pageBounds.x) >= newOffset.x && isTrackpadScroll) ? isTrackpadScroll = true : isTrackpadScroll = false; + if ((this.diagram.scrollActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ScrollActions"].PropertyChange || + !(this.diagram.scrollActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ScrollActions"].Interaction)) || + this.diagram.scrollSettings.scrollLimit !== 'Diagram' || isTrackpadScroll) { + this.transform = { + tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom, + ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom, + scale: this.currentZoom + }; + this.horizontalOffset = newOffset.x; + this.verticalOffset = newOffset.y; + } + this.setSize(newOffset); + if (this.diagram.mode !== 'SVG' && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_4__["canVitualize"])(this.diagram)) { + this.diagram.scroller.virtualizeElements(); + } + if (this.diagram.mode !== 'SVG' && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_4__["canVitualize"])(this.diagram)) { + this.diagram.refreshDiagramLayer(); + } + this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y); + Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_3__["updateRuler"])(this.diagram); + } + } + }; + /** + * fitToPage method \ + * + * @returns { void } fitToPage method .\ + * @param {IFitOptions} options - provide the bounds value. + * + * @private + */ + DiagramScroller.prototype.fitToPage = function (options) { + options = options || {}; + var mode = options.mode; + var region = options.region; + var margin = options.margin || {}; + var canZoomIn = options.canZoomIn; + var customBounds = options.customBounds; + margin.bottom = margin.bottom || 25; + margin.top = margin.top || 25; + margin.left = margin.left || 25; + margin.right = margin.right || 25; + var bounds = customBounds; + var factor; + var deltaX = -this.horizontalOffset; + var deltaY = -this.verticalOffset; + region = region ? region : 'PageSettings'; + //fit mode + if ((region === 'PageSettings' && this.diagram.pageSettings.width && this.diagram.pageSettings.height) + || (this.diagram.nodes.length > 0 || this.diagram.connectors.length > 0)) { + mode = mode ? mode : 'Page'; + if (region !== 'CustomBounds') { + bounds = this.getPageBounds(true, region, true); + } + var scale = { x: 0, y: 0 }; + scale.x = (this.viewPortWidth - (margin.left + margin.right)) / (bounds.width); + scale.y = (this.viewPortHeight - (margin.top + margin.bottom)) / (bounds.height); + if (!canZoomIn && (((bounds.width - this.horizontalOffset) < this.viewPortWidth) && + (bounds.height - this.verticalOffset) < this.viewPortHeight)) { + scale.x = Math.min(this.currentZoom, scale.x); + scale.y = Math.min(this.currentZoom, scale.y); + } + var zoomFactor = void 0; + var centerX = void 0; + var centerY = void 0; + switch (mode) { + case 'Width': + zoomFactor = scale.x; + factor = zoomFactor / this.currentZoom; + centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor; + deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor; + deltaY -= -this.verticalOffset * factor; + deltaY = region !== 'CustomBounds' ? deltaY : deltaY - this.verticalOffset * factor; + break; + case 'Height': + zoomFactor = scale.y; + factor = (zoomFactor / this.currentZoom); + centerX = ((this.viewPortWidth - (bounds.width) * zoomFactor) / 2) - bounds.x * zoomFactor; + centerY = ((this.viewPortHeight - (bounds.height) * zoomFactor) / 2) - bounds.y * zoomFactor; + deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor; + deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor; + break; + case 'Page': + zoomFactor = Math.min(scale.x, scale.y); + factor = (zoomFactor / this.currentZoom); + centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor; + centerY = (this.viewPortHeight - (bounds.height) * zoomFactor) / 2 - bounds.y * zoomFactor; + deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor; + deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor; + break; + } + /** + * EJ2-62912 - fit to page is not working properly when call it multiple times. + */ + this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true); + } + else { + factor = 1 / this.currentZoom; + this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true); + } + }; + /** + * bringIntoView method \ + * + * @returns { void } bringIntoView method .\ + * @param {Rect} rect - provide the bounds value. + * @param {boolean} isBringIntoView - provide the isBringIntoView value. + * + * @private + */ + DiagramScroller.prototype.bringIntoView = function (rect, isBringIntoView) { + // EJ2-68130-Bringintoview shows the object outside the viewport + var x = 0; + var y = 0; + var scale = this.currentZoom; + var bounds = rect; + var hoffset = -this.horizontalOffset; + var voffset = -this.verticalOffset; + bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale); + var view = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](hoffset, voffset, this.viewPortWidth, this.viewPortHeight); + if (!(view.containsRect(bounds))) { + if (bounds.right > (-hoffset + this.viewPortWidth)) { + x = bounds.right - this.viewPortWidth; + } + if (bounds.x < -hoffset) { + x = bounds.x; + } + if (bounds.bottom > (-voffset + this.viewPortHeight)) { + y = bounds.bottom - this.viewPortHeight; + } + if (bounds.y < -voffset) { + y = bounds.y; + } + this.zoom(1, -this.horizontalOffset - x, -this.verticalOffset - y, null, undefined, isBringIntoView); + } + }; + /** + * bringToCenter method \ + * + * @returns { void } bringToCenter method .\ + * @param {Rect} bounds - provide the bounds value. + * + * @private + */ + DiagramScroller.prototype.bringToCenter = function (bounds) { + var scale = this.currentZoom; + var actualbounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale); + var hoffset = actualbounds.x + actualbounds.width / 2 - this.viewPortWidth / 2; + var voffset = actualbounds.y + actualbounds.height / 2 - this.viewPortHeight / 2; + /** + * In applyScrollLimit method the sign of deltaX and deltaY + * will be changed ,so here we change the sign. + * similarly for bringIntoView. + */ + hoffset *= -1; + voffset *= -1; + this.zoom(1, -this.horizontalOffset - hoffset, -this.verticalOffset - voffset, null); + }; + DiagramScroller.prototype.applyScrollLimit = function (hOffset, vOffset, isInteractiveZoomPan, isBringIntoView) { + /** + * EJ2-60980- ScrollOffset is not updated properly in runtime. + * EJ2-62524 - panning is not working properly in diagram. + * isInteractiveZoomPan is undefined while setting scrollOffset at runtime. + */ + if (this.diagram.scrollSettings.scrollLimit === 'Infinity') { + if (isInteractiveZoomPan === undefined) { + hOffset = -hOffset; + vOffset = -vOffset; + } + } + if (this.diagram.scrollSettings.scrollLimit !== 'Infinity') { + var bounds = void 0; + if (this.diagram.scrollSettings.scrollLimit === 'Limited') { + var scrollableBounds = this.diagram.scrollSettings.scrollableArea; + bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](scrollableBounds.x, scrollableBounds.y, scrollableBounds.width, scrollableBounds.height); + } + bounds = bounds || this.getPageBounds(); + bounds.x *= this.currentZoom; + bounds.y *= this.currentZoom; + bounds.width *= this.currentZoom; + bounds.height *= this.currentZoom; + if (isInteractiveZoomPan !== undefined) { + hOffset *= -1; + vOffset *= -1; + } + // EJ2-69238 - Added below code to multiple the horizontal and vertical offset to bring the node in viewport + if (isBringIntoView) { + hOffset *= -1; + vOffset *= -1; + } + var allowedRight = Math.max(bounds.right, this.viewPortWidth); + if (!isBringIntoView && !(hOffset <= bounds.x && (hOffset + this.viewPortWidth >= bounds.right || + hOffset >= bounds.right - this.viewPortWidth) + || hOffset >= bounds.x && (hOffset + this.viewPortWidth <= allowedRight))) { + //not allowed case + if (hOffset >= bounds.x) { + hOffset = Math.max(bounds.x, Math.min(hOffset, hOffset - (hOffset + this.viewPortWidth - this.vScrollSize - allowedRight))); + } + else { + var allowed = bounds.right - this.viewPortWidth; + hOffset = Math.min(allowed, bounds.x); + } + } + var allowedBottom = Math.max(bounds.bottom, this.viewPortHeight); + // EJ2-69238 - Added below code to restrict the min value calculation for vertical offset in bringIntoview scenarion. + if (!isBringIntoView && !(vOffset <= bounds.y && vOffset + this.viewPortHeight >= bounds.bottom + || vOffset >= bounds.y && vOffset + this.viewPortHeight <= allowedBottom)) { + //not allowed case + if (vOffset >= bounds.y) { + vOffset = Math.max(bounds.y, Math.min(vOffset, vOffset - (vOffset + this.viewPortHeight - this.hScrollSize - allowedBottom))); + } + else { + var allowed = bounds.bottom - this.viewPortHeight; + vOffset = Math.min(bounds.y, allowed); + } + } + hOffset *= -1; + vOffset *= -1; + } + return { x: hOffset, y: vOffset }; + }; + return DiagramScroller; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/selector.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/selector.js ***! + \************************************************************************************/ +/*! exports provided: UserHandle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserHandle", function() { return UserHandle; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _objects_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../objects/tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * A collection of frequently used commands that will be added around the selector + * ```html + *
+ * ``` + * ```typescript + * let nodes: NodeModel[] = [{ + * id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100, + * annotations: [{ content: 'Default Shape' }] + * }, + * { + * id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100, + * shape: { + * type: 'Basic', shape: 'Ellipse' + * }, + * annotations: [{ content: 'Path Element' }] + * } + * ]; + * let connectors: ConnectorModel[] = [{ + * id: 'connector1', + * type: 'Straight', + * sourcePoint: { x: 100, y: 300 }, + * targetPoint: { x: 200, y: 400 }, + * }]; + * let handle: UserHandleModel[] = [ + * { name: 'handle', margin: { top: 0, bottom: 0, left: 0, right: 0 }, offset: 0, + * pathData: 'M 376.892,225.284L 371.279,211.95L 376.892,198.617L 350.225,211.95L 376.892,225.284 Z', + * side: 'Top', horizontalAlignment: 'Center', verticalAlignment: 'Center', + * pathColor: 'yellow' }]; + * let diagram: Diagram = new Diagram({ + * ... + * connectors: connectors, nodes: nodes, + * selectedItems: { constraints: SelectorConstraints.All, userHandles: handle }, + * ... + * }); + * diagram.appendTo('#diagram'); + * ``` + * @default {} + */ +var UserHandle = /** @__PURE__ @class */ (function (_super) { + __extends(UserHandle, _super); + function UserHandle() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * + * Returns the name of class UserHandle + * + * @returns {string} Returns the name of class UserHandle + * @private + */ + UserHandle.prototype.getClassName = function () { + return 'UserHandle'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "pathData", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "source", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#000000') + ], UserHandle.prototype, "backgroundColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Top') + ], UserHandle.prototype, "side", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "borderColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.5) + ], UserHandle.prototype, "borderWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(25) + ], UserHandle.prototype, "size", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('white') + ], UserHandle.prototype, "pathColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], UserHandle.prototype, "displacement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], UserHandle.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], UserHandle.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], UserHandle.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], UserHandle.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], UserHandle.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], UserHandle.prototype, "disableNodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], UserHandle.prototype, "disableConnectors", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _objects_tooltip__WEBPACK_IMPORTED_MODULE_2__["DiagramTooltip"]) + ], UserHandle.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UserHandle.prototype, "template", void 0); + return UserHandle; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/quad.js": +/*!***********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/quad.js ***! + \***********************************************************************************************/ +/*! exports provided: Quad */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Quad", function() { return Quad; }); +/** + * Quad helps to maintain a set of objects that are contained within the particular region + */ +/** @private */ +var Quad = /** @__PURE__ @class */ (function () { + /** + * Constructor for creating the Quad class + * + * @param {number} left The symbol palette model. + * @param {number} top The symbol palette element. + * @param {number} width The symbol palette element. + * @param {number} height The symbol palette element. + * @param {SpatialSearch} spatialSearching The symbol palette element. + * @private + */ + function Quad(left, top, width, height, spatialSearching) { + this.objects = []; + this.left = left; + this.top = top; + this.width = width; + this.height = height; + this.spatialSearch = spatialSearching; + } + /** + * findQuads method\ + * + * @returns { void} findQuads method .\ + * @param {Rect} currentViewPort - provide the options value. + * @param {Quad[]} quads - provide the options value. + * @private + */ + Quad.prototype.findQuads = function (currentViewPort, quads) { + if (this.first != null && this.first.isIntersect(currentViewPort)) { + this.first.findQuads(currentViewPort, quads); + } + if (this.second != null && this.second.isIntersect(currentViewPort)) { + this.second.findQuads(currentViewPort, quads); + } + if (this.third != null && this.third.isIntersect(currentViewPort)) { + this.third.findQuads(currentViewPort, quads); + } + if (this.fourth != null && this.fourth.isIntersect(currentViewPort)) { + this.fourth.findQuads(currentViewPort, quads); + } + if (this.objects.length > 0) { + quads.push(this); + } + }; + Quad.prototype.isIntersect = function (t) { + if (this.left + this.width < t.left || this.top + this.height < t.top || this.left > t.right || this.top > t.bottom) { + return false; + } + return true; + }; + /** + * selectQuad method\ + * + * @returns { Quad } selectQuad method .\ + * @private + */ + Quad.prototype.selectQuad = function () { + var target = null; + // eslint-disable-next-line + var current = this; + var quadSet; + while (current != null) { + quadSet = current.getQuad(target); + current = quadSet.source; + target = quadSet.target || target; + } + return target; + }; + Quad.prototype.getQuad = function (target) { + target = null; + var halfWidth = this.width / 2; + var halfHeight = this.height / 2; + if (halfWidth >= 1000 && halfHeight >= 1000) { + var xCenter = this.left + halfWidth; + var yCenter = this.top + halfHeight; + if (this.spatialSearch.childRight <= xCenter) { + if (this.spatialSearch.childBottom <= yCenter) { + if (!this.first) { + var newQuad = new Quad(this.left, this.top, halfWidth, halfHeight, this.spatialSearch); + newQuad.parent = this; + this.first = newQuad; + } + return { source: this.first }; + } + if (this.spatialSearch.childTop >= yCenter) { + if (!this.third) { + var newQuad = new Quad(this.left, yCenter, halfWidth, halfHeight, this.spatialSearch); + newQuad.parent = this; + this.third = newQuad; + } + return { source: this.third }; + } + } + else if (this.spatialSearch.childLeft >= xCenter) { + if (this.spatialSearch.childBottom <= yCenter) { + if (!this.second) { + var newQuad = new Quad(xCenter, this.top, halfWidth, halfHeight, this.spatialSearch); + newQuad.parent = this; + this.second = newQuad; + } + return { source: this.second }; + } + if (this.spatialSearch.childTop >= yCenter) { + if (!this.fourth) { + var newQuad = new Quad(xCenter, yCenter, halfWidth, halfHeight, this.spatialSearch); + newQuad.parent = this; + this.fourth = newQuad; + } + return { source: this.fourth }; + } + } + } + target = this; + this.objects.push(this.spatialSearch.childNode); + return { target: this }; + }; + /** + * isContained method\ + * + * @returns { boolean } isContained method .\ + * @private + */ + Quad.prototype.isContained = function () { + if (this.spatialSearch.childLeft >= this.left && this.spatialSearch.childRight <= this.left + this.width && + this.spatialSearch.childTop >= this.top && this.spatialSearch.childBottom <= this.top + this.height) { + return true; + } + return false; + }; + /** + * addIntoAQuad method\ + * + * @returns { Quad } addIntoAQuad method .\ + * @param {IGroupable} node - provide the options value. + * @private + */ + Quad.prototype.addIntoAQuad = function (node) { + var quadAddition = {}; + this.spatialSearch.setCurrentNode(node); + var quad = null; + while (!quadAddition.isAdded) { + quadAddition = this.spatialSearch.parentQuad.add(quad); + quad = quadAddition.quad; + } + return quad; + }; + Quad.prototype.add = function (quad) { + quad = null; + if (this.isContained()) { + quad = this.selectQuad(); + return { isAdded: true, quad: quad }; + } + else { + var newParent = void 0; + var isempty = this.objects.length === 0 && !this.first && !this.second && !this.third && + !this.fourth; + var newWidth = this.width * 2; + var newHeight = this.height * 2; + if (this.spatialSearch.childLeft < this.left) { + if (this.spatialSearch.childTop < this.top) { + newParent = new Quad(this.left - this.width, this.top - this.height, newWidth, newHeight, this.spatialSearch); + if (!isempty) { + newParent.fourth = this; + } + } + else { + newParent = new Quad(this.left - this.width, this.top, newWidth, newHeight, this.spatialSearch); + if (!isempty) { + newParent.second = this; + } + } + } + else if (this.spatialSearch.childTop < this.top) { + newParent = new Quad(this.left, this.top - this.height, newWidth, newHeight, this.spatialSearch); + if (!isempty) { + newParent.third = this; + } + } + else { + newParent = new Quad(this.left, this.top, newWidth, newHeight, this.spatialSearch); + if (!isempty) { + newParent.first = this; + } + } + this.parent = newParent; + this.spatialSearch.parentQuad = newParent; + return { isAdded: false, quad: quad }; + //newParent.AddIntoaQuad(node); + } + }; + return Quad; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/spatial-search.js": +/*!*********************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/spatial-search.js ***! + \*********************************************************************************************************/ +/*! exports provided: SpatialSearch */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpatialSearch", function() { return SpatialSearch; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _quad__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quad */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/spatial-search/quad.js"); + + +/** + * Spatial search module helps to effectively find the objects over diagram + */ +var SpatialSearch = /** @__PURE__ @class */ (function () { + /** + * Constructor for creating the spatial search + * + * @param {number} objectTable The objectTable. + * @private + */ + function SpatialSearch(objectTable) { + this.quadSize = 500; + this.objectTable = objectTable; + this.parentQuad = new _quad__WEBPACK_IMPORTED_MODULE_1__["Quad"](0, 0, this.quadSize * 2, this.quadSize * 2, this); + this.pageLeft = Number.MAX_VALUE; + this.pageRight = -Number.MAX_VALUE; + this.pageTop = Number.MAX_VALUE; + this.pageBottom = -Number.MAX_VALUE; + this.quadTable = {}; + } + /** + * removeFromAQuad method\ + * + * @returns {void} removeFromAQuad method .\ + * @param {IGroupable} node - provide the options value. + * @private + */ + SpatialSearch.prototype.removeFromAQuad = function (node) { + if (this.quadTable[node.id]) { + var quad = this.quadTable[node.id]; + var index = this.objectIndex(quad.objects, node); + if (index !== -1) { + quad.objects.splice(index, 1); + this.update(quad); + delete this.quadTable[node.id]; + } + } + }; + SpatialSearch.prototype.update = function (quad) { + if (quad.parent && quad.objects.length === 0 && quad.first && quad.second && quad.third && quad.fourth) { + var parent_1 = quad.parent; + if (parent_1.first === quad) { + parent_1.first = null; + } + else if (parent_1.second === quad) { + parent_1.second = null; + } + else if (parent_1.third === quad) { + parent_1.third = null; + } + else if (parent_1.fourth === quad) { + parent_1.fourth = null; + } + this.update(quad.parent); + } + else { + if (quad === this.parentQuad && !quad.first && !quad.second && !quad.third && !quad.fourth) { + quad.left = 0; + quad.width = 1000; + quad.top = 0; + quad.height = 1000; + } + return; + } + }; + SpatialSearch.prototype.addIntoAQuad = function (node) { + var quad = this.parentQuad.addIntoAQuad(node); + this.quadTable[node.id] = quad; + }; + SpatialSearch.prototype.objectIndex = function (objects, node) { + for (var i = 0; i < objects.length; i++) { + if ((objects[parseInt(i.toString(), 10)]).id === node.id) { + return i; + } + } + return -1; + }; + SpatialSearch.prototype.updateQuad = function (node) { + this.setCurrentNode(node); + var nodBounds = node.outerBounds; + if (!(!isNaN(nodBounds.x) && !isNaN(nodBounds.y) && + !isNaN(nodBounds.width) && !isNaN(nodBounds.height))) { + return false; + } + //nodBounds = new Rect(nodBounds.X.Valid(), nodBounds.Y.Valid(), nodBounds.Width.Valid(), nodBounds.Height.Valid()); + if (this.quadTable[node.id]) { + var quad = this.quadTable[node.id]; + if (!quad.isContained()) { + this.removeFromAQuad(node); + this.addIntoAQuad(node); + } + } + else { + this.addIntoAQuad(node); + } + if (this.isWithinPageBounds(nodBounds) && + this.leftElement !== node && + this.topElement !== node && + this.rightElement !== node && + this.bottomElement !== node) { + //contained - no change + } + else { + var modified = false; + if (this.pageLeft !== this.childLeft || node !== this.leftElement) { + if (this.pageLeft >= this.childLeft) { + this.pageLeft = this.childLeft; + this.leftElement = node; + modified = true; + } + else if (node === this.leftElement) { + this.pageLeft = Number.MAX_VALUE; + this.findLeft(this.parentQuad); + modified = true; + } + } + if (this.pageTop !== this.childTop || node !== this.topElement) { + if (this.pageTop >= this.childTop) { + this.pageTop = this.childTop; + this.topElement = node; + modified = true; + } + else if (node === this.topElement) { + this.pageTop = Number.MAX_VALUE; + this.findTop(this.parentQuad); + modified = true; + } + } + if (this.pageBottom !== this.childBottom || node !== this.bottomElement) { + if (this.pageBottom <= this.childBottom) { + modified = true; + this.pageBottom = this.childBottom; + this.bottomElement = node; + } + else if (node === this.bottomElement) { + this.pageBottom = -Number.MAX_VALUE; + this.findBottom(this.parentQuad); + modified = true; + } + } + if (this.pageRight !== this.childRight || node !== this.rightElement) { + if (this.pageRight <= this.childRight) { + this.pageRight = this.childRight; + this.rightElement = node; + modified = true; + } + else if (node === this.rightElement) { + this.pageRight = -Number.MAX_VALUE; + this.findRight(this.parentQuad); + modified = true; + } + } + return modified; + } + this.setCurrentNode(null); + return false; + }; + SpatialSearch.prototype.isWithinPageBounds = function (node) { + if (node.left >= this.pageLeft && node.right <= this.pageRight && node.top >= this.pageTop + && node.bottom <= this.pageBottom) { + return true; + } + else { + return false; + } + }; + /** + * findQuads method\ + * + * @returns { Quad[] } findQuads method .\ + * @param {Rect} region - provide the options value. + * @private + */ + SpatialSearch.prototype.findQuads = function (region) { + var quads = []; + this.parentQuad.findQuads(region, quads); + return quads; + }; + /** + * findObjects method\ + * + * @returns { IGroupable[] } findObjects method .\ + * @param {Rect} region - provide the options value. + * @private + */ + SpatialSearch.prototype.findObjects = function (region) { + var quads = this.findQuads(region); + var objects = []; + for (var _i = 0, quads_1 = quads; _i < quads_1.length; _i++) { + var quad = quads_1[_i]; + for (var _a = 0, _b = quad.objects; _a < _b.length; _a++) { + var obj = _b[_a]; + if (obj.outerBounds.intersects(region)) { + objects.push(this.objectTable[obj.id]); + } + } + } + return objects; + }; + /** + * updateBounds method\ + * + * @returns { boolean } updateBounds method .\ + * @param {IGroupable} node - provide the options value. + * @private + */ + SpatialSearch.prototype.updateBounds = function (node) { + var modified = false; + if (node === this.topElement) { + this.pageTop = Number.MAX_VALUE; + this.topElement = null; + this.findTop(this.parentQuad); + modified = true; + } + if (node === this.leftElement) { + this.pageLeft = Number.MAX_VALUE; + this.leftElement = null; + this.findLeft(this.parentQuad); + modified = true; + } + if (node === this.rightElement) { + this.pageRight = -Number.MAX_VALUE; + this.rightElement = null; + this.findRight(this.parentQuad); + modified = true; + } + if (node === this.bottomElement) { + this.pageBottom = -Number.MAX_VALUE; + this.bottomElement = null; + this.findBottom(this.parentQuad); + modified = true; + } + return modified; + }; + SpatialSearch.prototype.findBottom = function (quad) { + //if (quad.Quads.Count === 4) + { + if (quad.third || quad.fourth) { + if (quad.third) { + this.findBottom(quad.third); + } + if (quad.fourth) { + this.findBottom(quad.fourth); + } + } + else { + if (quad.second) { + this.findBottom(quad.second); + } + if (quad.first) { + this.findBottom(quad.first); + } + } + } + for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) { + var node = _a[_i]; + if (this.pageBottom <= node.outerBounds.bottom) { + this.pageBottom = node.outerBounds.bottom; + this.bottomElement = node; + } + } + }; + SpatialSearch.prototype.findRight = function (quad) { + //if (quad.Quads.Count === 4) + { + if (quad.second || quad.fourth) { + if (quad.second) { + this.findRight(quad.second); + } + if (quad.fourth) { + this.findRight(quad.fourth); + } + } + // EJ2-65880 - Exception occurs on dragging outside the canvas + { + if (quad.first) { + this.findRight(quad.first); + } + if (quad.third) { + this.findRight(quad.third); + } + } + } + for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) { + var node = _a[_i]; + if (this.pageRight <= node.outerBounds.right) { + this.pageRight = node.outerBounds.right; + this.rightElement = node; + } + } + }; + SpatialSearch.prototype.findLeft = function (quad) { + //if (quad.Quads.Count === 4) + { + if (quad.first || quad.third) { + if (quad.first) { + this.findLeft(quad.first); + } + if (quad.third) { + this.findLeft(quad.third); + } + } + else { + if (quad.second) { + this.findLeft(quad.second); + } + if (quad.fourth) { + this.findLeft(quad.fourth); + } + } + } + for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) { + var node = _a[_i]; + if (this.pageLeft >= node.outerBounds.left) { + this.pageLeft = node.outerBounds.left; + this.leftElement = node; + } + } + }; + SpatialSearch.prototype.findTop = function (quad) { + //if (quad.Quads.Count === 4) + { + if (quad.first || quad.second) { + if (quad.first) { + this.findTop(quad.first); + } + if (quad.second) { + this.findTop(quad.second); + } + } + else { + if (quad.third) { + this.findTop(quad.third); + } + if (quad.fourth) { + this.findTop(quad.fourth); + } + } + } + for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) { + var node = _a[_i]; + if (this.pageTop >= node.outerBounds.top) { + this.pageTop = node.outerBounds.top; + this.topElement = node; + } + } + }; + /** + * setCurrentNode method\ + * + * @returns { void } setCurrentNode method .\ + * @param {IGroupable} node - provide the options value. + * @private + */ + SpatialSearch.prototype.setCurrentNode = function (node) { + this.childNode = node; + if (node) { + var r = node.outerBounds; + this.childLeft = Number(r.left); + this.childTop = Number(r.top); + this.childRight = Number(r.right); + this.childBottom = Number(r.bottom); + } + else { + this.childLeft = Number.MAX_VALUE; + this.childTop = Number.MAX_VALUE; + this.childRight = -Number.MAX_VALUE; + this.childBottom = -Number.MAX_VALUE; + } + }; + /** + * getPageBounds method\ + * + * @returns { Rect } getPageBounds method .\ + * @param {number} originX - provide the options value. + * @param {number} originY - provide the options value. + * @private + */ + SpatialSearch.prototype.getPageBounds = function (originX, originY) { + if (this.pageLeft === Number.MAX_VALUE) { + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](0, 0, 0, 0); + } + var left = originX !== undefined ? Math.min(this.pageLeft, 0) : this.pageLeft; + var top = originY !== undefined ? Math.min(this.pageTop, 0) : this.pageTop; + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](Math.round(left), Math.round(top), Math.round(this.pageRight - left), Math.round(this.pageBottom - top)); + }; + /** + * getQuad method\ + * + * @returns { Quad } getQuad method .\ + * @param {IGroupable} node - provide the options value. + * @private + */ + SpatialSearch.prototype.getQuad = function (node) { + return this.quadTable[node.id]; + }; + return SpatialSearch; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js ***! + \********************************************************************************/ +/*! exports provided: ToolBase, SelectTool, FixedUserHandleTool, ConnectTool, MoveTool, RotateTool, ResizeTool, NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, ZoomPanTool, ExpandTool, LabelTool, PolygonDrawingTool, PolyLineDrawingTool, LabelDragTool, LabelResizeTool, LabelRotateTool, FreeHandTool */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToolBase", function() { return ToolBase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectTool", function() { return SelectTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandleTool", function() { return FixedUserHandleTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectTool", function() { return ConnectTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoveTool", function() { return MoveTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RotateTool", function() { return RotateTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeTool", function() { return ResizeTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeDrawingTool", function() { return NodeDrawingTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorDrawingTool", function() { return ConnectorDrawingTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextDrawingTool", function() { return TextDrawingTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZoomPanTool", function() { return ZoomPanTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandTool", function() { return ExpandTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelTool", function() { return LabelTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PolygonDrawingTool", function() { return PolygonDrawingTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PolyLineDrawingTool", function() { return PolyLineDrawingTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelDragTool", function() { return LabelDragTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelResizeTool", function() { return LabelResizeTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelRotateTool", function() { return LabelRotateTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FreeHandTool", function() { return FreeHandTool; }); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _utility_diff_map__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utility/diff-map */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diff-map.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (undefined && undefined.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; + + + + + + + + + + + + + + + + + + +/** + * Defines the interactive tools + */ +var ToolBase = /** @__PURE__ @class */ (function () { + /** + * Initializes the tool + * + * @param {CommandHandler} command Command that is corresponding to the current action + * @param protectChange + */ + function ToolBase(command, protectChange) { + if (protectChange === void 0) { protectChange = false; } + /** + * Command that is corresponding to the current action + */ + this.commandHandler = null; + this.deepDiffer = new _utility_diff_map__WEBPACK_IMPORTED_MODULE_14__["DeepDiffMapper"](); + /** + * Sets/Gets whether the interaction is being done + */ + this.inAction = false; + /** + * Sets/Gets the protect change + */ + this.isProtectChange = false; + /** + * Sets/Gets the current element that is under mouse + */ + this.currentElement = null; + /** @private */ + this.blocked = false; + this.isTooltipVisible = false; + /** @private */ + this.childTable = {}; + /** + * Sets/Gets the previous object when mouse down + */ + this.undoElement = { nodes: [], connectors: [] }; + this.checkProperty = true; + this.undoParentElement = { nodes: [], connectors: [] }; + this.commandHandler = command; + this.isProtectChange = protectChange; + } + ToolBase.prototype.startAction = function (currentElement) { + this.currentElement = currentElement; + this.inAction = true; + }; + /** + * @param args + * @private + */ + ToolBase.prototype.mouseDown = function (args) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.enableCloneObject(true); + this.commandHandler.ismouseEvents(true); + } + this.currentElement = args.source; + this.startPosition = this.currentPosition = this.prevPosition = args.position; + this.isTooltipVisible = true; + this.startAction(args.source); + this.checkProperty = true; + // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node + this.mouseDownElement = args.source; + }; + ToolBase.prototype.checkPropertyValue = function () { + if (this.checkProperty) { + this.commandHandler.startTransaction(this.isProtectChange); + } + }; + /** + * @param args + * @private + */ + ToolBase.prototype.mouseMove = function (args) { + this.currentPosition = args.position; + if (this.inAction) { + this.commandHandler.startTransaction(this.isProtectChange); + this.checkProperty = false; + } + //this.currentElement = currentElement; + return !this.blocked; + }; + /** + * @param args + * @private + */ + ToolBase.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + this.currentPosition = args.position; + // this.currentElement = currentElement; + this.isTooltipVisible = false; + this.commandHandler.endTransaction(this.isProtectChange); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.enableCloneObject(false); + this.commandHandler.ismouseEvents(false); + this.commandHandler.getBlazorOldValues(args, this instanceof LabelDragTool); + } + this.endAction(); + // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node + this.mouseDownElement = null; + }; + ToolBase.prototype.endAction = function () { + if (!this.isTooltipVisible) { + this.commandHandler.closeTooltip(); + } + this.commandHandler = null; + this.currentElement = null; + this.currentPosition = null; + this.inAction = false; + this.blocked = false; + }; + /** + * @param args + * @private + */ + ToolBase.prototype.mouseWheel = function (args) { + this.currentPosition = args.position; + }; + /** + * @param args + * @private + */ + ToolBase.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle) { + shape = this.commandHandler.renderContainerHelper(shape) || shape; + var horizontalsnap = { snapped: false, offset: 0, left: false, right: false }; + var verticalsnap = { snapped: false, offset: 0, top: false, bottom: false }; + var difx = this.currentPosition.x - this.startPosition.x; + var dify = this.currentPosition.y - this.startPosition.y; + var snapEnabled = (!(shape instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"])) && this.commandHandler.snappingModule + && this.commandHandler.snappingModule.canSnap(); + var snapLine = snapEnabled ? this.commandHandler.snappingModule.getLayer() : null; + var rotateAngle = (shape instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"]) ? angle : shape.rotateAngle; + var matrix; + matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["rotateMatrix"])(matrix, -rotateAngle, 0, 0); + var x = shape.offsetX; + var y = shape.offsetY; + var w = shape.width; + var h = shape.height; + x = x - w * shape.pivot.x; + y = y - h * shape.pivot.y; + var deltaWidth = 0; + var deltaHeight = 0; + var diff; + var width = (shape instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"]) ? shape.actualSize.width : shape.width; + var height = (shape instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"]) ? shape.actualSize.height : shape.height; + switch (corner) { + case 'ResizeWest': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + deltaHeight = 1; + difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + difx; + dify = 0; + deltaWidth = (initialBounds.width - difx) / width; + break; + case 'ResizeEast': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + difx; + dify = 0; + deltaWidth = (initialBounds.width + difx) / width; + deltaHeight = 1; + break; + case 'ResizeNorth': + deltaWidth = 1; + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + dify; + deltaHeight = (initialBounds.height - dify) / height; + break; + case 'ResizeSouth': + deltaWidth = 1; + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + dify; + deltaHeight = (initialBounds.height + dify) / height; + break; + case 'ResizeNorthEast': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + difx; + dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : + dify; + deltaWidth = (initialBounds.width + difx) / width; + deltaHeight = (initialBounds.height - dify) / height; + break; + case 'ResizeNorthWest': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds); + difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds); + deltaWidth = (initialBounds.width - difx) / width; + deltaHeight = (initialBounds.height - dify) / height; + break; + case 'ResizeSouthEast': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds); + difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds); + deltaHeight = (initialBounds.height + dify) / height; + deltaWidth = (initialBounds.width + difx) / width; + break; + case 'ResizeSouthWest': + diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, ({ x: difx, y: dify })); + difx = diff.x; + dify = diff.y; + dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : dify; + difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : difx; + deltaWidth = (initialBounds.width - difx) / width; + deltaHeight = (initialBounds.height + dify) / height; + break; + } + return { width: deltaWidth, height: deltaHeight }; + }; + ToolBase.prototype.getPivot = function (corner) { + switch (corner) { + case 'ResizeWest': + return { x: 1, y: 0.5 }; + case 'ResizeEast': + return { x: 0, y: 0.5 }; + case 'ResizeNorth': + return { x: 0.5, y: 1 }; + case 'ResizeSouth': + return { x: 0.5, y: 0 }; + case 'ResizeNorthEast': + return { x: 0, y: 1 }; + case 'ResizeNorthWest': + return { x: 1, y: 1 }; + case 'ResizeSouthEast': + return { x: 0, y: 0 }; + case 'ResizeSouthWest': + return { x: 1, y: 0 }; + } + return { x: 0.5, y: 0.5 }; + }; + //method to get node shape name + ToolBase.prototype.getShapeType = function () { + var shape; + if (this.commandHandler.diagram.drawingObject.shape.type === 'Image' || 'HTML' || 'Native' || 'Path') { + shape = this.commandHandler.diagram.drawingObject.shape.type; + } + else { + shape = this.commandHandler.diagram.drawingObject.shape.shape; + } + return shape; + }; + //EJ2-52203-Method to trigger ElementDraw Event when we draw node or connector with the drawing Tool + ToolBase.prototype.triggerElementDrawEvent = function (source, state, objectType, elementType, isMouseDownAction) { + var arg = { + source: source, state: state, objectType: objectType, cancel: false, elementType: elementType + }; + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].elementDraw, arg); + if (isMouseDownAction && arg.cancel) { + { + this.commandHandler.diagram.resetTool(); + } + } + }; + return ToolBase; +}()); + +/** + * Helps to select the objects + */ +var SelectTool = /** @__PURE__ @class */ (function (_super) { + __extends(SelectTool, _super); + function SelectTool(commandHandler, protectChange, action) { + var _this = _super.call(this, commandHandler, true) || this; + _this.action = action; + return _this; + } + /** + * @param args + * @private + */ + SelectTool.prototype.mouseDown = function (args) { + this.inAction = true; + _super.prototype.mouseDown.call(this, args); + }; + /** + * @param args + * @private + */ + SelectTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + //draw selected region + if (this.inAction && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds([this.prevPosition, this.currentPosition]); + // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node + if (this.mouseDownElement && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canMove"])(this.mouseDownElement)) { + this.commandHandler.clearObjectSelection(this.mouseDownElement); + } + else { + this.commandHandler.clearSelectedItems(); + this.commandHandler.drawSelectionRectangle(rect.x, rect.y, rect.width, rect.height); + } + } + return !this.blocked; + }; + /** + * @param args + * @private + */ + SelectTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + //rubber band selection + if (!this.commandHandler.isUserHandle(this.currentPosition)) { + if (_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false && this.inAction) { + var region = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds([this.prevPosition, this.currentPosition]); + this.commandHandler.doRubberBandSelection(region); + } + else { + //single selection + var arrayNodes = this.commandHandler.getSelectedObject(); + if (!this.commandHandler.hasSelection() || !args.info || !args.info.ctrlKey) { + this.commandHandler.clearSelection(args.source === null ? true : false); + if (this.action === 'LabelSelect') { + this.commandHandler.labelSelect(args.source, args.sourceWrapper); + } + else if (args.source) { + this.commandHandler.selectObjects([args.source], false, arrayNodes); + } + } + else { + //handling multiple selection + if (args && args.source) { + if (!this.commandHandler.isSelected(args.source)) { + this.commandHandler.selectObjects([args.source], true); + } + else { + if (args.clickCount === 1) { + this.commandHandler.unSelect(args.source); + this.commandHandler.updateBlazorSelector(); + } + } + } + } + } + } + this.inAction = false; + _super.prototype.mouseUp.call(this, args); + }; + /** + * @param args + * @private + */ + SelectTool.prototype.mouseLeave = function (args) { + if (this.inAction) { + this.mouseUp(args); + } + }; + return SelectTool; +}(ToolBase)); + +var FixedUserHandleTool = /** @__PURE__ @class */ (function (_super) { + __extends(FixedUserHandleTool, _super); + function FixedUserHandleTool() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @param args + * @private + */ + FixedUserHandleTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + this.inAction = false; + var val = args.source; + var fixedUserHandle; + var iconId = args.sourceWrapper.id; + for (var i = 0; i < val.fixedUserHandles.length; i++) { + if (iconId.indexOf(val.fixedUserHandles[parseInt(i.toString(), 10)].id) > -1) { + fixedUserHandle = val.fixedUserHandles[parseInt(i.toString(), 10)]; + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + var element = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getObjectType"])(args.source) === _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"] ? { connector: args.source } + : { node: args.source }; + var fixedUserHandles = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getObjectType"])(args.source) === _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"] ? + { connectorFixedUserHandle: fixedUserHandle } + : { nodeFixedUserHandle: fixedUserHandle }; + var arg = { + fixedUserHandle: fixedUserHandles, + element: element + }; + var trigger = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].fixedUserHandleClick; + this.commandHandler.triggerEvent(trigger, arg); + _super.prototype.mouseUp.call(this, args); + } + else { + var arg = { + fixedUserHandle: fixedUserHandle, + element: args.source + }; + var trigger = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].fixedUserHandleClick; + this.commandHandler.triggerEvent(trigger, arg); + _super.prototype.mouseUp.call(this, args); + } + }; + return FixedUserHandleTool; +}(ToolBase)); + +/** + * Helps to edit the selected connectors + */ +var ConnectTool = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectTool, _super); + function ConnectTool(commandHandler, endPoint) { + var _this = _super.call(this, commandHandler, true) || this; + _this.isConnected = false; + _this.endPoint = endPoint; + return _this; + } + /** + * @param args + * @private + */ + ConnectTool.prototype.mouseDown = function (args) { + return __awaiter(this, void 0, void 0, function () { + var selectorModel, connector, arg, oldValue, connectors, i, segment, segmentpoint1, segmentpoint2; + return __generator(this, function (_a) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && args && args.source) { + this.commandHandler.insertSelectedObjects(); + this.commandHandler.insertBlazorConnector(args.source); + selectorModel = args.source; + if (selectorModel.connectors) { + connector = selectorModel.connectors[0]; + this.oldConnector = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(connector); + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(connector), + oldValue: { connectorTargetValue: { portId: undefined, nodeId: undefined } }, + newValue: { connectorTargetValue: { portId: undefined, nodeId: undefined } }, + cancel: false, state: 'Changing', connectorEnd: this.endPoint + }; + this.tempArgs = arg; + } + } + this.inAction = true; + this.undoElement = undefined; + if (!(this instanceof ConnectorDrawingTool)) { + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + } + _super.prototype.mouseDown.call(this, args); + if (args.source && args.source.connectors) { + oldValue = { x: this.prevPosition.x, y: this.prevPosition.y }; + connectors = args.source.connectors[0]; + this.oldConnector = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(connectors); + } + // Sets the selected segment + if (this.endPoint === 'BezierSourceThumb' || this.endPoint === 'BezierTargetThumb') { + for (i = 0; i < connectors.segments.length; i++) { + segment = connectors.segments[parseInt(i.toString(), 10)]; + segmentpoint1 = !_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1; + segmentpoint2 = !_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2; + //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value + //Added below code for drag the bezier control thumb while increasing handle size(For hitPadding) + if (this.currentElement.handleSize !== connectors.hitPadding) { + connectors.hitPadding = this.currentElement.handleSize; + } + if (Object(_actions__WEBPACK_IMPORTED_MODULE_11__["contains"])(this.currentPosition, segmentpoint1, connectors.hitPadding) || + Object(_actions__WEBPACK_IMPORTED_MODULE_11__["contains"])(this.currentPosition, segmentpoint2, connectors.hitPadding)) { + this.selectedSegment = segment; + } + } + } + this.currentPosition = args.position; + return [2 /*return*/]; + }); + }); + }; + /** + * @param args + * @private + */ + ConnectTool.prototype.mouseUp = function (args) { + return __awaiter(this, void 0, void 0, function () { + var trigger, temparg, nodeEndId, portEndId, diagram, blazorInterop, blazor, eventObj, connector, nodeEndId, portEndId, arg, oldValues, connector, targetPortName, targetNodeNode, target, arg, trigger, obj, entry, obj, entry, connector; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) return [3 /*break*/, 3]; + trigger = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].connectionChange; + temparg = void 0; + if (!(this.tempArgs && this.oldConnector)) return [3 /*break*/, 3]; + this.commandHandler.updatePropertiesToBlazor(args, false); + this.tempArgs.state = 'Changed'; + nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + this.tempArgs.oldValue = this.endPoint === 'ConnectorSourceEnd' ? + { connectorSourceValue: { nodeId: this.oldConnector["" + nodeEndId], portId: this.oldConnector["" + portEndId] } } : + { connectorTargetValue: { nodeId: this.oldConnector["" + nodeEndId], portId: this.oldConnector["" + portEndId] } }; + temparg = { + state: this.tempArgs.state, oldValue: this.tempArgs.oldValue, + newValue: this.tempArgs.newValue, cancel: this.tempArgs.cancel, connectorEnd: this.tempArgs.connectorEnd + }; + diagram = 'diagram'; + blazorInterop = 'sfBlazor'; + blazor = 'Blazor'; + if (!(window && window["" + blazor] && this.commandHandler["" + diagram].connectionChange)) return [3 /*break*/, 2]; + eventObj = { 'EventName': 'connectionChange', args: JSON.stringify(this.tempArgs) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler["" + diagram])]; + case 1: + temparg = _a.sent(); + _a.label = 2; + case 2: + if (temparg) { + this.commandHandler.updateConnectorValue(temparg); + } + _a.label = 3; + case 3: + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && this.isConnected && args.source.connectors) { + connector = args.source.connectors[0]; + nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID'; + portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID'; + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(connector), + oldValue: { nodeId: this.oldConnector["" + nodeEndId], portId: this.oldConnector["" + portEndId] }, + newValue: { nodeId: connector["" + nodeEndId], portId: connector["" + portEndId] }, cancel: false, + state: 'Changed', connectorEnd: this.endPoint + }; + if (connector["" + nodeEndId] !== this.oldConnector["" + nodeEndId]) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].connectionChange, arg); + this.isConnected = false; + } + } + this.checkPropertyValue(); + this.commandHandler.updateSelector(); + this.commandHandler.removeSnap(); + this.commandHandler.changeAnnotationDrag(args); + if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' && + args.source.connectors.length && + ((!_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint) || + (args.source.connectors[0].sourceID !== this.undoElement.connectors[0].sourceID)))) || + (this.endPoint === 'ConnectorTargetEnd' && + ((!_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)) + || (args.source.connectors[0].targetID !== this.undoElement.connectors[0].targetID))))) { + oldValues = void 0; + connector = void 0; + if (args.source && args.source.connectors) { + oldValues = { x: this.prevPosition.x, y: this.prevPosition.y }; + connector = args.source.connectors[0]; + } + targetPortName = void 0; + targetNodeNode = void 0; + if (args.target) { + target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (target instanceof _objects_port__WEBPACK_IMPORTED_MODULE_3__["PointPort"]) ? targetPortName = target.id : targetNodeNode = target.id; + } + arg = { + connector: connector, state: 'Completed', targetNode: targetNodeNode, + oldValue: oldValues, newValue: oldValues, cancel: false, targetPort: targetPortName + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(connector), state: 'Completed', targetNode: targetNodeNode, + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValues), newValue: oldValues, cancel: arg.cancel, targetPort: targetPortName + }; + } + trigger = this.endPoint === 'ConnectorSourceEnd' ? _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sourcePointChange : _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].targetPointChange; + this.commandHandler.triggerEvent(trigger, arg); + this.commandHandler.removeTerminalSegment(connector, true); + if (this.undoElement && args.source) { + obj = void 0; + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + entry = { + type: 'ConnectionChanged', redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), + category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry); + } + } + else if (!(this instanceof ConnectorDrawingTool) && + (this.endPoint === 'BezierTargetThumb' || this.endPoint === 'BezierSourceThumb')) { + if (this.undoElement && args.source) { + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + entry = { + type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry); + } + } + this.commandHandler.updateBlazorSelector(); + this.canCancel = undefined; + this.tempArgs = undefined; + //(EJ2-66201) - Exception occurs when mouse-hover on ports in node + if (args.source && args.source.connectors) { + connector = args.source.connectors[0]; + if (connector.isBezierEditing) { + connector.isBezierEditing = false; + } + } + _super.prototype.mouseUp.call(this, args); + return [2 /*return*/]; + } + }); + }); + }; + /* tslint:disable */ + /** + * @param args + * @private + */ + ConnectTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var tempArgs; + if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' && + _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint)) || + (this.endPoint === 'ConnectorTargetEnd' && + _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)))) { + var oldValue = void 0; + var connectors = void 0; + if (args.source && args.source.connectors) { + oldValue = { x: this.prevPosition.x, y: this.prevPosition.y }; + connectors = args.source.connectors[0]; + } + var targetPort = void 0; + var targetNode = void 0; + if (args.target) { + targetNode = args.target.id; + var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (target instanceof _objects_port__WEBPACK_IMPORTED_MODULE_3__["PointPort"] || target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["BpmnSubEvent"]) ? targetPort = target.id : targetNode = target.id; + } + var arg = { + connector: connectors, state: 'Start', targetNode: targetNode, + oldValue: oldValue, newValue: oldValue, cancel: false, targetPort: targetPort + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(connectors), state: 'Start', targetNode: targetNode, + oldValue: oldValue, newValue: oldValue, cancel: arg.cancel, targetPort: targetPort + }; + } + var trigger = this.endPoint === 'ConnectorSourceEnd' ? + _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sourcePointChange : _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].targetPointChange; + this.commandHandler.triggerEvent(trigger, arg); + } + this.currentPosition = args.position; + if (this.currentPosition && this.prevPosition) { + var diffX = this.currentPosition.x - this.prevPosition.x; + var diffY = this.currentPosition.y - this.prevPosition.y; + var newValue = void 0; + var oldValue = void 0; + var inPort = void 0; + var outPort = void 0; + this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition); + var connector = void 0; + if (args.source && args.source.connectors) { + newValue = { x: this.currentPosition.x, y: this.currentPosition.y }; + oldValue = { x: this.prevPosition.x, y: this.prevPosition.y }; + connector = args.source.connectors[0]; + } + var targetPortId = void 0; + var targetNodeId = void 0; + if (args.target) { + var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (target instanceof _objects_port__WEBPACK_IMPORTED_MODULE_3__["PointPort"]) ? targetPortId = target.id : targetNodeId = target.id; + } + var arg = { + connector: connector, state: 'Progress', targetNode: targetNodeId, + oldValue: oldValue, newValue: newValue, cancel: false, targetPort: targetPortId + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + arg = { + connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(connector), state: 'Progress', targetNode: targetNodeId, + oldValue: oldValue, newValue: newValue, cancel: arg.cancel, targetPort: targetPortId + }; + } + if (!(this instanceof ConnectorDrawingTool)) { + var trigger = this.endPoint === 'ConnectorSourceEnd' ? + _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sourcePointChange : _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].targetPointChange; + this.commandHandler.triggerEvent(trigger, arg); + } + if (args.target) { + inPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getInOutConnectPorts"])(args.target, true); + outPort = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getInOutConnectPorts"])(args.target, false); + } + if (!arg.cancel && this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) { + // EJ2-65331 - The condition checks whether the cancel argument is true or false + if (!arg.cancel) { + this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, args.source, this.currentPosition, this.selectedSegment, args.target, targetPortId); + this.commandHandler.updateSelector(); + } + if (args.target && ((this.endPoint === 'ConnectorSourceEnd' && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canOutConnect"])(args.target) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortOutConnect"])(outPort))) + || (this.endPoint === 'ConnectorTargetEnd' && (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canInConnect"])(args.target) || Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortInConnect"])(inPort))))) { + if (this.commandHandler.canDisconnect(this.endPoint, args, targetPortId, targetNodeId)) { + tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel); + this.isConnected = true; + } + var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true); + if (target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + if ((Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canInConnect"])(target) && this.endPoint === 'ConnectorTargetEnd') + || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canOutConnect"])(target) && this.endPoint === 'ConnectorSourceEnd')) { + tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel); + this.isConnected = true; + } + } + else { + var isConnect = this.checkConnect(target); + if (isConnect) { + this.isConnected = true; + tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel); + } + } + } + else if (this.endPoint.indexOf('Bezier') === -1) { + this.isConnected = true; + tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel); + this.commandHandler.updateSelector(); + } + } + if (this.commandHandler.canEnableDefaultTooltip()) { + var content_1 = this.getTooltipContent(args.position); + var contentTemp = function () { + return content_1; + }; + this.commandHandler.showTooltip(args.source, args.position, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["initializeCSPTemplate"])(contentTemp), 'ConnectTool', this.isTooltipVisible); + this.isTooltipVisible = false; + } + if (tempArgs) { + this.tempArgs = tempArgs; + } + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + /** + * @param args + * @private + */ + ConnectTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + ConnectTool.prototype.getTooltipContent = function (position) { + return 'X:' + Math.round(position.x) + ' ' + 'Y:' + Math.round(position.y); + }; + ConnectTool.prototype.checkConnect = function (target) { + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortInConnect"])(target) && this.endPoint === 'ConnectorTargetEnd') { + return true; + } + else if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortOutConnect"])(target) && this.endPoint === 'ConnectorSourceEnd') { + return true; + } + else if (!(target.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["PortConstraints"].None) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortInConnect"])(target) && !Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canPortOutConnect"])(target) + && (target.constraints === undefined || (target.constraints & (_enum_enum__WEBPACK_IMPORTED_MODULE_9__["PortConstraints"].Default & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["PortConstraints"].InConnect | _enum_enum__WEBPACK_IMPORTED_MODULE_9__["PortConstraints"].OutConnect))) > 0)) { + return true; + } + return false; + }; + /** @private */ + ConnectTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + this.prevPosition = null; + this.endPoint = null; + }; + return ConnectTool; +}(ToolBase)); + +/** + * Drags the selected objects + */ +var MoveTool = /** @__PURE__ @class */ (function (_super) { + __extends(MoveTool, _super); + function MoveTool(commandHandler, objType) { + var _this = _super.call(this, commandHandler, true) || this; + /** @private */ + _this.currentTarget = null; + _this.canCancel = false; + _this.canTrigger = false; + _this.objectType = objType; + return _this; + } + /** + * @param args + * @private + */ + MoveTool.prototype.mouseDown = function (args) { + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"] || args.source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"]) { + var arrayNodes = this.commandHandler.getSelectedObject(); + this.commandHandler.selectObjects([args.source], args.info && args.info.ctrlKey, arrayNodes); + var selectedObject = { nodes: [], connectors: [] }; + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + selectedObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source)); + } + else { + selectedObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source)); + } + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(selectedObject); + } + else { + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + } + this.undoParentElement = this.commandHandler.getSubProcess(args.source); + if (this.objectType === 'Port') { + this.portId = args.sourceWrapper.id; + } + this.commandHandler.insertBlazorConnector(args.source); + var oldValues; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.insertSelectedObjects(); + this.startPosition = this.currentPosition = this.prevPosition = args.position; + this.initialOffset = { x: 0, y: 0 }; + if (args.source) { + oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY }; + } + var arg = { + source: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source), state: 'Start', oldValue: oldValues, newValue: {}, + target: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.target), targetPosition: args.position, allowDrop: true, cancel: false + }; + this.tempArgs = arg; + } + _super.prototype.mouseDown.call(this, args); + this.initialOffset = { x: 0, y: 0 }; + }; + /* tslint:disable */ + /** + * @param args + * @param isPreventHistory + * @param args + * @param isPreventHistory + * @private + */ + MoveTool.prototype.mouseUp = function (args, isPreventHistory) { + return __awaiter(this, void 0, void 0, function () { + var oldValues, newValues, arg, blazorArgs, diagram, blazorInterop, blazor, eventObj, tx, ty, obj, historyAdded, object, redoObject, wrapper, arg, canAddHistory, entry, entry_1, snappedPoint, arg, nodes, isEndGroup, temp, i, i, entry; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && this.objectType !== 'Port')) return [3 /*break*/, 3]; + this.commandHandler.updatePropertiesToBlazor(args, false); + if (args.source) { + newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY }; + oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY }; + } + arg = { + state: 'Completed', + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.tempArgs.oldValue), newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(newValues), + target: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.currentTarget), targetPosition: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.currentPosition), + allowDrop: true, cancel: false + }; + blazorArgs = void 0; + diagram = 'diagram'; + blazorInterop = 'sfBlazor'; + blazor = 'Blazor'; + if (!(window && window["" + blazor] && this.commandHandler["" + diagram].positionChange)) return [3 /*break*/, 2]; + eventObj = { 'EventName': 'positionChange', args: JSON.stringify(arg) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler["" + diagram])]; + case 1: + blazorArgs = _a.sent(); + _a.label = 2; + case 2: + if (blazorArgs && blazorArgs.cancel) { + this.commandHandler.enableCloneObject(true); + this.commandHandler.ismouseEvents(true); + this.canCancel = true; + } + if (this.canCancel) { + this.commandHandler.insertBlazorObject(args.source); + tx = this.tempArgs.oldValue.offsetX - args.source.wrapper.offsetX; + ty = this.tempArgs.oldValue.offsetY - args.source.wrapper.offsetY; + this.commandHandler.dragSelectedObjects(tx, ty); + } + _a.label = 3; + case 3: + this.checkPropertyValue(); + historyAdded = false; + redoObject = { nodes: [], connectors: [] }; + if (!(this.objectType !== 'Port')) return [3 /*break*/, 8]; + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"] || args.source instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"]) { + if (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + redoObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source)); + } + else { + redoObject.connectors.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source)); + } + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(redoObject); + wrapper = args.source.wrapper; + obj.offsetX = wrapper.offsetX; + obj.offsetY = wrapper.offsetY; + } + else { + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + } + object = this.commandHandler.renderContainerHelper(args.source) || args.source || this.commandHandler.renderContainerHelper(args.source); + if ((object.id === 'helper') || (object.id !== 'helper')) { + //EJ2-71257 - Position change event completed state is not fired on selecting the node first and then dragging the node while changing node width at progress state. + // If object is instanceof selector then checked the length of selected objects is 1 or not. + if ((((object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"] && ((Math.round(object.width) === Math.round(this.undoElement.width) && Math.round(object.height) === Math.round(this.undoElement.height)) || (object.selectedObjects && object.selectedObjects.length === 1))) || !(object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"])) && (object.offsetX !== this.undoElement.offsetX || object.offsetY !== this.undoElement.offsetY || + object.sourcePoint !== this.undoElement.sourcePoint + // eslint-disable-next-line max-len + || object.targetPoint !== this.undoElement.targetPoint)) || this.isSelectionHasConnector(object)) { + if (args.source) { + newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY }; + oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY }; + } + arg = { + source: args.source, state: 'Completed', oldValue: oldValues, newValue: newValues, + target: this.currentTarget, targetPosition: this.currentPosition, allowDrop: true, cancel: false + }; + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: 'Completed', + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValues), newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(newValues), + target: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.currentTarget), targetPosition: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.currentPosition), + allowDrop: arg.allowDrop, cancel: arg.cancel + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + arg = this.getBlazorPositionChangeEventArgs(arg, this.currentTarget); + } + canAddHistory = true; + //EJ2-69852): Position Change event trigger for clicking second time in swimlane header issue + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + if (object.id === 'helper') { + if (this.canTrigger) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].positionChange, arg); + this.connectorEndPointChangeEvent(arg); + canAddHistory = true; + } + else { + canAddHistory = false; + } + } + else { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].positionChange, arg); + this.connectorEndPointChangeEvent(arg); + } + } + if (!isPreventHistory && canAddHistory) { + this.commandHandler.startGroupAction(); + historyAdded = true; + entry = { + type: 'PositionChanged', + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal' + }; + if (obj.nodes[0] && obj.nodes[0].processId) { + entry_1 = { + type: 'SizeChanged', category: 'Internal', + undoObject: this.undoParentElement, redoObject: this.commandHandler.getSubProcess(args.source) + }; + this.commandHandler.addHistoryEntry(entry_1); + } + this.commandHandler.addHistoryEntry(entry); + } + } + } + snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, 0, 0); + this.commandHandler.removeSnap(); + this.commandHandler.removeHighlighter(); + if (!(args.source && this.currentTarget && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canAllowDrop"])(this.currentTarget) && + this.commandHandler.isDroppable(args.source, this.currentTarget))) return [3 /*break*/, 7]; + this.commandHandler.drop(this.currentElement, this.currentTarget, this.currentPosition); + if (this.currentTarget && this.currentTarget instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"]) { + if (this.commandHandler.diagram.enableConnectorSplit === true) { + if (this.currentElement) { + if (this.currentElement && this.currentElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + this.commandHandler.connectorSplit(this.currentElement, this.currentTarget); + } + else if (this.currentElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"] && !(this.commandHandler.PreventConnectorSplit)) { + if (this.currentElement.nodes.length > 0) { + this.commandHandler.connectorSplit(this.currentElement.nodes[0], this.currentTarget); + this.commandHandler.PreventConnectorSplit = false; + } + } + } + } + } + arg = { + element: args.source, target: this.currentTarget, position: this.currentPosition, cancel: false + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) return [3 /*break*/, 5]; + arg = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getDropEventArguements"])(args, arg); + return [4 /*yield*/, this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].drop, arg)]; + case 4: + arg = (_a.sent()) || arg; + return [3 /*break*/, 6]; + case 5: + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].drop, arg); + _a.label = 6; + case 6: + if (!arg.cancel && args.source && this.commandHandler.isParentAsContainer(this.currentTarget)) { + nodes = (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"]) ? args.source.nodes : [args.source]; + isEndGroup = false; + temp = void 0; + for (i = 0; i < nodes.length; i++) { + if (nodes[0].parentId === nodes[parseInt(i.toString(), 10)].parentId) { + temp = true; + } + else { + temp = false; + break; + } + } + for (i = 0; i < nodes.length; i++) { + if (!nodes[parseInt(i.toString(), 10)].container && temp) { + isEndGroup = true; + this.commandHandler.updateLaneChildrenZindex(nodes[parseInt(i.toString(), 10)], this.currentTarget); + this.commandHandler.dropChildToContainer(this.currentTarget, nodes[parseInt(i.toString(), 10)]); + this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]); + } + } + if (historyAdded && this.commandHandler.isContainer && isEndGroup) { + this.commandHandler.endGroupAction(); + } + } + _a.label = 7; + case 7: + if (args.source && this.currentTarget) { + this.commandHandler.dropAnnotation(args.source, this.currentTarget); + } + this.commandHandler.updateSelector(); + if (historyAdded && !this.commandHandler.isContainer) { + this.commandHandler.endGroupAction(); + } + return [3 /*break*/, 9]; + case 8: + redoObject.nodes.push(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source)); + args.portId = this.portId; + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(redoObject); + entry = { + type: 'PortPositionChanged', objectId: this.portId, + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry); + _a.label = 9; + case 9: + this.commandHandler.updateBlazorSelector(); + _super.prototype.mouseUp.call(this, args); + return [2 /*return*/]; + } + }); + }); + }; + //EJ2-59309-While drag the connected node the connector endPointChange event does not get trigger + MoveTool.prototype.connectorEndPointChangeEvent = function (arg, snappedPoint) { + var selectedElement = arg.source; + if (selectedElement instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"] && selectedElement.nodes.length > 0) { + for (var i = 0; i < selectedElement.nodes.length; i++) { + var node = selectedElement.nodes[parseInt(i.toString(), 10)]; + if (node && node.inEdges.length > 0) { + for (var j = 0; j < node.inEdges.length; j++) { + var connector = this.commandHandler.diagram.getObject(node.inEdges[parseInt(j.toString(), 10)]); + this.triggerEndPointEvent(connector, arg, snappedPoint, 'targetPointChange'); + } + } + if (node && node.outEdges.length > 0) { + for (var j = 0; j < node.outEdges.length; j++) { + var connector = this.commandHandler.diagram.getObject(node.outEdges[parseInt(j.toString(), 10)]); + this.triggerEndPointEvent(connector, arg, snappedPoint, 'sourcePointChange'); + } + } + } + } + }; + MoveTool.prototype.triggerEndPointEvent = function (connector, arg, snappedPoint, eventName) { + var args = { + connector: connector, state: arg.state, targetNode: connector.targetID, targetPort: connector.targetPortID, + sourceNode: connector.sourceID, sourcePort: connector.sourcePortID, oldValue: { x: connector.targetPoint.x, y: connector.targetPoint.y }, + newValue: { x: connector.targetPoint.x + (snappedPoint ? snappedPoint.x : 0), y: connector.targetPoint.y + (snappedPoint ? snappedPoint.y : 0) }, cancel: arg.cancel + }; + this.commandHandler.triggerEvent((eventName === 'targetPointChange') ? _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].targetPointChange : _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sourcePointChange, args); + }; + MoveTool.prototype.isSelectionHasConnector = function (args) { + if (args.nodes && args.connectors && args.nodes.length > 0 && args.connectors.length > 0 && + (args.width !== this.undoElement.width || args.height !== this.undoElement.height)) { + return true; + } + return false; + }; + MoveTool.prototype.getBlazorPositionChangeEventArgs = function (args, target) { + args = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: args.state, oldValue: args.oldValue, newValue: args.newValue, + target: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["getObjectType"])(target) === _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"] ? { connector: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(target) } + : { node: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(target) }, + targetPosition: this.currentPosition, allowDrop: true, cancel: false + }; + return args; + }; + /* tslint:disable */ + /** + * @param args + * @private + */ + MoveTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var isSame = false; + var object; + object = this.commandHandler.renderContainerHelper(args.source) || + args.source; + if (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"] || object instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"]) { + if (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + if (object.offsetX === this.undoElement.nodes[0].offsetX && + object.offsetY === this.undoElement.nodes[0].offsetY) { + isSame = true; + } + } + else { + if (_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(object.sourcePoint, this.undoElement.connectors[0].sourcePoint) && + _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(object.targetPoint, this.undoElement.connectors[0].targetPoint)) { + isSame = true; + } + } + } + else { + if (object.wrapper.offsetX === this.undoElement.wrapper.offsetX && + object.wrapper.offsetY === this.undoElement.wrapper.offsetY) { + isSame = true; + } + } + var oldValues; + if (object) { + oldValues = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY }; + } + var arg = { + source: object, state: 'Start', oldValue: oldValues, newValue: oldValues, + target: args.target, targetPosition: args.position, allowDrop: true, cancel: false + }; + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(object), state: 'Start', oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValues), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValues), + target: args.target, targetPosition: args.position, allowDrop: arg.allowDrop, cancel: arg.cancel + }; + if (isSame && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].positionChange, arg); + this.connectorEndPointChangeEvent(arg); + } + this.currentPosition = args.position; + if (this.objectType !== 'Port') { + var x = this.currentPosition.x - this.prevPosition.x; + var y = this.currentPosition.y - this.prevPosition.y; + var diffX = this.initialOffset.x + (this.currentPosition.x - this.prevPosition.x); + var diffY = this.initialOffset.y + (this.currentPosition.y - this.prevPosition.y); + this.commandHandler.dragOverElement(args, this.currentPosition); + this.commandHandler.disConnect(args.source); + this.commandHandler.removeSnap(); + var oldValues_1; + var newValues = void 0; + var snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, diffX, diffY); + this.initialOffset.x = diffX - snappedPoint.x; + this.initialOffset.y = diffY - snappedPoint.y; + if (object) { + oldValues_1 = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY }; + newValues = { + offsetX: object.wrapper.offsetX + snappedPoint.x, + offsetY: object.wrapper.offsetY + snappedPoint.y + }; + } + if (this.currentTarget && args.target !== this.currentTarget) { + this.commandHandler.removeChildFromBPmn(args.source, args.target, this.currentTarget); + } + this.currentTarget = args.target; + var arg_1 = { + source: object, state: 'Progress', oldValue: oldValues_1, newValue: newValues, + target: args.target, targetPosition: args.position, allowDrop: true, cancel: false + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + arg_1 = this.getBlazorPositionChangeEventArgs(arg_1, args.target); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].positionChange, arg_1); + this.canTrigger = true; + this.connectorEndPointChangeEvent(arg_1, snappedPoint); + } + if (!arg_1.cancel && !this.canCancel) { + this.blocked = !this.commandHandler.dragSelectedObjects(snappedPoint.x, snappedPoint.y); + var blocked = !(this.commandHandler.mouseOver(this.currentElement, this.currentTarget, this.currentPosition)); + this.blocked = this.blocked || blocked; + } + this.commandHandler.removeStackHighlighter(); + this.commandHandler.renderStackHighlighter(args); + if (this.currentTarget && (args.source !== this.currentTarget) && + this.commandHandler.isDroppable(args.source, this.currentTarget) && args.source.id !== 'helper') { + var object_1 = (args.source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"]) ? args.source.nodes[0] : args.source; + if ((!this.commandHandler.isParentAsContainer(object_1, true)) + && (object_1.shape.type !== 'SwimLane' && !object_1.shape.isPhase)) { + if (this.currentTarget.isLane) { + this.commandHandler.renderStackHighlighter(args, this.currentTarget); + } + else { + this.commandHandler.drawHighlighter(this.currentTarget); + } + } + } + else { + this.commandHandler.removeHighlighter(); + } + if (this.commandHandler.canEnableDefaultTooltip()) { + var content_2 = this.getTooltipContent(args.source); + var contentTemp = function () { + return content_2; + }; + this.commandHandler.showTooltip(args.source, args.position, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["initializeCSPTemplate"])(contentTemp), 'MoveTool', this.isTooltipVisible); + this.isTooltipVisible = false; + } + } + else { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["identityMatrix"])(); + var node = args.source; + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["rotateMatrix"])(matrix, -node.rotateAngle, node.offsetX, node.offsetY); + var prevPosition = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, { x: this.prevPosition.x, y: this.prevPosition.y }); + var position = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, { x: args.position.x, y: args.position.y }); + this.commandHandler.portDrag(args.source, args.sourceWrapper, position.x - prevPosition.x, position.y - prevPosition.y); + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + MoveTool.prototype.getTooltipContent = function (node) { + return 'X:' + Math.round(node.wrapper.bounds.x) + ' ' + 'Y:' + Math.round(node.wrapper.bounds.y); + }; + /** + * @param args + * @private + */ + MoveTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + /** @private */ + MoveTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + this.currentTarget = null; + this.prevPosition = null; + }; + return MoveTool; +}(ToolBase)); + +/** + * Rotates the selected objects + */ +var RotateTool = /** @__PURE__ @class */ (function (_super) { + __extends(RotateTool, _super); + function RotateTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + RotateTool.prototype.mouseDown = function (args) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + var object = void 0; + object = this.commandHandler.renderContainerHelper(args.source) || args.source; + var oldValue = { rotateAngle: object.wrapper.rotateAngle }; + var arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: 'Start', oldValue: oldValue, newValue: undefined, cancel: false + }; + var temparg = arg; + this.tempArgs = temparg; + if (this.tempArgs && this.tempArgs.cancel) { + this.canCancel = true; + } + } + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) { + var objects = []; + var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], objects); + for (var i = 0; i < nodes.length; i++) { + var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id); + this.childTable[nodes[parseInt(i.toString(), 10)].id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(node); + } + } + _super.prototype.mouseDown.call(this, args); + }; + /** + * @param args + * @private + */ + RotateTool.prototype.mouseUp = function (args) { + return __awaiter(this, void 0, void 0, function () { + var diagram, blazorInterop, blazor, object_2, oldValue, newValue, arg, blazorArgs, eventObj, object, oldValue, arg, obj, entry; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.checkPropertyValue(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) return [3 /*break*/, 3]; + diagram = 'diagram'; + blazorInterop = 'sfBlazor'; + blazor = 'Blazor'; + this.commandHandler.updatePropertiesToBlazor(args, false); + object_2 = this.commandHandler.renderContainerHelper(args.source) || args.source; + oldValue = { rotateAngle: this.tempArgs.oldValue.rotateAngle }; + newValue = { rotateAngle: object_2.wrapper.rotateAngle }; + arg = { + state: 'Completed', oldValue: oldValue, newValue: newValue, cancel: false + }; + blazorArgs = void 0; + if (!(window && window["" + blazor] && this.commandHandler["" + diagram].rotateChange)) return [3 /*break*/, 2]; + eventObj = { 'EventName': 'rotateChange', args: JSON.stringify(arg) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler["" + diagram])]; + case 1: + blazorArgs = _a.sent(); + _a.label = 2; + case 2: + if (blazorArgs && blazorArgs.cancel) { + this.commandHandler.enableCloneObject(true); + this.commandHandler.ismouseEvents(true); + this.canCancel = true; + } + if (this.canCancel) { + this.commandHandler.insertBlazorObject(args.source); + this.commandHandler.rotatePropertyChnage(this.tempArgs.oldValue.rotateAngle); + } + _a.label = 3; + case 3: + object = this.commandHandler.renderContainerHelper(args.source) || args.source; + if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) { + oldValue = { rotateAngle: object.wrapper.rotateAngle }; + arg = { + source: args.source, state: 'Completed', oldValue: oldValue, + newValue: oldValue, cancel: false + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].rotateChange, arg); + } + obj = void 0; + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + entry = { + type: 'RotationChanged', redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal', + childTable: this.childTable + }; + this.commandHandler.addHistoryEntry(entry); + this.commandHandler.updateSelector(); + } + this.commandHandler.updateBlazorSelector(); + this.canCancel = undefined; + this.tempArgs = undefined; + _super.prototype.mouseUp.call(this, args); + return [2 /*return*/]; + } + }); + }); + }; + /** + * @param args + * @private + */ + RotateTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var object; + object = this.commandHandler.renderContainerHelper(args.source) || args.source; + if (this.undoElement.rotateAngle === object.wrapper.rotateAngle) { + var oldValue_1 = { rotateAngle: object.wrapper.rotateAngle }; + var arg_2 = { + source: args.source, state: 'Start', oldValue: oldValue_1, newValue: oldValue_1, cancel: false + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].rotateChange, arg_2); + } + } + this.currentPosition = args.position; + var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY }; + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findAngle(refPoint, this.currentPosition) + 90; + var snapAngle = this.commandHandler.snapAngle(angle); + angle = snapAngle !== 0 ? snapAngle : angle; + angle = (angle + 360) % 360; + var oldValue = { rotateAngle: object.wrapper.rotateAngle }; + var newValue = { rotateAngle: angle }; + var arg = { + source: args.source, state: 'Progress', oldValue: oldValue, + newValue: newValue, cancel: false + }; + var arg1 = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: 'Progress', oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValue), + newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(newValue), cancel: arg.cancel + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].rotateChange, arg1); + } + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && !arg1.cancel) || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && !this.canCancel)) { + this.blocked = !(this.commandHandler.rotateSelectedItems(angle - object.wrapper.rotateAngle)); + } + if (this.commandHandler.canEnableDefaultTooltip()) { + var content_3 = this.getTooltipContent(args.source); + var contentTemp = function () { + return content_3; + }; + this.commandHandler.showTooltip(args.source, args.position, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["initializeCSPTemplate"])(contentTemp), 'RotateTool', this.isTooltipVisible); + this.isTooltipVisible = false; + } + return !this.blocked; + }; + RotateTool.prototype.getTooltipContent = function (node) { + return Math.round((node.rotateAngle % 360)).toString() + '\xB0'; + }; + /** + * @param args + * @private + */ + RotateTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + /** @private */ + RotateTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + }; + return RotateTool; +}(ToolBase)); + +/** + * Scales the selected objects + */ +var ResizeTool = /** @__PURE__ @class */ (function (_super) { + __extends(ResizeTool, _super); + function ResizeTool(commandHandler, corner) { + var _this = _super.call(this, commandHandler, true) || this; + /** @private */ + _this.initialBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"](); + _this.canCancel = false; + _this.corner = corner; + return _this; + } + /** + * @param args + * @private + */ + ResizeTool.prototype.mouseDown = function (args) { + var oldValues; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.insertSelectedObjects(); + this.startPosition = this.currentPosition = this.prevPosition = args.position; + this.currentElement = args.source; + this.initialBounds.x = args.source.wrapper.offsetX; + this.initialBounds.y = args.source.wrapper.offsetY; + this.initialBounds.height = args.source.wrapper.actualSize.height; + this.initialBounds.width = args.source.wrapper.actualSize.width; + if (args.source) { + oldValues = { + offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY, + width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height + }; + } + var arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: 'Start', oldValue: oldValues, newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(this.currentElement), cancel: false + }; + this.tempArgs = arg; + } + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + this.undoParentElement = this.commandHandler.getSubProcess(args.source); + _super.prototype.mouseDown.call(this, args); + if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) { + var elements = []; + var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], elements); + for (var i = 0; i < nodes.length; i++) { + var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id); + this.childTable[nodes[parseInt(i.toString(), 10)].id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(node); + } + } + this.commandHandler.checkSelection(args.source, this.corner); + _super.prototype.mouseDown.call(this, args); + this.initialBounds.x = args.source.wrapper.offsetX; + this.initialBounds.y = args.source.wrapper.offsetY; + this.initialBounds.height = args.source.wrapper.actualSize.height; + this.initialBounds.width = args.source.wrapper.actualSize.width; + }; + /** + * @param args + * @param isPreventHistory + * @param args + * @param isPreventHistory + * @private + */ + ResizeTool.prototype.mouseUp = function (args, isPreventHistory) { + return __awaiter(this, void 0, void 0, function () { + var diagram, blazorInterop, blazor, obj, oldValues, arg, blazorArgs, eventObj, scaleWidth, scaleHeight, object, deltaValues, oldValue, arg, obj, entry, entry_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) return [3 /*break*/, 4]; + diagram = 'diagram'; + blazorInterop = 'sfBlazor'; + blazor = 'Blazor'; + this.commandHandler.updatePropertiesToBlazor(args, false); + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + oldValues = { + width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height, + offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY + }; + arg = { + oldValue: this.tempArgs.oldValue, newValue: oldValues, cancel: false, + state: 'Completed' + }; + if (!!this.canCancel) return [3 /*break*/, 3]; + blazorArgs = void 0; + if (!(window && window["" + blazor] && this.commandHandler["" + diagram].sizeChange)) return [3 /*break*/, 2]; + eventObj = { 'EventName': 'sizeChange', args: JSON.stringify(arg) }; + return [4 /*yield*/, window["" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler["" + diagram])]; + case 1: + blazorArgs = _a.sent(); + _a.label = 2; + case 2: + if (blazorArgs && blazorArgs.cancel) { + this.commandHandler.enableCloneObject(true); + this.commandHandler.ismouseEvents(true); + this.commandHandler.insertBlazorObject(args.source); + scaleWidth = this.tempArgs.oldValue.width / obj.wrapper.actualSize.width; + scaleHeight = this.tempArgs.oldValue.height / obj.wrapper.actualSize.height; + this.commandHandler.scaleSelectedItems(scaleWidth, scaleHeight, this.getPivot(this.corner)); + } + _a.label = 3; + case 3: + this.tempArgs = undefined; + this.canCancel = undefined; + _a.label = 4; + case 4: + this.checkPropertyValue(); + this.commandHandler.removeSnap(); + this.commandHandler.updateSelector(); + object = this.commandHandler.renderContainerHelper(args.source) || args.source; + if ((this.undoElement.offsetX !== object.wrapper.offsetX || this.undoElement.offsetY !== object.wrapper.offsetY || + this.undoElement.width !== object.wrapper.bounds.width || this.undoElement.height !== object.wrapper.bounds.height)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + deltaValues = this.updateSize(args.source, this.currentPosition, this.prevPosition, this.corner, this.initialBounds); + this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.prevPosition, object); + oldValue = { + offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY, + width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height + }; + arg = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(args.source), state: 'Completed', + oldValue: oldValue, newValue: oldValue, cancel: false + }; + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sizeChange, arg); + } + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + entry = { + type: 'SizeChanged', redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(obj), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal', + childTable: this.childTable + }; + if (!isPreventHistory) { + this.commandHandler.startGroupAction(); + this.commandHandler.addHistoryEntry(entry); + if (obj.nodes[0] && obj.nodes[0].processId) { + entry_2 = { + type: 'SizeChanged', redoObject: this.commandHandler.getSubProcess(args.source), + undoObject: this.undoParentElement, category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry_2); + } + this.commandHandler.endGroupAction(); + } + } + this.commandHandler.updateBlazorSelector(); + _super.prototype.mouseUp.call(this, args); + return [2 /*return*/, !this.blocked]; + } + }); + }); + }; + /** + * @param args + * @private + */ + ResizeTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var object; + object = this.commandHandler.renderContainerHelper(args.source) || args.source; + if (this.undoElement.offsetX === object.wrapper.offsetX && this.undoElement.offsetY === object.wrapper.offsetY) { + var oldValue = { + offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY, + width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height + }; + var arg = { + source: args.source, state: 'Start', oldValue: oldValue, newValue: this.currentElement, cancel: false + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sizeChange, arg); + } + } + this.currentPosition = args.position; + var x = this.currentPosition.x - this.startPosition.x; + var y = this.currentPosition.y - this.startPosition.y; + var changes = { x: x, y: y }; + changes = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["rotatePoint"])(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes); + var sx = (this.currentElement.wrapper.actualSize.width + changes.x) / this.currentElement.wrapper.actualSize.width; + var sy = (this.currentElement.wrapper.actualSize.height + changes.y) / this.currentElement.wrapper.actualSize.height; + changes = this.getChanges(changes); + this.commandHandler.removeSnap(); + var deltaValues = this.updateSize(args.source, this.startPosition, this.currentPosition, this.corner, this.initialBounds); + this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, object)); + if (this.commandHandler.canEnableDefaultTooltip()) { + var content_4 = this.getTooltipContent(args.source); + var contentTemp = function () { + return content_4; + }; + this.commandHandler.showTooltip(args.source, args.position, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["initializeCSPTemplate"])(contentTemp), 'ResizeTool', this.isTooltipVisible); + this.isTooltipVisible = false; + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + /** + * @param args + * @private + */ + ResizeTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + ResizeTool.prototype.getTooltipContent = function (node) { + return 'W:' + Math.round(node.wrapper.bounds.width) + ' ' + 'H:' + Math.round(node.wrapper.bounds.height); + }; + ResizeTool.prototype.getChanges = function (change) { + switch (this.corner) { + case 'ResizeEast': + return { x: change.x, y: 0 }; + case 'ResizeSouthEast': + return change; + case 'ResizeSouth': + return { x: 0, y: change.y }; + case 'ResizeNorth': + return { x: 0, y: -change.y }; + case 'ResizeNorthEast': + return { x: change.x, y: -change.y }; + case 'ResizeNorthWest': + return { x: -change.x, y: -change.y }; + case 'ResizeWest': + return { x: -change.x, y: 0 }; + case 'ResizeSouthWest': + return { x: -change.x, y: change.y }; + } + return change; + }; + /** + * Updates the size with delta width and delta height using scaling. + */ + /** + * Aspect ratio used to resize the width or height based on resizing the height or width + * + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + * @param deltaWidth + * @param deltaHeight + * @param corner + * @param startPoint + * @param endPoint + * @param source + */ + ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source) { + if (source instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"] && source.nodes.length === 1 && source.nodes[0].constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["NodeConstraints"].AspectRatio) { + if (corner === 'ResizeWest' || corner === 'ResizeEast' || corner === 'ResizeNorth' || corner === 'ResizeSouth') { + if (!(deltaHeight === 1 && deltaWidth === 1)) { + deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth); + } + } + else if (startPoint !== endPoint) { + deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth); + } + else { + deltaHeight = deltaWidth = 0; + } + } + var oldValue = { + offsetX: source.offsetX, offsetY: source.offsetY, + width: source.width, height: source.height + }; + this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner)); + var newValue = { + offsetX: source.offsetX, offsetY: source.offsetY, + width: source.width, height: source.height + }; + var arg; + arg = { source: source, state: 'Progress', oldValue: oldValue, newValue: newValue, cancel: false }; + var arg1; + arg1 = { + source: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(source), state: 'Progress', + oldValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(oldValue), newValue: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["cloneBlazorObject"])(newValue), cancel: arg.cancel + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])()) { + this.commandHandler.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramEvent"].sizeChange, arg1); + } + if (arg1.cancel || this.canCancel) { + this.commandHandler.scaleSelectedItems(1 / deltaWidth, 1 / deltaHeight, this.getPivot(this.corner)); + } + return this.blocked; + }; + return ResizeTool; +}(ToolBase)); + +/** + * Draws a node that is defined by the user + */ +var NodeDrawingTool = /** @__PURE__ @class */ (function (_super) { + __extends(NodeDrawingTool, _super); + function NodeDrawingTool(commandHandler, sourceObject) { + var _this = _super.call(this, commandHandler, true) || this; + _this.sourceObject = sourceObject; + return _this; + } + /** + * @param args + * @private + */ + NodeDrawingTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + this.commandHandler.setFocus(); + this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true); + }; + /** + * @param args + * @private + */ + NodeDrawingTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var checkBoundaryConstraints; + var node = { + offsetX: this.currentPosition.x, width: 3, height: 3, + offsetY: this.currentPosition.y + }; + if (!this.drawingObject) { + this.drawingObject = this.commandHandler.drawObject(node); + } + this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false); + if (this.inAction && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds([this.prevPosition, this.currentPosition]); + checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect); + if (checkBoundaryConstraints) { + this.commandHandler.updateNodeDimension(this.drawingObject, rect); + } + } + return checkBoundaryConstraints; + }; + /** + * @param args + * @private + */ + NodeDrawingTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + var checkBoundaryConstraints; + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds([this.prevPosition, this.currentPosition]); + checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect); + if (this.drawingObject && this.drawingObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + this.commandHandler.addObjectToDiagram(this.drawingObject); + this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false); + this.drawingObject = null; + } + this.commandHandler.updateBlazorSelector(); + _super.prototype.mouseUp.call(this, args); + this.inAction = false; + }; + /** @private */ + NodeDrawingTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + }; + /** + * @param args + * @private + */ + NodeDrawingTool.prototype.mouseLeave = function (args) { + if (this.inAction) { + this.mouseUp(args); + } + }; + return NodeDrawingTool; +}(ToolBase)); + +/** + * Draws a connector that is defined by the user + */ +var ConnectorDrawingTool = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectorDrawingTool, _super); + function ConnectorDrawingTool(commandHandler, endPoint, sourceObject) { + var _this = _super.call(this, commandHandler, endPoint) || this; + _this.sourceObject = sourceObject; + return _this; + } + /** + * @param args + * @private + */ + ConnectorDrawingTool.prototype.mouseDown = function (args) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + this.commandHandler.setFocus(); + this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true); + return [2 /*return*/]; + }); + }); + }; + /** + * @param args + * @private + */ + ConnectorDrawingTool.prototype.mouseMove = function (args) { + this.commandHandler.enableServerDataBinding(false); + if (this.inAction) { + var connector = { + sourcePoint: this.currentPosition, targetPoint: this.currentPosition + }; + if (!this.drawingObject) { + this.drawingObject = this.commandHandler.drawObject(connector); + } + args.source = this.drawingObject; + this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false); + if (((args.target && args.target instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) || (args.actualObject && args.sourceWrapper && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_12__["checkPort"])(args.actualObject, args.sourceWrapper))) + && (this.endPoint !== 'ConnectorTargetEnd' || (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_7__["canInConnect"])(args.target)))) { + this.commandHandler.connect(this.endPoint, args); + } + this.endPoint = 'ConnectorTargetEnd'; + } + if (!this.inAction) { + this.commandHandler.updateSelector(); + if (args.source && args.sourceWrapper) { + this.commandHandler.renderHighlighter(args, true); + } + } + _super.prototype.mouseMove.call(this, args); + this.commandHandler.enableServerDataBinding(true); + return !this.blocked; + }; + /** + * @param args + * @private + */ + ConnectorDrawingTool.prototype.mouseUp = function (args) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + this.commandHandler.enableServerDataBinding(false); + this.checkPropertyValue(); + if (this.drawingObject && this.drawingObject instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"]) { + this.commandHandler.addObjectToDiagram(this.drawingObject); + this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false); + this.drawingObject = null; + } + this.commandHandler.updateBlazorSelector(); + this.inAction = false; + this.commandHandler.enableServerDataBinding(true); + _super.prototype.mouseUp.call(this, args); + return [2 /*return*/]; + }); + }); + }; + /** @private */ + ConnectorDrawingTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + }; + /** + * @param args + * @private + */ + ConnectorDrawingTool.prototype.mouseLeave = function (args) { + if (this.inAction) { + this.mouseUp(args); + } + }; + return ConnectorDrawingTool; +}(ConnectTool)); + +var TextDrawingTool = /** @__PURE__ @class */ (function (_super) { + __extends(TextDrawingTool, _super); + function TextDrawingTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + TextDrawingTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.commandHandler.clearSelection(); + var node = { + shape: { type: 'Text' }, + offsetX: this.currentPosition.x, + offsetY: this.currentPosition.y + }; + if (!args.source) { + this.drawingNode = this.commandHandler.drawObject(node); + } + }; + /** + * @param args + * @private + */ + TextDrawingTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (!this.drawingNode) { + var node = { + shape: { type: 'Text' }, offsetX: this.currentPosition.x, width: 30, height: 30, + // EJ2-42640-Text size is different if Text Node is created over another diagram commited by sivakumar sekar + // commanded style property and added it after the object is drawn + // style: { strokeDashArray: '2 2', fill: 'transparent' }, + offsetY: this.currentPosition.y + }; + this.drawingNode = this.commandHandler.drawObject(node); + this.drawingNode.style.strokeDashArray = '2 2'; + this.drawingNode.style.fill = 'transparent'; + } + else { + this.drawingNode.style.strokeColor = 'black'; + this.drawingNode.style.strokeDashArray = '2 2'; + this.drawingNode.style.fill = 'transparent'; + } + if (this.inAction && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds([this.prevPosition, this.currentPosition]); + this.commandHandler.updateNodeDimension(this.drawingNode, rect); + } + return !this.blocked; + }; + /** + * @param args + * @private + */ + TextDrawingTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + if (this.drawingNode) { + this.drawingNode.style.strokeColor = 'none'; + this.drawingNode.style.fill = 'none'; + } + else { + this.drawingNode = args.source; + } + if (this.drawingNode && (this.drawingNode instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"] || this.drawingNode instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_1__["Connector"])) { + this.commandHandler.addText(this.drawingNode, this.currentPosition); + } + _super.prototype.mouseUp.call(this, args); + this.inAction = false; + }; + /** @private */ + TextDrawingTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + }; + return TextDrawingTool; +}(ToolBase)); + +/** + * Pans the diagram control on drag + */ +var ZoomPanTool = /** @__PURE__ @class */ (function (_super) { + __extends(ZoomPanTool, _super); + function ZoomPanTool(commandHandler, zoom) { + var _this = _super.call(this, commandHandler) || this; + _this.zooming = zoom; + return _this; + } + /** + * @param args + * @private + */ + ZoomPanTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + this.commandHandler.setBlazorDiagramProps(true); + }; + /** + * @param args + * @private + */ + ZoomPanTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + if (!this.zooming && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var difX = this.currentPosition.x - this.prevPosition.x; + var difY = this.currentPosition.y - this.prevPosition.y; + this.commandHandler.scroll(difX, difY, this.currentPosition); + } + else if (args.moveTouches && args.moveTouches.length && args.moveTouches.length >= 2) { + var startTouch0 = args.startTouches[0]; + var startTouch1 = args.startTouches[1]; + var moveTouch0 = args.moveTouches[0]; + var moveTouch1 = args.moveTouches[1]; + var scale = this.getDistance(moveTouch0, moveTouch1) / this.getDistance(startTouch0, startTouch1); + var focusPoint = args.position; + this.commandHandler.zoom(scale, 0, 0, focusPoint); + this.updateTouch(startTouch0, moveTouch0); + this.updateTouch(startTouch1, moveTouch1); + } + } + this.commandHandler.dataBinding(); + return !this.blocked; + }; + /** + * @param args + * @private + */ + ZoomPanTool.prototype.mouseUp = function (args) { + this.commandHandler.setBlazorDiagramProps(false); + this.checkPropertyValue(); + this.commandHandler.updatePanState(false); + _super.prototype.mouseUp.call(this, args); + this.inAction = false; + }; + /** @private */ + ZoomPanTool.prototype.endAction = function () { + _super.prototype.endAction.call(this); + }; + ZoomPanTool.prototype.getDistance = function (touch1, touch2) { + var x = touch2.pageX - touch1.pageX; + var y = touch2.pageY - touch1.pageY; + return Math.sqrt((x * x) + (y * y)); + }; + ZoomPanTool.prototype.updateTouch = function (startTouch, moveTouch) { + startTouch.pageX = moveTouch.pageX; + startTouch.pageY = moveTouch.pageY; + }; + return ZoomPanTool; +}(ToolBase)); + +/** + * Animate the layout during expand and collapse + */ +var ExpandTool = /** @__PURE__ @class */ (function (_super) { + __extends(ExpandTool, _super); + function ExpandTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + ExpandTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + this.commandHandler.initExpand(args); + _super.prototype.mouseUp.call(this, args); + }; + return ExpandTool; +}(ToolBase)); + +/** + * Opens the annotation hypeLink at mouse up + */ +var LabelTool = /** @__PURE__ @class */ (function (_super) { + __extends(LabelTool, _super); + function LabelTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + LabelTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + var tab = '_blank'; + var windowOption = ''; + var windowHeight = window.innerHeight; + var windowWidth = window.innerWidth; + var screenTop = window.screenTop; + var screenLeft = window.screenLeft; + if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'CurrentTab') { + tab = '_self'; + } + else if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'NewWindow') { + windowOption = 'height=' + windowHeight + ',width=' + windowWidth + ',top=' + screenTop + ',left=' + screenLeft; + } + var win = window.open(args.sourceWrapper.hyperlink.link, tab, windowOption); + win.focus(); + _super.prototype.mouseUp.call(this, args); + }; + return LabelTool; +}(ToolBase)); + +/** + * Draws a Polygon shape node dynamically using polygon Tool + */ +var PolygonDrawingTool = /** @__PURE__ @class */ (function (_super) { + __extends(PolygonDrawingTool, _super); + function PolygonDrawingTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + PolygonDrawingTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + if (!this.drawingObject) { + this.startPoint = { x: this.startPosition.x, y: this.startPosition.y }; + var node = { + offsetX: this.currentPosition.x, + offsetY: this.currentPosition.y, + width: 5, height: 5, + style: { strokeColor: 'black', strokeWidth: 1 }, + shape: { + type: 'Basic', + shape: 'Polygon', + points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }] + } + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_13__["isBlazor"])() && node.shape.type === 'Basic') { + node.shape.basicShape = 'Polygon'; + } + this.drawingObject = this.commandHandler.drawObject(node); + } + else { + var pt = void 0; + var obj = this.drawingObject.shape; + pt = obj.points[obj.points.length - 1]; + pt = { x: pt.x, y: pt.y }; + this.drawingObject.shape.points.push(pt); + } + }; + /** + * @param args + * @private + */ + PolygonDrawingTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + var obj = this.drawingObject.shape; + if (this.drawingObject && this.currentPosition) { + obj.points[obj.points.length - 1].x = this.currentPosition.x; + obj.points[obj.points.length - 1].y = this.currentPosition.y; + this.drawingObject.wrapper.children[0].data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_6__["getPolygonPath"])(this.drawingObject.shape.points); + if (this.inAction && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var region = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds(this.drawingObject.shape.points); + this.commandHandler.updateNodeDimension(this.drawingObject, region); + } + } + } + return true; + }; + /** + * @param args + * @param dblClickArgs + * @param args + * @param dblClickArgs + * @private + */ + PolygonDrawingTool.prototype.mouseUp = function (args, dblClickArgs) { + this.checkPropertyValue(); + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + this.inAction = false; + if (this.drawingObject) { + this.commandHandler.addObjectToDiagram(this.drawingObject); + } + } + this.endAction(); + }; + /** + * @param args + * @private + */ + PolygonDrawingTool.prototype.mouseWheel = function (args) { + _super.prototype.mouseWheel.call(this, args); + this.mouseMove(args); + }; + /** @private */ + PolygonDrawingTool.prototype.endAction = function () { + this.inAction = false; + this.drawingObject = null; + }; + return PolygonDrawingTool; +}(ToolBase)); + +/** + * Draws a PolyLine Connector dynamically using PolyLine Drawing Tool + */ +var PolyLineDrawingTool = /** @__PURE__ @class */ (function (_super) { + __extends(PolyLineDrawingTool, _super); + function PolyLineDrawingTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + PolyLineDrawingTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + var obj = this.drawingObject; + obj.targetPoint = this.currentPosition; + this.commandHandler.updateConnectorPoints(obj); + } + return true; + }; + /** + * @param args + * @private + */ + PolyLineDrawingTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + if (!this.drawingObject) { + var connector = { + id: 'Connector', + type: 'Straight', + sourcePoint: this.currentPosition, + targetPoint: this.currentPosition + }; + this.drawingObject = this.commandHandler.drawObject(connector); + } + else { + var drawObject = this.drawingObject; + var segment = void 0; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_1__["StraightSegment"](drawObject, 'segments', { type: 'Straight' }, true); + segment.point = this.currentPosition; + drawObject.segments[drawObject.segments.length - 1] = segment; + } + }; + /** + * @param args + * @private + */ + PolyLineDrawingTool.prototype.mouseWheel = function (args) { + _super.prototype.mouseWheel.call(this, args); + this.mouseMove(args); + }; + /** + * @param args + * @private + */ + PolyLineDrawingTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + if (this.drawingObject) { + var drawObject = this.drawingObject; + drawObject.segments[drawObject.segments.length - 1].point = { x: 0, y: 0 }; + this.commandHandler.addObjectToDiagram(this.drawingObject); + } + } + this.endAction(); + }; + /** @private */ + PolyLineDrawingTool.prototype.endAction = function () { + this.drawingObject = null; + this.inAction = false; + }; + return PolyLineDrawingTool; +}(ToolBase)); + +var LabelDragTool = /** @__PURE__ @class */ (function (_super) { + __extends(LabelDragTool, _super); + function LabelDragTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + LabelDragTool.prototype.mouseDown = function (args) { + this.inAction = true; + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(args.source); + this.annotationId = args.sourceWrapper.id; + _super.prototype.mouseDown.call(this, args); + }; + /** + * @param args + * @private + */ + LabelDragTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + var difx = this.currentPosition.x - this.prevPosition.x; + var dify = this.currentPosition.y - this.prevPosition.y; + var node = args.source; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["rotateMatrix"])(matrix, -node.rotateAngle, 0, 0); + var diff = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(matrix, { x: difx, y: dify }); + difx = diff.x; + dify = diff.y; + } + if (this.inAction) { + this.commandHandler.labelDrag(args.source, args.sourceWrapper, difx, dify); + this.commandHandler.updateSelector(); + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + /** + * @param args + * @private + */ + LabelDragTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + var redoValue = args.source; + this.inAction = false; + var entryValue = { + type: 'AnnotationPropertyChanged', + objectId: this.annotationId, undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), + category: 'Internal', redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(redoValue) + }; + this.commandHandler.addHistoryEntry(entryValue); + _super.prototype.mouseUp.call(this, args); + }; + /** + * @param args + * @private + */ + LabelDragTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + return LabelDragTool; +}(ToolBase)); + +var LabelResizeTool = /** @__PURE__ @class */ (function (_super) { + __extends(LabelResizeTool, _super); + function LabelResizeTool(commandHandler, corner) { + var _this = _super.call(this, commandHandler, true) || this; + _this.corner = corner; + return _this; + } + /** + * @param args + * @private + */ + LabelResizeTool.prototype.mouseDown = function (args) { + this.inAction = true; + var object = (args.source.nodes.length) ? + args.source.nodes[0] : args.source.connectors[0]; + this.annotationId = args.source.wrapper.children[0].id; + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(object); + var annotation = args.source.wrapper.children[0]; + this.initialBounds = { + x: annotation.offsetX, + y: annotation.offsetY, + width: annotation.actualSize.width, + height: annotation.actualSize.height + }; + _super.prototype.mouseDown.call(this, args); + }; + /** + * @param args + * @private + */ + LabelResizeTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + this.resizeObject(args); + } + return !this.blocked; + }; + /** + * @param args + * @private + */ + LabelResizeTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + var redoObject = (args.source.nodes.length) ? + args.source.nodes[0] : args.source.connectors[0]; + this.inAction = false; + var entry = { + type: 'AnnotationPropertyChanged', objectId: this.annotationId, + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(redoObject), undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entry); + _super.prototype.mouseUp.call(this, args); + }; + /** + * @param args + * @private + */ + LabelResizeTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + /** + * @param args + * @private + */ + LabelResizeTool.prototype.resizeObject = function (args) { + var object; + object = (args.source.nodes.length) ? args.source.nodes[0] : args.source.connectors[0]; + var textElement = args.source.wrapper.children[0]; + var deltaWidth; + var deltaHeight; + var center = { x: textElement.offsetX, y: textElement.offsetY }; + var rotateAngle = textElement.rotateAngle; + rotateAngle += (object instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) ? object.rotateAngle : 0; + rotateAngle = (rotateAngle + 360) % 360; + var trans = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["rotateMatrix"])(trans, rotateAngle, center.x, center.y); + var corner = this.corner.slice(5); + var pivot = this.updateSize(textElement, this.startPosition, this.currentPosition, corner, this.initialBounds, rotateAngle); + var x = textElement.offsetX - textElement.actualSize.width * textElement.pivot.x; + var y = textElement.offsetY - textElement.actualSize.height * textElement.pivot.y; + var pivotPoint = this.getPivot(corner); + pivotPoint = { x: x + textElement.actualSize.width * pivotPoint.x, y: y + textElement.actualSize.height * pivotPoint.y }; + var point = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_8__["transformPointByMatrix"])(trans, pivotPoint); + pivot.x = point.x; + pivot.y = point.y; + deltaWidth = pivot.width; + deltaHeight = pivot.height; + deltaWidth = (deltaWidth < 0) ? 1 : deltaWidth; + deltaHeight = (deltaHeight < 0) ? 1 : deltaHeight; + this.commandHandler.labelResize(object, args.source.annotation, deltaWidth, deltaHeight, pivot, args.source); + this.commandHandler.updateSelector(); + }; + return LabelResizeTool; +}(ToolBase)); + +var LabelRotateTool = /** @__PURE__ @class */ (function (_super) { + __extends(LabelRotateTool, _super); + function LabelRotateTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * @param args + * @private + */ + LabelRotateTool.prototype.mouseDown = function (args) { + this.inAction = true; + this.annotationId = args.source.wrapper.children[0].id; + var object = (args.source.nodes.length) ? + args.source.nodes[0] : args.source.connectors[0]; + this.undoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(object); + _super.prototype.mouseDown.call(this, args); + }; + /** + * @param args + * @private + */ + LabelRotateTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (args.source) { + if (this.inAction) { + var object = args.source.nodes[0] ? args.source.nodes[0] : + args.source.connectors[0]; + var annotation = void 0; + annotation = (args.source.annotation); + this.commandHandler.labelRotate(object, annotation, this.currentPosition, args.source); + this.commandHandler.updateSelector(); + } + } + this.prevPosition = this.currentPosition; + return !this.blocked; + }; + /** + * @param args + * @private + */ + LabelRotateTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + this.inAction = false; + var redoEntry = (args.source.nodes.length) ? + args.source.nodes[0] : args.source.connectors[0]; + var entryObject = { + type: 'AnnotationPropertyChanged', objectId: this.annotationId, + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(redoEntry), + undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cloneObject"])(this.undoElement), category: 'Internal' + }; + this.commandHandler.addHistoryEntry(entryObject); + _super.prototype.mouseUp.call(this, args); + }; + /** + * @param args + * @private + */ + LabelRotateTool.prototype.mouseLeave = function (args) { + this.mouseUp(args); + }; + return LabelRotateTool; +}(ToolBase)); + +/** + * EJ2-33302 - Freehand drawing support in diagram control. + */ +var FreeHandTool = /** @__PURE__ @class */ (function (_super) { + __extends(FreeHandTool, _super); + function FreeHandTool(commandHandler) { + return _super.call(this, commandHandler, true) || this; + } + /** + * mouseMove - Collect the points using current mouse position and convert it into pathData. + * @param args + * @private + */ + FreeHandTool.prototype.mouseMove = function (args) { + _super.prototype.mouseMove.call(this, args); + if (this.inAction) { + var obj = this.drawingObject.shape; + if (this.drawingObject && this.currentPosition) { + var pt = this.currentPosition; + obj.points.push(pt); + this.drawingObject.wrapper.children[0].data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_6__["getFreeHandPath"])(this.drawingObject.shape.points); + obj.data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_6__["getFreeHandPath"])(obj.points); + if (this.inAction && _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].equals(this.currentPosition, this.prevPosition) === false) { + var region = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds(this.drawingObject.shape.points); + this.commandHandler.updateNodeDimension(this.drawingObject, region); + } + } + } + return true; + }; + /** + * @param args + * @private + */ + FreeHandTool.prototype.mouseDown = function (args) { + _super.prototype.mouseDown.call(this, args); + this.inAction = true; + if (!this.drawingObject) { + this.startPoint = { x: this.startPosition.x, y: this.startPosition.y }; + var node = { + offsetX: this.currentPosition.x, + offsetY: this.currentPosition.y, + width: 5, height: 5, + style: { strokeColor: 'black', strokeWidth: 1, fill: 'transparent' }, + shape: { + type: 'Path', + points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }] + } + }; + this.drawingObject = this.commandHandler.drawObject(node); + } + }; + /** + * mouseUp - Remove the drawn object. Reduce and smoothen the collected points and create + * a bezier connector using the smoothened points. + * @param args + * @private + */ + FreeHandTool.prototype.mouseUp = function (args) { + this.checkPropertyValue(); + var tolerance = 10; + var smoothValue = 0.5; + if (this.inAction) { + this.inAction = false; + if (this.drawingObject) { + var obj = this.drawingObject.shape; + var points = obj.points; + this.commandHandler.addObjectToDiagram(this.drawingObject); + var prevId = this.drawingObject.id; + var prevObj = this.commandHandler.diagram.nameTable["" + prevId]; + this.commandHandler.diagram.remove(prevObj); + points = this.pointReduction(points, tolerance); + //EJ2-69816 - Added below code to set the allow segment reset as false to avoid the unwanted segment reset. + var newObj = { + id: 'newConnector' + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["randomId"])(), type: 'Bezier', + sourcePoint: { x: points[0].x, y: points[0].y }, targetPoint: { x: points[points.length - 1].x, y: points[points.length - 1].y }, + segments: [], targetDecorator: { shape: 'None' }, bezierSettings: { allowSegmentsReset: false } + }; + this.drawingObject = this.commandHandler.drawObject(newObj); + this.drawingObject = this.bezierCurveSmoothness(points, smoothValue, this.drawingObject, obj); + this.commandHandler.updateConnectorPoints(this.drawingObject); + this.commandHandler.addObjectToDiagram(this.drawingObject); + //(EJ2-70838)- Added code to resolve style property not added dynamically for freehand connector + // Added code to resolve style property not added dynamically for freehand connector + _super.prototype.mouseUp.call(this, args); + } + } + }; + /** + * Reduce the collected points based on tolerance value. + * @param points + * @param tolerance + * @returns points + */ + FreeHandTool.prototype.pointReduction = function (points, tolerance) { + if (points === null || points.length < 3) { + return points; + } + var firstPoint = 0; + var lastPoint = points.length - 1; + var pointIndex = []; + pointIndex.push(firstPoint); + pointIndex.push(lastPoint); + while (points[parseInt(firstPoint.toString(), 10)] === (points[parseInt(lastPoint.toString(), 10)])) { + lastPoint--; + } + this.reduction(points, firstPoint, lastPoint, tolerance, pointIndex); + var returnedPoints = []; + pointIndex.sort(function (a, b) { return a - b; }); + pointIndex.forEach(function (element) { + returnedPoints.push(points[parseInt(element.toString(), 10)]); + }); + return returnedPoints; + }; + FreeHandTool.prototype.reduction = function (points, firstPoint, lastPoint, tolerance, pointIndex) { + var maxDistance = 0; + var largestPointIndex = 0; + for (var i = firstPoint; i < lastPoint; i++) { + var distance = this.perpendicularDistance(points[parseInt(firstPoint.toString(), 10)], points[parseInt(lastPoint.toString(), 10)], points[parseInt(i.toString(), 10)]); + if (distance > maxDistance) { + maxDistance = distance; + largestPointIndex = i; + } + } + if (maxDistance > tolerance && largestPointIndex !== 0) { + pointIndex.push(largestPointIndex); + this.reduction(points, firstPoint, largestPointIndex, tolerance, pointIndex); + this.reduction(points, largestPointIndex, lastPoint, tolerance, pointIndex); + } + }; + /** + * Calculate the perpendicular distance of each point with first and last points + * @param point1 + * @param point2 + * @param point3 + * @returns + */ + FreeHandTool.prototype.perpendicularDistance = function (point1, point2, point3) { + var area = Math.abs(.5 * ((point1.x * point2.y - point2.x * point1.y) + + (point2.x * point3.y - point3.x * point2.y) + (point3.x * point1.y - point1.x * point3.y))); + var base = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2)); + var height = area / base * 2; + return height; + }; + /** + * Smoothen the bezier curve based on the points and smoothValue. + * @param points + * @param smoothValue + * @param drawingObject + * @param obj + * @returns drawingObject + */ + FreeHandTool.prototype.bezierCurveSmoothness = function (points, smoothValue, drawingObject, obj) { + if (points.length < 3) { + return drawingObject; + } + for (var i = 0; i < points.length - 1; i++) { + var pointx1 = points[parseInt(i.toString(), 10)].x; + var pointy1 = points[parseInt(i.toString(), 10)].y; + var pointx2 = points[i + 1].x; + var pointy2 = points[i + 1].y; + var pointx0 = void 0; + var pointy0 = void 0; + if (i === 0) { + var previousPoint = points[parseInt(i.toString(), 10)]; + pointx0 = previousPoint.x; + pointy0 = previousPoint.y; + } + else { + pointx0 = points[i - 1].x; + pointy0 = points[i - 1].y; + } + var pointx3 = void 0, pointy3 = void 0; + if (i === points.length - 2) { + var nextPoint = points[i + 1]; + pointx3 = nextPoint.x; + pointy3 = nextPoint.y; + } + else { + pointx3 = points[i + 2].x; + pointy3 = points[i + 2].y; + } + var xc1 = (pointx0 + pointx1) / 2.0; + var yc1 = (pointy0 + pointy1) / 2.0; + var xc2 = (pointx1 + pointx2) / 2.0; + var yc2 = (pointy1 + pointy2) / 2.0; + var xc3 = (pointx2 + pointx3) / 2.0; + var yc3 = (pointy2 + pointy3) / 2.0; + var point0 = {}; + var point1 = {}; + var point2 = {}; + var point3 = {}; + point0.x = pointx0; + point0.y = pointy0; + point1.x = pointx1; + point1.y = pointy1; + point2.x = pointx2; + point2.y = pointy2; + point3.x = pointx3; + point3.y = pointy3; + var len1 = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(point0, point1); + var len2 = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(point1, point2); + var len3 = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(point2, point3); + var k1 = len1 / (len1 + len2); + var k2 = len2 / (len2 + len3); + var xm1 = xc1 + (xc2 - xc1) * k1; + var ym1 = yc1 + (yc2 - yc1) * k1; + var xm2 = xc2 + (xc3 - xc2) * k2; + var ym2 = yc2 + (yc3 - yc2) * k2; + var Controlpointx1 = xm1 + (xc2 - xm1) * smoothValue + pointx1 - xm1; + var Controlpointy1 = ym1 + (yc2 - ym1) * smoothValue + pointy1 - ym1; + var Controlpointx2 = xm2 + (xc2 - xm2) * smoothValue + pointx2 - xm2; + var Controlpointy2 = ym2 + (yc2 - ym2) * smoothValue + pointy2 - ym2; + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_1__["BezierSegment"](obj, 'segments', { type: 'Bezier' }, true); + var cnPt1 = { x: Controlpointx1, y: Controlpointy1 }; + var cnPt2 = { x: Controlpointx2, y: Controlpointy2 }; + var segSourcePoint = { x: pointx1, y: pointy1 }; + var segTargetPoint = { x: pointx2, y: pointy2 }; + segment.type = 'Bezier'; + drawingObject.segments[parseInt(i.toString(), 10)] = segment; + if (i === 0) { + cnPt1 = { x: pointx1, y: pointy1 }; + } + if (i === points.length - 2) { + cnPt2 = { x: pointx2, y: pointy2 }; + } + drawingObject.segments[parseInt(i.toString(), 10)].vector1 = { angle: Object(_utility_connector__WEBPACK_IMPORTED_MODULE_15__["findAngle"])(segSourcePoint, cnPt1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(segSourcePoint, cnPt1) }; + drawingObject.segments[parseInt(i.toString(), 10)].vector2 = { angle: Object(_utility_connector__WEBPACK_IMPORTED_MODULE_15__["findAngle"])(segTargetPoint, cnPt2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(segTargetPoint, cnPt2) }; + drawingObject.segments[parseInt(i.toString(), 10)].point = segTargetPoint; + } + return drawingObject; + }; + return FreeHandTool; +}(ToolBase)); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/complex-hierarchical-tree.js": +/*!************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/complex-hierarchical-tree.js ***! + \************************************************************************************************/ +/*! exports provided: ComplexHierarchicalTree */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComplexHierarchicalTree", function() { return ComplexHierarchicalTree; }); +/** + * Connects diagram objects with layout algorithm + */ +var ComplexHierarchicalTree = /** @__PURE__ @class */ (function () { + /** + * Constructor for the hierarchical tree layout module + * + * @private + */ + function ComplexHierarchicalTree() { + //constructs the layout module + } + /** + * To destroy the hierarchical tree module + * + * @returns {void} + * @private + */ + ComplexHierarchicalTree.prototype.destroy = function () { + /** + * Destroy method performed here + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + ComplexHierarchicalTree.prototype.getModuleName = function () { + /** + * Returns the module name of the layout + * + */ + return 'ComplexHierarchicalTree'; + }; + /** + * doLayout method\ + * + * @returns { void } doLayout method .\ + * @param {INode[]} nodes - provide the nodes value. + * @param {{}} nameTable - provide the nameTable value. + * @param {Layout} layout - provide the layout value. + * @param {PointModel} viewPort - provide the viewPort value. + * @param {LineDistribution} lineDistribution - provide the lineDistribution value. + * @private + */ + ComplexHierarchicalTree.prototype.doLayout = function (nodes, nameTable, layout, viewPort, lineDistribution) { + new HierarchicalLayoutUtil().doLayout(nodes, nameTable, layout, viewPort, lineDistribution); + }; + ComplexHierarchicalTree.prototype.getLayoutNodesCollection = function (nodes) { + var nodesCollection = []; + var node; + var parentId = 'parentId'; + var processId = 'processId'; + for (var i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if ((node.inEdges.length + node.outEdges.length > 0) && !node["" + parentId] && !node["" + processId]) { + nodesCollection.push(node); + } + } + return nodesCollection; + }; + return ComplexHierarchicalTree; +}()); + +/** + * Utility that arranges the nodes in hierarchical structure + */ +var HierarchicalLayoutUtil = /** @__PURE__ @class */ (function () { + function HierarchicalLayoutUtil() { + this.nameTable = {}; + this.crossReduction = new CrossReduction(); + /** + * The preferred vertical offset between edges exiting a vertex Default is 2. + */ + this.previousEdgeOffset = 6; + /** + * The preferred horizontal distance between edges exiting a vertex Default is 5. + */ + this.previousEdgeDistance = 5; + /** + * Holds the collection vertices, that are equivalent to nodes to be arranged + */ + this.jettyPositions = {}; + /** + * Internal cache of bottom-most value of Y for each rank + */ + this.rankBottomY = null; + /** + * Internal cache of bottom-most value of X for each rank + */ + this.limitX = null; + /** + * Internal cache of top-most values of Y for each rank + */ + this.rankTopY = null; + /** + * The minimum parallelEdgeSpacing value is 12. + */ + this.parallelEdgeSpacing = 10; + /** + * The minimum distance for an edge jetty from a vertex Default is 12. + */ + this.minEdgeJetty = 12; + } + //Defines a vertex that is equivalent to a node object + HierarchicalLayoutUtil.prototype.createVertex = function (node, value, x, y, width, height) { + var geometry = { x: x, y: y, width: width, height: height }; + var vertex = { + value: value, geometry: geometry, name: value, vertex: true, + inEdges: node.inEdges.slice(), outEdges: node.outEdges.slice() + }; + return vertex; + }; + /** + * Initializes the edges collection of the vertices\ + * + * @returns { IConnector[] } Initializes the edges collection of the vertices\ + * @param {Vertex} node - provide the node value. + * @private + */ + HierarchicalLayoutUtil.prototype.getEdges = function (node) { + var edges = []; + if (node) { + for (var i = 0; node.inEdges.length > 0 && i < node.inEdges.length; i++) { + edges.push(this.nameTable[node.inEdges[parseInt(i.toString(), 10)]]); + } + for (var i = 0; node.outEdges.length > 0 && i < node.outEdges.length; i++) { + edges.push(this.nameTable[node.outEdges[parseInt(i.toString(), 10)]]); + } + } + return edges; + }; + //Finds the root nodes of the layout + HierarchicalLayoutUtil.prototype.findRoots = function (vertices) { + var roots = []; + var best = null; + var maxDiff = -100000; + for (var _i = 0, _a = Object.keys(vertices); _i < _a.length; _i++) { + var i = _a[_i]; + var cell = vertices["" + i]; + var conns = this.getEdges(cell); + var outEdges = 0; + var inEdges = 0; + for (var k = 0; k < conns.length; k++) { + var src = this.getVisibleTerminal(conns[parseInt(k.toString(), 10)], true); + if (src.name === cell.name) { + outEdges++; + } + else { + inEdges++; + } + } + if (inEdges === 0 && outEdges > 0) { + roots.push(cell); + } + var diff = outEdges - inEdges; + if (diff > maxDiff) { + maxDiff = diff; + best = cell; + } + } + if (roots.length === 0 && best != null) { + roots.push(best); + } + return roots; + }; + /** + * Returns the source/target vertex of the given connector \ + * + * @returns { Vertex } Returns the source/target vertex of the given connector \ + * @param {IConnector} edge - provide the node value. + * @param {boolean} source - provide the node value. + * @private + */ + HierarchicalLayoutUtil.prototype.getVisibleTerminal = function (edge, source) { + var terminalCache = this.nameTable[edge.targetID]; + if (source) { + terminalCache = this.nameTable[edge.sourceID]; + } + for (var i = 0; i < this.vertices.length; i++) { + if (this.vertices[parseInt(i.toString(), 10)].name === terminalCache.id) { + return this.vertices[parseInt(i.toString(), 10)]; + } + } + return null; + }; + /** + * Traverses each sub tree, ensures there is no cycle in traversing \ + * + * @returns { {} } Traverses each sub tree, ensures there is no cycle in traversing .\ + * @param {Vertex} vertex - provide the vertex value. + * @param {boolean} directed - provide the directed value. + * @param {IConnector} edge - provide the edge value. + * @param {{}} currentComp - provide the currentComp value. + * @param {{}[]} hierarchyVertices - provide the hierarchyVertices value. + * @param {{}} filledVertices - provide the filledVertices value. + * @private + */ + HierarchicalLayoutUtil.prototype.traverse = function (vertex, directed, edge, currentComp, hierarchyVertices, filledVertices) { + if (vertex != null) { + var vertexID = vertex.name; + if ((filledVertices == null ? true : filledVertices["" + vertexID] != null)) { + if (currentComp["" + vertexID] == null) { + currentComp["" + vertexID] = vertex; + } + if (filledVertices != null) { + delete filledVertices["" + vertexID]; + } + var edges = this.getEdges(vertex); + var edgeIsSource = []; + for (var i = 0; i < edges.length; i++) { + edgeIsSource[parseInt(i.toString(), 10)] = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true) === vertex; + } + for (var i = 0; i < edges.length; i++) { + if (!directed || edgeIsSource[parseInt(i.toString(), 10)]) { + var next = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], !edgeIsSource[parseInt(i.toString(), 10)]); + var netCount = 1; + for (var j = 0; j < edges.length; j++) { + if (j === i) { + continue; + } + else { + var isSource2 = edgeIsSource[parseInt(j.toString(), 10)]; + var otherTerm = this.getVisibleTerminal(edges[parseInt(j.toString(), 10)], !isSource2); + if (otherTerm === next) { + if (isSource2) { + netCount++; + } + else { + netCount--; + } + } + } + } + if (netCount >= 0) { + currentComp = this.traverse(next, directed, edges[parseInt(i.toString(), 10)], currentComp, hierarchyVertices, filledVertices); + } + } + } + } + else { + if (currentComp["" + vertexID] == null) { + // We've seen this vertex before, but not in the current component This component and the one it's in need to be merged + for (var i = 0; i < hierarchyVertices.length; i++) { + var comp = hierarchyVertices[parseInt(i.toString(), 10)]; + if (comp["" + vertexID] != null) { + for (var _i = 0, _a = Object.keys(comp); _i < _a.length; _i++) { + var key = _a[_i]; + currentComp["" + key] = comp["" + key]; + } + // Remove the current component from the hierarchy set + hierarchyVertices.splice(i, 1); + return currentComp; + } + } + } + } + } + return currentComp; + }; + //Returns the bounds of the given vertices + HierarchicalLayoutUtil.prototype.getModelBounds = function (nodes) { + nodes = nodes.slice(); + var rect = null; + var rect1 = null; + for (var i = 0; i < nodes.length; i++) { + rect = nodes[parseInt(i.toString(), 10)].geometry; + if (rect1) { + var right = Math.max(rect1.x + rect1.width, rect.x + rect.width); + var bottom = Math.max(rect1.y + rect1.height, rect.y + rect.height); + rect1.x = Math.min(rect1.x, rect.x); + rect1.y = Math.min(rect1.y, rect.y); + rect1.width = right - rect1.x; + rect1.height = bottom - rect1.y; + } + else { + rect1 = { x: rect.x, y: rect.y, width: rect.width, height: rect.height }; + } + } + return rect1; + }; + /* tslint:disable */ + /** + * Initializes the layouting process \ + * + * @returns { Vertex } Initializes the layouting process \ + * @param {INode[]} nodes - provide the node value. + * @param {{}} nameTable - provide the nameTable value. + * @param {Layout} layoutProp - provide the layoutProp value. + * @param {PointModel} viewPort - provide the viewPort value. + * @param {LineDistribution} lineDistribution - provide the lineDistribution value. + * @private + */ + HierarchicalLayoutUtil.prototype.doLayout = function (nodes, nameTable, layoutProp, viewPort, lineDistribution) { + this.nameTable = nameTable; + var canEnableRouting = layoutProp.enableRouting; + var layout = { + horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing, + orientation: layoutProp.orientation, marginX: layoutProp.margin.left, marginY: layoutProp.margin.top, + enableLayoutRouting: canEnableRouting + }; + var model; + if (lineDistribution) { + lineDistribution.edgeMapper = []; + } + var nodeWithMultiEdges = []; + this.vertices = []; + var filledVertexSet = {}; + for (var i = 0; i < nodes.length; i++) { + var node = this.createVertex(nodes[parseInt(i.toString(), 10)], nodes[parseInt(i.toString(), 10)].id, 0, 0, nodes[parseInt(i.toString(), 10)].actualSize.width, nodes[parseInt(i.toString(), 10)].actualSize.height); + this.vertices.push(node); + if (nodes[parseInt(i.toString(), 10)].inEdges.length > 0 || nodes[parseInt(i.toString(), 10)].outEdges.length > 0) { + nodeWithMultiEdges.push(nodes[parseInt(i.toString(), 10)]); + } + filledVertexSet[node.name] = node; + if (lineDistribution) { + var outEdges = nodes[parseInt(i.toString(), 10)].outEdges.slice(); + for (var j = 0; j < outEdges.length; j++) { + var outEdge = nameTable[outEdges[parseInt(j.toString(), 10)]]; + lineDistribution.setEdgeMapper({ key: outEdge, value: [] }); + } + } + } + var hierarchyVertices = []; + //let candidateRoots: Vertex[]; + var candidateRoots = this.findRoots(filledVertexSet); + for (var i = 0; i < candidateRoots.length; i++) { + var vertexSet = {}; + hierarchyVertices.push(vertexSet); + this.traverse(candidateRoots[parseInt(i.toString(), 10)], true, null, vertexSet, hierarchyVertices, filledVertexSet); + } + var limit = { marginX: 0, marginY: 0 }; + var tmp = []; + var checkLinear = false; + var matrixModel; + for (var i = 0; i < hierarchyVertices.length; i++) { + var vertexSet = hierarchyVertices[parseInt(i.toString(), 10)]; + // eslint-disable-next-line + for (var _i = 0, _a = Object.keys(vertexSet); _i < _a.length; _i++) { + var key = _a[_i]; + tmp.push(vertexSet["" + key]); + } + if ((layoutProp.arrangement === 'Linear' && i === hierarchyVertices.length - 1) || canEnableRouting) { + checkLinear = true; + } + model = new MultiParentModel(this, tmp, candidateRoots, layout); + this.cycleStage(model); + this.layeringStage(model); + if ((lineDistribution && layoutProp.connectionPointOrigin === 'DifferentPoint') || checkLinear) { + matrixModel = this.matrixModel({ model: model, matrix: [], rowOffset: [] }); + lineDistribution.arrangeElements(matrixModel, layoutProp); + } + else { + if (layoutProp.arrangement === 'Nonlinear') { + this.crossingStage(model); + limit = this.placementStage(model, limit.marginX, limit.marginY); + tmp = []; + } + } + } + var modelBounds = this.getModelBounds(this.vertices); + this.updateMargin(layoutProp, layout, modelBounds, viewPort); + for (var i = 0; i < this.vertices.length; i++) { + var clnode = this.vertices[parseInt(i.toString(), 10)]; + if (clnode) { //Check what is node.source/node.target - && !clnode.source && !clnode.target) { + var dnode = this.nameTable[clnode.name]; + dnode.offsetX = 0; + dnode.offsetY = 0; + //initialize layout + var dx = (clnode.geometry.x - (dnode.offsetX - (dnode.actualSize.width / 2))) + layout.marginX; + var dy = (clnode.geometry.y - (dnode.offsetY - (dnode.actualSize.height / 2))) + layout.marginY; + var x = dx; + var y = dy; + if (layout.orientation === 'BottomToTop') { + if (canEnableRouting) { + clnode.geometry.y = modelBounds.height - dy - dnode.actualSize.height / 2; + } + y = modelBounds.height - dy; + } + else if (layout.orientation === 'RightToLeft') { + x = modelBounds.width - dx; + } + dnode.offsetX += x - dnode.offsetX; + dnode.offsetY += y - dnode.offsetY; + } + } + if (!checkLinear) { + for (var i = 0; i < this.vertices.length; i++) { + this.isNodeOverLap(this.nameTable[this.vertices[parseInt(i.toString(), 10)].name], layoutProp); + } + } + if ((lineDistribution && layoutProp.connectionPointOrigin === 'DifferentPoint') || canEnableRouting) { + lineDistribution.updateLayout(viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable); + } + if (canEnableRouting) { + var vertices = {}; + var matrixrow1 = void 0; + for (var p = 0; p < matrixModel.matrix.length; p++) { + matrixrow1 = matrixModel.matrix[parseInt(p.toString(), 10)].value; + for (var q = 0; q < matrixrow1.length; q++) { + var matrixCell = matrixrow1[parseInt(q.toString(), 10)]; + for (var r = 0; r < matrixCell.cells.length; r++) { + var cell = matrixCell.cells[parseInt(r.toString(), 10)]; + var type = this.getType(cell.type); + if (type === 'internalVertex') { + var internalVertex = cell; + vertices[internalVertex.id] = internalVertex; + } + } + } + } + this.updateRankValuess(model); + for (var i = 0, a = Object.keys(vertices); i < a.length; i++) { + var key = a[parseInt(i.toString(), 10)]; + this.setVertexLocationValue(vertices["" + key], layoutProp.orientation, modelBounds); + } + this.localEdgeProcessing(model, vertices); + this.assignRankOffset(model); + this.updateEdgeSetXYValue(model); + var edges = this.getValues(model.edgeMapper); + for (var i = 0; i < edges.length; i++) { + if ((edges[parseInt(i.toString(), 10)]).x.length > 0) { + for (var j = 0; j < (edges[parseInt(i.toString(), 10)]).x.length; j++) { + if (layoutProp.orientation !== 'RightToLeft' && layoutProp.orientation !== 'LeftToRight') { + (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layout.marginX; + } + else if (layoutProp.orientation === 'LeftToRight') { + (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2; + } + else { + (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2; + } + } + } + this.setEdgePosition(edges[parseInt(i.toString(), 10)], model, layout); + } + for (var p = 0; p < this.vertices.length; p++) { + var clnode = this.vertices[parseInt(p.toString(), 10)]; + if (clnode.outEdges.length > 1) { + this.updateMultiOutEdgesPoints(clnode); + } + } + } + }; + HierarchicalLayoutUtil.prototype.setEdgeXY = function (ranks, node, spacing, layer) { + if (ranks && node.source.id) { + var targetValue = void 0; + var sourceValue = void 0; + for (var i = 0; i < ranks.length; i++) { + for (var k = 0; k < ranks[parseInt(i.toString(), 10)].length; k++) { + if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id || ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id) { + if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id && targetValue === undefined) { + targetValue = i; + } + if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id && sourceValue === undefined) { + sourceValue = i; + } + } + } + } + var rankOffsetValue = void 0; + for (var m = targetValue; m <= sourceValue; m++) { + if (rankOffsetValue === undefined) { + rankOffsetValue = this[m + '_RankOffset']; + } + if (rankOffsetValue !== undefined && rankOffsetValue < this[m + '_RankOffset']) { + rankOffsetValue = this[m + '_RankOffset']; + } + } + if (this['edges'] === undefined) { + this['edges'] = {}; + } + this['edges'][(node).ids[0]] = { x: node.x, y: 0 }; + var value = this.resetOffsetXValue(rankOffsetValue, spacing / 10); + node.x[layer - node.minRank - 1] = value; + for (var k = 0; k < (node).edges.length; k++) { + (node).edges[parseInt(k.toString(), 10)]['levelSkip'] = true; + } + } + }; + HierarchicalLayoutUtil.prototype.resetOffsetXValue = function (value, spacing) { + for (var i = 0, a = Object.keys(this['edges']); i < a.length; i++) { + var key = a[parseInt(i.toString(), 10)]; + var length_1 = this['edges']["" + key].x; + for (var j = 0; j < length_1.length; j++) { + var offsetValue = void 0; + if (this['edges']["" + key].x[parseInt(j.toString(), 10)] === value) { + offsetValue = value + spacing; + offsetValue = this.resetOffsetXValue(offsetValue, spacing); + return offsetValue; + } + } + } + return value; + }; + HierarchicalLayoutUtil.prototype.setEdgePosition = function (cell, model, layout) { + // For parallel edges we need to seperate out the points a + // little + var offsetX = 0; + // Only set the edge control points once + if (cell.temp[0] !== 101207) { + if (cell.maxRank === undefined) { + cell.maxRank = -1; + } + if (cell.minRank === undefined) { + cell.minRank = -1; + } + var maxRank = cell.maxRank; + var minRank = cell.minRank; + if (maxRank === minRank) { + maxRank = cell.source.maxRank; + minRank = cell.target.minRank; + } + var parallelEdgeCount = 0; + var jettys = this.jettyPositions[cell.ids[0]]; + if (cell.isReversed === undefined) { + cell.isReversed = false; + } + else { + cell.isReversed = true; + } + var source = cell.isReversed ? cell.target.cell : cell.source.cell; + var layoutReversed = false; + if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'LeftToRight') { + if (model.layout.orientation === 'TopToBottom') { + layoutReversed = false; + } + if (model.layout.orientation === 'LeftToRight') { + if (!cell.isReversed) { + layoutReversed = false; + } + else { + layoutReversed = false; + } + } + } + else { + if (!cell.isReversed) { + layoutReversed = true; + } + } + for (var i = 0; i < cell.edges.length; i++) { + var realEdge = cell.edges[parseInt(i.toString(), 10)]; + var realSource = this.getVisibleTerminal(realEdge, true); + //List oldPoints = graph.getPoints(realEdge); + var newPoints = []; + // Single length reversed edges end up with the jettys in the wrong + // places. Since single length edges only have jettys, not segment + // control points, we just say the edge isn't reversed in this section + var reversed = cell.isReversed; + // if(cell.isReversed===undefined){ + // reversed = false + // }else{ + // reversed =cell.isReversed + // } + if (realSource !== source) { + // The real edges include all core model edges and these can go + // in both directions. If the source of the hierarchical model edge + // isn't the source of the specific real edge in this iteration + // treat if as reversed + reversed = !reversed; + } + // First jetty of edge + if (jettys != null) { + var arrayOffset = reversed ? 2 : 0; + var y = reversed ? + (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)] : this.rankTopY[parseInt(minRank.toString(), 10)]) : + (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)] : this.rankBottomY[parseInt(maxRank.toString(), 10)]); + var jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset]; + if (reversed !== layoutReversed) { + jetty = -jetty; + } + if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') { + y += jetty; + } + var x = jettys[parallelEdgeCount * 4 + arrayOffset]; + if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') { + newPoints.push(this.getPointvalue(x, y + layout.marginY)); + } + else { + if (layout.orientation === 'LeftToRight') { + newPoints.push(this.getPointvalue(y + jetty, x + layout.marginY)); + } + else { + newPoints.push(this.getPointvalue(y, x + layout.marginY)); + } + } + } + var loopStart = cell.x.length - 1; + var loopLimit = -1; + var loopDelta = -1; + var currentRank = cell.maxRank - 1; + if (reversed) { + loopStart = 0; + loopLimit = cell.x.length; + loopDelta = 1; + currentRank = cell.minRank + 1; + } + // Reversed edges need the points inserted in + // reverse order + for (var j = loopStart; (cell.maxRank !== cell.minRank) && j !== loopLimit; j += loopDelta) { + // The horizontal position in a vertical layout + var positionX = cell.x[parseInt(j.toString(), 10)] + offsetX; + // This cell.x determines the deviated points of the connectors and jetty positions + //determine the src and targetgeo points . + // Work out the vertical positions in a vertical layout + // in the edge buffer channels above and below this rank + var topChannelY = (this.rankTopY[parseInt(currentRank.toString(), 10)] + this.rankBottomY[currentRank + 1]) / 2.0; + var bottomChannelY = (this.rankTopY[currentRank - 1] + this.rankBottomY[parseInt(currentRank.toString(), 10)]) / 2.0; + if (reversed) { + var tmp = topChannelY; + topChannelY = bottomChannelY; + bottomChannelY = tmp; + } + if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') { + newPoints.push(this.getPointvalue(positionX, topChannelY + layout.marginY)); + newPoints.push(this.getPointvalue(positionX, bottomChannelY + layout.marginY)); + } + else { + newPoints.push(this.getPointvalue(topChannelY, positionX + layout.marginY)); + newPoints.push(this.getPointvalue(bottomChannelY, positionX + layout.marginY)); + } + this.limitX = Math.max(this.limitX, positionX); + currentRank += loopDelta; + } + // Second jetty of edge + if (jettys != null) { + var arrayOffset = reversed ? 2 : 0; + var rankY = reversed ? + (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)] : this.rankBottomY[parseInt(maxRank.toString(), 10)]) : + (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)] : this.rankTopY[parseInt(minRank.toString(), 10)]); + var jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset]; + if (reversed !== layoutReversed) { + jetty = -jetty; + } + var y = rankY - jetty; + var x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset]; + if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') { + newPoints.push(this.getPointvalue(x, y + layout.marginY)); + } + else { + newPoints.push(this.getPointvalue(y, x + layout.marginY)); + } + } + this.setEdgePoints(realEdge, newPoints, model); + // Increase offset so next edge is drawn next to + // this one + if (offsetX === 0.0) { + offsetX = this.parallelEdgeSpacing; + } + else if (offsetX > 0) { + offsetX = -offsetX; + } + else { + offsetX = -offsetX + this.parallelEdgeSpacing; + } + parallelEdgeCount++; + } + cell.temp[0] = 101207; + } + }; + /* tslint:enable */ + // eslint-disable-next-line + HierarchicalLayoutUtil.prototype.getPointvalue = function (x, y) { + return { 'x': Number(x) || 0, 'y': Number(y) || 0 }; + }; + HierarchicalLayoutUtil.prototype.updateEdgeSetXYValue = function (model) { + if (model.layout.enableLayoutRouting) { + var isHorizontal = false; + if (model.layout.orientation === 'LeftToRight' || model.layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + for (var i = 0; i < model.ranks.length; i++) { + var rank = model.ranks[parseInt(i.toString(), 10)]; + for (var k = 0; k < rank.length; k++) { + var cell = rank[parseInt(k.toString(), 10)]; + if ((cell).edges && (cell).edges.length > 0) { + var spacing = model.layout.horizontalSpacing > 0 ? (model.layout.horizontalSpacing / 2) : 15; + var check = true; + if (!(cell.minRank === i - 1 || cell.maxRank === i - 1)) { + check = false; + } + if (check) { + this.setXY(cell, i, undefined, isHorizontal ? true : false, model.ranks, spacing); + } + } + } + } + } + }; + HierarchicalLayoutUtil.prototype.getPreviousLayerConnectedCells = function (layer, cell) { + if (cell.previousLayerConnectedCells == null) { + cell.previousLayerConnectedCells = []; + cell.previousLayerConnectedCells[0] = []; + for (var i = 0; i < cell.connectsAsSource.length; i++) { + var edge = cell.connectsAsSource[parseInt(i.toString(), 10)]; + if (edge.minRank === -1 || edge.minRank === layer - 1) { + // No dummy nodes in edge, add node of other side of edge + cell.previousLayerConnectedCells[0].push(edge.target); + } + else { + // Edge spans at least two layers, add edge + cell.previousLayerConnectedCells[0].push(edge); + } + } + } + return cell.previousLayerConnectedCells[0]; + }; + HierarchicalLayoutUtil.prototype.compare = function (a, b) { + if (a != null && b != null) { + if (b.weightedValue > a.weightedValue) { + return -1; + } + else if (b.weightedValue < a.weightedValue) { + return 1; + } + } + return 0; + }; + /* tslint:disable */ + // eslint-disable-next-line + HierarchicalLayoutUtil.prototype.localEdgeProcessing = function (model, vertices) { + // Iterate through each vertex, look at the edges connected in + // both directions. + for (var rankIndex = 0; rankIndex < model.ranks.length; rankIndex++) { + var rank = model.ranks[parseInt(rankIndex.toString(), 10)]; + for (var cellIndex = 0; cellIndex < rank.length; cellIndex++) { + var cell = rank[parseInt(cellIndex.toString(), 10)]; + if (this.crossReduction.isVertex(cell)) { + var currentCells = this.getPreviousLayerConnectedCells(rankIndex, cell); + var currentRank = rankIndex - 1; + // Two loops, last connected cells, and next + for (var k = 0; k < 2; k++) { + if (currentRank > -1 + && currentRank < model.ranks.length + && currentCells != null + && currentCells.length > 0) { + var sortedCells = []; + for (var j = 0; j < currentCells.length; j++) { + var sorter = this.weightedCellSorter(currentCells[parseInt(j.toString(), 10)], this.getX(currentRank, currentCells[parseInt(j.toString(), 10)])); + sortedCells.push(sorter); + } + sortedCells.sort(this.compare); + cell.width = vertices[cell.id].cell.geometry.width; + cell.height = vertices[cell.id].cell.geometry.height; + var leftLimit = void 0; + if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') { + cell.x[0] = vertices[cell.id].cell.geometry.x + vertices[cell.id].cell.geometry.width / 2; + leftLimit = cell.x[0] - cell.width / 2 + vertices[cell.id].cell.geometry.height / 2; + } + else { + cell.x[0] = vertices[cell.id].cell.geometry.y; + leftLimit = cell.x[0]; + } + var rightLimit = leftLimit + cell.width; + // Connected edge count starts at 1 to allow for buffer + // with edge of vertex + var connectedEdgeCount = 0; + var connectedEdgeGroupCount = 0; + var connectedEdges = []; + // Calculate width requirements for all connected edges + for (var j = 0; j < sortedCells.length; j++) { + var innerCell = sortedCells[parseInt(j.toString(), 10)].cell; + var connections = void 0; + if (this.crossReduction.isVertex(innerCell)) { + // Get the connecting edge + if (k === 0) { + connections = cell.connectsAsSource; + } + else { + connections = cell.connectsAsTarget; + } + for (var connIndex = 0; connIndex < connections.length; connIndex++) { + if (connections[parseInt(connIndex.toString(), 10)].source === innerCell + || connections[parseInt(connIndex.toString(), 10)].target === innerCell) { + connectedEdgeCount += connections[parseInt(connIndex.toString(), 10)].edges + .length; + connectedEdgeGroupCount++; + connectedEdges.push(connections[parseInt(connIndex.toString(), 10)]); + } + } + } + else { + connectedEdgeCount += innerCell.edges.length; + // eslint-disable-next-line + connectedEdgeGroupCount++; + connectedEdges.push(innerCell); + } + } + var requiredWidth = (connectedEdgeCount + 1) + * this.previousEdgeDistance; + // Add a buffer on the edges of the vertex if the edge count allows + if (cell.width > requiredWidth + + (2 * this.previousEdgeDistance)) { + leftLimit += this.previousEdgeDistance; + rightLimit -= this.previousEdgeDistance; + } + var availableWidth = rightLimit - leftLimit; + var edgeSpacing = availableWidth / connectedEdgeCount; + var currentX = leftLimit + edgeSpacing / 2.0; + var currentYOffset = this.minEdgeJetty - this.previousEdgeOffset; + var maxYOffset = 0; + for (var j = 0; j < connectedEdges.length; j++) { + var numActualEdges = connectedEdges[parseInt(j.toString(), 10)].edges + .length; + if (this.jettyPositions === undefined) { + this.jettyPositions = {}; + } + var pos = this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]]; + if (pos == null) { + pos = []; + this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]] = pos; + } + if (j < connectedEdgeCount / 2) { + currentYOffset += this.previousEdgeOffset; + } + else if (j > connectedEdgeCount / 2) { + currentYOffset -= this.previousEdgeOffset; + } + // Ignore the case if equals, this means the second of 2 + // jettys with the same y (even number of edges) + for (var m = 0; m < numActualEdges; m++) { + pos[m * 4 + k * 2] = currentX; + currentX += edgeSpacing; + pos[m * 4 + k * 2 + 1] = currentYOffset; + } + maxYOffset = Math.max(maxYOffset, currentYOffset); + } + } + currentCells = this.getNextLayerConnectedCells(rankIndex, cell); + currentRank = rankIndex + 1; + } + } + } + } + }; + /* tslint:enable */ + HierarchicalLayoutUtil.prototype.updateMultiOutEdgesPoints = function (clnode) { + for (var i = 0; i < clnode.outEdges.length / 2; i++) { + var connector1 = this.nameTable[clnode.outEdges[parseInt(i.toString(), 10)]]; + var connector2 = this.nameTable[clnode.outEdges[clnode.outEdges.length - (i + 1)]]; + var geometry = 'geometry'; + connector2["" + geometry].points[0].y = connector1["" + geometry].points[0].y; + } + }; + HierarchicalLayoutUtil.prototype.getNextLayerConnectedCells = function (layer, cell) { + if (cell.nextLayerConnectedCells == null) { + cell.nextLayerConnectedCells = []; + cell.nextLayerConnectedCells[0] = []; + for (var i = 0; i < cell.connectsAsTarget.length; i++) { + var edge = cell.connectsAsTarget[parseInt(i.toString(), 10)]; + if (edge.maxRank === -1 || edge.maxRank === layer + 1) { + // Either edge is not in any rank or + // no dummy nodes in edge, add node of other side of edge + cell.nextLayerConnectedCells[0].push(edge.source); + } + else { + // Edge spans at least two layers, add edge + cell.nextLayerConnectedCells[0].push(edge); + } + } + } + return cell.nextLayerConnectedCells[0]; + }; + HierarchicalLayoutUtil.prototype.getX = function (layer, cell) { + if (this.crossReduction.isVertex(cell)) { + return cell.x[0]; + } + else if (!this.crossReduction.isVertex(cell)) { + return cell.x[layer - cell.minRank - 1] || cell.temp[layer - cell.minRank - 1]; + } + return 0.0; + }; + HierarchicalLayoutUtil.prototype.getGeometry = function (edge) { + var geometry = 'geometry'; + return edge["" + geometry]; + }; + HierarchicalLayoutUtil.prototype.setEdgePoints = function (edge, points, model) { + if (edge != null) { + var geometryValue = 'geometry'; + var geometry = this.getGeometry(edge); + if (points != null) { + for (var i = 0; i < points.length; i++) { + // eslint-disable-next-line + points[i].x = points[i].x; + // eslint-disable-next-line + points[i].y = points[i].y; + } + } + geometry.points = points; + edge["" + geometryValue] = geometry; + } + }; + HierarchicalLayoutUtil.prototype.assignRankOffset = function (model) { + if (model) { + for (var i = 0; i < model.ranks.length; i++) { + this.rankCoordinatesAssigment(i, model); + } + } + }; + HierarchicalLayoutUtil.prototype.rankCoordinatesAssigment = function (rankValue, model) { + var rank = model.ranks[parseInt(rankValue.toString(), 10)]; + var spacing = model.layout.horizontalSpacing; + var localOffset; + for (var i = 0; i < rank.length; i++) { + if (this[rankValue + '_' + 'RankOffset'] === undefined) { + this[rankValue + '_' + 'RankOffset'] = 0; + } + localOffset = rank[parseInt(i.toString(), 10)].x[0]; + if (this[rankValue + '_' + 'RankOffset'] < localOffset) { + this[rankValue + '_' + 'RankOffset'] = localOffset + rank[parseInt(i.toString(), 10)].width / 2 + spacing; + } + } + }; + HierarchicalLayoutUtil.prototype.getType = function (type) { + if (type === 'internalVertex') { + return 'internalVertex'; + } + else { + return 'internalEdge'; + } + }; + HierarchicalLayoutUtil.prototype.updateRankValuess = function (model) { + this.rankTopY = []; + this.rankBottomY = []; + for (var i = 0; i < model.ranks.length; i++) { + this.rankTopY[parseInt(i.toString(), 10)] = Number.MAX_VALUE; + this.rankBottomY[parseInt(i.toString(), 10)] = -Number.MAX_VALUE; + } + }; + HierarchicalLayoutUtil.prototype.setVertexLocationValue = function (cell, orientation, modelBounds) { + var cellGeomtry = cell.cell.geometry; + var positionX; + var positionY; + if (orientation === 'TopToBottom' || orientation === 'BottomToTop') { + positionX = cellGeomtry.x; + positionY = cellGeomtry.y; + } + else { + positionX = cellGeomtry.y; + positionY = cellGeomtry.x; + } + if (orientation === 'RightToLeft') { + // eslint-disable-next-line + positionX = cellGeomtry.y; + positionY = modelBounds.width - cellGeomtry.x - cellGeomtry.height; + this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY); + this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY + cellGeomtry.height); + } + else { + this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY); + this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY + cellGeomtry.height); + } + }; + HierarchicalLayoutUtil.prototype.matrixModel = function (options) { + // eslint-disable-next-line + options.model = options.model; + options.matrix = options.matrix || []; + options.rowOffset = options.rowOffset || []; + return options; + }; + HierarchicalLayoutUtil.prototype.calculateRectValue = function (dnode) { + var rect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 }; + rect.x = dnode.offsetX - dnode.actualSize.width / 2; + rect.right = dnode.offsetX + dnode.actualSize.width / 2; + rect.y = dnode.offsetY - dnode.actualSize.height / 2; + rect.bottom = dnode.offsetY + dnode.actualSize.height / 2; + return rect; + }; + HierarchicalLayoutUtil.prototype.isNodeOverLap = function (dnode, layoutProp) { + var nodeRect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 }; + for (var i = 0; i < this.vertices.length; i++) { + var rect = { x: 0, y: 0, width: 0, height: 0 }; + //let tempnode1: INode; + var tempnode1 = this.nameTable[this.vertices[parseInt(i.toString(), 10)].value]; + if (dnode.id !== tempnode1.id && tempnode1.offsetX !== 0 && tempnode1.offsetY !== 0) { + nodeRect = this.calculateRectValue(dnode); + rect = this.calculateRectValue(tempnode1); + if (this.isIntersect(rect, nodeRect, layoutProp)) { + if (layoutProp.orientation === 'TopToBottom' || layoutProp.orientation === 'BottomToTop') { + dnode.offsetX += layoutProp.horizontalSpacing; + } + else { + dnode.offsetY += layoutProp.verticalSpacing; + } + this.isNodeOverLap(dnode, layoutProp); + } + } + } + }; + HierarchicalLayoutUtil.prototype.isIntersect = function (rect, nodeRect, layoutProp) { + if (!(Math.floor(rect.right + layoutProp.horizontalSpacing) <= Math.floor(nodeRect.x) || + Math.floor(rect.x - layoutProp.horizontalSpacing) >= Math.floor(nodeRect.right) + || Math.floor(rect.y - layoutProp.verticalSpacing) >= Math.floor(nodeRect.bottom) + || Math.floor(rect.bottom + layoutProp.verticalSpacing) <= Math.floor(nodeRect.y))) { + return true; + } + else { + return false; + } + }; + /* eslint-disable */ + HierarchicalLayoutUtil.prototype.updateMargin = function (layoutProp, layout, modelBounds, viewPort) { + var viewPortBounds = { x: 0, y: 0, width: viewPort.x, height: viewPort.y }; + //let layoutBounds: Rect; + var bounds = { + x: modelBounds.x, y: modelBounds.y, + right: modelBounds.x + modelBounds.width, + bottom: modelBounds.y + modelBounds.height + }; + var layoutBounds = layoutProp.bounds ? layoutProp.bounds : viewPortBounds; + if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') { + switch (layoutProp.horizontalAlignment) { + case 'Auto': + case 'Left': + layout.marginX = (layoutBounds.x - bounds.x) + layoutProp.margin.left; + break; + case 'Right': + layout.marginX = layoutBounds.x + layoutBounds.width - layoutProp.margin.right - bounds.right; + break; + case 'Center': + layout.marginX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2; + break; + } + switch (layoutProp.verticalAlignment) { + case 'Top': + //const top: number; + var top_1 = layoutBounds.y + layoutProp.margin.top; + layout.marginY = layout.orientation === 'TopToBottom' ? top_1 : -top_1; + break; + case 'Bottom': + //const bottom: number; + var bottom = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom; + layout.marginY = layout.orientation === 'TopToBottom' ? bottom - bounds.bottom : -(bottom - bounds.bottom); + break; + case 'Auto': + case 'Center': + //const center: number; + var center = layoutBounds.y + layoutBounds.height / 2; + layout.marginY = layout.orientation === 'TopToBottom' ? + center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.y + bounds.bottom) / 2; + break; + } + } + else { + switch (layoutProp.horizontalAlignment) { + case 'Auto': + case 'Left': + //let left: number; + var left = layoutBounds.x + layoutProp.margin.left; + layout.marginX = layout.orientation === 'LeftToRight' ? left : -left; + break; + case 'Right': + var right = void 0; + right = layoutBounds.x + layoutBounds.width - layoutProp.margin.right; + layout.marginX = layout.orientation === 'LeftToRight' ? right - bounds.right : bounds.right - right; + break; + case 'Center': + var center = void 0; + center = layoutBounds.width / 2 + layoutBounds.x; + layout.marginX = layout.orientation === 'LeftToRight' ? + center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.x + bounds.right) / 2; + break; + } + switch (layoutProp.verticalAlignment) { + case 'Top': + layout.marginY = layoutBounds.y + layoutProp.margin.top - bounds.x; + break; + case 'Auto': + case 'Center': + layout.marginY = layoutBounds.y + layoutBounds.height / 2 - (bounds.y + bounds.bottom) / 2; + break; + case 'Bottom': + layout.marginY = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom - bounds.bottom; + break; + } + } + }; + /* eslint-enable */ + //Handles positioning the nodes + HierarchicalLayoutUtil.prototype.placementStage = function (model, marginX, marginY) { + var placementStage = this.coordinateAssignment(marginX, marginY, parent, model); + placementStage.model = model; + placementStage.widestRankValue = null; + this.placementStageExecute(placementStage); + return { + marginX: placementStage.marginX + model.layout.horizontalSpacing, + marginY: placementStage.marginY + model.layout.verticalSpacing + }; + }; + //Initializes the layout properties for positioning + HierarchicalLayoutUtil.prototype.coordinateAssignment = function (marginX, marginY, parent, model) { + var plalementChange = {}; + if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') { + plalementChange.horizontalSpacing = model.layout.horizontalSpacing; + plalementChange.verticalSpacing = model.layout.verticalSpacing; + } + else { + plalementChange.horizontalSpacing = model.layout.verticalSpacing; + plalementChange.verticalSpacing = model.layout.horizontalSpacing; + } + plalementChange.orientation = 'north'; + //Removed the conditions here. So check here in case of any issue + plalementChange.marginX = plalementChange.marginX = marginX; + plalementChange.marginY = plalementChange.marginY = marginY; + return plalementChange; + }; + //Calculate the largest size of the node either height or width depends upon the layoutorientation + HierarchicalLayoutUtil.prototype.calculateWidestRank = function (plalementChange, graph, model) { + var isHorizontal = false; + if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + var offset = -plalementChange.verticalSpacing; + var lastRankMaxCellSize = 0.0; + plalementChange.rankSizes = []; + plalementChange.rankOffset = []; + for (var rankValue = model.maxRank; rankValue >= 0; rankValue--) { + var maxCellSize = 0.0; + var rank = model.ranks[parseInt(rankValue.toString(), 10)]; + var localOffset = isHorizontal ? plalementChange.marginY : plalementChange.marginX; + for (var i = 0; i < rank.length; i++) { + var node = rank[parseInt(i.toString(), 10)]; + if (this.crossReduction.isVertex(node)) { + var vertex = node; + if (vertex.cell && (vertex.cell.inEdges || vertex.cell.outEdges)) { + var obj = this.nameTable[vertex.cell.name]; + vertex.width = obj.actualSize.width; + vertex.height = obj.actualSize.height; + maxCellSize = Math.max(maxCellSize, (isHorizontal ? vertex.width : vertex.height)); + } + } + else { + if (node) { + var edge = node; + var numEdges = 1; + if (edge.edges != null) { + numEdges = edge.edges.length; + } + node.width = (numEdges - 1) * 10; + } + } + if (isHorizontal) { + if (!node.height) { + node.height = 0; + } + } + // Set the initial x-value as being the best result so far + localOffset += (isHorizontal ? node.height : node.width) / 2.0; + this.setXY(node, rankValue, localOffset, isHorizontal ? true : false); + this.setTempVariable(node, rankValue, localOffset); + localOffset += ((isHorizontal ? node.height : node.width) / 2.0) + plalementChange.horizontalSpacing; + if (localOffset > plalementChange.widestRankValue) { + plalementChange.widestRankValue = localOffset; + plalementChange.widestRank = rankValue; + } + plalementChange.rankSizes[parseInt(rankValue.toString(), 10)] = localOffset; + } + plalementChange.rankOffset[parseInt(rankValue.toString(), 10)] = offset; + var distanceToNextRank = maxCellSize / 2.0 + lastRankMaxCellSize / 2.0 + plalementChange.verticalSpacing; + lastRankMaxCellSize = maxCellSize; + if (plalementChange.orientation === 'north' || plalementChange.orientation === 'west') { + offset += distanceToNextRank; + } + else { + offset -= distanceToNextRank; + } + for (var i = 0; i < rank.length; i++) { + var cell = rank[parseInt(i.toString(), 10)]; + this.setXY(cell, rankValue, offset, isHorizontal ? false : true); + } + } + }; + /** + * Sets the temp position of the node on the layer \ + * + * @returns { void } Sets the temp position of the node on the layer \ + * @param {IVertex} node - provide the nodes value. + * @param {number} layer - provide the layer value. + * @param {number} value - provide the value value. + * @private + */ + HierarchicalLayoutUtil.prototype.setTempVariable = function (node, layer, value) { + if (this.crossReduction.isVertex(node)) { + node.temp[0] = value; + } + else { + node.temp[layer - node.minRank - 1] = value; + } + }; + // eslint-disable-next-line valid-jsdoc + /** + * setXY method \ + * + * @returns { void } setXY method .\ + * @param {IVertex} node - provide the source value. + * @param {number} layer - provide the target value. + * @param {number} value - provide the layoutOrientation value. + * @param {boolean} isY - provide the layoutOrientation value. + * @param {IVertex[][]} ranks - provide the layoutOrientation value. + * @param {number} spacing - provide the layoutOrientation value. + * + * @private + */ + HierarchicalLayoutUtil.prototype.setXY = function (node, layer, value, isY, ranks, spacing) { + if (node && node.cell) { + if (node.cell.inEdges || node.cell.outEdges) { + if (isY) { + node.y[0] = value; + } + else { + node.x[0] = value; + } + } + else { + if (isY) { + node.y[layer - node.minRank - 1] = value; + } + else { + node.x[layer - node.minRank - 1] = value; + } + } + } + else { + this.setEdgeXY(ranks, node, spacing, layer); + } + }; + //Sets geometry position of the layout node on the layout model + HierarchicalLayoutUtil.prototype.rankCoordinates = function (stage, rankValue, graph, model) { + var isHorizontal = false; + if (stage.model.layout.orientation === 'LeftToRight' || stage.model.layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + var rank = model.ranks[parseInt(rankValue.toString(), 10)]; + var maxOffset = 0.0; + var localOffset = (isHorizontal ? stage.marginY : stage.marginX) + (stage.widestRankValue - stage.rankSizes[parseInt(rankValue.toString(), 10)]) / 2; + for (var i = 0; i < rank.length; i++) { + var node = rank[parseInt(i.toString(), 10)]; + if (this.crossReduction.isVertex(node)) { + var obj = this.nameTable[node.cell.name]; + node.width = obj.actualSize.width; + node.height = obj.actualSize.height; + maxOffset = Math.max(maxOffset, node.height); + } + else { + var edge = node; + var numEdges = 1; + if (edge.edges != null) { + numEdges = edge.edges.length; + } + if (isHorizontal) { + node.height = (numEdges - 1) * 10; + } + else { + node.width = (numEdges - 1) * 10; + } + } + var size = (isHorizontal ? node.height : node.width) / 2.0; + localOffset += size; + this.setXY(node, rankValue, localOffset, isHorizontal ? true : false); + this.setTempVariable(node, rankValue, localOffset); + localOffset += (size + stage.horizontalSpacing); + } + }; + //sets the layout in an initial positioning.it will arange all the ranks as much as possible + HierarchicalLayoutUtil.prototype.initialCoords = function (plalementChange, facade, model) { + this.calculateWidestRank(plalementChange, facade, model); + // Reverse sweep direction each time from widest rank + for (var i = plalementChange.widestRank; i >= 0; i--) { + if (i < model.maxRank) { + this.rankCoordinates(plalementChange, i, facade, model); + } + } + for (var i = plalementChange.widestRank + 1; i <= model.maxRank; i++) { + if (i > 0) { + this.rankCoordinates(plalementChange, i, facade, model); + } + } + }; + /** + * Checks whether the given node is an ancestor \ + * + * @returns { boolean } Checks whether the given node is an ancestor \ + * @param {IVertex} node - provide the nodes value. + * @param {IVertex} otherNode - provide the layer value. + * @private + */ + HierarchicalLayoutUtil.prototype.isAncestor = function (node, otherNode) { + // Firstly, the hash code of this node needs to be shorter than the other node + if (otherNode != null && node.hashCode != null && otherNode.hashCode != null + && node.hashCode.length < otherNode.hashCode.length) { + if (node.hashCode === otherNode.hashCode) { + return true; + } + if (node.hashCode == null || node.hashCode == null) { + return false; + } + for (var i = 0; i < node.hashCode.length; i++) { + if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) { + return false; + } + } + return true; + } + return false; + }; + //initializes the sorter object + HierarchicalLayoutUtil.prototype.weightedCellSorter = function (cell, weightedValue) { + var weightedCellSorter = {}; + weightedCellSorter.cell = cell ? cell : null; + weightedCellSorter.weightedValue = weightedValue ? weightedValue : 0; + weightedCellSorter.visited = false; + weightedCellSorter.rankIndex = null; + return weightedCellSorter; + }; + //Performs one node positioning in both directions + HierarchicalLayoutUtil.prototype.minNode = function (plalementChange, model) { + var nodeList = []; + var map = { map: {} }; + var rank = []; + for (var i = 0; i <= model.maxRank; i++) { + rank[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)]; + for (var j = 0; j < rank[parseInt(i.toString(), 10)].length; j++) { + var node = rank[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]; + var nodeWrapper = this.weightedCellSorter(node, i); + nodeWrapper.rankIndex = j; + nodeWrapper.visited = true; + nodeList.push(nodeWrapper); + model.setDictionaryForSorter(map, node, nodeWrapper, true); + } + } + var maxTries = nodeList.length * 10; + var count = 0; + var tolerance = 1; + while (nodeList.length > 0 && count <= maxTries) { + var cellWrapper = nodeList.shift(); + var cell = cellWrapper.cell; + var rankValue = cellWrapper.weightedValue; + var rankIndex = cellWrapper.rankIndex; + var nextLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue); + var previousLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue, true); + var nextConnectedCount = nextLayerConnectedCells.length; + var prevConnectedCount = previousLayerConnectedCells.length; + var medianNextLevel = this.medianXValue(plalementChange, nextLayerConnectedCells, rankValue + 1); + var medianPreviousLevel = this.medianXValue(plalementChange, previousLayerConnectedCells, rankValue - 1); + var numConnectedNeighbours = nextConnectedCount + prevConnectedCount; + var currentPosition = this.crossReduction.getTempVariable(cell, rankValue); + var cellMedian = currentPosition; + if (numConnectedNeighbours > 0) { + cellMedian = (medianNextLevel * nextConnectedCount + medianPreviousLevel * prevConnectedCount) / numConnectedNeighbours; + } + if (nextConnectedCount === 1 && prevConnectedCount === 1) { + cellMedian = (medianPreviousLevel * prevConnectedCount) / prevConnectedCount; + } + else if (nextConnectedCount === 1) { + cellMedian = (medianNextLevel * nextConnectedCount) / nextConnectedCount; + } + var positionChanged = false; + var tempValue = undefined; + if (cellMedian < currentPosition - tolerance) { + if (rankIndex === 0) { + tempValue = cellMedian; + positionChanged = true; + } + else { + var leftCell = rank[parseInt(rankValue.toString(), 10)][rankIndex - 1]; + var leftLimit = this.crossReduction.getTempVariable(leftCell, rankValue); + leftLimit = leftLimit + leftCell.width / 2 + plalementChange.intraCellSpacing + cell.width / 2; + if (leftLimit < cellMedian) { + tempValue = cellMedian; + positionChanged = true; + } + else if (leftLimit < this.crossReduction.getTempVariable(cell, rankValue) - tolerance) { + tempValue = leftLimit; + positionChanged = true; + } + } + } + else if (cellMedian > currentPosition + tolerance) { + var rankSize = rank[parseInt(rankValue.toString(), 10)].length; + if (rankIndex === rankSize - 1) { + tempValue = cellMedian; + positionChanged = true; + } + else { + var rightCell = rank[parseInt(rankValue.toString(), 10)][rankIndex + 1]; + var rightLimit = this.crossReduction.getTempVariable(rightCell, rankValue); + rightLimit = rightLimit - rightCell.width / 2 - plalementChange.intraCellSpacing - cell.width / 2; + if (rightLimit > cellMedian) { + tempValue = cellMedian; + positionChanged = true; + } + else if (rightLimit > this.crossReduction.getTempVariable(cell, rankValue) + tolerance) { + tempValue = rightLimit; + positionChanged = true; + } + } + } + if (positionChanged) { + this.setTempVariable(cell, rankValue, tempValue); + // Add connected nodes to map and list + this.updateNodeList(nodeList, map, nextLayerConnectedCells, model); + this.updateNodeList(nodeList, map, previousLayerConnectedCells, model); + } + if (this.crossReduction.isVertex(cellWrapper.cell)) { + cellWrapper.visited = false; + } + count++; + } + }; + //Updates the ndoes collection + HierarchicalLayoutUtil.prototype.updateNodeList = function (nodeList, map, collection, model) { + for (var i = 0; i < collection.length; i++) { + var connectedCell = collection[parseInt(i.toString(), 10)]; + var connectedCellWrapper = model.getDictionaryForSorter(map, connectedCell); + if (connectedCellWrapper != null) { + if (connectedCellWrapper.visited === false) { + connectedCellWrapper.visited = true; + nodeList.push(connectedCellWrapper); + } + } + } + }; + //Calculates the node position of the connected cell on the specified rank + HierarchicalLayoutUtil.prototype.medianXValue = function (plalementChange, connectedCells, rankValue) { + if (connectedCells.length === 0) { + return 0; + } + var medianValues = []; + for (var i = 0; i < connectedCells.length; i++) { + medianValues[parseInt(i.toString(), 10)] = this.crossReduction.getTempVariable(connectedCells[parseInt(i.toString(), 10)], rankValue); + } + medianValues.sort(function (a, b) { + return a - b; + }); + if (connectedCells.length % 2 === 1) { + return medianValues[Math.floor(connectedCells.length / 2)]; + } + else { + var medianPoint = connectedCells.length / 2; + var leftMedian = medianValues[medianPoint - 1]; + var rightMedian = medianValues[parseInt(medianPoint.toString(), 10)]; + return ((leftMedian + rightMedian) / 2); + } + }; + //Updates the geometry of the vertices + HierarchicalLayoutUtil.prototype.placementStageExecute = function (plalementChange) { + var isHorizontal = false; + if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + plalementChange.jettyPositions = {}; + var model = plalementChange.model; + // eslint-disable-next-line + isHorizontal ? plalementChange.currentYDelta = 0.0 : plalementChange.currentXDelta = 0.0; + this.initialCoords(plalementChange, { model: model }, model); + this.minNode(plalementChange, model); + var bestOffsetDelta = 100000000.0; + if (!plalementChange.maxIterations) { + plalementChange.maxIterations = 8; + } + for (var i = 0; i < plalementChange.maxIterations; i++) { + // if the total offset is less for the current positioning, + //there are less heavily angled edges and so the current positioning is used + if ((isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta) < bestOffsetDelta) { + for (var j = 0; j < model.ranks.length; j++) { + var rank = model.ranks[parseInt(j.toString(), 10)]; + for (var k = 0; k < rank.length; k++) { + var cell = rank[parseInt(k.toString(), 10)]; + this.setXY(cell, j, this.crossReduction.getTempVariable(cell, j), isHorizontal ? true : false); + } + } + bestOffsetDelta = isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta; + } + // eslint-disable-next-line + isHorizontal ? plalementChange.currentYDelta = 0 : plalementChange.currentXDelta = 0; + } + this.setCellLocations(plalementChange, model); + }; + //sets the cell position in the after the layout operation + HierarchicalLayoutUtil.prototype.setCellLocations = function (plalementChange, model) { + var vertices = this.getValues(model.vertexMapper); + for (var i = 0; i < vertices.length; i++) { + this.setVertexLocation(plalementChange, vertices[parseInt(i.toString(), 10)]); + } + }; + //used to specify the geometrical position of the layout model cell + HierarchicalLayoutUtil.prototype.garphModelsetVertexLocation = function (plalementChange, cell, x, y) { + //let model: MultiParentModel = plalementChange.model; + var geometry = cell.geometry; + var result = null; + if (geometry != null) { + result = { x: x, y: y, width: geometry.width, height: geometry.height }; + if (geometry.x !== x || geometry.y !== y) { + cell.geometry = result; + } + } + return result; + }; + //set the position of the specified node + HierarchicalLayoutUtil.prototype.setVertexLocation = function (plalementChange, cell) { + var isHorizontal = false; + if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') { + isHorizontal = true; + } + var realCell = cell.cell; + var positionX = cell.x[0] - cell.width / 2; + var positionY = cell.y[0] - cell.height / 2; + this.garphModelsetVertexLocation(plalementChange, realCell, positionX, positionY); + if (isHorizontal) { + if (!plalementChange.marginY) { + plalementChange.marginY = 0; + } + plalementChange.marginY = Math.max(plalementChange.marginY, positionY + cell.height); + } + else { + if (!plalementChange.marginX) { + plalementChange.marginX = 0; + } + plalementChange.marginX = Math.max(plalementChange.marginX, positionX + cell.width); + } + }; + /** + * get the specific value from the key value pair \ + * + * @returns { {}[] } get the specific value from the key value pair \ + * @param {VertexMapper} mapper - provide the mapper value. + * @private + */ + HierarchicalLayoutUtil.prototype.getValues = function (mapper) { + var list = []; + if (mapper.map) { + for (var _i = 0, _a = Object.keys(mapper.map); _i < _a.length; _i++) { + var key = _a[_i]; + list.push(mapper.map["" + key]); + } + } + return list; + }; + /** + *Checks and reduces the crosses in between line segments \ + * + * @returns { void } Checks and reduces the crosses in between line segments.\ + * @param {End} model - provide the model value. + * + * @private + */ + HierarchicalLayoutUtil.prototype.crossingStage = function (model) { + this.crossReduction.execute(model); + }; + //Initializes the ranks of the vertices + HierarchicalLayoutUtil.prototype.layeringStage = function (model) { + this.initialRank(model); + this.fixRanks(model); + }; + //determine the initial rank for the each vertex on the relevent direction + HierarchicalLayoutUtil.prototype.initialRank = function (model) { + var startNodes = model.startNodes; + var internalNodes = model.getDictionaryValues(model.vertexMapper); + var startNodesCopy = startNodes.slice(); + while (startNodes.length > 0) { + var internalNode = startNodes[0]; + var layerDeterminingEdges = internalNode.connectsAsTarget; + var edgesToBeMarked = internalNode.connectsAsSource; + var allEdgesScanned = true; + var minimumLayer = 100000000; + for (var i = 0; i < layerDeterminingEdges.length; i++) { + var internalEdge = layerDeterminingEdges[parseInt(i.toString(), 10)]; + if (internalEdge.temp[0] === 5270620) { + // This edge has been scanned, get the layer of the node on the other end + var otherNode = internalEdge.source; + minimumLayer = Math.min(minimumLayer, otherNode.temp[0] - 1); + } + else { + allEdgesScanned = false; + break; + } + } + // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list + if (allEdgesScanned) { + internalNode.temp[0] = minimumLayer; + if (!model.maxRank) { + model.maxRank = 100000000; + } + model.maxRank = Math.min(model.maxRank, minimumLayer); + if (edgesToBeMarked != null) { + for (var i = 0; i < edgesToBeMarked.length; i++) { + var internalEdge = edgesToBeMarked[parseInt(i.toString(), 10)]; + internalEdge.temp[0] = 5270620; + // Add node on other end of edge to LinkedList of nodes to be analysed + var otherNode = internalEdge.target; + // Only add node if it hasn't been assigned a layer + if (otherNode.temp[0] === -1) { + startNodes.push(otherNode); + // Mark this other node as neither being unassigned nor assigned + //so it isn't added to this list again, but it's layer isn't used in any calculation. + otherNode.temp[0] = -2; + } + } + } + startNodes.shift(); + } + else { + // Not all the edges have been scanned, get to the back of the class and put the dunces cap on + var removedCell = startNodes.shift(); + startNodes.push(internalNode); + if (removedCell === internalNode && startNodes.length === 1) { + // This is an error condition, we can't get out of this loop. + //It could happen for more than one node but that's a lot harder to detect. Log the error + break; + } + } + } + for (var i = 0; i < internalNodes.length; i++) { + internalNodes[parseInt(i.toString(), 10)].temp[0] -= model.maxRank; + } + for (var i = 0; i < startNodesCopy.length; i++) { + var internalNode = startNodesCopy[parseInt(i.toString(), 10)]; + var currentMaxLayer = 0; + var layerDeterminingEdges = internalNode.connectsAsSource; + for (var j = 0; j < layerDeterminingEdges.length; j++) { + var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)]; + var otherNode = internalEdge.target; + internalNode.temp[0] = Math.max(currentMaxLayer, otherNode.temp[0] + 1); + currentMaxLayer = internalNode.temp[0]; + } + } + model.maxRank = 100000000 - model.maxRank; + }; + //used to set the optimum value of each vertex on the layout + HierarchicalLayoutUtil.prototype.fixRanks = function (model) { + model.fixRanks(); + }; + //used to determine any cyclic stage have been created on the layout model + HierarchicalLayoutUtil.prototype.cycleStage = function (model) { + var seenNodes = {}; + model.startNodes = []; + var unseenNodesArray = model.getDictionaryValues(model.vertexMapper); + var unseenNodes = []; + for (var i = 0; i < unseenNodesArray.length; i++) { + unseenNodesArray[parseInt(i.toString(), 10)].temp[0] = -1; + unseenNodes[unseenNodesArray[parseInt(i.toString(), 10)].id] = unseenNodesArray[parseInt(i.toString(), 10)]; + } + var rootsArray = null; + if (model.roots != null) { + var modelRoots = model.roots; + rootsArray = []; + for (var i = 0; i < modelRoots.length; i++) { + rootsArray[parseInt(i.toString(), 10)] = model.getDictionary(model.vertexMapper, modelRoots[parseInt(i.toString(), 10)]); + if (rootsArray[parseInt(i.toString(), 10)] != null) { + model.startNodes.push(rootsArray[parseInt(i.toString(), 10)]); + } + } + } + model.visit('removeParentConnection', rootsArray, true, null, { seenNodes: seenNodes, unseenNodes: unseenNodes }); + var seenNodesCopy = model.clone(seenNodes, null, true); + model.visit('removeNodeConnection', unseenNodes, true, seenNodesCopy, { seenNodes: seenNodes, unseenNodes: unseenNodes }); + }; + /** + * removes the edge from the given collection \ + * + * @returns { IEdge } removes the edge from the given collection .\ + * @param {IEdge} obj - provide the angle value. + * @param { IEdge[]} array - provide the angle value. + * @private + */ + HierarchicalLayoutUtil.prototype.remove = function (obj, array) { + var index = array.indexOf(obj); + if (index !== -1) { + array.splice(index, 1); + } + return obj; + }; + /** + * Inverts the source and target of an edge \ + * + * @returns { void } Inverts the source and target of an edge .\ + * @param {IEdge} connectingEdge - provide the angle value. + * @param { number} layer - provide the angle value. + * @private + */ + HierarchicalLayoutUtil.prototype.invert = function (connectingEdge, layer) { + var temp = connectingEdge.source; + connectingEdge.source = connectingEdge.target; + connectingEdge.target = temp; + connectingEdge.isReversed = !connectingEdge.isReversed; + }; + /** + * used to get the edges between the given source and target \ + * + * @returns { IConnector[] } used to get the edges between the given source and target .\ + * @param {Vertex} source - provide the angle value. + * @param { Vertex} target - provide the angle value. + * @param { boolean} directed - provide the angle value. + * @private + */ + HierarchicalLayoutUtil.prototype.getEdgesBetween = function (source, target, directed) { + directed = (directed != null) ? directed : false; + var edges = this.getEdges(source); + var result = []; + for (var i = 0; i < edges.length; i++) { + var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true); + var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false); + if ((src === source && trg === target) || (!directed && src === target && trg === source)) { + result.push(edges[parseInt(i.toString(), 10)]); + } + } + return result; + }; + return HierarchicalLayoutUtil; +}()); +/** + * Handles position the objects in a hierarchical tree structure + */ +var MultiParentModel = /** @__PURE__ @class */ (function () { + function MultiParentModel(layout, vertices, roots, dlayout) { + this.multiObjectIdentityCounter = 0; + //used to count the no of times the parent have been used + this.dfsCount = 0; + this.hierarchicalUtil = new HierarchicalLayoutUtil(); + this.roots = roots; + this.vertexMapper = { map: {} }; + var internalVertices = []; + this.layout = dlayout; + this.maxRank = 100000000; + this.edgeMapper = { map: {} }; + this.hierarchicalLayout = layout; + this.createInternalCells(layout, vertices, internalVertices, dlayout); + for (var i = 0; i < vertices.length; i++) { + var edges = internalVertices[parseInt(i.toString(), 10)].connectsAsSource; + for (var j = 0; j < edges.length; j++) { + var internalEdge = edges[parseInt(j.toString(), 10)]; + var realEdges = internalEdge.edges; + if (realEdges != null && realEdges.length > 0) { + var realEdge = realEdges[0]; + var targetCell = layout.getVisibleTerminal(realEdge, false); + var internalTargetCell = this.getDictionary(this.vertexMapper, targetCell); + if (internalVertices[parseInt(i.toString(), 10)] === internalTargetCell) { + targetCell = layout.getVisibleTerminal(realEdge, true); + internalTargetCell = this.getDictionary(this.vertexMapper, targetCell); + } + if (internalTargetCell != null && internalVertices[parseInt(i.toString(), 10)] !== internalTargetCell) { + internalEdge.target = internalTargetCell; + if (internalTargetCell.connectsAsTarget.length === 0) { + internalTargetCell.connectsAsTarget = []; + } + if (internalTargetCell.connectsAsTarget.indexOf(internalEdge) < 0) { + internalTargetCell.connectsAsTarget.push(internalEdge); + } + } + } + } + internalVertices[parseInt(i.toString(), 10)].temp[0] = 1; + } + } + /* tslint:disable */ + MultiParentModel.prototype.resetEdge = function (edge) { + var geometry = { x: 0, y: 0, width: 0, height: 0, relative: true }; + var geo = geometry; + edge['geometry'] = geo; + return edge; + }; + // eslint-disable-next-line max-len + MultiParentModel.prototype.createInternalCells = function (layout, vertices, internalVertices, dlayout) { + for (var i = 0; i < vertices.length; i++) { + internalVertices[parseInt(i.toString(), 10)] = { + x: [], y: [], temp: [], cell: vertices[parseInt(i.toString(), 10)], + id: vertices[parseInt(i.toString(), 10)].name, connectsAsTarget: [], connectsAsSource: [], type: 'internalVertex' + }; + this.setDictionary(this.vertexMapper, vertices[parseInt(i.toString(), 10)], internalVertices[parseInt(i.toString(), 10)]); + var conns = layout.getEdges(vertices[parseInt(i.toString(), 10)]); + internalVertices[parseInt(i.toString(), 10)].connectsAsSource = []; + for (var j = 0; j < conns.length; j++) { + var cell = layout.getVisibleTerminal(conns[parseInt(j.toString(), 10)], false); + if (cell !== vertices[parseInt(i.toString(), 10)]) { + var undirectedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, false); + var directedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, true); + if (undirectedEdges != null && undirectedEdges.length > 0 && directedEdges.length * 2 >= undirectedEdges.length) { + var internalEdge = { x: [], y: [], temp: [], edges: undirectedEdges, ids: [] }; + if (dlayout.enableLayoutRouting) { + for (var k = 0; k < undirectedEdges.length; k++) { + var edge = undirectedEdges[parseInt(k.toString(), 10)]; + this.setDictionary(this.edgeMapper, undefined, internalEdge, edge.id); + // Resets all point on the edge and disables the edge style + // without deleting it from the cell style + this.resetEdge(edge); + } + } + internalEdge.source = internalVertices[parseInt(i.toString(), 10)]; + for (var m = 0; m < undirectedEdges.length; m++) { + internalEdge.ids.push(undirectedEdges[parseInt(m.toString(), 10)].id); + } + internalEdge.source = internalVertices[parseInt(i.toString(), 10)]; + if (!internalVertices[parseInt(i.toString(), 10)].connectsAsSource) { + internalVertices[parseInt(i.toString(), 10)].connectsAsSource = []; + } + if (internalVertices[parseInt(i.toString(), 10)].connectsAsSource.indexOf(internalEdge) < 0) { + internalVertices[parseInt(i.toString(), 10)].connectsAsSource.push(internalEdge); + } + } + } + } + internalVertices[parseInt(i.toString(), 10)].temp[0] = 0; + } + }; + /* tslint:enable */ + /** + * used to set the optimum value of each vertex on the layout \ + * + * @returns { void } used to set the optimum value of each vertex on the layout .\ + * @private + */ + MultiParentModel.prototype.fixRanks = function () { + var rankList = []; + this.ranks = []; + for (var i = 0; i < this.maxRank + 1; i++) { + rankList[parseInt(i.toString(), 10)] = []; + this.ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)]; + } + var rootsArray = null; + if (this.roots != null) { + var oldRootsArray = this.roots; + rootsArray = []; + for (var i = 0; i < oldRootsArray.length; i++) { + var cell = oldRootsArray[parseInt(i.toString(), 10)]; + var internalNode = this.getDictionary(this.vertexMapper, cell); + rootsArray[parseInt(i.toString(), 10)] = internalNode; + } + } + this.visit('updateMinMaxRank', rootsArray, false, null, { seenNodes: null, unseenNodes: null, rankList: rankList }); + }; + //Updates the min/max rank of the layer + MultiParentModel.prototype.updateMinMaxRank = function (layer, seen, data) { + //let seenNodes: {} = data.seenNodes; + //let unseenNodes: {} = data.unseenNodes; + var parent = data.parent; + var node = data.root; + var edge = data.edge; + var rankList = data.rankList; + if (!node.maxRank && node.maxRank !== 0) { + node.maxRank = -1; + } + if (!node.minRank && node.minRank !== 0) { + node.minRank = -1; + } + if (seen === 0 && node.maxRank < 0 && node.minRank < 0) { + rankList[node.temp[0]].push(node); + node.maxRank = node.temp[0]; + node.minRank = node.temp[0]; + node.temp[0] = rankList[node.maxRank].length - 1; + } + if (parent != null && edge != null) { + var parentToCellRankDifference = parent.maxRank - node.maxRank; + if (parentToCellRankDifference > 1) { + edge.maxRank = parent.maxRank; + edge.minRank = node.maxRank; + edge.temp = []; + edge.x = []; + edge.y = []; + for (var i = edge.minRank + 1; i < edge.maxRank; i++) { + rankList[parseInt(i.toString(), 10)].push(edge); + this.hierarchicalUtil.setTempVariable(edge, i, rankList[parseInt(i.toString(), 10)].length - 1); + } + } + } + }; + //used to store the value of th given key on the object + MultiParentModel.prototype.setDictionary = function (dic, key, value, edgeId) { + if (!edgeId) { + var id = key.name; + var previous = dic.map["" + id]; + dic.map["" + id] = value; + return previous; + } + else { + var previous = dic.map["" + edgeId]; + dic.map["" + edgeId] = value; + return previous; + } + }; + /** + * used to store the value of th given key on the objectt \ + * + * @returns { IVertex } used to store the value of th given key on the object .\ + * @param {VertexMapper} dic - provide the angle value. + * @param {IVertex} key - provide the angle value. + * @param {WeightedCellSorter} value - provide the angle value. + * @param {boolean} flag - provide the angle value. + * @private + */ + MultiParentModel.prototype.setDictionaryForSorter = function (dic, key, value, flag) { + var id = key.id; + if (!id) { + //id = this._getDictionaryForSorter(dic, key); + } + var previous = dic.map["" + id]; + dic.map["" + id] = value; + return previous; + }; + /** + * used to get the value of the given key \ + * + * @returns { IVertex } used to get the value of the given key .\ + * @param {VertexMapper} dic - provide the angle value. + * @param {IVertex} key - provide the angle value. + * @private + */ + MultiParentModel.prototype.getDictionary = function (dic, key) { + if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) { + this.multiObjectIdentityCounter = 0; + } + var id = key.name; + if (!id) { + if (!key.layoutObjectId) { ///#### + key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++; + return key.layoutObjectId; + } + else { + return dic.map[key.layoutObjectId]; + } + } + return dic.map["" + id]; + }; + /** + * used to get the value of the given key \ + * + * @returns { IVertex } used to get the value of the given key .\ + * @param {VertexMapper} dic - provide the angle value. + * @param {IVertex} key - provide the angle value. + * @private + */ + MultiParentModel.prototype.getDictionaryForSorter = function (dic, key) { + if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) { + this.multiObjectIdentityCounter = 0; + } + var id = key.id; + if (!id) { + if (!key.layoutObjectId) { ///#### + key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++; + return key.layoutObjectId; + } + else { + return dic.map[key.layoutObjectId]; + } + } + return dic.map["" + id]; + }; + /** + * used to get all the values of the dictionary object \ + * + * @returns { IVertex[] } used to get all the values of the dictionary object .\ + * @param {VertexMapper} dic - provide the angle value. + * @private + */ + MultiParentModel.prototype.getDictionaryValues = function (dic) { + var result = []; + for (var _i = 0, _a = Object.keys(dic.map); _i < _a.length; _i++) { + var key = _a[_i]; + result.push(dic.map["" + key]); + } + return result; + }; + /** + * used to visit all the entries on the given dictionary with given function \ + * + * @returns { void } used to visit all the entries on the given dictionary with given function .\ + * @param {string} visitor - provide the visitor value. + * @param {IVertex[]} dfsRoots - provide the dfsRoots value. + * @param {boolean} trackAncestors - provide the trackAncestors value. + * @param {{}} seenNodes - provide the seenNodes value. + * @param {TraverseData} data - provide the data value. + * @private + */ + MultiParentModel.prototype.visit = function (visitor, dfsRoots, trackAncestors, seenNodes, data) { + //let seenNodes1: {} = data.seenNodes; + //let unseenNodes1: {} = data.unseenNodes; + //let rankList: IVertex[][] = data.rankList; + // Run depth first search through on all roots + if (dfsRoots != null) { + for (var i = 0; i < dfsRoots.length; i++) { + var internalNode = dfsRoots[parseInt(i.toString(), 10)]; + if (internalNode != null) { + if (seenNodes == null) { + seenNodes = new Object(); + } + data.parent = null; + data.root = internalNode; + data.edge = null; + if (trackAncestors) { + // Set up hash code for root + internalNode.hashCode = []; + internalNode.hashCode[0] = this.dfsCount; + internalNode.hashCode[1] = i; + this.extendedDfs(visitor, seenNodes, i, 0, data); + } + else { + this.depthFirstSearch(visitor, seenNodes, 0, data); + } + } + } + this.dfsCount++; + } + }; + //used to perform the depth fisrt search on the layout model + MultiParentModel.prototype.depthFirstSearch = function (visitor, seen, layer, data) { + //let seenNodes1: {} = data.seenNodes; + //let unseenNodes1: {} = data.unseenNodes; + //let rankList: IVertex[][] = data.rankList; + //let parent: IVertex = data.parent; + var root = data.root; + //let edge: IEdge = data.edge; + if (root != null) { + var rootId = root.id; + if (seen["" + rootId] == null) { + seen["" + rootId] = root; + this.updateConnectionRank(visitor, layer, 0, data); + // Copy the connects as source list so that visitors can change the original for edge direction inversions + var outgoingEdges = root.connectsAsSource.slice(); + for (var i = 0; i < outgoingEdges.length; i++) { + var internalEdge = outgoingEdges[parseInt(i.toString(), 10)]; + var targetNode = internalEdge.target; + // Root check is O(|roots|) + data.parent = root; + data.root = targetNode; + data.edge = internalEdge; + this.depthFirstSearch(visitor, seen, layer + 1, data); + } + } + else { + this.updateConnectionRank(visitor, layer, 1, data); + } + } + }; + //Updates the rank of the connection + MultiParentModel.prototype.updateConnectionRank = function (visitor, layer, seen, traversedList) { + var parent = traversedList.parent; + var root = traversedList.root; + var edge = traversedList.edge; + if (visitor === 'removeParentConnection' || visitor === 'removeNodeConnection') { + var remove = visitor === 'removeNodeConnection' ? true : false; + this.removeConnectionEdge(parent, root, edge, layer, traversedList, remove); + } + if (visitor === 'updateMinMaxRank') { + this.updateMinMaxRank(layer, seen, traversedList); + } + }; + //Removes the edge from the collection + MultiParentModel.prototype.removeConnectionEdge = function (parent, node, edge, layer, data, remove) { + var seenNodes = data.seenNodes; + var unseenNodes = data.unseenNodes; + //let rankList: IVertex[][] = data.rankList; + if (this.hierarchicalUtil.isAncestor(node, parent)) { + this.hierarchicalUtil.invert(edge, 0); + this.hierarchicalUtil.remove(edge, parent.connectsAsSource); + if (remove) { + node.connectsAsSource.push(edge); + parent.connectsAsTarget.push(edge); + this.hierarchicalUtil.remove(edge, node.connectsAsTarget); + } + else { + parent.connectsAsTarget.push(edge); + this.hierarchicalUtil.remove(edge, node.connectsAsTarget); + node.connectsAsSource.push(edge); + } + } + seenNodes[node.id] = node; + delete unseenNodes[node.id]; + }; + //the dfs extends the default version by keeping track of cells ancestors, but it should be only used when necessary + MultiParentModel.prototype.extendedDfs = function (visitor, seen, cHash, layer, data) { + //let seenNodes: {} = data.seenNodes; + //let unseenNodes: {} = data.unseenNodes; + //let rankList: IVertex[][] = data.rankList; + var parent = data.parent; + var root = data.root; + var edge = data.edge; + if (root != null) { + if (parent != null) { + if (root.hashCode == null || + root.hashCode[0] !== parent.hashCode[0]) { + var hashCodeLength = parent.hashCode.length + 1; + root.hashCode = parent.hashCode.slice(); + root.hashCode[hashCodeLength - 1] = cHash; + } + } + var rootId = root.id; + if (seen["" + rootId] == null) { + seen["" + rootId] = root; + this.updateConnectionRank(visitor, layer, 0, data); + var outgoingEdges = root.connectsAsSource.slice(); + for (var i = 0; i < outgoingEdges.length; i++) { + var internalEdge = outgoingEdges[parseInt(i.toString(), 10)]; + var targetNode = internalEdge.target; + data.parent = root; + data.root = targetNode; + data.edge = internalEdge; + this.extendedDfs(visitor, seen, i, layer + 1, data); + } + } + else { + this.updateConnectionRank(visitor, layer, 1, data); + } + } + }; + /** + * used to clone the specified object ignoring all fieldnames in the given array of transient fields \ + * + * @returns { void } used to clone the specified object ignoring all fieldnames in the given array of transient fields .\ + * @param {Object} obj - provide the source value. + * @param {string[]} transients - provide the target value. + * @param {boolean} shallow - provide the shallow value. + * + * @private + */ + MultiParentModel.prototype.clone = function (obj, transients, shallow) { + shallow = (shallow != null) ? shallow : false; + if (obj != null && typeof (obj.constructor) === 'function') { + var clonedObj = obj.constructor(); + for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { + var i = _a[_i]; + if (i !== 'layoutObjectId' && (transients == null || transients.indexOf(i) < 0)) { + if (!shallow && typeof (obj["" + i]) === 'object') { + //not used + // _clone[i] = $.extend(true, {}, obj[i]); + } + else { + clonedObj["" + i] = obj["" + i]; + } + } + } + return clonedObj; + } + return null; + }; + return MultiParentModel; +}()); +/** + * Defines how to reduce the crosses in between the line segments + */ +var CrossReduction = /** @__PURE__ @class */ (function () { + function CrossReduction() { + } + /** + * used to calculate the number of edges crossing the layout model \ + * + * @returns { number } used to calculate the number of edges crossing the layout model\ + * @param {MultiParentModel} model - provide the model value. + * + * @private + */ + CrossReduction.prototype.calculateCrossings = function (model) { + var numRanks = model.ranks.length; + var totalCrossings = 0; + for (var i = 1; i < numRanks; i++) { + totalCrossings += this.calculateRankCrossing(i, model); + } + return totalCrossings; + }; + /** + * used to get the temp value specified for the node or connector. \ + * + * @returns { boolean } used to get the temp value specified for the node or connector.\ + * @param {IVertex} node - provide the node value. + * @param {IVertex} layer - provide the layer value. + * + * @private + */ + CrossReduction.prototype.getTempVariable = function (node, layer) { + if (node) { + if (this.isVertex(node)) { + return node.temp[0]; + } + else { + return node.temp[layer - node.minRank - 1]; + } + } + return 0; + }; + //used to specify the number of conenctors crossing between the specified rank and its below rank + CrossReduction.prototype.calculateRankCrossing = function (i, model) { + var totalCrossings = 0; + var rank = model.ranks[parseInt(i.toString(), 10)]; + var previousRank = model.ranks[i - 1]; + var tmpIndices = []; + // Iterate over the top rank and fill in the connection information + for (var j = 0; j < rank.length; j++) { + var node = rank[parseInt(j.toString(), 10)]; + var rankPosition = this.getTempVariable(node, i); + var connectedCells = this.getConnectedCellsOnLayer(node, i, true); + ///#### + var nodeIndices = []; + for (var k = 0; k < connectedCells.length; k++) { + var connectedNode = connectedCells[parseInt(k.toString(), 10)]; + var otherCellRankPosition = this.getTempVariable(connectedNode, i - 1); + nodeIndices.push(otherCellRankPosition); + } + nodeIndices.sort(function (x, y) { return x - y; }); + tmpIndices[parseInt(rankPosition.toString(), 10)] = nodeIndices; + } + var indices = []; + for (var j = 0; j < tmpIndices.length; j++) { + indices = indices.concat(tmpIndices[parseInt(j.toString(), 10)]); + } + var firstIndex = 1; + while (firstIndex < previousRank.length) { + firstIndex <<= 1; + } + var treeSize = 2 * firstIndex - 1; + firstIndex -= 1; + var tree = []; + for (var j = 0; j < treeSize; ++j) { + tree[parseInt(j.toString(), 10)] = 0; + } + for (var j = 0; j < indices.length; j++) { + var index = indices[parseInt(j.toString(), 10)]; + var treeIndex = index + firstIndex; + ++tree[parseInt(treeIndex.toString(), 10)]; + while (treeIndex > 0) { + if (treeIndex % 2) { + totalCrossings += tree[treeIndex + 1]; + } + treeIndex = (treeIndex - 1) >> 1; + ++tree[parseInt(treeIndex.toString(), 10)]; + } + } + return totalCrossings; + }; + /** + * Calculates and reduces the crosses between line segments + * + * @returns { void }Calculates and reduces the crosses between line segments.\ + * @param {MultiParentModel} model - provide the target value. + * @private + */ + CrossReduction.prototype.execute = function (model) { + // Stores initial ordering + this.nestedBestRanks = []; + for (var i = 0; i < model.ranks.length; i++) { + this.nestedBestRanks[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)].slice(); + } + var iterationsWithoutImprovement = 0; + var currentBestCrossings = this.calculateCrossings(model); + for (var i = 0; i < 24 && iterationsWithoutImprovement < 2; i++) { + this.weightedMedian(i, model); + var candidateCrossings = this.calculateCrossings(model); + if (candidateCrossings < currentBestCrossings) { + currentBestCrossings = candidateCrossings; + iterationsWithoutImprovement = 0; + for (var j = 0; j < this.nestedBestRanks.length; j++) { + var rank = model.ranks[parseInt(j.toString(), 10)]; + for (var k = 0; k < rank.length; k++) { + var cell = rank[parseInt(k.toString(), 10)]; + var obj = this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]]; + var check = true; + if (cell.edges && obj && !obj.edges) { + check = false; + } + if (obj && check) { + this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]] = cell; + } + } + } + } + else { + // Increase count of iterations + iterationsWithoutImprovement++; + // Restore the best values to the cells + for (var j = 0; j < this.nestedBestRanks.length; j++) { + var rank = model.ranks[parseInt(j.toString(), 10)]; + for (var k = 0; k < rank.length; k++) { + var cell = rank[parseInt(k.toString(), 10)]; + this.setTempVariable(cell, j, k); + } + } + } + if (currentBestCrossings === 0) { + break; + } + } + // Store the best rankings but in the model + var ranks = []; + var rankList = []; + for (var i = 0; i < model.maxRank + 1; i++) { + rankList[parseInt(i.toString(), 10)] = []; + ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)]; + } + for (var i = 0; i < this.nestedBestRanks.length; i++) { + for (var j = 0; j < this.nestedBestRanks[parseInt(i.toString(), 10)].length; j++) { + rankList[parseInt(i.toString(), 10)].push(this.nestedBestRanks[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]); + } + } + model.ranks = ranks; + }; + /** + * check whether the object is vertext or edge on the layout model. \ + * + * @returns { boolean } check whether the object is vertext or edge on the layout model..\ + * @param {IVertex} node - provide the iteration value. + * + * @private + */ + CrossReduction.prototype.isVertex = function (node) { + if (node && node.cell && (node.cell.inEdges || node.cell.outEdges)) { + return true; + } + return false; + }; + /** + * used to move up or move down the node position on the adjacent ranks \ + * + * @returns { void } used to move up or move down the node position on the adjacent ranks.\ + * @param {number} iteration - provide the iteration value. + * @param {MultiParentModel} model - provide the model value. + * + * @private + */ + CrossReduction.prototype.weightedMedian = function (iteration, model) { + // Reverse sweep direction each time through this method + var downwardSweep = (iteration % 2 === 0); + if (downwardSweep) { + for (var j = model.maxRank - 1; j >= 0; j--) { + this.medianRank(j, downwardSweep); + } + } + else { + for (var j = 1; j < model.maxRank; j++) { + this.medianRank(j, downwardSweep); + } + } + }; + /** + * used to get the node next(up) connected to the specified node or connector \ + * + * @returns { void } calculates the rank elements on the specified rank.\ + * @param {IVertex} cell - provide the cell value. + * @param {number} layer - provide the layer value. + * @param {boolean} isPrevious - provide the isPrevious value. + * + * @private + */ + CrossReduction.prototype.getConnectedCellsOnLayer = function (cell, layer, isPrevious) { + if (isPrevious === void 0) { isPrevious = false; } + var connectedlayer = 'nextLayerConnectedCells'; + var connectedAs = 'connectsAsTarget'; + if (isPrevious) { + connectedlayer = 'previousLayerConnectedCells'; + connectedAs = 'connectsAsSource'; + } + if (cell) { + if (this.isVertex(cell)) { + if (cell["" + connectedlayer] == null) { + cell["" + connectedlayer] = []; + cell["" + connectedlayer][0] = []; + for (var i = 0; i < cell["" + connectedAs].length; i++) { + var edge = cell["" + connectedAs][parseInt(i.toString(), 10)]; + if (edge.maxRank === undefined) { + edge.maxRank = -1; + } + if (edge.maxRank === -1 || (isPrevious ? (edge.minRank === layer - 1) : (edge.maxRank === layer + 1))) { + // Either edge is not in any rank or no dummy nodes in edge, add node of other side of edge + cell["" + connectedlayer][0].push(isPrevious ? edge.target : edge.source); + } + else { + // Edge spans at least two layers, add edge + cell["" + connectedlayer][0].push(edge); + } + } + } + return cell["" + connectedlayer][0]; + } + else { + if (cell["" + connectedlayer] == null) { + cell["" + connectedlayer] = []; + for (var i = 0; i < cell.temp.length; i++) { + cell["" + connectedlayer][parseInt(i.toString(), 10)] = []; + if (i === (isPrevious ? 0 : (cell.temp.length - 1))) { + cell["" + connectedlayer][parseInt(i.toString(), 10)].push(isPrevious ? cell.target : cell.source); + } + else { + cell["" + connectedlayer][parseInt(i.toString(), 10)].push(cell); + } + } + } + return cell["" + connectedlayer][layer - cell.minRank - 1]; + } + } + return null; + }; + /** + * calculates the rank elements on the specified rank \ + * + * @returns { void } calculates the rank elements on the specified rank.\ + * @param {IVertex[]} connectedCells - provide the cell value. + * @param {number} rankValue - provide the layer value. + * + * @private + */ + CrossReduction.prototype.medianValue = function (connectedCells, rankValue) { + var medianValues = []; + var arrayCount = 0; + for (var i = 0; i < connectedCells.length; i++) { + var cell = connectedCells[parseInt(i.toString(), 10)]; + medianValues[arrayCount++] = this.getTempVariable(cell, rankValue); + } + // sorts numerical order sort + medianValues.sort(function (a, b) { return a - b; }); + if (arrayCount % 2 === 1) { + // For odd numbers of adjacent vertices return the median + return medianValues[Math.floor(arrayCount / 2)]; + } + else if (arrayCount === 2) { + return ((medianValues[0] + medianValues[1]) / 2.0); + } + else { + var medianPoint = arrayCount / 2; + var leftMedian = medianValues[medianPoint - 1] - medianValues[0]; + var rightMedian = medianValues[arrayCount - 1] + - medianValues[parseInt(medianPoint.toString(), 10)]; + return (medianValues[medianPoint - 1] * rightMedian + medianValues[parseInt(medianPoint.toString(), 10)] * leftMedian) / (leftMedian + rightMedian); + } + }; + /** + * get the temp value of the specified layer \ + * + * @returns { void } getDirection method .\ + * @param {IVertex} cell - provide the cell value. + * @param {layer} layer - provide the layer value. + * @param {LayoutOrientation} value - provide the value value. + * + * @private + */ + CrossReduction.prototype.setTempVariable = function (cell, layer, value) { + if (cell) { + cell.temp[0] = value; + } + }; + /** + * used to minimize the node position on this rank and one of its adjacent ranks + */ + CrossReduction.prototype.medianRank = function (rankValue, downwardSweep) { + var numCellsForRank = this.nestedBestRanks[parseInt(rankValue.toString(), 10)].length; + var medianValues = []; + var reservedPositions = []; + for (var i = 0; i < numCellsForRank; i++) { + var cell = this.nestedBestRanks[parseInt(rankValue.toString(), 10)][parseInt(i.toString(), 10)]; + var sorterEntry = { medianValue: 0 }; + sorterEntry.cell = cell; + // Flip whether or not equal medians are flipped on up and down sweeps + //TODO re-implement some kind of nudge medianValues[i].nudge = !downwardSweep; + var nextLevelConnectedCells = void 0; + if (downwardSweep) { + nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue); + } + else { + nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue, true); + } + var nextRankValue = void 0; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + downwardSweep ? nextRankValue = rankValue + 1 : nextRankValue = rankValue - 1; + if (nextLevelConnectedCells != null && nextLevelConnectedCells.length !== 0) { + sorterEntry.medianValue = this.medianValue(nextLevelConnectedCells, nextRankValue); + medianValues.push(sorterEntry); + } + else { + // Nodes with no adjacent vertices are flagged in the reserved array to + //indicate they should be left in their current position. + reservedPositions[this.getTempVariable(cell, rankValue)] = true; + } + } + medianValues.sort(this.compare); + // Set the new position of each node within the rank using its temp variable + for (var i = 0; i < numCellsForRank; i++) { + if (reservedPositions[parseInt(i.toString(), 10)] == null && medianValues.length > 0) { + var cell = medianValues.shift().cell; + this.setTempVariable(cell, rankValue, i); + } + } + }; + //compares two values, it sends the values to the compare function, + //and sorts the values according to the returned (negative, zero, positive) value + CrossReduction.prototype.compare = function (a, b) { + if (a != null && b != null) { + if (b.medianValue > a.medianValue) { + return -1; + } + else if (b.medianValue < a.medianValue) { + return 1; + } + } + return 0; + }; + return CrossReduction; +}()); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/hierarchical-tree.js": +/*!****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/hierarchical-tree.js ***! + \****************************************************************************************/ +/*! exports provided: HierarchicalTree */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HierarchicalTree", function() { return HierarchicalTree; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); + + + + + + +/** + * Hierarchical Tree and Organizational Chart + */ +var HierarchicalTree = /** @__PURE__ @class */ (function () { + /** + * Constructor for the organizational chart module. + * + * @private + */ + function HierarchicalTree() { + /** + * Defines the layout animation + * + */ + this.isAnimation = false; + //constructs the layout module + } + /** + * To destroy the organizational chart + * + * @returns {void} + * @private + */ + HierarchicalTree.prototype.destroy = function () { + /** + * Destroy method performed here + */ + }; + /** + * Get module name. + */ + HierarchicalTree.prototype.getModuleName = function () { + /** + * Returns the module name of the layout + */ + return 'OrganizationalChart'; + }; + /** + * @param nodes + * @param nameTable + * @param layoutProp + * @param viewport + * @param uniqueId + * @param action + * @private + */ + HierarchicalTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport, uniqueId, action) { + var layout = { + type: layoutProp.type, + connectionPointOrigin: layoutProp.connectionPointOrigin, + nameTable: nameTable, anchorX: 0, anchorY: 0, + firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {}, + orientation: layoutProp.orientation, + horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing, + verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment, + fixedNode: layoutProp.fixedNode, getLayoutInfo: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(layoutProp.getLayoutInfo), + layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin, + bounds: layoutProp.bounds, objects: [], root: layoutProp.root + }; + this.doLayout(layout, nodes, viewport, uniqueId, action); + return layout; + }; + HierarchicalTree.prototype.doLayout = function (layout, nodes, viewport, uniqueId, action) { + var node; + var i; + var layoutInfo = {}; + var shape; + var rootNodes = []; + if (layout.nameTable[layout.root]) { + layout.firstLevelNodes.push(layout.nameTable[layout.root]); + } + for (i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if (!node.excludeFromLayout) { + layoutInfo = layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node); + layoutInfo.tree.hasSubTree = false; + if (!layout.nameTable[layout.root]) { + if (!node.inEdges || !node.inEdges.length) { + var parentId = 'parentId'; + var processId = 'processId'; + if (!node["" + parentId] && !node["" + processId]) { + rootNodes.push(node); + } + if (node.data && String(node.data["" + uniqueId]) === layout.root) { + layout.firstLevelNodes.push(node); + } + } + } + } + } + if (layout.firstLevelNodes.length === 0) { + layout.firstLevelNodes = rootNodes; + } + //Update relationship(parent and children) + for (i = 0; i < layout.firstLevelNodes.length; i++) { + node = layout.firstLevelNodes[parseInt(i.toString(), 10)]; + //let check: boolean; + this.updateEdges(layout, node, 1, action, nodes); + } + if (layout.firstLevelNodes.length > 0) { + layout.rootNode = layout.firstLevelNodes[0]; + var x = 0; + var y = 0; + var minX = void 0; + var maxY = void 0; + var maxX = void 0; + var minY = void 0; + //let j: number; + var bounds = void 0; + for (i = 0; i < layout.firstLevelNodes.length; i++) { + bounds = this.updateTree(layout, x, y, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0, layout.firstLevelNodes[i - 1]); + var rootInfo = layout.graphNodes[layout.firstLevelNodes[parseInt(i.toString(), 10)].id]; + bounds.y = Math.min(bounds.y, rootInfo.y); + bounds.x = Math.min(bounds.x, rootInfo.x); + if (layout.orientation.indexOf('Left') !== -1) { + y = bounds.right + layout.horizontalSpacing; + } + else { + x = bounds.right + layout.horizontalSpacing; + } + if (i === 0) { + minX = bounds.x; + minY = bounds.y; + maxX = bounds.right; + maxY = bounds.bottom; + } + else { + minX = Math.min(minX, bounds.x); + minY = Math.min(minY, bounds.y); + maxX = Math.max(maxX, bounds.right); + maxY = Math.max(maxY, bounds.bottom); + } + } + this.updateAnchor(layout, { x: minX, y: minY, right: maxX, bottom: maxY }, viewport); + for (i = 0; i < layout.firstLevelNodes.length; i++) { + this.updateNodes(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0); + } + for (i = 0; i < layout.firstLevelNodes.length; i++) { + this.updateConnectors(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 1); + } + } + }; + HierarchicalTree.prototype.getBounds = function (node) { + var x = node.offsetX - node.actualSize.width * node.pivot.x; + var y = node.offsetY - node.actualSize.height * node.pivot.y; + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](x, y, node.actualSize.width, node.actualSize.height); + }; + HierarchicalTree.prototype.updateTree = function (layout, x, y, shape, level, prev, dontupdate) { + //let dimensions: Dimensions; + var info = {}; + var lev; + var obj; + //let hasChild: number; + var dimensions = this.getDimensions(layout, shape, x, y, level); + info = layout.graphNodes[shape.id]; + var firstChild; + //Set maximum level of layout + layout.maxLevel = Math.max(layout.maxLevel, level); + lev = level; + var hasChild = this.hasChild(layout, shape); + if (!hasChild && !info.tree.assistants.length) { + //update leaf nodes + shape.treeBounds = this.updateLeafNode(layout, shape, prev, dimensions, level, dontupdate); + return shape.treeBounds; + } + else { + var treeBounds = void 0; + var shapeBounds = void 0; + var levelBounds = void 0; + var d = void 0; + var asstBounds = void 0; + var space = void 0; + var bottom = void 0; + bottom = dimensions.y + dimensions.height + layout.verticalSpacing; + if (info.tree.assistants.length) { + //Vertically place assistants + obj = this.setDepthSpaceForAssitants(layout, shape, bottom, dimensions.height, level, layout.verticalSpacing); + lev = obj.level; + bottom = obj.bottom; + } + if (!info.tree.assistants.length && info.tree.orientation !== 'Horizontal') { + bottom = dimensions.y + dimensions.height + layout.verticalSpacing / 2; + } + if (info.tree.children.length) { + if (info.tree.orientation === 'Horizontal' && (info.tree.type !== 'Balanced' || info.tree.children.length === 1)) { + treeBounds = this.updateHorizontalTree(layout, shape, prev, dimensions.x, bottom, lev); + } + else if (info.tree.type === 'Balanced') { + treeBounds = this.updateHorizontalTreeWithMultipleRows(layout, shape, prev, dimensions.x, bottom, lev); + } + else { + treeBounds = this.updateVerticalTree(layout, shape, dimensions.x, bottom, lev, dontupdate); + } + } + if (!(info.y && info.y > dimensions.y)) { + info.y = dimensions.y; + } + if (info.mid) { + x = info.mid; + } + if (info.tree.assistants.length) { + //Set breadth space for assistants + space = x !== undefined ? x : dimensions.x; + asstBounds = this.setBreadthSpaceForAssistants(layout, shape, dimensions, space, bottom, level); + if (!hasChild) { + levelBounds = treeBounds = asstBounds; + x = (levelBounds.x + levelBounds.right) / 2 - dimensions.width / 2; + treeBounds = levelBounds; + } + d = asstBounds ? asstBounds.canMoveBy : undefined; + } + info.x = x; + if (!info.translate) { + info.treeWidth = treeBounds.right - treeBounds.x; + } + { + shapeBounds = { x: x, y: dimensions.y, right: x + dimensions.width, bottom: dimensions.y + dimensions.height }; + } + var translateInfo = { + layout: layout, shape: shape, shapeBounds: shapeBounds, treeBounds: treeBounds, + dim: dimensions, level: level + }; + this.translateSubTree(translateInfo, d, prev !== undefined, dontupdate); + if (info.firstChild && typeof info.firstChild !== 'string') { + info.firstChild.x += info.subTreeTranslation; + } + shape.treeBounds = treeBounds; + return treeBounds; + } + }; + HierarchicalTree.prototype.updateLeafNode = function (layout, shape, prev, dimensions, level, dontupdate) { + //let bounds: Bounds; + var info = layout.graphNodes[shape.id]; + info.x = dimensions.x; + if (!(info.y && info.y > dimensions.y)) { + info.y = dimensions.y; + info.maxLevel = Math.max(level, info.maxLevel || 0); + } + // eslint-disable-next-line max-len + var bounds = { x: dimensions.x, y: dimensions.y, right: dimensions.x + dimensions.width, bottom: dimensions.y + dimensions.height }; + info.maxLevel = Math.max(info.maxLevel || 0, level); + var translateInfo = { + layout: layout, shape: shape, shapeBounds: bounds, treeBounds: bounds, + dim: dimensions, level: level + }; + this.translateSubTree(translateInfo, undefined, prev !== undefined, dontupdate); + return { x: info.x, y: info.y, right: info.x + dimensions.width, bottom: info.y + dimensions.height }; + }; + HierarchicalTree.prototype.setUpLayoutInfo = function (layout, item) { + var info = {}; + info.subTreeTranslation = 0; + if (layout.type === 'OrganizationalChart') { + info.tree = { orientation: 'Vertical', type: 'Alternate', offset: 20, enableRouting: true }; + } + else { + info.tree = { orientation: 'Horizontal', type: 'Center', enableRouting: true }; + } + info.tree.children = []; + info.tree.assistants = []; + info.tree.level = 0; + info.translate = true; + return info; + }; + HierarchicalTree.prototype.translateSubTree = function (translateInfo, asstDif, translate, dontupdate) { + var layout = translateInfo.layout; + var shape = translateInfo.shape; + var shapeBounds = translateInfo.shapeBounds; + var treeBounds = translateInfo.treeBounds; + var level = translateInfo.level; + var dim = translateInfo.dim; + var info = layout.graphNodes[shape.id]; + var firstChild = layout.nameTable[info.firstChild ? info.firstChild.child : info.tree.children[0]]; + var firstChildInfo = firstChild ? layout.graphNodes[firstChild.id] : null; + var hasChild = this.hasChild(layout, shape); + var intersect = this.findIntersectingLevels(layout, shapeBounds, level, info.actualLevel); + var treeIntersect = this.findIntersectingLevels(layout, treeBounds, level, info.actualLevel); + var levelBounds = []; + //const diff: number; + if (intersect.length && info.translate) { + info.intersect = intersect; + this.spaceLeftFromPrevSubTree(layout, shape, shapeBounds); + info.canMoveBy = info.diff; + if (asstDif !== undefined) { + info.canMoveBy = Math.min(asstDif, info.canMoveBy); + } + if (firstChild && firstChildInfo.canMoveBy !== undefined) { + if (firstChildInfo.canMoveBy >= info.canMoveBy) { + info.translated = true; + } + info.canMoveBy = Math.min(info.canMoveBy, firstChildInfo.canMoveBy); + } + if (translate) { + info.x -= info.canMoveBy; + info.subTreeTranslation -= info.canMoveBy; + if (hasChild) { + this.shiftSubordinates(layout, treeIntersect, info.canMoveBy); + treeBounds.x = Math.min(treeBounds.x, info.x); + treeBounds.right = Math.max(treeBounds.right, info.x + dim.width); + treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height); + treeBounds.x -= info.canMoveBy; + treeBounds.right -= info.canMoveBy; + } + if (firstChild && firstChildInfo.canMoveBy > info.canMoveBy) { + info.canMoveBy = firstChildInfo.canMoveBy - info.canMoveBy; + } + else if (firstChild && info.canMoveBy !== undefined) { + info.canMoveBy = 0; + } + } + } + else { + if (hasChild) { + treeBounds.x = Math.min(treeBounds.x, shapeBounds.x); + treeBounds.right = Math.max(treeBounds.right, shapeBounds.x + dim.width); + treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height); + } + if (!info.translate) { + info.canMoveBy = 0; + info.subTreeTranslation = 0; + } + } + if (!dontupdate) { + shapeBounds = { x: info.x, y: dim.y, right: info.x + dim.width, bottom: dim.y + dim.height }; + levelBounds.push({ rBounds: shapeBounds }); + this.updateRearBounds(layout, shape, levelBounds, level); + } + }; + HierarchicalTree.prototype.updateRearBounds = function (layout, shape, levelBounds, level, intersect) { + var bnds; + var index; + var isLastLeaf = true; + var i; + var info = {}; + //let firstLevel: Bounds; + //let lastLevel: Bounds; + var bottom; + if (shape) { + info = layout.graphNodes[shape.id]; + intersect = info.intersect; + isLastLeaf = !info.tree.children.length && !info.tree.assistants.length; + } + var firstLevel = levelBounds[0].rBounds; + var lastLevel = levelBounds[levelBounds.length - 1].rBounds; + if (intersect && intersect.length) { + bnds = layout.levels[intersect[0]].rBounds; + bottom = bnds.bottom; + if (bnds.y < firstLevel.y) { + bnds.bottom = firstLevel.y; + levelBounds.splice(0, 0, { rBounds: bnds }); + } + if (bottom > lastLevel.bottom) { + levelBounds.push({ rBounds: { x: bnds.x, right: bnds.right, y: firstLevel.bottom, bottom: bottom } }); + } + else { + bnds = layout.levels[intersect[intersect.length - 1]].rBounds; + if (isLastLeaf && bnds.bottom > lastLevel.bottom) { + bnds.y = lastLevel.bottom; + levelBounds.push({ rBounds: bnds }); + } + } + index = intersect[0]; + for (i = levelBounds.length - 1; i >= 0; i--) { + layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]); + } + index += levelBounds.length; + layout.levels.splice(index, intersect.length); + } + else { + index = this.findLevel(layout, levelBounds[levelBounds.length - 1].rBounds, level); + for (i = levelBounds.length - 1; i >= 0; i--) { + layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]); + } + } + }; + HierarchicalTree.prototype.shiftSubordinates = function (layout, intersect, diff) { + var i; + //Shift the sublevels by the distance diff + if (diff !== 0) { + for (i = 0; i < intersect.length; i++) { + if (layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds) { + layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.x -= diff; + layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.right -= diff; + } + } + } + }; + HierarchicalTree.prototype.setDepthSpaceForAssitants = function (layout, shape, bottom, height, lev, vSpace) { + var info = layout.graphNodes[shape.id]; + var asst = {}; + var asstHeight; + var i; + var asstElement; + var max; + max = bottom; + //Vertically place the assistants as alternate layout(alternatively at both right and left sides of parent) + for (i = 0; i < info.tree.assistants.length; i++) { + asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]]; + if (asst) { + asst.tree.children = asst.tree.assistants = []; + asst.y = bottom; + asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]]; + asstHeight = asstElement.actualSize.height; + if (layout.orientation.indexOf('Left') !== -1) { + asstHeight = asstElement.actualSize.width; + } + max = bottom + asstHeight + vSpace / 2; + layout.maxLevel = lev + 1; + if (i % 2 === 1 && i !== info.tree.assistants.length - 1) { + bottom = max; + lev++; + } + } + } + return { level: layout.maxLevel, bottom: bottom + asstHeight + vSpace }; + }; + HierarchicalTree.prototype.setBreadthSpaceForAssistants = function (layout, shape, dim, space, bottom, level) { + var asst = {}; + var asstWidth; + //let prevBounds: number; + var bounds; + var asstElement; + var i; + var info = layout.graphNodes[shape.id]; + //let max: number = bottom; + var lev = level; + var left; + var diff; + var intersect; + var levelBounds = { x: 0, y: 0, right: 0, bottom: 0 }; + for (i = 0; i < info.tree.assistants.length; i++) { + asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]]; + //Arrange assistants at both left and right sides of parent(like alternate layout) + //Check - By default, distance to be left between parent and child nodes is assumed as 20. + //It can be modified/customized later. + if (asst) { + asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]]; + asstWidth = asstElement.actualSize.width; + if (layout.orientation.indexOf('Left') !== -1) { + asstWidth = asstElement.actualSize.height; + } + if (i % 2 === 0) { + left = space + dim.width / 2 - 20 - asstWidth; + } + else { + left = space + dim.width / 2 + 20; + } + //Check - What will happen if update leaf node is called? Since assistants don't have children + bounds = this.updateTree(layout, left, asst.y, layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]], lev + 1); + if (!this.hasChild(layout, shape)) { + if (i === 0) { + levelBounds = bounds; + } + else { + this.uniteRects(levelBounds, bounds); + } + } + if (i % 2 === 0 && asst.prevBounds) { + if (diff === undefined) { + diff = asst.canMoveBy; + } + else { + diff = Math.min(diff, asst.canMoveBy); + } + } + if (i % 2 === 1 || i === info.tree.assistants.length - 1) { + intersect = this.findIntersectingLevels(layout, bounds, lev + 1); + //Update rightmost positions of known layout levels + this.updateRearBounds(layout, null, [{ rBounds: bounds }], lev + 1, intersect); + lev++; + } + } + } + if (levelBounds) { + levelBounds.canMoveBy = diff; + } + return levelBounds; + }; + HierarchicalTree.prototype.getDimensions = function (layout, shape, x, y, level) { + var width; + width = shape.actualSize.width; + var height; + height = shape.actualSize.height; + if (layout.orientation.indexOf('Left') !== -1) { + if (!level) { + //let temp: number; + var temp = x; + x = y; + y = temp; + } + height = shape.actualSize.width; + width = shape.actualSize.height; + } + return { x: x, y: y, width: width, height: height }; + }; + HierarchicalTree.prototype.hasChild = function (layout, shape) { + //Check whether the node has children + var shape1 = layout.graphNodes[shape.id]; + return shape1 ? shape1.tree.children && shape1.tree.children.length : 0; + }; + HierarchicalTree.prototype.updateHorizontalTree = function (layout, shape, prev, x, y, level) { + //Get dimensions with respect to layout orientations + //let dimensions: Dimensions; + var dimensions = this.getDimensions(layout, shape, x, y, level); + var info = {}; + info = layout.graphNodes[shape.id]; + var side = info.tree.type; + //let lev: number; + var lev = level; + var right = 0; + right = x; + var bottom = y; + var width; + var height; + var child; + var childBounds; + var childWidth; + var childHeight; + //let prevBounds: Bounds; + var bounds; + var actBounds; + var maxLevel; + var translateSibilingsBy; + var canMoveBy; + var oldActBounds; + var i; + var childInfo; + var firstChildInfo; + var prevLayoutLevels = layout.levels.slice(0, layout.levels.length); + if (this.hasChild(layout, shape)) { + //let h: boolean; + var h = layout.orientation.indexOf('Left') !== -1 ? true : false; + for (i = 0; i < info.tree.children.length; i++) { + child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]]; + width = child.actualSize.width; + height = child.actualSize.height; + childWidth = h ? height : width; + childHeight = h ? width : height; + var prevBounds = layout.levels[lev + 1] ? layout.levels[lev + 1].rBounds : null; + //Update sub tree + childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[info.tree.children[i - 1]]); + childInfo = layout.graphNodes[child.id]; + info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0); + actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight }; + if (i === 0) { + //Compare with previous(right most) subtree + bounds = { + x: Math.min(childInfo.x, childBounds.x), y: Math.min(childInfo.y, childBounds.y), + right: childBounds.right, bottom: childBounds.bottom + }; + firstChildInfo = childInfo; + } + if (!oldActBounds) { + oldActBounds = actBounds; + } + else { + oldActBounds.x = actBounds.x; + oldActBounds.y = actBounds.y; + if (actBounds.right > oldActBounds.right) { + oldActBounds.right = actBounds.right; + } + oldActBounds.bottom = actBounds.bottom; + //oldActBounds = actBounds; + } + //Compare with previous subtree if level of the child is greater than the level of previous sub tree + //Check - what will happen if level of second child is greater than current child + if (i === 0) { + info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id }; + } + if (this.hasChild(layout, child)) { + if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) { + if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) { + canMoveBy = info.firstChild.canMoveBy; + childInfo.canMoveBy = canMoveBy; + layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy; + info.firstChild.canMoveBy = canMoveBy; + } + var canMoveValue = canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy; + info.firstChild = { x: childInfo.firstChild.x, canMoveBy: canMoveValue, child: child.id }; + } + else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) { + info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy; + } + } + maxLevel = maxLevel ? Math.max(childInfo.maxLevel, maxLevel) : childInfo.maxLevel; + this.uniteRects(bounds, childBounds); + if (i !== 0 && !this.hasChild(layout, child) && childInfo.subTreeTranslation < 0) { + right = childBounds.right - childInfo.subTreeTranslation + layout.horizontalSpacing; + } + else { + right = childBounds.right + layout.horizontalSpacing; + } + } + if (!isNaN(translateSibilingsBy)) { + firstChildInfo.canMoveBy = translateSibilingsBy; + } + info.mid = (firstChildInfo.x + oldActBounds.right) / 2 - dimensions.width / 2; + //Set parent based on the chart type + if (side === 'Left') { + info.mid = actBounds.right - dimensions.width; + } + else if (side === 'Right') { + info.mid = x; + } + } + return bounds; + }; + /* eslint-disable */ + HierarchicalTree.prototype.updateHorizontalTreeWithMultipleRows = function (layout, shape, prev, x, y, level) { + //declarations + var child; + var childInfo; + var childBounds; + var childWidth; + var childHeight; + var firstChildInfo; + var maxLevel; + var bounds; + var rowBounds; + var width; + var height; + var diff; + var translateSibilingsBy; + var fchild; + var maxRowWidth; + var j; + var i; + var k; + var max; + var leftCenter; + var rightCenter; + //Get dimensions with respect to layout orientations + var dimensions = this.getDimensions(layout, shape, x, y, level); + var info = layout.graphNodes[shape.id]; + var side = info.tree.type; + var lev = level; + var right = x; + var bottom = y; + var prevLayoutLevels = layout.levels.slice(0, layout.levels.length); + var minTranslation = 0; + if (this.hasChild(layout, shape)) { + var h = layout.orientation.indexOf('Left') !== -1 ? true : false; + var align = void 0; + var rows = this.splitChildrenInRows(layout, shape); + var unique = info.tree.children.length === 5 && rows[0].length === 3; + var leftTree = []; + var rightTree = []; + if (!unique) { + this.splitRows(rows, leftTree, rightTree); + } + else { + rightTree = rows; + } + var treeInfo = { leftTree: leftTree, rows: rows, rightTree: rightTree, dimensions: dimensions }; + var rightMost = this.updateLeftTree(layout, treeInfo, shape, x, bottom, lev); + bounds = treeInfo.bounds; + var rightX = void 0; + var center = (rightMost || 0) + (rightMost !== undefined ? (layout.horizontalSpacing / 2) : 0); + if (rightMost !== undefined) { + info.mid = center - dimensions.width / 2; + rightX = rightMost + layout.horizontalSpacing; + } + bottom = y; + var rightBounds = void 0; + rightBounds = []; + for (i = 0; i < rightTree.length; i++) { + if (rows[i].length % 2 === 1 && i === rightTree.length - 1 || unique) { + right = x; + } + else { + right = rightX || x; + } + if (i !== 0) { + bottom = rightBounds[i - 1].bottom + layout.verticalSpacing; + } + for (j = 0; j < rightTree[i].length; j++) { + child = layout.nameTable[rightTree[i][j]]; + width = child.actualSize.width; + height = child.actualSize.height; + childWidth = h ? height : width; + childHeight = h ? width : height; + //Update sub tree + childInfo = layout.graphNodes[child.id]; + childInfo.actualLevel = lev + 1 + i; + if (j === 0 && leftTree[i] && leftTree[i].length) { + childInfo.translate = false; + } + if (unique && i === 1) { + if (j === 0 && leftCenter + childWidth + layout.horizontalSpacing <= rightCenter) { + align = true; + right = leftCenter - childWidth / 2; + } + if (align && j === 1) { + right = rightCenter - childWidth / 2; + } + } + childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[rightTree[i][j - 1]]); + if (unique && j <= 2 && i === 0) { + if (j === 1) { + leftCenter = childBounds.x - layout.horizontalSpacing / 2; + rightCenter = childBounds.x + childWidth + layout.horizontalSpacing / 2; + } + } + if (j === 0) { + rightBounds[i] = { x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom }; + } + else { + this.uniteRects(rightBounds[i], childBounds); + } + if (!bounds) { + bounds = { + x: rightBounds[i].x, y: rightBounds[i].y, right: rightBounds[i].right, + bottom: rightBounds[i].bottom + }; + } + this.uniteRects(bounds, rightBounds[i]); + right = childBounds.right + layout.horizontalSpacing; + if (!info.firstChild || ((i === rightTree.length - 1 && rows[i].length % 2 === 1) || unique) + && j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) { + minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0); + info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy }; + } + treeInfo.leftCenter = leftCenter; + treeInfo.rightCenter = rightCenter; + treeInfo.align = align; + treeInfo.level = lev; + treeInfo.rightBounds = rightBounds; + this.alignRowsToCenter(layout, i, shape, treeInfo, rightX); + } + } + } + return bounds; + }; + /* eslint-enable */ + HierarchicalTree.prototype.updateLeftTree = function (layout, treeInfo, shape, x, bottom, lev) { + var leftTree = treeInfo.leftTree; + var info = layout.graphNodes[shape.id]; + var right; + var leftBounds = []; + var minTranslation; + var rightMost; + var childBounds; + var bounds; + var h = layout.orientation.indexOf('Left') !== -1 ? true : false; + //Arrange left side + for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) { + right = x; + if (leftBounds[i - 1]) { + bottom = leftBounds[i - 1].bottom + layout.verticalSpacing; + } + for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) { + var child = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]]; + var childWidth = h ? child.actualSize.height : child.actualSize.width; + var childHeight = h ? child.actualSize.width : child.actualSize.height; + //Update sub tree + var childInfo = layout.graphNodes[child.id]; + childInfo.actualLevel = lev + 1 + i; + childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[leftTree[parseInt(i.toString(), 10)][j - 1]]); + if (j === 0) { + leftBounds[parseInt(i.toString(), 10)] = { x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom }; + } + else { + this.uniteRects(leftBounds[parseInt(i.toString(), 10)], childBounds); + } + if (i === 0 && j === 0) { + minTranslation = childInfo.canMoveBy; + info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy }; + } + else if (j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) { + minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0); + info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy }; + } + right = childBounds.right + layout.horizontalSpacing; + } + if (i === 0) { + rightMost = leftBounds[parseInt(i.toString(), 10)].right; + } + else { + rightMost = Math.max(rightMost, leftBounds[parseInt(i.toString(), 10)].right); + } + } + //Translate to same positions + for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) { + if (rightMost !== leftBounds[parseInt(i.toString(), 10)].right) { + var diff = rightMost - leftBounds[parseInt(i.toString(), 10)].right; + for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) { + var element = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]]; + var elementInfo = layout.graphNodes[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]]; + elementInfo.x += diff; + } + //leftBounds[i].x += diff; + //leftBounds[i].right += diff; + } + if (i === 0) { + bounds = { x: leftBounds[0].x, y: leftBounds[0].y, right: leftBounds[0].right, bottom: leftBounds[0].bottom }; + } + else { + this.uniteRects(bounds, leftBounds[parseInt(i.toString(), 10)]); + } + } + treeInfo.bounds = bounds; + return rightMost; + }; + HierarchicalTree.prototype.alignRowsToCenter = function (layout, i, shape, treeInfo, rightX) { + var max; + var centered; + var diff; + var info = layout.graphNodes[shape.id]; + var rows = treeInfo.rows; + var rightTree = treeInfo.rightTree; + var leftCenter = treeInfo.leftCenter; + var rightCenter = treeInfo.rightCenter; + var align = treeInfo.align; + var rightBounds = treeInfo.rightBounds; + var dimensions = treeInfo.dimensions; + var lev = treeInfo.level; + var unique = info.tree.children.length === 5 && rows[0].length === 3; + if (unique && i === 1) { + max = (rightBounds[0].right - rightBounds[0].x) >= (rightBounds[1].right - rightBounds[1].x) ? 0 : 1; + } + if (i === rows.length - 1) { + if (rows[parseInt(i.toString(), 10)].length % 2 === 1 || unique && i === 1) { + centered = rightTree[parseInt(i.toString(), 10)][Math.floor(rightTree[parseInt(i.toString(), 10)].length / 2)]; + //let centerObjct: INode; + var centerObjct = layout.nameTable["" + centered]; + //let childDimension: Dimensions; + var centeredX = layout.graphNodes["" + centered].x; + var centeredY = layout.graphNodes["" + centered].y; + var childDimension = this.getDimensions(layout, centerObjct, centeredX, centeredY, lev + 1); + diff = undefined; + if (!align && unique) { + if (max === 1) { + i = 0; + } + diff = (rightBounds[parseInt(max.toString(), 10)].x + rightBounds[parseInt(max.toString(), 10)].right) / 2 - (rightBounds[parseInt(i.toString(), 10)].x + rightBounds[parseInt(i.toString(), 10)].right) / 2; + if (i === 0) { + info.mid += diff; + } + } + else if (!unique && rightX !== undefined) { + diff = rightX - layout.horizontalSpacing / 2 - (centeredX + childDimension.width / 2); + } + if (diff !== undefined) { + this.updateRearBoundsOfTree(layout, rightTree[parseInt(i.toString(), 10)], diff, dimensions); + } + if (unique) { + info.mid = (rightCenter + leftCenter) / 2 + (i === 0 ? diff : 0) - dimensions.width / 2; + } + if (info.mid === undefined && layout.graphNodes["" + centered]) { + info.mid = centeredX; + } + align = false; + i++; + } + } + }; + HierarchicalTree.prototype.updateRearBoundsOfTree = function (layout, rightTree, diff, dimensions) { + for (var j = 0; j < rightTree.length; j++) { + var childInfo = layout.graphNodes[rightTree[parseInt(j.toString(), 10)]]; + //let child: INode = layout.nameTable[rightTree[j]]; + childInfo.x += diff; + childInfo.canMoveBy += diff; + if (j === rightTree.length - 1) { + //removed child dimensions call calculation, since that is not used + var childBnds = { + x: childInfo.x, y: childInfo.y, right: childInfo.x + + dimensions.width, bottom: childInfo.y + dimensions.height + }; + var intersect = this.findIntersectingLevels(layout, childBnds, childInfo.actualLevel); + this.updateRearBounds(layout, null, [{ rBounds: childBnds }], childInfo.actualLevel, intersect); + } + } + }; + HierarchicalTree.prototype.splitRows = function (rows, leftTree, rightTree) { + for (var i = 0; i < rows.length; i++) { + leftTree[parseInt(i.toString(), 10)] = []; + rightTree[parseInt(i.toString(), 10)] = []; + var half = void 0; + half = rows[parseInt(i.toString(), 10)].length; + if (rows[parseInt(i.toString(), 10)].length % 2 !== 1) { + half = Math.ceil(rows[parseInt(i.toString(), 10)].length / 2); + for (var k = 0; k < half; k++) { + leftTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)]); + } + } + for (var j = leftTree[parseInt(i.toString(), 10)].length; j < rows[parseInt(i.toString(), 10)].length; j++) { + rightTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]); + } + } + }; + HierarchicalTree.prototype.updateVerticalTree = function (layout, shape, x, y, level, dontUpdate) { + //declarations + var child; + var childInfo; + var childBounds; + var childWidth; + var childHeight; + var prevBounds; + var bounds; + var actBounds; + var oddBounds; + var evenBounds; + //let dimensions: Dimensions = this.getDimensions(layout, shape, x, y, level); + var info = layout.graphNodes[shape.id]; + var firstChild = layout.nameTable[info.tree.children[0]]; + var h = layout.orientation.indexOf('Left') !== -1 ? true : false; + var factor = info.tree.type === 'Left' ? -1 : 0; + var right = x; + var bottom = y; + var lev = level; + var i; + var intersect; + var type; + var levels = []; + var oddLevels = []; + var canMoveBy; //let diff: number; + for (i = 0; i < info.tree.children.length; i++) { + if (info.tree.type === 'Alternate') { + //arrange at both left and right + type = (i % 2 === 0 && info.tree.children.length > 2) ? 'Left' : 'Right'; + factor = (i % 2 === 0 && info.tree.children.length > 2) ? -1 : 0; + } + right = x + this.findOffset(layout, shape, info, type); + child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]]; + childWidth = h ? child.actualSize.height : child.actualSize.width; + childHeight = h ? child.actualSize.width : child.actualSize.height; + //Update sub tree + childBounds = this.updateTree(layout, right + factor * childWidth, bottom, child, level + 1, undefined, true); + childInfo = layout.graphNodes[child.id]; + actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight }; + if (i === 0) { + this.uniteRects(childBounds, actBounds); + bounds = childBounds; + } + else { + this.uniteRects(bounds, childBounds); + } + //Check and adjust the space left from previous subtree/sibling + if (childInfo.prevBounds && !(info.tree.type === 'Alternate' && i % 2 === 1 && info.tree.children.length > 2)) { + canMoveBy = canMoveBy !== undefined ? Math.min(childInfo.canMoveBy, canMoveBy) : childInfo.canMoveBy; + } + //Max level of the subtree node + info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0); + if (!(info.tree.type === 'Alternate' && info.tree.children.length > 2 && i % 2 === 0)) { + if (info.tree.type === 'Alternate' && info.tree.children.length > 2) { + //alternate - arrange children with even index(0,2,4,6,..) at the next level + bottom = Math.max(childBounds.bottom, prevBounds.bottom) + layout.verticalSpacing / 2; + } + else { + // left/right - arrange next child at the nect level(bottom) + bottom = childBounds.bottom + layout.verticalSpacing / 2; + } + level = info.maxLevel; + levels.push({ rBounds: actBounds }); + if (!evenBounds) { + evenBounds = { + x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, + bottom: childInfo.y + childHeight + }; + } + else { + this.uniteRects(evenBounds, actBounds); + } + if (childInfo.levelBounds) { + levels = levels.concat(childInfo.levelBounds); + } + } + else { + if (i !== 0) { + bottom = prevBounds.bottom + layout.verticalSpacing / 2; + } + oddLevels.push({ rBounds: actBounds }); + if (childInfo.levelBounds) { + oddLevels = oddLevels.concat(childInfo.levelBounds); + } + } + if (i === 0) { + info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id }; + } + if (this.hasChild(layout, child)) { + if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) { + if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) { + var canMoveBy_1 = info.firstChild.canMoveBy; + childInfo.canMoveBy = canMoveBy_1; + layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy_1; + info.firstChild.canMoveBy = canMoveBy_1; + } + info.firstChild = { + x: childInfo.firstChild.x, canMoveBy: canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy, + child: child.id + }; + } + else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) { + info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy; + } + } + prevBounds = actBounds; + } + //To set level bounds(right most position of levels) + if (!dontUpdate) { + if (info.tree.type === 'Alternate' && info.tree.children.length > 2) { + oddBounds = { + x: oddLevels[0].rBounds.x, y: oddLevels[0].rBounds.y, + right: oddLevels[oddLevels.length - 1].rBounds.right, bottom: oddLevels[oddLevels.length - 1].rBounds.bottom + }; + intersect = this.findIntersectingLevels(layout, oddBounds, lev + 1); + this.updateRearBounds(layout, null, oddLevels, lev + 1, intersect); + } + intersect = this.findIntersectingLevels(layout, evenBounds || bounds, lev + 1); + this.updateRearBounds(layout, null, evenBounds ? levels : [{ rBounds: bounds }], lev + 1, intersect); + } + else { + info.levelBounds = levels; + } + if (!isNaN(canMoveBy)) { + layout.graphNodes[firstChild.id].canMoveBy = canMoveBy; + } + info.childBounds = bounds; + info.mid = x; + return bounds; + }; + HierarchicalTree.prototype.splitChildrenInRows = function (layout, shape) { + //let info: LayoutInfo; + var info = layout.graphNodes[shape.id]; + var column; + column = 4; + var rows = []; + var childNodes; + childNodes = info.tree.children.length; + var children = this.extend(info.tree.children); + if (info.tree.rows) { + //let count: number; + var count = info.tree.children.length; + //let columns: number; + var columns = info.tree.rows; + if (columns % 2 === 0) { + column = columns; + } + else { + column = columns - 1; + } + } + else if (info.tree.children.length === 3 || info.tree.children.length === 4) { + column = 2; + } + else if (info.tree.children.length === 5) { + column = 3; + } + while (childNodes > 0) { + rows[rows.length] = children.splice(0, column); + childNodes -= column; + if (childNodes < column) { + if (childNodes % 2 === 0) { + column = childNodes; + } + else if (childNodes !== 1) { + column = childNodes - 1; + } + if (childNodes < column) { + column = childNodes; + } + } + } + return rows; + }; + HierarchicalTree.prototype.extend = function (temp) { + var i; + var dummy = []; + for (i = 0; i < temp.length; i++) { + dummy[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)]; + } + return dummy; + }; + HierarchicalTree.prototype.findOffset = function (layout, shape, info, type) { + var offset = 0; + var space = (layout.orientation.indexOf('Left') !== -1) ? shape.actualSize.height : + shape.actualSize.width; + var treeType = type ? type : info.tree.type; + offset = info.tree.offset || 20; + if (info.tree.type === 'Alternate') { + if (offset >= layout.horizontalSpacing) { + offset = layout.horizontalSpacing / 2; + } + } + switch (treeType) { + case 'Left': + offset = space / 2 - offset; + break; + case 'Right': + offset = offset + space / 2; + break; + } + return offset; + }; + HierarchicalTree.prototype.uniteRects = function (rect1, rect2) { + //Unite two rects + rect1.x = Math.min(rect1.x, rect2.x); + rect1.right = Math.max(rect1.right, rect2.right); + rect1.bottom = Math.max(rect1.bottom, rect2.bottom); + }; + HierarchicalTree.prototype.spaceLeftFromPrevSubTree = function (layout, shape, bounds) { + //let info: LayoutInfo; + var info = layout.graphNodes[shape.id]; + var dif; + var prevBounds; //let intersect: number[]; let k: number; + //let space: number; + var space = layout.horizontalSpacing; + //Find the minimum distance to move towards previous sub tree + for (var k = 0; k < info.intersect.length; k++) { + prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds; + dif = bounds.x - (prevBounds.right + space); + if (info.diff === undefined || dif < info.diff) { + info.diff = dif; + info.prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds; + } + } + }; + HierarchicalTree.prototype.findIntersectingLevels = function (layout, bounds, level, actualLevel) { + //intersecting with exact Level + //let bnds: Bounds; + var bnds = { x: bounds.x, y: bounds.y, right: bounds.right, bottom: bounds.bottom }; + bnds.y -= layout.verticalSpacing / 2; + bnds.bottom += layout.verticalSpacing / 2; + //let intersectingLevels: number[]; + var intersectingLevels = []; + var rBounds; + var l; + l = actualLevel !== undefined ? actualLevel : level; + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + //Performance - We can consider only the intersecting levels + do { + if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y) + || (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) || + bnds.y >= rBounds.y && + bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) { + var index = 0; + intersectingLevels.splice(index, 0, l); + } + else if (rBounds && rBounds.bottom < bnds.y) { + break; + } + l--; + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + } while (l >= 0); + l = (actualLevel !== undefined ? actualLevel : level) + 1; + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + do { + if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y) || + (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) || + bnds.y >= rBounds.y && bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) { + intersectingLevels.push(l); + } + else if (rBounds && rBounds.y > bnds.bottom) { + break; + } + l++; + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + } while (l <= layout.levels.length); + return intersectingLevels; + }; + HierarchicalTree.prototype.findLevel = function (layout, bounds, level) { + //let bnds: Bounds; + var bnds = bounds; + var l; + l = 0; + var rBounds; + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + while (l < layout.levels.length) { + if (rBounds && bnds.bottom < rBounds.y) { + return l; + } + else { + l++; + } + rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null; + } + return l; + }; + HierarchicalTree.prototype.getParentNode = function (layout, node) { + //Return the first parent node + return layout.nameTable[layout.nameTable[node.inEdges[0]].sourceID]; + }; + HierarchicalTree.prototype.updateEdges = function (layout, node, depth, action, nodes) { + //let layoutInfo: LayoutInfo; + var layoutInfo = layout.graphNodes[node.id]; + var j; + if (node.outEdges && node.outEdges.length && (node.isExpanded || (action === _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramAction"].Render))) { + for (j = 0; j < node.outEdges.length; j++) { + //let edge: INode; + var edge = layout.nameTable[layout.nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID]; + if (edge && !edge.excludeFromLayout) { + if (layoutInfo.tree.children.indexOf(edge.id) === -1) { + layoutInfo.tree.children.push(edge.id); + } + if (edge.outEdges && edge.outEdges.length && edge.isExpanded) { + layoutInfo.tree.hasSubTree = true; + } + this.updateEdges(layout, edge, depth + 1, action, nodes); + } + } + } + //set level info + layoutInfo.tree.level = depth; + //By default, orientation is horizontal for nested trees + if (layoutInfo.tree.hasSubTree) { + layoutInfo.tree.orientation = 'Horizontal'; + layoutInfo.tree.type = 'Center'; + } + //Customizing assistants and children collection + //Performance-Instead of reading the method everytime, we can set once and can reuse that + if ((layout.getLayoutInfo || layout.layoutInfo) && layout.type === 'OrganizationalChart') { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + layout.getLayoutInfo ? + layout.getLayoutInfo(node, layoutInfo.tree) : Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["updateLayoutValue"])(layoutInfo.tree, layout.layoutInfo, nodes, node); + if (layoutInfo.tree.type === 'Balanced' && layoutInfo.tree.hasSubTree) { + layoutInfo.tree.type = 'Center'; + layoutInfo.tree.orientation = 'Horizontal'; + } + } + if (layout.level && layoutInfo.tree.type !== 'Alternate' && depth >= layout.level) { + layoutInfo.tree.hasSubTree = false; + } + }; + /* eslint-disable */ + HierarchicalTree.prototype.updateAnchor = function (layout, bounds, viewPort) { + var node; + var fixedNode; + var width = 0; + var height = 0; + var mod = 0; + var yValue = 0; + var viewPortBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](0, 0, viewPort.x, viewPort.y); //let layoutBounds: Rect; + var layoutBounds = layout.bounds ? layout.bounds : viewPortBounds; + var orientation = layout.orientation; + //Anchor based on fixed nodes + if (layout.fixedNode) { + fixedNode = layout.nameTable[layout.fixedNode]; + width = fixedNode.actualSize.width; + height = fixedNode.actualSize.height; + layout.anchorX = fixedNode.offsetX; + layout.anchorY = fixedNode.offsetY; + var pivot = fixedNode.pivot; + layout.anchorX += layout.orientation === 'RightToLeft' ? width * pivot.x : -width * pivot.x; + layout.anchorY += layout.orientation === 'BottomToTop' ? height * pivot.y : -height * pivot.y; + node = fixedNode; + mod = 0; + while (node.inEdges.length) { + node = this.getParentNode(layout, node); + mod += layout.graphNodes[node.id].subTreeTranslation || 0; + } + if (layout.orientation.indexOf('Left') !== -1) { + yValue = layout.graphNodes[fixedNode.id].y; + // eslint-disable-next-line + orientation === 'LeftToRight' ? layout.anchorX -= yValue : layout.anchorX += yValue; + layout.anchorY -= layout.graphNodes[fixedNode.id].x + mod; + } + else { + yValue = layout.graphNodes[fixedNode.id].y; + // eslint-disable-next-line + layout.anchorX -= layout.graphNodes[fixedNode.id].x + mod; + orientation === 'TopToBottom' ? layout.anchorY -= yValue : layout.anchorY += yValue; + } + } + else { + if (orientation === 'TopToBottom' || orientation === 'BottomToTop') { + switch (layout.horizontalAlignment) { + case 'Left': + layout.anchorX = (layoutBounds.x - bounds.x) + layout.margin.left; + break; + case 'Right': + layout.anchorX = layoutBounds.x + layoutBounds.width - layout.margin.right - bounds.right; + break; + case 'Auto': + case 'Center': + layout.anchorX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2; + break; + } + switch (layout.verticalAlignment) { + case 'Auto': + case 'Top': + var top_1; + top_1 = layoutBounds.y + layout.margin.top; + layout.anchorY = orientation === 'TopToBottom' ? top_1 : bounds.bottom + top_1; + break; + case 'Bottom': + var bottom = void 0; + bottom = layoutBounds.y + layoutBounds.height - layout.margin.bottom; + layout.anchorY = orientation === 'TopToBottom' ? bottom - bounds.bottom : bottom; + break; + case 'Center': + var center = void 0; + center = layoutBounds.y + layoutBounds.height / 2; + layout.anchorY = layout.orientation === 'TopToBottom' ? + center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2; + break; + } + } + else { + switch (layout.horizontalAlignment) { + case 'Auto': + case 'Left': + var left = void 0; + left = layoutBounds.x + layout.margin.left; + layout.anchorX = orientation === 'LeftToRight' ? left : bounds.bottom + left; + break; + case 'Right': + var right = void 0; + right = layoutBounds.x + layoutBounds.width - layout.margin.right; + layout.anchorX = orientation === 'LeftToRight' ? right - bounds.bottom : right; + break; + case 'Center': + var center = void 0; + center = layoutBounds.width / 2 + layoutBounds.x; + layout.anchorX = layout.orientation === 'LeftToRight' ? + center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2; + break; + } + switch (layout.verticalAlignment) { + case 'Top': + layout.anchorY = layoutBounds.y + layout.margin.top - bounds.x; + break; + case 'Auto': + case 'Center': + layout.anchorY = layoutBounds.y + layoutBounds.height / 2 - (bounds.right + bounds.x) / 2; + break; + case 'Bottom': + layout.anchorY = layoutBounds.y + layoutBounds.height - layout.margin.bottom - bounds.right; + break; + } + } + } + }; + /* eslint-enable */ + HierarchicalTree.prototype.updateConnectors = function (layout, node, level) { + var i; + //let info: LayoutInfo; + //let nodeWidth: number; let nodeHeight: number; let targetWidth: number; let targetHeight: number; + //let length: number; let offsetLen: number; let points: PointModel[]; + //let segments: ConnSegments; + var target; + var conn; + //Route out edges + var info = layout.graphNodes[node.id]; + var direction; + if (node.outEdges.length) { + for (i = 0; i < node.outEdges.length; i++) { + conn = layout.nameTable[node.outEdges[parseInt(i.toString(), 10)]]; + conn.points = []; + target = layout.nameTable[conn.targetID]; + if (conn.visible) { + conn.visited = true; + if (layout.getConnectorSegments) { + var segments = layout.getConnectorSegments(conn); + } + else { + if (info && info.tree.children.indexOf(conn.targetID) !== -1) { + if (conn.type === 'Bezier' && layout.connectionPointOrigin == "SamePoint") { + conn.segments = []; + (conn.segments).push(new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["BezierSegment"](conn, 'segments', { type: 'Bezier' }, true)); + } + if (layout.type === 'OrganizationalChart' && conn.type === 'Orthogonal') { + conn.segments = []; + this.updateSegments(layout, conn, node, target, i); + } + } + } + if (target && (target.isExpanded || this.hasChild(layout, target))) { + this.updateConnectors(layout, target, level + 1); + } + } + } + } + if (info && info.tree.assistants.length) { + //In-Edge routing of assistant nodes + for (i = 0; i < info.tree.assistants.length; i++) { + target = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]]; + conn = layout.nameTable[target.inEdges[0]]; + this.get3Points(layout, node, target, conn); + if (target.isExpanded || this.hasChild(layout, target)) { + this.updateConnectors(layout, target, level + 1); + } + } + } + }; + HierarchicalTree.prototype.updateSegments = function (layout, conn, node, target, i) { + var info = layout.graphNodes[node.id]; + //Connector routing - Horizontal layout orientation + if (info.tree.assistants.length) { + //Route in-edge of child node, if the parent has assistant + this.updateSegmentsForHorizontalOrientation(layout, node, target, conn); + } + else { + //Route in-edge of child node + if (info.tree.orientation === 'Horizontal' && info.tree.type === 'Balanced') { + this.updateSegmentsForBalancedTree(layout, conn, node, target, i); + } + else { + if (info.tree.orientation === 'Horizontal') { + this.updateSegmentsForHorizontalOrientation(layout, node, target, conn); + } + else { + if (info.tree.offset < 5) { + this.get5Points(layout, node, target, conn); + } + else { + this.get3Points(layout, node, target, conn); + } + } + } + } + }; + HierarchicalTree.prototype.updateSegmentsForBalancedTree = function (layout, connector, node, target, i) { + var info = layout.graphNodes[node.id]; + var center; + var relative; + if (info.tree.children.length === 5 && i > 2) { + relative = info.tree.children[1]; + if (isNaN(layout.graphNodes["" + relative].treeWidth)) { + layout.graphNodes["" + relative].treeWidth = layout.nameTable["" + relative].actualSize.width; + } + var factor = i !== 3 ? 1 : -1; + if (layout.orientation.indexOf('Left') !== -1) { + center = layout.nameTable["" + relative].offsetY - layout.graphNodes["" + relative].treeWidth / 2 - + (layout.verticalSpacing * factor / 2); + } + else { + var center_1 = layout.nameTable["" + relative].offsetX + + layout.graphNodes["" + relative].treeWidth / 2 + (layout.horizontalSpacing * factor) / 2; + } + this.getSegmentsForMultipleRows(layout, node, target, connector); + } + else { + if (info.tree.children.length > 5) { + if (i < 4 || i < info.tree.rows) { + this.getSegmentsForMultipleRows(layout, node, target, connector); + } + else { + this.updateSegmentsForHorizontalOrientation(layout, node, target, connector); + } + } + else if (info.tree.children.length === 4) { + if (i < 2 || i < info.tree.rows) { + this.getSegmentsForMultipleRows(layout, node, target, connector); + } + else { + this.updateSegmentsForHorizontalOrientation(layout, node, target, connector); + } + } + else { + this.getSegmentsForMultipleRows(layout, node, target, connector); + } + } + }; + HierarchicalTree.prototype.get3Points = function (layout, node, target, connector) { + var points = []; + var nodeBounds = this.getBounds(node); + var targetBounds = this.getBounds(target); + if (layout.orientation.indexOf('Top') !== -1) { + var startingPoint = layout.orientation.indexOf('Top') === 0 ? nodeBounds.bottomCenter : + nodeBounds.topCenter; + var endPoint = node.offsetX > target.offsetX ? targetBounds.middleRight : targetBounds.middleLeft; + points.push(startingPoint, { x: nodeBounds.bottomCenter.x, y: endPoint.y }, endPoint); + } + else { + var startingPoint = layout.orientation.indexOf('Left') === 0 ? nodeBounds.middleRight : + nodeBounds.middleLeft; + var endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter; + points.push(startingPoint, { x: targetBounds.bottomCenter.x, y: nodeBounds.middleRight.y }, endPoint); + } + this.getSegmentsFromPoints(points, connector); + }; + HierarchicalTree.prototype.get5Points = function (layout, node, target, connector) { + var points = []; + //let layoutprop: Layout; + var nodeBounds = this.getBounds(node); + var targetBounds = this.getBounds(target); + //let info: LayoutInfo = layout.graphNodes[node.id]; + var startingPoint; + var endPoint; + var horizontalSpacing; + var verticalSpacing; + if (layout.orientation.indexOf('Top') !== -1) { + startingPoint = (node.offsetY < target.offsetY) ? nodeBounds.bottomCenter : nodeBounds.topCenter; + verticalSpacing = layout.verticalSpacing / 4 * ((node.offsetY < target.offsetY) ? 1 : -1); + horizontalSpacing = layout.horizontalSpacing / 2 * ((node.offsetX > target.offsetX) ? 1 : -1); + endPoint = (node.offsetX > target.offsetX) ? targetBounds.middleRight : targetBounds.middleLeft; + points.push(startingPoint, { x: startingPoint.x, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: endPoint.y }, endPoint); + } + else { + startingPoint = (node.offsetX > target.offsetX) ? nodeBounds.middleLeft : nodeBounds.middleRight; + endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter; + horizontalSpacing = layout.horizontalSpacing / 4 * ((node.offsetX < target.offsetX) ? 1 : -1); + verticalSpacing = layout.verticalSpacing / 2 * ((node.offsetY > target.offsetY) ? 1 : -1); + points.push(startingPoint, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y }, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x, y: startingPoint.y + verticalSpacing }, endPoint); + } + this.getSegmentsFromPoints(points, connector); + }; + HierarchicalTree.prototype.getSegmentsFromPoints = function (points, connector) { + var segments = []; + var segment; + for (var i = 0; i < points.length - 2; i++) { + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(points[parseInt(i.toString(), 10)], points[i + 1]); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(points[parseInt(i.toString(), 10)], points[i + 1]); + segments.push(segment); + } + connector.segments = segments; + }; + HierarchicalTree.prototype.getSegmentsForMultipleRows = function (layout, node, target, connector) { + //let points: PointModel[] = []; + var segments = []; + var point; + var segment; + var targetBounds = this.getBounds(target); + var nodeBounds = this.getBounds(node); + switch (layout.orientation) { + case 'TopToBottom': + point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.bottomCenter.y + layout.verticalSpacing / 4) }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.bottomCenter, point); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.bottomCenter, point); + segments.push(segment); + break; + case 'BottomToTop': + point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.topCenter.y - layout.verticalSpacing / 4) }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.topCenter, point); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.topCenter, point); + segments.push(segment); + break; + case 'LeftToRight': + point = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: nodeBounds.middleRight.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.middleRight, point); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.middleRight, point); + segments.push(segment); + if (targetBounds.center.y !== nodeBounds.center.y) { + var point3 = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: targetBounds.middleLeft.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(point, point3); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(point, point3); + segments.push(segment); + } + break; + case 'RightToLeft': + point = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: nodeBounds.middleRight.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.middleLeft, point); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.middleLeft, point); + segments.push(segment); + if (targetBounds.center.y !== nodeBounds.center.y) { + var point_1 = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: targetBounds.middleLeft.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(point_1, point_1); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(point_1, point_1); + segments.push(segment); + } + break; + } + connector.segments = segments; + }; + HierarchicalTree.prototype.updateSegmentsForHorizontalOrientation = function (layout, node, target, connector) { + var points = []; + var point2; + var segment; + var segments = []; + var nodeBounds = this.getBounds(node); + var targetBounds = this.getBounds(target); + switch (layout.orientation) { + case 'TopToBottom': + point2 = { x: nodeBounds.bottomCenter.x, y: (targetBounds.topCenter.y - layout.verticalSpacing / 2) }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.bottomCenter, point2); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.bottomCenter, point2); + segments.push(segment); + break; + case 'BottomToTop': + point2 = { x: nodeBounds.topCenter.x, y: (targetBounds.bottomCenter.y + layout.verticalSpacing / 2) }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.topCenter, point2); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.topCenter, point2); + segments.push(segment); + break; + case 'LeftToRight': + point2 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: nodeBounds.middleRight.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.middleRight, point2); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.middleRight, point2); + segments.push(segment); + if (targetBounds.center.y !== nodeBounds.center.y) { + var point3 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: targetBounds.middleLeft.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(point2, point3); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(point2, point3); + segments.push(segment); + } + break; + case 'RightToLeft': + point2 = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: nodeBounds.middleRight.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(nodeBounds.middleLeft, point2); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(nodeBounds.middleLeft, point2); + segments.push(segment); + if (targetBounds.center.y !== nodeBounds.center.y) { + var point = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: targetBounds.middleLeft.y }; + segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_2__["OrthogonalSegment"](connector, 'segments', { type: 'Orthogonal' }, true); + segment.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].direction(point2, point); + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_4__["Point"].distancePoints(point2, point); + segments.push(segment); + } + break; + } + connector.segments = segments; + return points; + }; + HierarchicalTree.prototype.updateNodes = function (layout, node, mod, update, dx, dy) { + var i; + var child; + var width; + var height; + var offsetX; + var offsetY; + if (node && !node.excludeFromLayout) { + width = node.actualSize.width; + height = node.actualSize.height; + offsetX = layout.anchorX; + offsetY = layout.anchorY; + /*Performance - instead of checking conditions for every node, we can make the layout related + conditions once and we can reuse them*/ + if (layout.orientation === 'LeftToRight') { + offsetX += layout.graphNodes[node.id].y + width / 2; + offsetY += layout.graphNodes[node.id].x + mod + height / 2; + } + else if (layout.orientation === 'RightToLeft') { + offsetX -= layout.graphNodes[node.id].y + width / 2; + offsetY += layout.graphNodes[node.id].x + mod + height / 2; + } + else if (layout.orientation === 'TopToBottom') { + offsetX += layout.graphNodes[node.id].x + mod + width / 2; + offsetY += layout.graphNodes[node.id].y + height / 2; + } + else { + offsetX += layout.graphNodes[node.id].x + mod + width / 2; + offsetY -= layout.graphNodes[node.id].y + height / 2; + } + if (layout.graphNodes) { + dx = dx ? dx : 0; + dy = dy ? dy : 0; + offsetX += dx; + offsetY += dy; + if (!this.isAnimation) { + node.offsetX = offsetX; + node.offsetY = offsetY; + } + } + var objects = { id: node.id, differenceX: offsetX - node.offsetX, differenceY: offsetY - node.offsetY }; + layout.objects.push(objects); + var list = []; + if (this.hasChild(layout, node)) { + for (i = 0; i < layout.graphNodes[node.id].tree.children.length; i++) { + child = layout.nameTable[layout.graphNodes[node.id].tree.children[parseInt(i.toString(), 10)]]; + this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), update, dx, dy); + list.push(child); + } + } + if (layout.graphNodes[node.id].tree.assistants.length) { + for (i = 0; i < layout.graphNodes[node.id].tree.assistants.length; i++) { + child = layout.nameTable[layout.graphNodes[node.id].tree.assistants[parseInt(i.toString(), 10)]]; + this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), null, dx, dy); + } + } + } + }; + return HierarchicalTree; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/layout-base.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/layout-base.js ***! + \**********************************************************************************/ +/*! exports provided: Layout */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return Layout; }); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +/** + * Defines the behavior of the automatic layouts + */ +var Layout = /** @__PURE__ @class */ (function (_super) { + __extends(Layout, _super); + function Layout() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('') + ], Layout.prototype, "fixedNode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(30) + ], Layout.prototype, "horizontalSpacing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('SamePoint') + ], Layout.prototype, "connectionPointOrigin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Nonlinear') + ], Layout.prototype, "arrangement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(30) + ], Layout.prototype, "verticalSpacing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(30) + ], Layout.prototype, "maxIteration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(40) + ], Layout.prototype, "springFactor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(50) + ], Layout.prototype, "springLength", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Complex"])({ left: 50, top: 50, right: 0, bottom: 0 }, _core_appearance__WEBPACK_IMPORTED_MODULE_0__["Margin"]) + ], Layout.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Auto') + ], Layout.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Auto') + ], Layout.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('TopToBottom') + ], Layout.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Auto') + ], Layout.prototype, "connectionDirection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Default') + ], Layout.prototype, "connectorSegments", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('None') + ], Layout.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])() + ], Layout.prototype, "getLayoutInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])() + ], Layout.prototype, "layoutInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])() + ], Layout.prototype, "getBranch", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])() + ], Layout.prototype, "bounds", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(true) + ], Layout.prototype, "enableAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], Layout.prototype, "enableRouting", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('') + ], Layout.prototype, "root", void 0); + return Layout; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/mind-map.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/mind-map.js ***! + \*******************************************************************************/ +/*! exports provided: MindMap */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MindMap", function() { return MindMap; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _hierarchical_tree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hierarchical-tree */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/hierarchical-tree.js"); + + + +/** + * Layout for mind-map tree + */ +var MindMap = /** @__PURE__ @class */ (function () { + /** + * Constructor for the organizational chart module. + * + * @private + */ + function MindMap() { + /** + * Defines the layout animation + * + */ + this.isAnimation = false; + //constructs the layout module + } + /** + * To destroy the organizational chart + * + * @returns {void} + * @private + */ + MindMap.prototype.destroy = function () { + /** + * Destroy method performed here + */ + }; + /** + * Get module name. + */ + MindMap.prototype.getModuleName = function () { + /** + * Returns the module name of the layout + */ + return 'MindMapChart'; + }; + /** + * @param nodes + * @param nameTable + * @param layoutProp + * @param viewPort + * @param uniqueId + * @param root + * @private + */ + MindMap.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewPort, uniqueId, root) { + var isRoot = this.checkRoot(nodes, layoutProp, uniqueId, root, nameTable); + if (isRoot) { + layoutProp.fixedNode = isRoot; + } + else { + for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { + var node = nodes_1[_i]; + if (!node.excludeFromLayout) { + if (!node.inEdges || !node.inEdges.length) { + layoutProp.fixedNode = node.id; + break; + } + } + } + } + var rootNode = nameTable[layoutProp.fixedNode]; + var fistLevelNodes = this.findFirstLevelNodes(rootNode, layoutProp, nameTable); + var leftNodes = []; + var rightNodes = []; + var getMindmapBranch = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["getFunction"])(layoutProp.getBranch); + getMindmapBranch = getMindmapBranch || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["getFunction"])(this.getBranch); + for (var _a = 0, fistLevelNodes_1 = fistLevelNodes; _a < fistLevelNodes_1.length; _a++) { + var node = fistLevelNodes_1[_a]; + var align = getMindmapBranch(node, fistLevelNodes); + align = node && node.branch ? node.branch : align; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + (align === 'Left') ? leftNodes.push(node) : rightNodes.push(node); + } + var viewPortBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](0, 0, viewPort.x, viewPort.y); + nameTable[layoutProp.fixedNode].offsetX = viewPortBounds.x + viewPortBounds.width / 2; + nameTable[layoutProp.fixedNode].offsetY = viewPortBounds.y + viewPortBounds.height / 2; + if (leftNodes.length) { + this.updateMindMapBranch(nodes, rightNodes, nameTable, layoutProp, viewPort, uniqueId, 'Left'); + } + if (rightNodes.length) { + this.updateMindMapBranch(nodes, leftNodes, nameTable, layoutProp, viewPort, uniqueId, 'Right'); + } + }; + MindMap.prototype.checkRoot = function (nodes, layoutProp, uniqueId, root, nameTable) { + for (var _i = 0, nodes_2 = nodes; _i < nodes_2.length; _i++) { + var node = nodes_2[_i]; + if (!node.excludeFromLayout) { + if (node.data && (node.data["" + uniqueId].toString() === root || node.data["" + uniqueId].toString() + === layoutProp.root)) { + return node.id; + } + else if (!node.data && node.id === layoutProp.root) { + return node.id; + } + } + } + return ''; + }; + MindMap.prototype.updateMindMapBranch = function (nodes, excludeNodes, nameTable, layoutProp, viewPort, uniqueId, side) { + var layout = { + type: 'HierarchicalTree', + horizontalSpacing: layoutProp.verticalSpacing, verticalSpacing: layoutProp.horizontalSpacing, + verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment, + fixedNode: layoutProp.fixedNode, getLayoutInfo: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["getFunction"])(layoutProp.getLayoutInfo), + layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin, + orientation: layoutProp.orientation, + root: layoutProp.fixedNode + }; + //(EJ2-277624)-Vertical orientation is not working in mindmap + if (layout.orientation == 'Horizontal') { + layout.orientation = (side === 'Left') ? 'LeftToRight' : 'RightToLeft'; + } + else { + layout.orientation = (side === 'Left') ? 'TopToBottom' : 'BottomToTop'; + } + this.excludeFromLayout(excludeNodes, nameTable, true); + var mapLayout = new _hierarchical_tree__WEBPACK_IMPORTED_MODULE_2__["HierarchicalTree"](); + mapLayout.updateLayout(nodes, nameTable, layout, viewPort, uniqueId); + this.excludeFromLayout(excludeNodes, nameTable, false); + }; + MindMap.prototype.getBranch = function (obj, firstLevelNodes) { + var side; + var i = firstLevelNodes.indexOf(obj); + if (i % 2 === 0) { + side = 'Left'; + } + else { + side = 'Right'; + } + return side; + }; + MindMap.prototype.excludeFromLayout = function (newCollection, nameTable, exclude) { + for (var _i = 0, newCollection_1 = newCollection; _i < newCollection_1.length; _i++) { + var newcol = newCollection_1[_i]; + var node = nameTable[newcol.id]; + node.excludeFromLayout = exclude; + } + }; + MindMap.prototype.findFirstLevelNodes = function (node, layout, nameTable) { + var parentNode; + var fistLevelNodes = []; + if (node && node.outEdges.length) { + for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) { + var outEdge = _a[_i]; + fistLevelNodes.push(nameTable[nameTable["" + outEdge].targetID]); + } + } + return fistLevelNodes; + }; + return MindMap; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/radial-tree.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/radial-tree.js ***! + \**********************************************************************************/ +/*! exports provided: RadialTree */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadialTree", function() { return RadialTree; }); +/** + * Radial Tree + */ +var RadialTree = /** @__PURE__ @class */ (function () { + /** + * Constructor for the organizational chart module. + * + * @private + */ + function RadialTree() { + //constructs the layout module + } + /** + * To destroy the organizational chart + * + * @returns {void} + * @private + */ + RadialTree.prototype.destroy = function () { + /** + * Destroy method performed here + */ + }; + /** + * Get module name. + */ + RadialTree.prototype.getModuleName = function () { + /** + * Returns the module name of the layout + */ + return 'RadialTree'; + }; + /** + * @param nodes + * @param nameTable + * @param layoutProp + * @param viewport + * @private + */ + RadialTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport) { + var layout = { + type: layoutProp.type, + nameTable: nameTable, anchorX: 0, anchorY: 0, + firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {}, layoutNodes: [], + orientation: layoutProp.orientation, + horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing, + verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment, + fixedNode: layoutProp.fixedNode, margin: layoutProp.margin, + bounds: layoutProp.bounds, objects: [], root: layoutProp.root + }; + this.doLayout(layout, nodes, nameTable, viewport); + }; + RadialTree.prototype.doLayout = function (layout, nodes, nameTable, viewport) { + var node; + for (var i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if (!node.excludeFromLayout) { + layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node); + if (!node.inEdges || !node.inEdges.length) { + layout.firstLevelNodes.push(node); + } + } + } + if (layout.root && nameTable[layout.root]) { + layout.centerNode = nameTable[layout.root]; + } + else if (layout.firstLevelNodes.length) { + layout.centerNode = layout.firstLevelNodes[0]; + layout.root = layout.centerNode.id; + } + if (layout.centerNode) { + this.updateEdges(layout, layout.centerNode, 0, nameTable); + this.depthFirstAllignment(layout, layout.centerNode, 0, 0); + this.populateLevels(layout); + this.transformToCircleLayout(layout); + this.updateAnchor(layout, viewport); + this.updateNodes(layout, layout.centerNode, nameTable); + } + }; + RadialTree.prototype.updateEdges = function (layout, node, depth, nameTable) { + var nodeInfo = layout.graphNodes[node.id]; + layout.layoutNodes.push(nodeInfo); + nodeInfo.level = depth; + nodeInfo.visited = true; + layout.maxLevel = Math.max(layout.maxLevel, depth); + for (var j = 0; j < node.outEdges.length; j++) { + var edge = nameTable[nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID]; + if (!edge.excludeFromLayout && !edge.visited) { + nodeInfo.children.push(edge); + this.updateEdges(layout, edge, depth + 1, nameTable); + } + } + }; + RadialTree.prototype.depthFirstAllignment = function (layout, node, x, y) { + var newValue; + var nodeInfo = layout.graphNodes[node.id]; + if (nodeInfo.children.length) { + y += 300; + for (var i = 0; i < nodeInfo.children.length; i++) { + newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y); + x = newValue.x; + y = newValue.y; + } + nodeInfo.children = nodeInfo.children.sort(function (obj1, obj2) { + return layout.graphNodes[obj1.id].x - layout.graphNodes[obj2.id].x; + }); + var min = layout.graphNodes[nodeInfo.children[0].id].min; + var max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].max; + nodeInfo.x = min + (max - min) / 2; + x = max + layout.horizontalSpacing; + nodeInfo.segmentOffset = max + layout.horizontalSpacing; + nodeInfo.x -= nodeInfo.width / 2; + nodeInfo.y -= nodeInfo.height / 2; + nodeInfo.min = min; + nodeInfo.max = max; + if (nodeInfo.x < min && nodeInfo.visited) { + nodeInfo.x = min; + x = nodeInfo.x + nodeInfo.width / 2 - (max - min) / 2; + nodeInfo.visited = false; + for (var i = 0; i < nodeInfo.children.length; i++) { + newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y); + } + nodeInfo.visited = true; + x = nodeInfo.x + nodeInfo.width + layout.horizontalSpacing; + } + max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].segmentOffset; + x = x < max ? max : x; + y -= 300; + nodeInfo.y = y; + } + else { + nodeInfo.x = x; + nodeInfo.y = y; + nodeInfo.min = x; + nodeInfo.max = x + nodeInfo.width; + x += nodeInfo.width + layout.horizontalSpacing; + } + return { x: x, y: y }; + }; + RadialTree.prototype.populateLevels = function (layout) { + var stages = []; + // eslint-disable-next-line prefer-spread + var min = Math.min.apply(Math, layout.layoutNodes.map(function (nodeInfo) { return nodeInfo.x; })); + // eslint-disable-next-line prefer-spread + var max = Math.max.apply(Math, layout.layoutNodes.map(function (nodeInfo) { + return nodeInfo.x + nodeInfo.width + layout.horizontalSpacing; + })); + var full = max - min; + layout.levels = []; + var _loop_1 = function (i) { + stages = layout.layoutNodes.filter(function (nodeInfo) { + if (nodeInfo.level === i) { + return nodeInfo; + } + else { + return null; + } + }); + var newlevel = {}; + stages = stages.sort(function (nodeInfo1, nodeInfo2) { return nodeInfo1.x - nodeInfo2.x; }); + newlevel.min = stages[0].x; + newlevel.max = stages[stages.length - 1].x + stages[stages.length - 1].width + layout.horizontalSpacing; + newlevel.actualCircumference = 0; + newlevel.height = 0; + for (var k = 0; k < stages.length; k++) { + if (stages[parseInt(k.toString(), 10)].height > newlevel.height) { + newlevel.height = stages[parseInt(k.toString(), 10)].height; + } + newlevel.actualCircumference += Math.max(stages[parseInt(k.toString(), 10)].width, stages[parseInt(k.toString(), 10)].height); + if (k !== stages.length - 1) { + newlevel.actualCircumference += layout.horizontalSpacing; + } + } + newlevel.circumference = newlevel.max - newlevel.min; + if (newlevel.actualCircumference < newlevel.circumference) { + newlevel.circumference = (newlevel.circumference + newlevel.actualCircumference) / 2; + } + newlevel.radius = newlevel.circumference / (2 * Math.PI) + newlevel.height; + newlevel.nodes = []; + if (i > 1) { + if (layout.levels[i - 1].radius + layout.levels[i - 1].height >= newlevel.radius) { + newlevel.radius = layout.levels[i - 1].radius + layout.levels[i - 1].height; + } + } + for (var j = 0; j < stages.length; j++) { + stages[parseInt(j.toString(), 10)].ratio = Math.abs(stages[parseInt(j.toString(), 10)].x + stages[parseInt(j.toString(), 10)].width / 2 - min) / full; + newlevel.nodes.push(stages[parseInt(j.toString(), 10)]); + } + layout.levels.push(newlevel); + }; + for (var i = 0; i <= layout.maxLevel; i++) { + _loop_1(i); + } + }; + RadialTree.prototype.transformToCircleLayout = function (layout) { + var root = layout.graphNodes[layout.centerNode.id]; + root.x = 0; + root.y = 0; + for (var i = 1; i < layout.levels.length; i++) { + for (var j = 0; j < layout.levels[parseInt(i.toString(), 10)].nodes.length; j++) { + var nodeInfo = layout.levels[parseInt(i.toString(), 10)].nodes[parseInt(j.toString(), 10)]; + nodeInfo.x = Math.cos(nodeInfo.ratio * 360 * Math.PI / 180) * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i); + nodeInfo.y = Math.sin(nodeInfo.ratio * 360 * Math.PI / 180) * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i); + layout.anchorX = Math.min(layout.anchorX, nodeInfo.x); + layout.anchorY = Math.min(layout.anchorY, nodeInfo.y); + } + } + }; + RadialTree.prototype.updateAnchor = function (layout, viewPort) { + layout.anchorX = layout.centerNode.offsetX || viewPort.x / 2; + layout.anchorY = layout.centerNode.offsetY || viewPort.y / 2; + }; + RadialTree.prototype.updateNodes = function (layout, node, nameTable) { + var nodeInfo = layout.graphNodes[node.id]; + var offsetX = nodeInfo.x + layout.anchorX; + var offsetY = nodeInfo.y + layout.anchorY; + node.offsetX = offsetX; + node.offsetY = offsetY; + for (var i = 0; i < nodeInfo.children.length; i++) { + var childInfo = nodeInfo.children[parseInt(i.toString(), 10)]; + this.updateNodes(layout, nameTable[childInfo.id], nameTable); + } + }; + RadialTree.prototype.setUpLayoutInfo = function (layout, item) { + var info = {}; + info.name = item.id; + info.x = 0; + info.y = 0; + info.min = 0; + info.max = 0; + info.width = item.actualSize.width; + info.height = item.actualSize.height; + info.children = []; + info.level = 0; + info.ratio = 0; + info.visited = false; + return info; + }; + return RadialTree; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/symmetrical-layout.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/layout/symmetrical-layout.js ***! + \*****************************************************************************************/ +/*! exports provided: GraphForceNode, SymmetricLayout, GraphLayoutManager */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GraphForceNode", function() { return GraphForceNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymmetricLayout", function() { return SymmetricLayout; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GraphLayoutManager", function() { return GraphLayoutManager; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); + + +var GraphForceNode = /** @__PURE__ @class */ (function () { + function GraphForceNode(gnNode) { + /** + * @private + */ + this.velocityX = 0; + /** + * @private + */ + this.velocityY = 0; + /** + * @private + */ + this.nodes = []; + this.graphNode = gnNode; + var nNode = this.graphNode; + var bounds = getGraphBounds(nNode); + this.location = bounds.center; + this.nodes = []; + if (!gnNode.treeInfo.parents) { + gnNode.treeInfo.parents = []; + } + if (!gnNode.treeInfo.children) { + gnNode.treeInfo.children = []; + } + this.nodes = (gnNode.treeInfo.parents).concat(gnNode.treeInfo.children); + } + /** + * applyChanges method\ + * + * @returns { void } applyChanges method .\ + * @private + */ + GraphForceNode.prototype.applyChanges = function () { + this.graphNode.treeInfo.center = this.location; + }; + return GraphForceNode; +}()); + +/** + * SymmetricalLayout + */ +var SymmetricLayout = /** @__PURE__ @class */ (function () { + function SymmetricLayout() { + this.cdCOEF = 0.442; + this.cfMAXVELOCITY = 50; + this.cnMAXITERACTION = 1000; + this.cnSPRINGLENGTH = 100; + this.mszMaxForceVelocity = { width: this.cfMAXVELOCITY, height: this.cfMAXVELOCITY }; + /** + * @private + */ + this.springLength = 0; + /** + * @private + */ + this.springFactor = this.cdCOEF; + /** + * @private + */ + this.maxIteration = this.cnMAXITERACTION; + this.springLength = this.cnSPRINGLENGTH; + } + /** + *To destroy the layout + * + * @returns {void} To destroy the layout + */ + SymmetricLayout.prototype.destroy = function () { + /** + * Destroys symmetricLayout + */ + }; + SymmetricLayout.prototype.getModuleName = function () { + return 'SymmetricalLayout'; + }; + SymmetricLayout.prototype.doGraphLayout = function (graphLayoutManager) { + var graph = this.selectedNode; + graph.treeInfo.Bounds = graphLayoutManager.getModelBounds(graphLayoutManager.nodes); + var lstGraphNodes = graph.treeInfo.GraphNodes; + var lstNodes = this.convertGraphNodes(lstGraphNodes); + var count = lstNodes.length; + count = Math.min(this.maxIteration, count * count * count); + this.preLayoutNodes(lstNodes, graph.treeInfo.Bounds); + for (var i = 0, nLenght = count; i < nLenght; i++) { + this.makeSymmetricLayout(lstNodes); + this.appendForces(lstNodes); + } + this.resetGraphPosition(lstNodes, graph); + }; + SymmetricLayout.prototype.preLayoutNodes = function (lstNodes, rcBounds) { + var fMaxSize = Math.max(rcBounds ? rcBounds.width : 25, rcBounds ? rcBounds.height : 25); + var ptCenter = { x: fMaxSize / 2, y: fMaxSize / 2 }; + var dRotateAngle = 2 * Math.PI / lstNodes.length; + var dAngle = dRotateAngle; + for (var i = 0; i < lstNodes.length; i++) { + var gnNode = lstNodes[parseInt(i.toString(), 10)]; + var forceNode = this.getForceNode(gnNode); + forceNode.location = { + x: ptCenter.x + fMaxSize * Number((Math.cos(dAngle)).toFixed(2)), + y: ptCenter.y + fMaxSize * Number(Math.sin(dAngle).toFixed(2)) + }; + dAngle -= dRotateAngle; + } + }; + /** + * doLayout method\ + * + * @returns { void } doLayout method .\ + * @param {GraphLayoutManager} graphLayoutManager - provide the angle value. + * @private + */ + SymmetricLayout.prototype.doLayout = function (graphLayoutManager) { + this.selectedNode = graphLayoutManager.selectedNode; + this.doGraphLayout(graphLayoutManager); + }; + SymmetricLayout.prototype.makeSymmetricLayout = function (lstNodes) { + var forceNode; + var force; + for (var k = 0; k < lstNodes.length; k++) { + var gnNode = lstNodes[parseInt(k.toString(), 10)]; + forceNode = this.getForceNode(gnNode); + var nodes = forceNode.nodes; + for (var l = 0; l < nodes.length; l++) { + var gnChild = nodes[parseInt(l.toString(), 10)]; + if (collectionContains(gnChild.id, lstNodes)) { + this.calcNodesForce(forceNode, this.getForceNode(gnChild)); + } + } + for (var i = 0, length_1 = nodes.length; i < length_1; i++) { + if (length_1 < 2) { + break; + } + var vtx1 = this.getForceNode(nodes[parseInt(i.toString(), 10)]); + var vtx2 = (i + 1 >= length_1) ? this.getForceNode(nodes[0]) : this.getForceNode((nodes[i + 1])); + var angle = (360 / nodes.length / 2) * Math.PI / 180; + var normalDistance = 2 * this.springLength * Math.sin(angle); + this.calcRelatesForce(vtx1, vtx2, normalDistance); + } + for (var s = 0; s < lstNodes.length; s++) { + var gnChild = lstNodes[parseInt(s.toString(), 10)]; + if (!collectionContains(gnChild.id, nodes) && gnChild.id !== gnNode.id) { + force = this.getForceNode(gnChild); + this.updateNeigbour(forceNode, force); + } + } + } + }; + SymmetricLayout.prototype.appendForces = function (lstNodes) { + var gfnNode = null; + for (var k = 0; k < lstNodes.length; k++) { + var gnNode = lstNodes[parseInt(k.toString(), 10)]; + gfnNode = this.getForceNode(gnNode); + var ptPoint = gfnNode.location; + ptPoint.x += Math.min(gfnNode.velocityX, this.mszMaxForceVelocity.width); + ptPoint.y += Math.min(gfnNode.velocityY, this.mszMaxForceVelocity.height); + gfnNode.velocityX = 0; + gfnNode.velocityY = 0; + gfnNode.location = ptPoint; + } + }; + SymmetricLayout.prototype.resetGraphPosition = function (lstNodes, graph) { + var szMin = { width: Number.MAX_VALUE, height: Number.MAX_VALUE }; + var gfnNode = null; + var gnNode; + for (var k = 0; k < lstNodes.length; k++) { + gnNode = lstNodes[parseInt(k.toString(), 10)]; + gfnNode = this.getForceNode(gnNode); + var ptLocation = { + x: gfnNode.location.x - gnNode.actualSize.width / 2, + y: gfnNode.location.y - gnNode.actualSize.height / 2 + }; + szMin.width = Math.min(szMin.width, ptLocation.x); + szMin.height = Math.min(szMin.height, ptLocation.y); + } + for (var k = 0; k < lstNodes.length; k++) { + gnNode = lstNodes[parseInt(k.toString(), 10)]; + gfnNode = this.getForceNode(gnNode); + var ptLocation = gfnNode.location; + ptLocation.x -= szMin.width - (graph.treeInfo.location ? graph.treeInfo.location.x : 0); + ptLocation.y -= szMin.height - (graph.treeInfo.location ? graph.treeInfo.location.y : 0); + gfnNode.location = ptLocation; + gfnNode.applyChanges(); + } + }; + SymmetricLayout.prototype.convertGraphNodes = function (lstNodes) { + var lstToReturn = []; + var keys = Object.keys(lstNodes); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var k = keys_1[_i]; + if (lstNodes["" + k]) { + var gnNode = lstNodes["" + k]; + var forceNode = new GraphForceNode(gnNode); + gnNode.treeInfo.tag = forceNode; + lstToReturn.push(gnNode); + } + } + return lstToReturn; + }; + /** + * getForceNode method\ + * + * @returns { GraphForceNode } getForceNode method .\ + * @param {IGraphObject} gnNode - provide the angle value. + * @private + */ + SymmetricLayout.prototype.getForceNode = function (gnNode) { + return gnNode.treeInfo.tag; + }; + SymmetricLayout.prototype.updateNeigbour = function (vtSource, vtTarget) { + if (vtTarget == null || vtSource == null) { + return; + } + var distance = this.pointDistance(vtSource.location, vtTarget.location); + var angle = this.lineAngle(vtSource.location, vtTarget.location); + var normalDistance = (this.springLength * 0.9); + if (distance < normalDistance) { + this.calcForce(distance, normalDistance, angle, vtTarget); + } + }; + SymmetricLayout.prototype.lineAngle = function (pt1, pt2) { + var radians = 0; + var vx = pt2.x - pt1.x; + var vy = pt2.y - pt1.y; + if (vx === 0) { + if (vy <= 0) { + radians = (3.0 * Math.PI) / 2.0; + } + else { + radians = Math.PI / 2.0; + } + } + else if (vy === 0) { + if (vx < 0) { + radians = Math.PI; + } + else { + radians = 0; + } + } + else { + radians = Math.atan(vy / vx); + if (vx < 0 && vy > 0) { + radians = Math.PI + radians; + } + else if (vx < 0 && vy < 0) { + radians = Math.PI + radians; + } + else if (vx > 0 && vy < 0) { + radians = 2.0 * Math.PI + radians; + } + } + return radians; + }; + SymmetricLayout.prototype.pointDistance = function (pt1, pt2) { + var d = 0; + var dx = pt2.x - pt1.x; + var dy = pt2.y - pt1.y; + var t = (dx * dx) + (dy * dy); + if (t > 0) { + d = Math.sqrt(t); + } + return d; + }; + SymmetricLayout.prototype.calcRelatesForce = function (vtSource, vtTarget, normalDistance) { + var distance = this.pointDistance(vtSource.location, vtTarget.location); + var angle = this.lineAngle(vtSource.location, vtTarget.location); + if (distance < normalDistance) { + this.calcForce(distance, normalDistance, angle, vtTarget); + } + }; + /** + * @param nodeCollection + * @param connectors + * @param symmetricLayout + * @param nameTable + * @param layout + * @param viewPort + * @private + */ + /** + * updateLayout method\ + * + * @returns { void } updateLayout method .\ + * @param {IGraphObject[]} nodeCollection - provide the angle value. + * @param {IGraphObject[]} connectors - provide the connectors value. + * @param {SymmetricLayout} symmetricLayout - provide the symmetricLayout value. + * @param {Object} nameTable - provide the nameTable value. + * @param {Layout} layout - provide the layout value. + * @param {PointModel} viewPort - provide the viewPort value. + * @private + */ + SymmetricLayout.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) { + var layoutManager = new GraphLayoutManager(); + layoutManager.updateLayout(nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort); + }; + SymmetricLayout.prototype.calcNodesForce = function (vtSource, vtTarget) { + var distance = this.pointDistance(vtSource.location, vtTarget.location); + var angle = this.lineAngle(vtSource.location, vtTarget.location); + if (distance > this.springLength || distance < this.springLength) { + this.calcForce(distance, this.springLength, angle, vtTarget); + } + }; + SymmetricLayout.prototype.calcForce = function (distance, minDist, angle, vtTarget) { + var count = vtTarget.nodes.length; + var length = distance - minDist; + var factor = this.springFactor / (count * count) * Math.sqrt(count); + if (length !== 0) { + var fVelocity = length * factor; + var fOffset = fVelocity; + var offsetX = Math.cos(angle) * fOffset; + var offsetY = Math.sin(angle) * fOffset; + vtTarget.velocityX -= offsetX; + vtTarget.velocityY -= offsetY; + } + }; + return SymmetricLayout; +}()); + +var GraphLayoutManager = /** @__PURE__ @class */ (function () { + function GraphLayoutManager() { + this.visitedStack = []; + this.cycleEdgesCollection = []; + this.graphObjects = []; + this.passedNodes = []; + } + /** + * @param nodeCollection + * @param connectors + * @param symmetricLayout + * @param nameTable + * @param layout + * @param viewPort + * @private + */ + /** + * updateLayout method\ + * + * @returns { boolean } updateLayout method .\ + * @param {IGraphObject[]} nodeCollection - provide the nodeCollection value. + * @param {IGraphObject[]} connectors - provide the nodeCollection value. + * @param {SymmetricLayout} symmetricLayout - provide the nodeCollection value. + * @param {Object} nameTable - provide the nodeCollection value. + * @param {Layout} layout - provide the nodeCollection value. + * @param {PointModel} viewPort - provide the nodeCollection value. + * @private + */ + GraphLayoutManager.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) { + this.nameTable = nameTable; + this.nodes = nodeCollection; + this.connectors = connectors; + var selectionList = nodeCollection; + if (selectionList.length > 0) { + this.mhelperSelectedNode = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_1__["cloneObject"])(selectionList[0]); + } + for (var _i = 0, nodeCollection_1 = nodeCollection; _i < nodeCollection_1.length; _i++) { + var node = nodeCollection_1[_i]; + var nodeGraphObject = node; + nodeGraphObject.treeInfo = {}; + nodeGraphObject.treeInfo.graphType = 'Node'; + this.graphObjects.push(nodeGraphObject); + } + for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) { + var connector = connectors_1[_a]; + var connectorGraphObject = connector; + connectorGraphObject.treeInfo = {}; + connectorGraphObject.treeInfo.graphType = 'Connector'; + this.graphObjects.push(connectorGraphObject); + } + this.updateLayout1(this.graphObjects, symmetricLayout); + var modelBounds = this.getModelBounds(selectionList); + for (var i = 0; i < selectionList.length; i++) { + var node = selectionList[parseInt(i.toString(), 10)]; + var trnsX = (viewPort.x - modelBounds.width) / 2; + var margin = layout.margin || {}; + //let marginX: number; let marginY: number; + margin.left = margin.left || 0; + margin.right = margin.right || 0; + margin.top = margin.top || 0; + margin.bottom = margin.bottom || 0; + if (layout.margin.left) { + margin.left = layout.margin.left; + } + if (layout.margin.top) { + margin.top = layout.margin.top; + } + var dx = (node.treeInfo.tag.location.x - (node.offsetX - (node.actualSize.width / 2)) - + modelBounds.x + trnsX + margin.left); + var dy = (node.treeInfo.tag.location.y - (node.offsetY - (node.actualSize.height / 2)) - modelBounds.y + margin.top); + node.offsetX += dx; + node.offsetY += dy; + delete node.treeInfo; + } + return true; + }; + /** + * getModelBounds method\ + * + * @returns { Rect } getModelBounds method .\ + * @param {IGraphObject[]} lNodes - provide the angle value. + * @private + */ + GraphLayoutManager.prototype.getModelBounds = function (lNodes) { + lNodes = lNodes.slice(); + var rect = null; + var rect1 = null; + var node; + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[parseInt(i.toString(), 10)]; + var bounds = getGraphBounds(node); + rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](node.treeInfo.tag ? node.treeInfo.tag.location.x : bounds.x, node.treeInfo.tag ? node.treeInfo.tag.location.y : bounds.y, node.actualSize.width, node.actualSize.height); + if (rect1) { + rect1 = rect1.uniteRect(rect); + } + else { + rect1 = rect; + } + } + return rect1; + }; + GraphLayoutManager.prototype.updateLayout1 = function (nodesToLayout, symmetricLayout) { + this.detectCyclesInGraph(nodesToLayout); + var nodesCount = nodesToLayout.length; + if (nodesCount > 0) { + var cycleConnColln = []; + var nodes = []; + var nodeSymbols = []; + for (var s = 0; s < nodesToLayout.length; s++) { + var nd = nodesToLayout[parseInt(s.toString(), 10)]; + if (nd.treeInfo.isCycleEdge === undefined) { + nd.treeInfo.isCycleEdge = false; + } + if (nd.treeInfo.graphType === 'Connector' && !nd.treeInfo.isCycleEdge) { + nodes.push(nd); + } + else if (nd.treeInfo.graphType === 'Connector') { + cycleConnColln.push(nd); + } + else { + nodeSymbols.push(nd); + } + } + nodes = nodes.concat(nodeSymbols); + nodes = cycleConnColln.concat(nodes); + while (nodesCount > this.dictionaryLength(this.passedNodes)) { + this.getNodesToPosition(nodes); + if (this.selectedNode == null) { + continue; + } + symmetricLayout.doLayout(this); + this.selectedNode = null; + this.visitedStack = []; + for (var _i = 0, _a = this.cycleEdgesCollection; _i < _a.length; _i++) { + var connector = _a[_i]; + connector.treeInfo.isCycleEdge = false; + } + } + this.passedNodes = null; + this.selectedNode = null; + } + return false; + }; + GraphLayoutManager.prototype.getNodesToPosition = function (nodes) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[parseInt(i.toString(), 10)]; + if (!collectionContains(node.id, this.passedNodes)) { + if (node) { + this.selectNodes(node); + } + break; + } + } + }; + GraphLayoutManager.prototype.selectNodes = function (node) { + var nodeGraph = node; + if (node.treeInfo.graphType === 'Connector') { + this.exploreGraphEdge(node); + } + else if (nodeGraph != null) { + if (this.addNode(node, 'passed')) { + this.addNode(node, 'selected'); + if (this.isConnectedToAnotherNode(nodeGraph)) { + this.selectedNode = { treeInfo: {} }; + this.selectedNode.treeInfo.LeftMargin = 10; + this.selectedNode.treeInfo.TopMargin = 10; + this.selectConnectedNodes(nodeGraph); + } + else { + this.selectedNode = node; + } + } + } + }; + GraphLayoutManager.prototype.selectConnectedNodes = function (nodeGraph) { + var graph = this.selectedNode; + if (!graph.treeInfo.GraphNodes) { + graph.treeInfo.GraphNodes = {}; + } + var node = nodeGraph; + if (node != null && this.addNode(node, 'passed')) { + var nodeName = node.id; + if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) { + var gnNode = this.addGraphNode(node); + this.getConnectedRelatives(gnNode); + this.exploreRelatives(nodeGraph); + } + else { + var graphNode = graph.treeInfo.GraphNodes["" + nodeName]; + if (graphNode.treeInfo.Added) { + graphNode.treeInfo.Added = false; + this.getConnectedRelatives(graphNode); + this.exploreRelatives(nodeGraph); + } + } + } + }; + GraphLayoutManager.prototype.exploreRelatives = function (nodeGraph) { + this.exploreRelatives1(nodeGraph, 'Parents'); + this.exploreRelatives1(nodeGraph, 'Children'); + }; + GraphLayoutManager.prototype.exploreRelatives1 = function (nodeGraph, relativesToExplore) { + var edges = []; + if (relativesToExplore === 'Parents') { + edges = nodeGraph.inEdges; + } + else if (relativesToExplore === 'Children') { + edges = nodeGraph.outEdges; + } + for (var i = 0; i < edges.length; i++) { + var edge = this.nameTable[edges[parseInt(i.toString(), 10)]]; + if (this.addNode(edge, 'passed')) { + var fromNode = this.nameTable[edge.sourceID]; + var toNode = this.nameTable[edge.targetID]; + if (relativesToExplore === 'Parents' && fromNode != null && + collectionContains(fromNode.id, this.nodes)) { + this.selectConnectedNodes(this.nameTable[edge.sourceID]); + } + else if (relativesToExplore === 'Children' && toNode != null && + collectionContains(toNode.id, this.nodes)) { + this.selectConnectedNodes(this.nameTable[edge.targetID]); + } + } + } + }; + GraphLayoutManager.prototype.getConnectedRelatives = function (graphNode) { + this.getConnectedParents(graphNode); + this.getConnectedChildren(graphNode); + }; + GraphLayoutManager.prototype.dictionaryContains = function (obj, keyObj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + if (keys[parseInt(i.toString(), 10)] === keyObj.id) { + return true; + } + } + return false; + }; + GraphLayoutManager.prototype.dictionaryLength = function (obj) { + var keys = Object.keys(obj); + return keys.length; + }; + GraphLayoutManager.prototype.getConnectedChildren = function (graphNode) { + var graph = this.selectedNode; + var nodeGraph = graphNode; + for (var s = 0; s < nodeGraph.outEdges.length; s++) { + var edge = this.nameTable[nodeGraph.outEdges[parseInt(s.toString(), 10)]]; + if (!edge.treeInfo.isCycleEdge) { + var node = this.nameTable[edge.targetID]; + if (collectionContains(node.id, this.nodes) && node != null && node.visible) { + var gnNodeChildren = void 0; + if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) { + gnNodeChildren = this.addGraphNode(node); + gnNodeChildren.treeInfo.Added = true; + } + else { + gnNodeChildren = graph.treeInfo.GraphNodes[node.id]; + } + if (!graphNode.treeInfo.children) { + graphNode.treeInfo.children = []; + } + if (!gnNodeChildren.treeInfo.parents) { + gnNodeChildren.treeInfo.parents = []; + } + this.setNode(gnNodeChildren.treeInfo.parents, graphNode); + if (this.findNode(graphNode.treeInfo.children, gnNodeChildren.id) < 0) { + graphNode.treeInfo.children.push(gnNodeChildren); + } + } + } + } + }; + GraphLayoutManager.prototype.getConnectedParents = function (graphNode) { + var graph = this.selectedNode; + var nodeGraph = graphNode; + for (var s = 0; s < nodeGraph.inEdges.length; s++) { + var edge = this.nameTable[nodeGraph.inEdges[parseInt(s.toString(), 10)]]; + if (!edge.treeInfo.isCycleEdge) { + var node = this.nameTable[edge.sourceID]; + if (collectionContains(node.id, this.nodes) && node != null && node.visible) { + var gnNode = void 0; + if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) { + gnNode = this.addGraphNode(node); + gnNode.treeInfo.Added = true; + } + else { + gnNode = graph.treeInfo.GraphNodes[node.id]; + } + if (!graphNode.treeInfo.parents) { + graphNode.treeInfo.parents = []; + } + if (!gnNode.treeInfo.children) { + gnNode.treeInfo.children = []; + } + this.setNode(gnNode.treeInfo.children, graphNode); + if (this.findNode(graphNode.treeInfo.parents, gnNode.id) < 0) { + graphNode.treeInfo.parents.push(gnNode); + } + } + } + } + }; + GraphLayoutManager.prototype.setNode = function (list, node) { + var nIndex = this.findNode(list, node.id); + if (nIndex >= 0 && nIndex < list.length) { + list[parseInt(nIndex.toString(), 10)] = node; + } + else { + list.push(node); + } + }; + GraphLayoutManager.prototype.findNode = function (list, fullName) { + var nIndex = -1; + if (list != null && fullName !== '') { + for (var i = 0, nLength = list.length; i < nLength; i++) { + var gnNode = list[parseInt(i.toString(), 10)]; + if (typeof (gnNode) === 'string' && gnNode === fullName) { + nIndex = i; + break; + } + else if (gnNode != null && gnNode.id === fullName) { + nIndex = i; + break; + } + } + } + return nIndex; + }; + GraphLayoutManager.prototype.addGraphNode = function (node) { + var graph = this.selectedNode; + if (!graph.treeInfo.GraphNodes) { + graph.treeInfo.GraphNodes = {}; + } + var gnNode = node; + if (graph != null) { + graph.treeInfo.GraphNodes[gnNode.id] = gnNode; + var nodeHelper = this.mhelperSelectedNode; + if (nodeHelper != null && node.id === nodeHelper.id) { + this.mhelperSelectedNode = gnNode; + } + } + return gnNode; + }; + GraphLayoutManager.prototype.isConnectedToAnotherNode = function (gnNode) { + var bFoundConnectedNode = false; + var edges = (gnNode.inEdges).concat(gnNode.outEdges); + if (edges.length > 0) { + if ((gnNode.inEdges != null) && (gnNode.inEdges.length > 0)) { + bFoundConnectedNode = this.searchEdgeCollection(gnNode.inEdges, 'FromNode'); + } + if ((!bFoundConnectedNode) && (gnNode.outEdges != null) && (gnNode.outEdges.length > 0)) { + bFoundConnectedNode = this.searchEdgeCollection(gnNode.outEdges, 'ToNode'); + } + } + return bFoundConnectedNode; + }; + GraphLayoutManager.prototype.searchEdgeCollection = function (edgesToSearchThrough, connectionDirection) { + var bFoundConnectedNode = false; + for (var i = 0; i < edgesToSearchThrough.length - 1; i++) { + var edge = this.nameTable[edgesToSearchThrough[parseInt(i.toString(), 10)]]; + if (!this.addNode(edge, 'passed')) { + continue; + } + if (!edge.treeInfo.isCycleEdge && ((connectionDirection === 'FromNode' && this.nameTable[edge.sourceID] != null) + || (connectionDirection === 'ToNode' && this.nameTable[edge.targetID] != null))) { + bFoundConnectedNode = true; + break; + } + } + return bFoundConnectedNode; + }; + GraphLayoutManager.prototype.exploreGraphEdge = function (node) { + var nodeLink = node; + if (nodeLink != null && !nodeLink.treeInfo.isCycleEdge && this.addNode(node, 'passed')) { + this.addNode(node, 'selected'); + var fromNode = this.nameTable[nodeLink.sourceID]; + var toNode = this.nameTable[nodeLink.targetID]; + if (fromNode != null) { + this.selectNodes(fromNode); + } + else if (toNode != null) { + this.selectNodes(toNode); + } + else { + this.selectedNode = node; + } + } + }; + GraphLayoutManager.prototype.addNode = function (nodeToAdd, collectionToAdd) { + var bResult = true; + var node = nodeToAdd; + if (collectionToAdd === 'passed' || !node.visible) { + if (!this.dictionaryContains(this.passedNodes, node)) { + this.passedNodes[node.id] = node; + } + } + if (!node.visible) { + return false; + } + return bResult; + }; + GraphLayoutManager.prototype.detectCyclesInGraph = function (nodes) { + var vertex = []; + var currentStack = []; + for (var k = 0; k < nodes.length; k++) { + if (!(nodes[parseInt(k.toString(), 10)].treeInfo.graphType === 'Connector')) { + vertex.push(nodes[parseInt(k.toString(), 10)]); + } + } + if (vertex.length > 0) { + currentStack.push(vertex[0]); + this.visitedStack.push(vertex[0]); + while (currentStack.length > 0) { + var top_1 = currentStack[currentStack.length - 1]; + var childNodes = this.getUnVisitedChildNodes(top_1); + if (childNodes.length > 0) { + var child = childNodes[0]; + var currentEdge = childNodes[childNodes.length - 1]; + if (collectionContains(child.id, this.visitedStack)) { + currentEdge.treeInfo.isCycleEdge = true; + this.cycleEdgesCollection.push(currentEdge); + } + else { + currentStack.push(child); + this.visitedStack.splice(0, 0, child); + } + } + else { + currentStack.pop(); + } + } + } + }; + GraphLayoutManager.prototype.getUnVisitedChildNodes = function (top) { + var childNodes = []; + if (top.outEdges.length > 0) { + for (var i = 0; i < top.outEdges.length; i++) { + var con = this.nameTable[top.outEdges[parseInt(i.toString(), 10)]]; + if (!collectionContains(con.id, this.visitedStack)) { + var toNode = this.nameTable[con.targetID]; + if (toNode != null) { + childNodes.push(toNode); + } + childNodes.push(con); + this.visitedStack.splice(0, 0, con); + return childNodes; + } + } + return childNodes; + } + return childNodes; + }; + return GraphLayoutManager; +}()); + +/** + * getGraphBounds method\ + * + * @returns { void } getGraphBounds method .\ + * @param {IGraphObject} node - provide the angle value. + * @private + */ +function getGraphBounds(node) { + var x = node.offsetX - node.actualSize.width * node.pivot.x; + var y = node.offsetY - node.actualSize.height * node.pivot.y; + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](x, y, node.actualSize.width, node.actualSize.height); +} +/** + * @param id + * @param coll + */ +/** + * collectionContains method\ + * + * @returns { boolean } collectionContains method .\ + * @param {string} id - provide the id value. + * @param {IGraphObject[]} coll - provide the id value. + * @private + */ +function collectionContains(id, coll) { + for (var i = 0; i < coll.length; i++) { + if (coll[parseInt(i.toString(), 10)].id === id) { + return true; + } + } + return false; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/connectorProperties.js": +/*!************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/connectorProperties.js ***! + \************************************************************************************************/ +/*! exports provided: ConnectorProperties */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorProperties", function() { return ConnectorProperties; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); + +var ConnectorProperties = /** @__PURE__ @class */ (function () { + function ConnectorProperties(labelProperties) { + this.labelProperties = labelProperties; + } + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and render the connector collection from EJ1 to EJ2 + ConnectorProperties.prototype.renderConnectorsCollection = function (convertedData, data) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + convertedData.connectors = []; + var connectors = []; + for (var i = 0; i < data.connectors.length; i++) { + var connector = data.connectors[parseInt(i.toString(), 10)]; + var newConnector = this.convertToConnector(connector); + connectors.push(newConnector); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + convertedData.connectors = connectors; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and render the connector properties from EJ1 to EJ2 + ConnectorProperties.prototype.convertToConnector = function (connector) { + var newConnector = {}; + newConnector.style = {}; + if (connector.name) { + newConnector.id = connector.name; + } + if (connector.addInfo) { + newConnector.addInfo = connector.addInfo; + } + if (connector.bridgeSpace) { + newConnector.bridgeSpace = connector.bridgeSpace; + } + if (connector.constraints) { + newConnector.constraints = this.setConnectorConstraints(connector.constraints); + } + if (connector.cornerRadius) { + newConnector.cornerRadius = connector.cornerRadius; + } + if (connector.labels) { + newConnector.annotations = this.labelProperties.setLabelProperties(connector.labels, connector); + } + if (connector.lineColor) { + newConnector.style.fill = connector.lineColor; + } + if (connector.lineWidth) { + newConnector.style.strokeWidth = connector.lineWidth; + } + if (connector.lineDashArray) { + newConnector.style.strokeDashArray = connector.lineDashArray; + } + if (connector.opacity) { + newConnector.style.opacity = connector.opacity; + } + if (connector.lineHitPadding) { + newConnector.hitPadding = connector.lineHitPadding; + } + if (connector.margin) { + // eslint-disable-next-line max-len + newConnector.margin = { left: connector.margin.left, right: connector.margin.right, top: connector.margin.top, bottom: connector.margin.bottom }; + } + if (connector.segments) { + newConnector.type = connector.segments[0].type; + newConnector.segments = this.setConnectorSegments(connector.segments); + } + if (connector.shape) { + newConnector.shape = this.getConnectorShape(connector.shape); + } + if (connector.sourceDecorator) { + newConnector.sourceDecorator = { + height: connector.sourceDecorator.height, + width: connector.sourceDecorator.width, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + shape: (this.getDecoratorShape(connector.sourceDecorator.shape)), + pathData: connector.sourceDecorator.pathData, + style: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + fill: connector.sourceDecorator.fillColor, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + strokeColor: connector.sourceDecorator.lineColor, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + strokeWidth: connector.sourceDecorator.lineWidth + }, + }; + } + if (connector.targetDecorator) { + newConnector.targetDecorator = { + height: connector.targetDecorator.height, + width: connector.targetDecorator.width, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + shape: this.getDecoratorShape(connector.targetDecorator.shape), + pathData: connector.targetDecorator.pathData, + style: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + fill: connector.targetDecorator.fillColor, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + strokeColor: connector.targetDecorator.lineColor, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + strokeWidth: connector.targetDecorator.lineWidth + }, + }; + } + if (connector.sourceID) { + newConnector.sourceID = connector.sourceID; + } + if (connector.targetID) { + newConnector.targetID = connector.targetID; + } + if (connector.sourcePoint) { + newConnector.sourcePoint = { x: connector.sourcePoint.x, y: connector.sourcePoint.y }; + } + if (connector.targetPoint) { + newConnector.targetPoint = { x: connector.targetPoint.x, y: connector.targetPoint.y }; + } + if (connector.sourcePortID) { + newConnector.sourcePortID = connector.sourcePortID; + } + if (connector.targetPortID) { + newConnector.targetPortID = connector.targetPortID; + } + if (connector.tooltip) { + newConnector.tooltip = { + content: connector.tooltip.content, + relativeMode: connector.tooltip.relativeMode + }; + } + if (connector.visible) { + newConnector.visible = connector.visible; + } + if (connector.zIndex) { + newConnector.zIndex = connector.zIndex; + } + return newConnector; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and assign the connector shapes from EJ1 to EJ2 + ConnectorProperties.prototype.getConnectorShape = function (shape) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var connectorShape = null; + if (shape) { + if (shape.type === 'bpmn') { + connectorShape = { + type: 'Bpmn', + flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1), + }; + if (shape.flow === 'sequence') { + connectorShape.sequence = (shape.sequence).charAt(0).toUpperCase() + (shape.sequence).slice(1); + } + else if (shape.flow === 'association') { + connectorShape.association = (shape.association).charAt(0).toUpperCase() + (shape.association).slice(1); + } + else { + connectorShape.message = (shape.message).charAt(0).toUpperCase() + (shape.message).slice(1); + } + } + if (shape.type === 'umlclassifier') { + connectorShape = { + type: 'UmlClassifier', + relationship: (shape.relationship).charAt(0).toUpperCase() + (shape.relationship).slice(1), + multiplicity: { + type: (shape.multiplicity.type).charAt(0).toUpperCase() + (shape.multiplicity.type).slice(1), + source: { + upperBounds: shape.multiplicity.source.upperBounds, + optional: shape.multiplicity.source.optional, + lowerBounds: shape.multiplicity.source.lowerBounds + }, + target: { + upperBounds: shape.multiplicity.target.upperBounds, + optional: shape.multiplicity.target.optional, + lowerBounds: shape.multiplicity.target.lowerBounds + } + } + }; + } + if (shape.type === 'umlactivity') { + connectorShape = { + type: 'UmlActivity', + flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1) + }; + } + } + return connectorShape; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the connector decorator shapes from EJ1 to EJ2 + ConnectorProperties.prototype.getDecoratorShape = function (shape) { + var decoratorShape = 'None'; + if (shape === 'path') { + decoratorShape = 'Custom'; + } + else { + decoratorShape = (shape).charAt(0).toUpperCase() + (shape).slice(1); + } + return decoratorShape; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and render the connector collection from EJ1 to EJ2 + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ConnectorProperties.prototype.setConnectorSegments = function (segments) { + var connectorSegments = []; + if (segments.length > 0) { + for (var i = 0; i < segments.length; i++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var segment = {}; + var segmentProp = segments[parseInt(i.toString(), 10)]; + // eslint-disable-next-line max-len + segment.direction = segmentProp.direction ? segmentProp.direction.charAt(0).toUpperCase() + segmentProp.direction.slice(1) : segmentProp._direction ? segmentProp._direction.charAt(0).toUpperCase() + segmentProp._direction.slice(1) : null; + segment.length = segmentProp.length; + segment.point = segmentProp.point ? { x: segmentProp.point.x, y: segmentProp.point.y } : null; + segment.point1 = segmentProp.point1 ? { x: segmentProp.point1.x, y: segmentProp.point1.y } : null; + segment.point2 = segmentProp.point2 ? { x: segmentProp.point2.x, y: segmentProp.point2.y } : null; + // eslint-disable-next-line max-len + segment.vector1 = segmentProp.vector1 ? { angle: segmentProp.vector1.angle, distance: segmentProp.vector1.distance } : null; + // eslint-disable-next-line max-len + segment.vector2 = segmentProp.vector2 ? { angle: segmentProp.vector2.angle, distance: segmentProp.vector2.distance } : null; + if (segmentProp.points) + segment.points = this.getSegmentPoints(segmentProp.points); + if (segmentProp.type) + segment.type = (segmentProp.type).charAt(0).toUpperCase() + (segmentProp.type).slice(1); + connectorSegments.push(segment); + } + } + return connectorSegments; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Render the connector Segment points from EJ1 to EJ2 + ConnectorProperties.prototype.getSegmentPoints = function (points) { + var pointsCollection = []; + if (points.length > 0) { + for (var i = 0; i < points.length; i++) { + var newPoint = {}; + var point = points[parseInt(i.toString(), 10)]; + newPoint.x = point.x; + newPoint.y = point.y; + pointsCollection.push(newPoint); + } + } + return pointsCollection; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the connector constraints + ConnectorProperties.prototype.setConnectorConstraints = function (constraints) { + var connectorConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Select) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Select; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Delete) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Delete; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Drag) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Drag; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragSourceEnd) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragSourceEnd; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragTargetEnd) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragTargetEnd; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragSegmentThumb) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].DragSegmentThumb; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Bridging) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Bridging; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].InheritBridging) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].InheritBridging; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].AllowDrop) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].AllowDrop; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].InheritTooltip) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].InheritTooltip; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].PointerEvents) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].PointerEvents; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].BridgeObstacle) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].BridgeObstacle; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Interaction) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Interaction; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Default) { + connectorConstraints = connectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"].Default; + } + return connectorConstraints; + }; + /** +*To destroy the ruler +* +* @returns {void} To destroy the ruler +*/ + ConnectorProperties.prototype.destroy = function () { + /** + * Destroys the Node properties module + */ + }; + /** + * Get module name. + */ + ConnectorProperties.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'ConnectorProperties'; + }; + return ConnectorProperties; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/labelProperties.js": +/*!********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/labelProperties.js ***! + \********************************************************************************************/ +/*! exports provided: LabelProperties */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelProperties", function() { return LabelProperties; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); + +var LabelProperties = /** @__PURE__ @class */ (function () { + function LabelProperties(modelProperties) { + this.modelProperties = modelProperties; + } + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update and assign the annotation properties from EJ1 to EJ2 + LabelProperties.prototype.setLabelProperties = function (oldLabels, item) { + var labelCollection = []; + if (oldLabels.length > 0) { + for (var i = 0; i < oldLabels.length; i++) { + var label = oldLabels[parseInt(i.toString(), 10)]; + var newLabel = {}; + (newLabel).style = {}; + if (label.name) { + newLabel.id = label.name; + } + if (label.addInfo) { + newLabel.addInfo = label.addInfo; + } + if (label.content) { + newLabel.content = label.content; + } + if (label.constraints) { + newLabel.constraints = this.setLabelConstraints(label.constraints); + } + // if (label.readOnly) + // newLabel.constraints = newLabel.constraints | AnnotationConstraints.ReadOnly; + if (label.dragLimit) { + newLabel.dragLimit = { left: label.dragLimit.left, right: label.dragLimit.right, top: label.dragLimit.top, bottom: label.dragLimit.bottom }; + } + if (label.height) { + newLabel.height = label.height; + } + if (label.horizontalAlignment) { + newLabel.horizontalAlignment = label.horizontalAlignment; + } + if (label.verticalAlignment) { + newLabel.verticalAlignment = label.verticalAlignment; + } + if (label.hyperlink) { + newLabel.hyperlink = label.hyperlink; + } + if (label.margin) { + newLabel.margin = { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom }; + } + if (label.rotateAngle) { + newLabel.rotateAngle = label.rotateAngle; + } + if (label.fillColor) { + newLabel.style.color = label.fillColor; + } + if (label.fontFamily) { + newLabel.style.fontFamily = label.fontFamily; + } + if (label.fontSize) { + newLabel.style.fontSize = label.fontSize; + } + if (label.italic) { + newLabel.style.italic = label.italic; + } + if (label.bold) { + newLabel.style.bold = label.bold; + } + if (label.borderColor) { + newLabel.style.strokeColor = label.borderColor; + } + if (label.borderWidth) { + newLabel.style.strokeWidth = label.borderWidth; + } + if (label.textWrapping) { + newLabel.style.textWrapping = label.textWrapping; + } + if (label.textAlign) { + newLabel.style.textAlign = label.textAlign; + } + if (label.textDecoration) { + newLabel.style.textDecoration = label.textDecoration; + } + if (label.fillColor) { + newLabel.style.fill = label.fillColor === 'white' ? 'transparent' : label.fillColor; + } + if (label.opacity) { + newLabel.style.opacity = label.opacity; + } + // if (label.templateId) + // newLabel.template = getTemplateContent(label.templateId); + if (label.visible) { + newLabel.visibility = label.visible; + } + if (label.width) { + newLabel.width = label.width; + } + labelCollection.push(newLabel); + } + } + return labelCollection; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the annotation constraints from EJ1 to EJ2 + LabelProperties.prototype.setLabelConstraints = function (constraints) { + var annotationConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Select) { + annotationConstraints = annotationConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Select; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Drag) { + annotationConstraints = annotationConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Drag; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Resize) { + annotationConstraints = annotationConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Resize; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Rotate) { + annotationConstraints = annotationConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].Rotate; + } + return annotationConstraints; + }; + /** +*To destroy the ruler +* +* @returns {void} To destroy the ruler +*/ + LabelProperties.prototype.destroy = function () { + /** + * Destroys the Node properties module + */ + }; + /** + * Get module name. + */ + LabelProperties.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'LabelProperties'; + }; + return LabelProperties; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/modelProperties.js": +/*!********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/modelProperties.js ***! + \********************************************************************************************/ +/*! exports provided: EJ1SerializationModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EJ1SerializationModule", function() { return EJ1SerializationModule; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _connectorProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./connectorProperties */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/connectorProperties.js"); +/* harmony import */ var _labelProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./labelProperties */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/labelProperties.js"); +/* harmony import */ var _nodeProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nodeProperties */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/nodeProperties.js"); +/* harmony import */ var _portProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./portProperties */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/portProperties.js"); + + + + + +var EJ1SerializationModule = /** @__PURE__ @class */ (function () { + function EJ1SerializationModule(diagram) { + this.labelProperties = new _labelProperties__WEBPACK_IMPORTED_MODULE_2__["LabelProperties"](this); + this.connectorProperties = new _connectorProperties__WEBPACK_IMPORTED_MODULE_1__["ConnectorProperties"](this.labelProperties); + this.portProperties = new _portProperties__WEBPACK_IMPORTED_MODULE_4__["PortProperties"](this); + this.nodeProperties = new _nodeProperties__WEBPACK_IMPORTED_MODULE_3__["NodeProperties"](this.labelProperties, this.portProperties); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.convertedData = {}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.items = []; + this.diagram = diagram; + } + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Getting the object data from the load diagram and serialize it into from EJ1 to EJ2 + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.getSerializedData = function (data) { + this.convertedData.mode = 'SVG'; + this.convertedData.basicElements = []; + this.convertedData.width = data.width; + this.convertedData.height = data.height; + if (data.nodes && data.nodes.length > 0) { + this.nodeProperties.renderNodesCollection(this.convertedData, data); + } + else { + this.convertedData.nodes = data.nodes; + } + if (data.connectors && data.connectors.length > 0) { + this.connectorProperties.renderConnectorsCollection(this.convertedData, data); + } + else { + this.convertedData.connectors = data.connectors; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (data.defaultSettings !== undefined) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.convertedData.getNodeDefaults = this.getNodeDefaults(data.defaultSettings.node); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.convertedData.getConnectorDefaults = this.getConnectorDefaults(data.defaultSettings.connector); + } + //this.convertedData.setNodeTemplate = this.getNodeTemplate((data as Diagram).nodeTemplate); + this.setLayers(this.convertedData, data); + this.setDataSourceSettings(this.convertedData, data); + this.setRulerSettings(this.convertedData, data); + this.setSnapSettings(this.convertedData, data); + if (data.snapSettings.enableSnapToObject) { + this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToObject; + } + else { + this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToObject; + } + if (data.pageSettings.backgroundImage === undefined) { + data.pageSettings.pageBackgroundColor = 'transparent'; + data.pageSettings.backgroundImage = { + source: '', + scale: 'meet', + alignment: 'xmidymid' + }; + data.pageSettings.showPageBreak = false; + } + this.setScrollSettings(this.convertedData, data); + this.setPageSettings(this.convertedData, data); + this.setContextMenu(this.convertedData, data); + this.setTooltip(this.convertedData, data); + this.setModelLayout(this.convertedData, data); + this.setSelectedItems(this.convertedData, data); + this.convertedData.constraints = this.setDiagramConstraints(data.constraints); + this.convertedData.tool = this.setDiagramTool(data.tool); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.convertedData.drawType = data.drawType; + this.convertedData.commandManager = data.commandManager; + return this.convertedData; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //declare the node default properties + EJ1SerializationModule.prototype.getNodeDefaults = function (node) { + if (node) { + return this.nodeProperties.convertToNode(node); + } + else { + return null; + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //declare the node default properties + EJ1SerializationModule.prototype.getConnectorDefaults = function (connector) { + if (connector) { + return this.connectorProperties.convertToConnector(connector); + } + else { + return null; + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the layers from the EJ1 JSON + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setLayers = function (convertedData, data) { + var layers = []; + if (data.layers.length > 0) { + for (var i = 0; i < data.layers.length; i++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var newLayer = {}; + var layer = data.layers[parseInt(i.toString(), 10)]; + newLayer.id = layer.id; + newLayer.visible = layer.visible; + newLayer.lock = layer.lock; + newLayer.objects = layer.objects; + convertedData.layers[parseInt(i.toString(), 10)] = newLayer; + } + } + convertedData.layers = layers; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the dataSourceSettings from EJ1 to EJ2 + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setDataSourceSettings = function (convertedData, data) { + convertedData.dataSourceSettings = {}; + convertedData.dataSourceSettings.id = data.dataSourceSettings.id; + convertedData.dataSourceSettings.dataManager = data.dataSourceSettings.dataSource; + convertedData.dataSourceSettings.root = data.dataSourceSettings.root; + convertedData.dataSourceSettings.parentId = data.dataSourceSettings.parent; + convertedData.dataSourceSettings.crudAction = { + read: data.dataSourceSettings.crudAction.read, + create: data.dataSourceSettings.crudAction.create, + update: data.dataSourceSettings.crudAction.update, + destroy: data.dataSourceSettings.crudAction.destroy, + customFields: data.dataSourceSettings.customFields + }; + if (data.dataSourceSettings.connectionDataSource) { + convertedData.dataSourceSettings.connectionDataSource = {}; + convertedData.dataSourceSettings.connectionDataSource.id = data.dataSourceSettings.connectionDataSource.id; + convertedData.dataSourceSettings.connectionDataSource.dataManager = data.dataSourceSettings.connectionDataSource.dataSource; + convertedData.dataSourceSettings.connectionDataSource.sourceID = data.dataSourceSettings.connectionDataSource.sourceNode; + convertedData.dataSourceSettings.connectionDataSource.targetID = data.dataSourceSettings.connectionDataSource.targetNode; + convertedData.dataSourceSettings.connectionDataSource.sourcePointX = data.dataSourceSettings.connectionDataSource.sourcePointX; + convertedData.dataSourceSettings.connectionDataSource.sourcePointY = data.dataSourceSettings.connectionDataSource.sourcePointY; + convertedData.dataSourceSettings.connectionDataSource.targetPointX = data.dataSourceSettings.connectionDataSource.targetPointX; + convertedData.dataSourceSettings.connectionDataSource.targetPointY = data.dataSourceSettings.connectionDataSource.targetPointY; + convertedData.dataSourceSettings.connectionDataSource.crudAction = { + read: data.dataSourceSettings.connectionDataSource.crudAction.read, + create: data.dataSourceSettings.connectionDataSource.crudAction.create, + update: data.dataSourceSettings.connectionDataSource.crudAction.update, + destroy: data.dataSourceSettings.connectionDataSource.crudAction.destroy, + customFields: data.dataSourceSettings.connectionDataSource.customFields + }; + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the ruler settings + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setRulerSettings = function (convertedData, data) { + convertedData.rulerSettings = {}; + convertedData.rulerSettings.showRulers = data.rulerSettings.showRulers; + convertedData.rulerSettings.horizontalRuler = this.setRulerProperties(data.rulerSettings.horizontalRuler); + convertedData.rulerSettings.verticalRuler = this.setRulerProperties(data.rulerSettings.verticalRuler); + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the orientation of the ruler + EJ1SerializationModule.prototype.setRulerProperties = function (ruler) { + var rulerProperties = {}; + rulerProperties.interval = ruler.interval; + rulerProperties.segmentWidth = ruler.segmentWidth; + // rulerProperties.tickAlignment = ruler.tickAlignment === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop'; + rulerProperties.markerColor = ruler.markerColor; + rulerProperties.thickness = ruler.thickness; + rulerProperties.arrangeTick = ruler.arrangeTick; + return rulerProperties; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the snap settings + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setSnapSettings = function (convertedData, data) { + convertedData.snapSettings = {}; + if (data.snapSettings) { + convertedData.snapSettings.horizontalGridLines = this.setGridLines(data.snapSettings.horizontalGridLines); + convertedData.snapSettings.verticalGridLines = this.setGridLines(data.snapSettings.verticalGridLines); + convertedData.snapSettings.snapAngle = data.snapSettings.snapAngle; + convertedData.snapSettings.snapObjectDistance = data.snapSettings.snapObjectDistance; + convertedData.snapSettings.constraints = this.setSnapConstraints(data.snapSettings.snapConstraints); + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the snap constraints from EJ1 to EJ2 + EJ1SerializationModule.prototype.setSnapConstraints = function (constraints) { + var snapConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowHorizontalLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowHorizontalLines; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowVerticalLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowVerticalLines; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].ShowLines; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToHorizontalLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToHorizontalLines; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToVerticalLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToVerticalLines; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToLines) { + snapConstraints = snapConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"].SnapToLines; + } + return snapConstraints; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the gridlines + EJ1SerializationModule.prototype.setGridLines = function (gridlines) { + var gridLinesProperties = {}; + gridLinesProperties.lineColor = gridlines.lineColor; + gridLinesProperties.lineDashArray = gridlines.lineDashArray; + gridLinesProperties.lineIntervals = gridlines.lineInterval; + gridLinesProperties.snapIntervals = gridlines.snapInterval; + return gridLinesProperties; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the scroll-settings + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setScrollSettings = function (convertedData, data) { + convertedData.scrollSettings = { + horizontalOffset: data.scrollSettings.horizontalOffset, + verticalOffset: data.scrollSettings.verticalOffset, + currentZoom: data.scrollSettings.currentZoom, + viewPortWidth: data.scrollSettings.viewPortWidth, + viewPortHeight: data.scrollSettings.viewPortHeight, + minZoom: data.scrollSettings.minZoom, + maxZoom: data.scrollSettings.maxZoom, + scrollLimit: (data.pageSettings.scrollLimit).charAt(0).toUpperCase() + (data.pageSettings.scrollLimit).slice(1), + scrollableArea: data.pageSettings.scrollableArea, + canAutoScroll: data.enableAutoScroll, + autoScrollBorder: data.pageSettings.autoScrollBorder + }; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the page settings + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setPageSettings = function (convertedData, data) { + convertedData.pageSettings = { + width: data.pageSettings.pageWidth, + height: data.pageSettings.pageHeight, + // eslint-disable-next-line max-len + margin: { left: data.pageSettings.pageMargin, right: data.pageSettings.pageMargin, top: data.pageSettings.pageMargin, bottom: data.pageSettings.pageMargin }, + orientation: (data.pageSettings.pageOrientation).charAt(0).toUpperCase() + (data.pageSettings.pageOrientation).slice(1), + // eslint-disable-next-line max-len + boundaryConstraints: (data.pageSettings.boundaryConstraints).charAt(0).toUpperCase() + (data.pageSettings.boundaryConstraints).slice(1), + // eslint-disable-next-line max-len + background: { color: data.pageSettings.pageBackgroundColor, source: data.backgroundImage.source, scale: data.backgroundImage.scale, align: data.backgroundImage.align }, + multiplePage: data.pageSettings.multiplePage, + showPageBreaks: data.pageSettings.showPageBreak + }; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the contextmenu settings + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setContextMenu = function (convertedData, data) { + convertedData.contextMenuSettings = {}; + convertedData.contextMenuSettings.show = data.enableContextMenu; + if (data.contextMenu !== undefined) { + convertedData.contextMenuSettings.showCustomMenuOnly = data.contextMenu.showCustomMenuItemsOnly; + convertedData.contextMenuSettings.items = this.getContextMenuItems(data.contextMenu.items); + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the contextmenu items + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.getContextMenuItems = function (contextMenuItems) { + var menuItem = {}; + for (var i = 0; i < contextMenuItems.length; i++) { + var oldMenuItem = contextMenuItems[parseInt(i.toString(), 10)]; + menuItem.id = oldMenuItem.name; + menuItem.text = oldMenuItem.text; + this.items.push(menuItem); + if (contextMenuItems.subItems && contextMenuItems.subItems.length > 0) { + this.getContextMenuItems(contextMenuItems.subItems); + } + } + return this.items; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the tooltip items + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setTooltip = function (convertedData, data) { + convertedData.tooltip = { + content: data.tooltip.templateId, + relativeMode: data.tooltip.relativeMode + }; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the model layout for the converted data + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setModelLayout = function (convertedData, data) { + convertedData.layout = { + fixedNode: data.layout.fixedNode, + horizontalSpacing: data.layout.horizontalSpacing, + verticalSpacing: data.layout.verticalSpacing, + maxIteration: data.layout.maxIteration, + springFactor: data.layout.springFactor, + springLength: data.layout.springLength, + // eslint-disable-next-line max-len + margin: { left: data.layout.margin.left, right: data.layout.margin.right, top: data.layout.margin.top, bottom: data.layout.margin.bottom }, + horizontalAlignment: (data.layout.horizontalAlignment).charAt(0).toUpperCase() + (data.layout.horizontalAlignment).slice(1), + verticalAlignment: (data.layout.verticalAlignment).charAt(0).toUpperCase() + (data.layout.verticalAlignment).slice(1), + orientation: data.layout.orientation === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop', + connectorSegments: data.layout.getConnectorSegments, + type: (data.layout.type).charAt(0).toUpperCase() + (data.layout.type).slice(1), + getLayoutInfo: data.layout.getLayoutInfo, + bounds: data.layout.bounds, + root: data.layout.root, + }; + if (data.layout && data.layout.type === "hierarchicaltree") { + convertedData.layout.type = "None"; + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the selected items to convert the data + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EJ1SerializationModule.prototype.setSelectedItems = function (convertedData, data) { + convertedData.selectedItems = {}; + var nodes = []; + var connectors = []; + if (data.children && data.children.length > 0) { + for (var i = 0; i < data.children.length; i++) { + var selectedElement = data.children[parseInt(i.toString(), 10)]; + if (selectedElement.segments) { + connectors.push(selectedElement); + } + else { + nodes.push(selectedElement); + } + } + } + convertedData.selectedItems.nodes = nodes; + convertedData.selectedItems.connectors = connectors; + convertedData.selectedItems.offsetX = data.selectedItems.offsetX; + convertedData.selectedItems.offsetY = data.selectedItems.offsetY; + convertedData.selectedItems.width = data.selectedItems.width; + convertedData.selectedItems.height = data.selectedItems.height; + convertedData.selectedItems.rotateAngle = data.selectedItems.rotateAngle; + convertedData.selectedItems.constraints = this.setSelectorConstraints(data.selectedItems.constraints); + convertedData.selectedItems.userHandles = data.selectedItems.userHandles; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the selector constraints from EJ1 to EJ2 + EJ1SerializationModule.prototype.setSelectorConstraints = function (constraints) { + var selectorConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ConnectorSourceThumb) { + selectorConstraints = selectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].Rotate; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ResizeAll) { + selectorConstraints = selectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ResizeAll; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ResizeSouthEast) { + selectorConstraints = selectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].UserHandle; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ToolTip) { + selectorConstraints = selectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].ToolTip; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].All) { + selectorConstraints = selectorConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"].All; + } + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the diagram constraints from EJ1 to EJ2 + EJ1SerializationModule.prototype.setDiagramConstraints = function (constraints) { + var diagramConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].UserInteraction) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].UserInteraction; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].ApiUpdate) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].ApiUpdate; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PageEditable) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PageEditable; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].LineRouting) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].Bridging; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].Zoom) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].Zoom; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PanX) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PanX; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PanY) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].PanY; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].Pan) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].Pan; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].UndoRedo) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].UndoRedo; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].ZoomTextEdit) { + diagramConstraints = diagramConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"].ZoomTextEdit; + } + return diagramConstraints; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Update the diagram tool from EJ1 to EJ2 + EJ1SerializationModule.prototype.setDiagramTool = function (tool) { + var diagramTool = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].None; + if (tool & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].MultipleSelect) { + diagramTool = diagramTool | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].SingleSelect; + } + if (tool & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].ZoomPan) { + diagramTool = diagramTool | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].MultipleSelect; + } + if (tool & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].DrawOnce) { + diagramTool = diagramTool | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].ZoomPan; + } + if (tool & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].ContinuousDraw) { + diagramTool = diagramTool | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].DrawOnce; + } + if (tool & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].ContinuousDraw) { + diagramTool = diagramTool | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"].ContinuousDraw; + } + return diagramTool; + }; + // /* tslint:disable */ + // /** + // * To provide the array of modules needed for control rendering + // * + // * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\ + // * @private + // */ + // public requiredModules(): ModuleDeclaration[] { + // const modules: ModuleDeclaration[] = []; + // modules.push({ + // member: 'NodeProperties', + // args: [] + // }); + // return modules; + // } + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + EJ1SerializationModule.prototype.destroy = function () { + /** + * Destroys the Print and Export module + */ + }; + /** + * Get module name. + */ + EJ1SerializationModule.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'EJ1SerializationModule'; + }; + return EJ1SerializationModule; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/nodeProperties.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/nodeProperties.js ***! + \*******************************************************************************************/ +/*! exports provided: NodeProperties */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeProperties", function() { return NodeProperties; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); + +var NodeProperties = /** @__PURE__ @class */ (function () { + function NodeProperties(labelProperties, portProperties) { + this.labelProperties = labelProperties; + this.portProperties = portProperties; + } + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and render the node collection from EJ1 to EJ2 + // eslint-disable-next-line @typescript-eslint/no-explicit-any + NodeProperties.prototype.renderNodesCollection = function (convertedData, data) { + convertedData.nodes = []; + var nodes = []; + for (var i = 0; i < data.nodes.length; i++) { + var node = data.nodes[parseInt(i.toString(), 10)]; + var processCollection = []; + var newNode = this.convertToNode(node); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + // eslint-disable-next-line max-len + if (newNode.shape && newNode.shape.activity && newNode.shape.activity.subProcess && newNode.shape.activity.subProcess.processes.length > 0) { + var processName = []; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + for (var k = 0; k < newNode.shape.activity.subProcess.processes.length; k++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var processes = newNode.shape.activity.subProcess.processes[parseInt(k.toString(), 10)]; + processes.margin.right = 0; + processes.margin.bottom = 0; + processes.processId = newNode.id; + processName.push(processes.id); + processCollection.push(processes); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.shape.activity.subProcess.processes = processName; + } + if (node.type === 'group' && !node.isSwimlane) { + var childCollection = []; + if (newNode.children && newNode.children.length > 0) { + for (var j = 0; j < newNode.children.length; j++) { + var child = newNode.children[parseInt(i.toString(), 10)]; + nodes.push(child); + childCollection.push(child); + } + newNode.children = childCollection; + } + } + nodes.push(newNode); + if (processCollection && processCollection.length > 0) { + nodes = nodes.concat(processCollection); + } + } + convertedData.nodes = nodes; + return convertedData.nodes; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert the node from EJ1 to EJ2 and assign all the properties + NodeProperties.prototype.convertToNode = function (node) { + var newNode = {}; + newNode.style = {}; + newNode.margin = {}; + if (node.name) { + newNode.id = node.name; + } + if (node.fillColor) { + newNode.style.fill = node.fillColor; + } + if (node.borderColor) { + newNode.style.strokeColor = node.borderColor; + } + if (node.borderWidth) { + newNode.style.strokeWidth = node.borderWidth; + } + if (node.borderDashArray) { + newNode.style.strokeDashArray = node.borderDashArray; + } + if (node.opacity) { + newNode.style.opacity = node.opacity; + } + if (node.gradient) { + newNode.style.gradient = this.setGradient(node.gradient); + } + if (node.isExpanded) { + newNode.isExpanded = node.isExpanded; + } + if (node.width) { + newNode.width = node.width; + } + if (node.height) { + newNode.height = node.height; + } + if (node.offsetX) { + newNode.offsetX = node.offsetX; + } + if (node.offsetY) { + newNode.offsetY = node.offsetY; + } + if (node.visible) { + newNode.visible = node.visible; + } + newNode.zIndex = node.zOrder === -1 ? -1 : node.zOrder; + if (node.excludeFromLayout) { + newNode.excludeFromLayout = node.excludeFromLayout; + } + if (node.rotateAngle) { + newNode.rotateAngle = node.rotateAngle; + } + if (node.pivot) { + newNode.pivot = node.pivot; + } + if (node.addInfo) { + newNode.addInfo = node.addInfo; + } + if (node.marginLeft) { + newNode.margin.left = node.marginLeft; + } + if (node.marginRight) { + newNode.margin.right = node.marginRight; + } + if (node.marginTop) { + newNode.margin.top = node.marginTop; + } + if (node.marginBottom) { + newNode.margin.bottom = node.marginBottom; + } + if (node.horizontalAlign) { + newNode.horizontalAlignment = node.horizontalAlign; + } + if (node.verticalAlign) { + newNode.verticalAlignment = node.verticalAlign; + } + if (node.constraints) { + newNode.constraints = this.setNodeConstraints(node.constraints); + } + if (node.labels) { + newNode.annotations = this.labelProperties.setLabelProperties(node.labels, undefined); + } + if (node.shadow) { + newNode.shadow = { + angle: node.shadow.angle, opacity: node.shadow.opacity, distance: node.shadow.distance + }; + } + if (node.tooltip) { + newNode.tooltip = { + // content: this.getTemplateContent(node.tooltip.templateId), + relativeMode: node.tooltip.relativeMode + }; + } + if (node.expandIcon) { + newNode.expandIcon = { + shape: (node.expandIcon.shape), + width: node.expandIcon.width, height: node.expandIcon.height, + margin: { + left: node.expandIcon.margin ? node.expandIcon.margin.left : 0, + right: node.expandIcon.margin ? node.expandIcon.margin.right : 0, + top: node.expandIcon.margin ? node.expandIcon.margin.top : 0, + bottom: node.expandIcon.margin ? node.expandIcon.margin.bottom : 0 + }, + offset: { + x: node.expandIcon.offset ? node.expandIcon.offset.x : 0.5, + y: node.expandIcon.offset ? node.expandIcon.offset.y : 1 + }, + borderColor: node.expandIcon.borderColor, borderWidth: node.expandIcon.borderWidth, + cornerRadius: node.expandIcon.cornerRadius, + //fill: (node.expandIcon as any).fillColor, + pathData: node.expandIcon.pathData, + }; + } + if (node.collapseIcon) { + newNode.collapseIcon = { + shape: (node.collapseIcon.shape), + width: node.collapseIcon.width, height: node.collapseIcon.height, + margin: { + left: node.collapseIcon.margin ? node.collapseIcon.margin.left : 0, + right: node.collapseIcon.margin ? node.collapseIcon.margin.right : 0, + top: node.collapseIcon.margin ? node.collapseIcon.margin.top : 0, + bottom: node.collapseIcon.margin ? node.collapseIcon.margin.bottom : 0 + }, + offset: { + x: node.collapseIcon.offset ? node.collapseIcon.offset.x : 0.5, + y: node.collapseIcon.offset ? node.collapseIcon.offset.y : 1 + }, + borderColor: node.collapseIcon.borderColor, borderWidth: node.collapseIcon.borderWidth, + cornerRadius: node.collapseIcon.cornerRadius, + // fill: (node.collapseIcon as any).fillColor, + pathData: node.collapseIcon.pathData, + }; + } + if (node.ports) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.ports = this.portProperties.setPortProperties(node.ports); + } + if (node.children) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (node.type !== 'bpmn' && !node.isSwimlane) { + newNode.children = this.getChildren(newNode, node); + } + } + newNode.minWidth = node.minWidth; + newNode.maxWidth = node.maxWidth; + newNode.minHeight = node.minHeight; + newNode.maxHeight = node.maxHeight; + if (node.shape || node.type) { + newNode = this.setShape(newNode, node); + } + return newNode; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Iterate the swimlane child nodes and assign all the node properties from the EJ1 to EJ2 + NodeProperties.prototype.getChildren = function (newNode, node) { + if (node.children && node.children.length > 0) { + var newChild = []; + for (var i = 0; i < node.children.length; i++) { + var child = this.convertToNode(node.children[parseInt(i.toString(), 10)]); + if (child.children) { + this.getChildren(newNode, child); + } + newChild.push(child); + } + newNode.children = newChild; + } + return newNode.children; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the shapes for all the node from conversion + NodeProperties.prototype.setShape = function (newNode, node) { + switch (node.type) { + case 'basic': + var basicShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1); + if (node.shape === 'path') { + newNode.shape = { type: 'Path', data: node.pathData }; + } + else { + newNode.shape = { + type: 'Basic', shape: basicShape, cornerRadius: node.cornerRadius, points: node.points + }; + } + break; + case 'flow': + var flowShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1); + newNode.shape = { + type: 'Flow', shape: flowShape + }; + break; + case 'umlactivity': + newNode.shape = { + type: 'UmlActivity', shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1) + }; + break; + case 'image': + newNode.shape = { + type: 'Image', source: node.source, align: this.getImageContentAlignment(node.contentAlignment), + scale: (node.scale).charAt(0).toUpperCase() + (node.scale).slice(1) + }; + break; + case 'html': + newNode.shape = { type: 'HTML' }; + break; + case 'native': + newNode.shape = { type: 'Native' }; + break; + case 'text': + newNode.shape = { type: 'Text', content: node.textBlock.text }; + break; + case 'bpmn': + newNode.shape = this.renderBpmnShape(newNode, node); + break; + case 'group': + if (node.isSwimlane) { + newNode.shape = this.renderSwimlaneShape(newNode, node); + } + } + return newNode; + }; + NodeProperties.prototype.getImageContentAlignment = function (option) { + if (option) { + switch (option) { + case 'xminymin': + return 'XMinYMin'; + case 'xminymid': + return 'XMinYMid'; + case 'xminymax': + return 'XMinYMax'; + case 'xmidymin': + return 'XMidYMin'; + case 'xmidymid': + return 'XMidYMid'; + case 'xmidymax': + return 'XMidYMax'; + case 'xmaxymin': + return 'XMaxYMin'; + case 'xmaxymid': + return 'XMaxYMid'; + case 'xmaxymax': + return 'XMaxYMax'; + case 'none': + return 'None'; + } + } + return 'None'; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + // Sets the node constraints from EJ1 to EJ2 + NodeProperties.prototype.setNodeConstraints = function (constraints) { + var nodeConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Select) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Select; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Delete) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Delete; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorthEast) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorthEast; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeEast) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeEast; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].OutConnect) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeSouthEast; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Expandable) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeSouth; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].AllowDrop) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeSouthWest; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorthEast) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeWest; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeEast) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorthWest; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorth) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorth; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeSouthEast) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Shadow; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].AspectRatio) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].AspectRatio; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorthWest) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].AllowDrop; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].ResizeNorth) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].InheritTooltip; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].PointerEvents) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].PointerEvents; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Inherit) { + nodeConstraints = nodeConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Inherit; + } + return nodeConstraints; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the gradient for the nodes + NodeProperties.prototype.setGradient = function (gradient) { + var newGradient = {}; + if (gradient) { + if (gradient.type === 'linear') { + newGradient = { + type: 'Linear', + x1: gradient.x1, x2: gradient.x2, y1: gradient.y1, y2: gradient.y2, + stops: this.getGradientStops(gradient.stops) + }; + } + else if (gradient.type === 'radial') { + newGradient = { + type: 'Radial', + cx: gradient.cx, cy: gradient.cy, fx: gradient.fx, fy: gradient.fy, + stops: this.getGradientStops(gradient.stops) + }; + } + } + return newGradient; + }; + NodeProperties.prototype.getGradientStops = function (gradientStops) { + var stopsCollection = []; + for (var i = 0; i < gradientStops.length; i++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var newStop = {}; + var stop_1 = gradientStops[parseInt(i.toString(), 10)]; + newStop.color = stop_1.color; + newStop.offset = stop_1.offset; + stopsCollection.push(newStop); + } + return stopsCollection; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Assign the BPMN shape values from the EJ1 + NodeProperties.prototype.renderBpmnShape = function (newNode, node) { + if (node.shape === 'event') { + newNode.shape = { + type: 'Bpmn', + shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1), + event: { + event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1), + trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1) + } + }; + } + else if (node.shape === 'gateway') { + newNode.shape = { + type: 'Bpmn', + shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1), + gateway: { + type: (node.gateway).charAt(0).toUpperCase() + (node.gateway).slice(1) + } + }; + } + else if (node.shape === 'activity') { + newNode.shape = { + type: 'Bpmn', + shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1), + activity: { + activity: (node.activity).charAt(0).toUpperCase() + (node.activity).slice(1) + } + }; + if (node.activity === 'task') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.shape.activity.task = { + type: (node.task.type).charAt(0).toUpperCase() + (node.task.type).slice(1), + loop: (node.task.loop).charAt(0).toUpperCase() + (node.task.loop).slice(1), + compensation: node.task.compensation, + call: node.task.call + }; + } + if (node.activity === 'subprocess') { + if (node.subProcess.type === 'event') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.shape.activity.subProcess = { + collapsed: node.subProcess.collapsed, + compensation: node.subProcess.compensation, + adhoc: node.subProcess.adhoc, + loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subprocess.loop).slice(1), + boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subprocess.boundary).slice(1), + type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subprocess.type).slice(1), + event: { + event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1), + trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1) + } + }; + } + else if (node.subProcess.type === 'transaction') { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.shape.activity.subProcess = { + collapsed: node.subProcess.collapsed, + compensation: node.subProcess.compensation, + adhoc: node.subProcess.adhoc, + loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subprocess.loop).slice(1), + boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subprocess.boundary).slice(1), + type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subprocess.type).slice(1), + events: this.renderEventsCollection(node.subProcess.events), + processes: this.renderProcessesCollection(node) + }; + } + } + } + else if (node.shape === 'dataobject') { + newNode.shape = { + type: 'Bpmn', + shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1), + }; + if (node.annotation) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newNode.shape.annotation = { + text: node.annotation.text, + angle: node.annotation.angle, + width: node.annotation.width, + height: node.annotation.height, + length: node.annotation.length + }; + } + } + else { + newNode.shape = { + type: 'Bpmn', + shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1), + }; + } + return newNode.shape; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Renders the swimlane from the conversion + NodeProperties.prototype.renderSwimlaneShape = function (newNode, node) { + newNode.shape = { + type: 'SwimLane', orientation: (node.orientation).charAt(0).toUpperCase() + (node.orientation).slice(1), + header: { + annotation: { content: node.header.text }, + height: 50, style: { fontSize: node.header.fontSize, color: node.header.fontColor, fill: node.header.fillColor }, + }, + }; + var lanes = []; + var phases = []; + for (var i = 0; i < node.lanes.length; i++) { + lanes[parseInt(i.toString(), 10)] = { + header: { + annotation: { + content: node.lanes[parseInt(i.toString(), 10)].header.text, width: node.lanes[parseInt(i.toString(), 10)].header.width, + style: { fontSize: node.lanes[parseInt(i.toString(), 10)].header.fontSize, color: node.lanes[parseInt(i.toString(), 10)].header.fontColor } + }, + }, + style: { fill: node.lanes[parseInt(i.toString(), 10)].fillColor }, + children: [] + }; + for (var j = 0; j < node.lanes[parseInt(i.toString(), 10)].children.length; j++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var childNode = this.convertToNode(node.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]); + if (childNode.wrapper == null) { + childNode.wrapper = { + actualSize: { width: childNode.width, height: childNode.height }, + offsetX: childNode.offsetX, offsetY: childNode.offsetY + }; + } + lanes[parseInt(i.toString(), 10)].children.push(childNode); + } + } + for (var i = 0; i < node.phases.length; i++) { + phases[parseInt(i.toString(), 10)] = { + header: { + annotation: { + content: node.phases[parseInt(i.toString(), 10)].label.text, + // eslint-disable-next-line max-len + style: { fill: node.phases[parseInt(i.toString(), 10)].label.fillColor, fontSize: node.phases[parseInt(i.toString(), 10)].label.fontSize, color: node.phases[parseInt(i.toString(), 10)].label.fontColor } + }, + }, + offset: node.phases[parseInt(i.toString(), 10)].offset, + // eslint-disable-next-line max-len + style: { fill: node.phases[parseInt(i.toString(), 10)].fillColor, strokeColor: node.phases[parseInt(i.toString(), 10)].lineColor, strokeDashArray: node.phases[parseInt(i.toString(), 10)].lineDashArray } + }; + } + newNode.shape.lanes = lanes; + newNode.shape.phases = phases; + return newNode.shape; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Rendered the event collections for the node properties + // eslint-disable-next-line @typescript-eslint/no-explicit-any + NodeProperties.prototype.renderEventsCollection = function (subProcessEvents) { + var eventsCollection = []; + if (subProcessEvents.length > 0) { + for (var i = 0; i < subProcessEvents.length; i++) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var newEvent = void 0; + var eventObject = subProcessEvents[parseInt(i.toString(), 10)]; + newEvent.event = (eventObject.event).charAt(0).toUpperCase() + (eventObject.event).slice(1); + newEvent.trigger = (eventObject.trigger).charAt(0).toUpperCase() + (eventObject.trigger).slice(1); + newEvent.offset = { x: eventObject.offset.x, y: eventObject.offset.y }; + eventsCollection.push(newEvent); + } + } + return eventsCollection; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Rendered the process collections for the node properties + NodeProperties.prototype.renderProcessesCollection = function (node) { + var processesCollection = []; + if (node.subProcess && node.subProcess.processes.length > 0) { + for (var i = 0; i < node.subProcess.processes.length; i++) { + var processObject = node.subProcess.processes[parseInt(i.toString(), 10)]; + var data = this.convertToNode(processObject); + processesCollection.push(data); + } + } + return processesCollection; + }; + /** +*To destroy the ruler +* +* @returns {void} To destroy the ruler +*/ + NodeProperties.prototype.destroy = function () { + /** + * Destroys the Node properties module + */ + }; + /** + * Get module name. + */ + NodeProperties.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'NodeProperties'; + }; + return NodeProperties; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/portProperties.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/load-utility/portProperties.js ***! + \*******************************************************************************************/ +/*! exports provided: PortProperties */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PortProperties", function() { return PortProperties; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); + +var PortProperties = /** @__PURE__ @class */ (function () { + function PortProperties(modelProperties) { + this.modelProperties = modelProperties; + } + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Convert and assign EJ1 to EJ2 port properties + PortProperties.prototype.setPortProperties = function (oldPorts) { + var portCollection = []; + if (oldPorts.length > 0) { + for (var i = 0; i < oldPorts.length; i++) { + var port = oldPorts[parseInt(i.toString(), 10)]; + var newPort = {}; + newPort.style = {}; + if (port.name) { + newPort.id = port.name; + } + if (port.addInfo) { + newPort.addInfo = port.addInfo; + } + if (port.height) { + newPort.height = port.height; + } + if (port.width) { + newPort.width = port.width; + } + if (port.horizontalAlignment) { + newPort.horizontalAlignment = (port.horizontalAlignment); + } + if (port.verticalAlignment) { + newPort.verticalAlignment = port.verticalAlignment; + } + if (port.margin) { + // eslint-disable-next-line max-len + newPort.margin = { left: port.margin.left, right: port.margin.right, top: port.margin.top, bottom: port.margin.bottom }; + } + if (port.offset) { + newPort.offset = { x: port.offset.x, y: port.offset.y }; + } + if (port.borderColor) { + newPort.style.strokeColor = port.borderColor; + } + if (port.borderWidth) { + newPort.style.strokeWidth = port.borderWidth; + } + if (port.fillColor) { + newPort.style.fill = port.fillColor; + } + if (port.constraints) { + newPort.constraints = this.setPortConstraints(port.constraints); + } + if (port.pathData) { + newPort.pathData = port.pathData; + } + if (port.shape === 'Custom') { + newPort.shape = 'Custom'; + } + else { + newPort.shape = port.shape; + } + if (port.visibility) { + newPort.visibility = this.setPortVisibility(port.visibility); + } + portCollection.push(newPort); + } + } + return portCollection; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the port constraints from EJ1 to EJ2 + PortProperties.prototype.setPortConstraints = function (constraints) { + var portConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].None; + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].Drag) { + portConstraints = portConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].Drag; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].Draw) { + portConstraints = portConstraints | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].Draw; + } + if (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].None) { + portConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].None; + } + portConstraints = _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"].Default; + return portConstraints; + }; + //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram + //Sets the portVisibility from EJ1 to EJ2 + PortProperties.prototype.setPortVisibility = function (visibility) { + var portVisibility; + if (visibility & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Visible) { + portVisibility = portVisibility | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Visible; + } + if (visibility & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Hidden) { + portVisibility = portVisibility | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Hidden; + } + if (visibility & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Hover) { + portVisibility = portVisibility | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Hover; + } + if (visibility & _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Connect) { + portVisibility = portVisibility | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"].Connect; + } + return portVisibility; + }; + /** +*To destroy the ruler +* +* @returns {void} To destroy the ruler +*/ + PortProperties.prototype.destroy = function () { + /** + * Destroys the Port properties module + */ + }; + /** + * Get module name. + */ + PortProperties.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'PortProperties'; + }; + return PortProperties; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js ***! + \**********************************************************************************/ +/*! exports provided: Hyperlink, Annotation, ShapeAnnotation, PathAnnotation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hyperlink", function() { return Hyperlink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Annotation", function() { return Annotation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ShapeAnnotation", function() { return ShapeAnnotation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PathAnnotation", function() { return PathAnnotation; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + +/** + * Defines the hyperlink for the annotations in the nodes/connectors + */ +var Hyperlink = /** @__PURE__ @class */ (function (_super) { + __extends(Hyperlink, _super); + function Hyperlink() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('blue') + ], Hyperlink.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Hyperlink.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Hyperlink.prototype, "link", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Hyperlink.prototype, "textDecoration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('NewTab') + ], Hyperlink.prototype, "hyperlinkOpenState", void 0); + return Hyperlink; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the textual description of nodes/connectors + */ +var Annotation = /** @__PURE__ @class */ (function (_super) { + __extends(Annotation, _super); + // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function Annotation(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + if (!defaultValue.id) { + if (parent.parentObj && parent.parentObj.propName && parent.parentObj.propName === 'phases') { + _this.id = parent.parentObj.id; + } + else { + _this.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["randomId"])(); + } + } + return _this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Annotation.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], Annotation.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('String') + ], Annotation.prototype, "annotationType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Annotation.prototype, "visibility", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_3__["AnnotationConstraints"].InheritReadOnly) + ], Annotation.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])(undefined, Hyperlink) + ], Annotation.prototype, "hyperlink", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Annotation.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Annotation.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Annotation.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Annotation.prototype, "rotateAngle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ strokeWidth: 0, strokeColor: 'transparent', fill: 'transparent' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], Annotation.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], Annotation.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], Annotation.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], Annotation.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ top: undefined, bottom: undefined, left: undefined, right: undefined }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], Annotation.prototype, "dragLimit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Shape') + ], Annotation.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Annotation.prototype, "addInfo", void 0); + return Annotation; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the textual description of nodes/connectors with respect to bounds + */ +var ShapeAnnotation = /** @__PURE__ @class */ (function (_super) { + __extends(ShapeAnnotation, _super); + /* eslint-disable */ + function ShapeAnnotation(parent, propName, defaultValue, isArray) { + return _super.call(this, parent, propName, defaultValue, isArray) || this; + } + // eslint-disable-next-line valid-jsdoc + /** + * @private + * Returns the module of class ShapeAnnotation + */ + ShapeAnnotation.prototype.getClassName = function () { + return 'ShapeAnnotation'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0.5, y: 0.5 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], ShapeAnnotation.prototype, "offset", void 0); + return ShapeAnnotation; +}(Annotation)); + +/** + * Defines the connector annotation + */ +var PathAnnotation = /** @__PURE__ @class */ (function (_super) { + __extends(PathAnnotation, _super); + /* eslint-disable */ + function PathAnnotation(parent, propName, defaultValue, isArray) { + return _super.call(this, parent, propName, defaultValue, isArray) || this; + } + /* eslint-enable */ + /** + * Returns the module of class PathAnnotation. + * + * @returns {string} Returns the module of class PathAnnotation. + * @private + */ + PathAnnotation.prototype.getClassName = function () { + return 'PathAnnotation'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.5) + ], PathAnnotation.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], PathAnnotation.prototype, "displacement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], PathAnnotation.prototype, "alignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], PathAnnotation.prototype, "segmentAngle", void 0); + return PathAnnotation; +}(Annotation)); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/bpmn.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/bpmn.js ***! + \****************************************************************************/ +/*! exports provided: BpmnDiagrams, getBpmnShapePathData, getBpmnTriggerShapePathData, getBpmnGatewayShapePathData, getBpmnTaskShapePathData, getBpmnLoopShapePathData */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnDiagrams", function() { return BpmnDiagrams; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBpmnShapePathData", function() { return getBpmnShapePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBpmnTriggerShapePathData", function() { return getBpmnTriggerShapePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBpmnGatewayShapePathData", function() { return getBpmnGatewayShapePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBpmnTaskShapePathData", function() { return getBpmnTaskShapePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBpmnLoopShapePathData", function() { return getBpmnLoopShapePathData; }); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../../diagram/utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable @typescript-eslint/ban-types */ + + + + + + + + + + + + + + + + + + + +/** + * BPMN Diagrams contains the BPMN functionalities + */ +var BpmnDiagrams = /** @__PURE__ @class */ (function () { + //End size region + /** + * Constructor for the BpmnDiagrams module + * + * @private + */ + function BpmnDiagrams() { + //Code conversion for Bpmn Shapes + //Start Region + /** @private */ + this.annotationObjects = {}; + //constructs the BpmnDiagrams module + } + Object.defineProperty(BpmnDiagrams.prototype, "textAnnotationConnectors", { + /** @private */ + get: function () { + var connectors = []; + for (var _i = 0, _a = Object.keys(this.annotationObjects); _i < _a.length; _i++) { + var key = _a[_i]; + var entry = this.annotationObjects["" + key]; + for (var _b = 0, _c = Object.keys(entry); _b < _c.length; _b++) { + var annotation = _c[_b]; + var key_1 = 'connector'; + connectors.push(entry["" + annotation]["" + key_1]); + } + } + return connectors; + }, + enumerable: true, + configurable: true + }); + /** @private */ + BpmnDiagrams.prototype.getTextAnnotationConn = function (obj) { + var connectors = []; + if (obj.shape.type === 'Bpmn' && obj.shape.annotations.length !== 0) { + var entry = this.annotationObjects[obj.id]; + for (var _i = 0, _a = Object.keys(entry); _i < _a.length; _i++) { + var annotation = _a[_i]; + var key = 'connector'; + connectors.push(entry["" + annotation]["" + key]); + } + } + return connectors; + }; + /** @private */ + BpmnDiagrams.prototype.getSize = function (node, content) { + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](node.width, node.height); + if (size.width === undefined || size.height === undefined) { + if (!(content instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"])) { + size.width = size.width || 50; + size.height = size.height || 50; + } + if (content.actualSize.width && content.actualSize.height) { + return content.actualSize; + } + else { + content.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + size.width = size.width || content.desiredSize.width; + size.height = size.height || content.desiredSize.height; + } + if (node.maxWidth !== undefined) { + size.width = Math.min(size.width, node.maxWidth); + } + if (node.maxHeight !== undefined) { + size.height = Math.min(size.height, node.maxHeight); + } + if (node.minWidth !== undefined) { + size.width = Math.max(size.width, node.minWidth); + } + if (node.minHeight !== undefined) { + size.height = Math.max(size.height, node.minHeight); + } + } + return size; + }; + /** @private */ + BpmnDiagrams.prototype.initBPMNContent = function (content, node, diagram) { + var shape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() ? node.shape : node.shape); + var bpmnShape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() ? node.shape.bpmnShape : node.shape.shape); + if (bpmnShape === 'Event') { + content = this.getBPMNEventShape(node, shape.event); + } + if (bpmnShape === 'Gateway') { + content = this.getBPMNGatewayShape(node); + } + if (bpmnShape === 'DataObject') { + content = this.getBPMNDataObjectShape(node); + } + if (bpmnShape === 'Message' || bpmnShape === 'DataSource') { + content = this.getBPMNShapes(node); + } + // if (shape.shape === 'Group') { + // content = this.getBPMNGroup(node, diagram); + // content.style.strokeDashArray = '2 2 6 2'; + // content.horizontalAlignment = 'Center'; + // content.verticalAlignment = 'Center'; + // } + if (bpmnShape === 'Activity') { + content = this.getBPMNActivityShape(node); + } + if (bpmnShape === 'TextAnnotation') { + content = this.renderBPMNTextAnnotation(diagram, node, content); + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var annotations = {}; + if (shape.annotations.length > 0) { + for (var i = 0; i < shape.annotations.length && shape.annotations[parseInt(i.toString(), 10)].text; i++) { + content.children.push(this.getBPMNTextAnnotation(node, diagram, shape.annotations[parseInt(i.toString(), 10)], content)); + } + content.style.strokeDashArray = '2 2 6 2'; + } + return content; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNShapes = function (node) { + var bpmnShape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + //set style + this.setStyle(bpmnShape, node); + if ((node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["NodeConstraints"].Shadow) !== 0) { + bpmnShape.shadow = node.shadow; + } + var bpmnShapeData = getBpmnShapePathData((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() ? node.shape.bpmnShape : + node.shape.shape)); + bpmnShape.data = bpmnShapeData; + bpmnShape.id = node.id + '_' + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() ? node.shape.bpmnShape : + node.shape.shape); + if (node.width !== undefined && node.height !== undefined) { + bpmnShape.width = node.width; + bpmnShape.height = node.height; + } + return bpmnShape; + }; + /** @private */ + // public getBPMNGroup(node: Node, diagram: Diagram): Container { + // let group: Container = new Container(); + // group.id = node.id + '_group'; + // //group.style.strokeDashArray = '2 2 6 2'; + // if (!group.children) { group.children = []; } + // let grp: BpmnGroup = ((node.shape as BpmnShape).group as BpmnGroup); + // if ((node.shape as BpmnShape).group as BpmnGroup) { + // for (let i: number = 0; i < grp.children.length; i++) { + // let b: Node | Connector = diagram.nameTable[grp.children[i]]; + // group.children.push(b.wrapper); + // } + // } + // return group; + // } + /** @private */ + BpmnDiagrams.prototype.getBPMNGatewayShape = function (node) { + var gatewayshape = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + //childNode0 + var gatewayNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + gatewayNode.id = node.id + '_0_gateway'; + gatewayNode.offsetX = node.offsetX; + gatewayNode.offsetY = node.offsetY; + gatewayNode.data = 'M 40 20 L 20 40 L 0 20 L 20 0 L 40 20 Z'; + this.setStyle(gatewayNode, node); + //childNode1 + var gatewayTypeNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + gatewayTypeNode.id = node.id + '_1_gatewayType'; + //set style - opacity + gatewayTypeNode.style.opacity = node.style.opacity; + gatewayTypeNode.style.strokeColor = node.style.strokeColor; + gatewayTypeNode.horizontalAlignment = 'Center'; + gatewayTypeNode.verticalAlignment = 'Center'; + gatewayTypeNode.relativeMode = 'Object'; + var shapeType = node.shape.gateway; + //let gatewayTypeNodeShapeData: string; + var gatewayTypeNodeShapeData = getBpmnGatewayShapePathData(shapeType.type); + if (shapeType.type === 'EventBased' || shapeType.type === 'ExclusiveEventBased' || shapeType.type === 'ParallelEventBased') { + gatewayTypeNode.style.fill = 'white'; + } + else { + gatewayTypeNode.style.fill = 'black'; + } + gatewayTypeNode.data = gatewayTypeNodeShapeData; + // append child and set style + gatewayshape.style.fill = 'transparent'; + gatewayshape.style.strokeColor = 'transparent'; + gatewayshape.style.strokeWidth = 0; + gatewayshape.children = [gatewayNode, gatewayTypeNode]; + var size = this.getSize(node, gatewayNode); + this.setSizeForBPMNGateway(node.shape.gateway, gatewayshape, size.width, size.height); + return gatewayshape; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNDataObjectShape = function (node) { + var dataObjectshape = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var shape = node.shape.dataObject; + //childNode0 + var dataobjNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + dataobjNode.id = node.id + '_0_dataobj'; + dataobjNode.data = 'M29.904,5 L7.853,5 L7.853,45 L42.147,45 L42.147,17.242,L29.932,5,L29.932,17.242,L42.147,17.242'; + var size = this.getSize(node, dataobjNode); + dataobjNode.width = size.width; + dataobjNode.height = size.height; + this.setStyle(dataobjNode, node); + //childNode1 + var dataobjTypeNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + dataobjTypeNode.id = node.id + '_1_type'; + dataobjTypeNode.width = 25; + dataobjTypeNode.height = 20; + dataobjTypeNode.margin.left = 5; + dataobjTypeNode.margin.top = 5; + dataobjTypeNode.data = 'M 3 9.4 l 6 0 v 2.4 l 3.6 -4 L 9 4 v 2.5 H 3 V 9.4 Z'; + //set style - opacity + dataobjTypeNode.style.opacity = node.style.opacity; + //childNode2 + var dataobjCollectionNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + dataobjCollectionNode.id = node.id + '_2_collection'; + dataobjCollectionNode.width = 7.5; + dataobjCollectionNode.height = 15; + dataobjCollectionNode.style.fill = 'black'; + dataobjCollectionNode.visible = true; + dataobjCollectionNode.horizontalAlignment = 'Center'; + dataobjCollectionNode.verticalAlignment = 'Bottom'; + dataobjCollectionNode.relativeMode = 'Object'; + //set style - opacity + dataobjCollectionNode.style.opacity = node.style.opacity; + dataobjCollectionNode.data = 'M 0 0 L 0.1 0 L 0.1 2 L 0 2 Z M 0.4 0 L 0.6 0 L 0.6 2 L0.4 2 Z M 0.9 0 L 1 0 L 1 2 L 0.9 2 Z'; + switch (shape.type) { + case 'None': + dataobjTypeNode.visible = false; + break; + case 'Input': + dataobjTypeNode.style.fill = 'white'; + break; + case 'Output': + dataobjTypeNode.style.fill = 'black'; + break; + } + if (shape.collection === false) { + dataobjCollectionNode.visible = false; + } + //append child and set style + dataObjectshape.style.fill = 'transparent'; + dataObjectshape.style.strokeColor = 'transparent'; + dataObjectshape.style.strokeWidth = 0; + dataObjectshape.children = [dataobjNode, dataobjTypeNode, dataobjCollectionNode]; + return dataObjectshape; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNTaskShape = function (node) { + var shape = node.shape.activity; + var task = shape.task; + var taskShapes = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + //childNode0 + var taskNode = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"](); + taskNode.cornerRadius = 10; + var size = this.getSize(node, taskNode); + taskNode.id = node.id + '_0_task'; + taskNode.width = size.width; + taskNode.height = size.height; + this.setStyle(taskNode, node); + // if task as call + if ((task.call !== undefined) && task.call === true) { + taskNode.style.strokeWidth = 4; + } + taskShapes.width = size.width; + taskShapes.height = size.height; + var childCount = this.getTaskChildCount(node); + var x; + var childSpace = childCount * 12; + var area = size.width / 2 - childSpace; + if (childCount === 1) { + x = area + 8; + } + else { + x = area + (childCount - 1) * 8; + } + //childNode1 + var taskTypeNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + if (task.type === 'Receive' || task.type === 'Send') { + taskTypeNode.width = 18; + taskTypeNode.height = 16; + } + else if (task.type === 'Manual') { + taskTypeNode.width = 16; + taskTypeNode.height = 11; + } + else { + taskTypeNode.width = 20; + taskTypeNode.height = 20; + } + taskTypeNode.id = node.id + '_1_tasktType'; + taskTypeNode.margin.left = 5; + taskTypeNode.margin.top = 5; + var taskTypeNodeData = getBpmnTaskShapePathData(task.type); + taskTypeNode.data = taskTypeNodeData; + taskTypeNode.style.fill = 'transparent'; + taskTypeNode.style.opacity = node.style.opacity; + if (task.type === 'Send') { + taskTypeNode.style.fill = 'black'; + } + // append child and set style + taskShapes.style.fill = 'transparent'; + taskShapes.style.strokeColor = 'transparent'; + taskShapes.style.strokeWidth = 0; + taskShapes.children = [taskNode, taskTypeNode]; + //childnode for service + if (task.type === 'Service') { + var taskTypeNodeService = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + taskTypeNodeService.id = node.id + '_1_taskTypeService'; + taskTypeNodeService.data = taskTypeNodeData; + taskTypeNodeService.margin.left = taskTypeNode.margin.left + 9; + taskTypeNodeService.margin.top = taskTypeNode.margin.top + 9; + taskTypeNodeService.style.fill = 'white'; + taskTypeNodeService.style.opacity = node.style.opacity; + taskShapes.children.push(taskTypeNodeService); + } + // if task as loop + var loopType = task.loop; + var taskLoopNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); //let childNode2data: string; + var childNode2data = getBpmnLoopShapePathData(loopType); + taskLoopNode.data = childNode2data; + taskLoopNode.style.fill = 'black'; + if (loopType !== 'None') { + taskLoopNode.visible = true; + } + else { + taskLoopNode.visible = false; + } + if (childCount === 1) { + x = area + 9; + } + taskLoopNode.margin.left = x; + if (taskLoopNode.visible === true) { + x += 12 + 8; + } + taskLoopNode.width = 12; + taskLoopNode.height = 12; + taskLoopNode.margin.bottom = 5; + taskLoopNode.id = node.id + '_2_loop'; + taskLoopNode.horizontalAlignment = 'Left'; + taskLoopNode.verticalAlignment = 'Bottom'; + taskLoopNode.setOffsetWithRespectToBounds(0, 1, 'Fraction'); + taskLoopNode.relativeMode = 'Point'; + taskLoopNode.style.fill = 'transparent'; + taskTypeNode.style.opacity = node.style.opacity; + taskShapes.children.push(taskLoopNode); + //if task as compensation + var taskCompNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + taskCompNode = this.getBPMNCompensationShape(node, taskCompNode); + if (task.compensation === true) { + taskCompNode.visible = true; + } + else { + taskCompNode.visible = false; + } + if (childCount === 1) { + x = area + 9; + } + taskCompNode.margin.left = x - 3; + x += 12 + 6; + taskShapes.children.push(taskCompNode); + return taskShapes; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNEventShape = function (node, subEvent, sub, id) { + var eventshape = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var event; + var trigger; + var width; + var height; + id = id || node.id; + var pathdata = 'M164.1884,84.6909000000001C156.2414,84.6909000000001,149.7764,78.2259000000001,149.7764,70.2769000000001' + + 'C149.7764,62.3279000000001,156.2414,55.8629000000001,164.1884,55.8629000000001C172.1354,55.8629000000001,178.6024,' + + '62.3279000000001,178.6024,70.2769000000001C178.6024,78.2259000000001,172.1354,84.6909000000001,164.1884,84.6909000000001'; + var shapeEvent = node.shape.event; + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.shape === 'Event') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.bpmnShape === 'Event')) { + event = shapeEvent.event; + trigger = shapeEvent.trigger; + } + width = subEvent.width; + height = subEvent.height; + if (sub) { + width = width || 20; + height = height || 20; + } + else if (subEvent.width === undefined || subEvent.height === undefined) { + var pathElement = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + pathElement.data = pathdata; + var size = this.getSize(node, pathElement); + width = size.width; + height = size.height; + } + var shapeActivity = node.shape.activity; + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.shape === 'Activity') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.bpmnShape === 'Activity')) { + var subProcess = shapeActivity.subProcess; + event = subEvent.event; + trigger = subEvent.trigger; + } + //childNode0 + var innerEvtNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + innerEvtNode.data = pathdata; + innerEvtNode.id = id + '_0_event'; + innerEvtNode.width = width; + innerEvtNode.height = height; + innerEvtNode.horizontalAlignment = 'Center'; + innerEvtNode.verticalAlignment = 'Center'; + innerEvtNode.relativeMode = 'Object'; + this.setStyle(innerEvtNode, node); + //childNode1 + var outerEvtNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + outerEvtNode.data = pathdata; + outerEvtNode.id = id + '_1_event'; + outerEvtNode.style.gradient = node.style.gradient; + outerEvtNode.horizontalAlignment = 'Center'; + outerEvtNode.verticalAlignment = 'Center'; + outerEvtNode.relativeMode = 'Object'; + // set style opacity & strokeColor + outerEvtNode.style.strokeColor = node.style.strokeColor; + outerEvtNode.style.opacity = node.style.opacity; + //childNode2 + var triggerNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var triggerNodeData = getBpmnTriggerShapePathData(trigger); + triggerNode.data = triggerNodeData; + triggerNode.id = id + '_2_trigger'; + triggerNode.horizontalAlignment = 'Center'; + triggerNode.verticalAlignment = 'Center'; + triggerNode.relativeMode = 'Object'; + // set style opacity & strokeColor + triggerNode.style.strokeColor = node.style.strokeColor; + triggerNode.style.opacity = node.style.opacity; + switch (event) { + case 'Start': + outerEvtNode.visible = false; + break; + case 'NonInterruptingStart': + innerEvtNode.style.strokeDashArray = '2 3'; + outerEvtNode.visible = false; + break; + case 'Intermediate': + innerEvtNode.style.fill = node.style.fill; + innerEvtNode.style.gradient = null; + break; + case 'NonInterruptingIntermediate': + innerEvtNode.style.fill = node.style.fill; + innerEvtNode.style.gradient = null; + innerEvtNode.style.strokeDashArray = '2 3'; + outerEvtNode.style.strokeDashArray = '2 3'; + break; + case 'ThrowingIntermediate': + case 'End': + innerEvtNode.style.fill = event !== 'End' ? node.style.fill : node.style.fill !== 'white' ? node.style.fill : 'black'; + innerEvtNode.style.gradient = null; + triggerNode.style.fill = 'black'; + triggerNode.style.strokeColor = 'white'; + break; + } + //append child and set style + eventshape.style.fill = 'transparent'; + eventshape.style.strokeColor = 'transparent'; + eventshape.style.strokeWidth = 0; + eventshape.children = [innerEvtNode, outerEvtNode, triggerNode]; + this.setSizeForBPMNEvents(shapeEvent, eventshape, width, height); + return eventshape; + }; + BpmnDiagrams.prototype.setEventVisibility = function (node, canvas) { + var event = node.shape.event.event; + var innerEvtNode = canvas[0]; + var outerEvtNode = canvas[1]; + var triggerNode = canvas[2]; + switch (event) { + case 'Start': + outerEvtNode.visible = false; + break; + case 'NonInterruptingStart': + innerEvtNode.style.strokeDashArray = '2 3'; + outerEvtNode.visible = false; + break; + } + }; + BpmnDiagrams.prototype.setSubProcessVisibility = function (node) { + var subProcess = node.shape.activity.subProcess; + var eventLength = subProcess.events.length; + var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0; + var elementWrapper = node.wrapper.children[0].children[0]; + if (subProcess.adhoc === false) { + elementWrapper.children[3 + index + eventLength].visible = false; + } + if (subProcess.compensation === false) { + elementWrapper.children[4 + index + eventLength].visible = false; + } + if (eventLength > 0) { + for (var i = 0; i < eventLength; i++) { + this.setEventVisibility(node, elementWrapper.children[2 + i].children); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNSubProcessShape = function (node) { + var subProcessShapes = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var loopType; + var events; + var event; + var subprocessAdhoc = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var subProcessEventsShapes = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var subProcessLoopShapes = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var shape = node.shape.activity; + var subProcess = shape.subProcess; + var subChildCount = this.getSubprocessChildCount(node); + var x; + var subprocessNode = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"](); + subprocessNode.id = node.id + '_0_Subprocess'; + subprocessNode.style.fill = 'transparent'; + subprocessNode.cornerRadius = 10; + var size = this.getSize(node, subprocessNode); + subprocessNode.width = size.width; + subprocessNode.height = size.height; + subProcessShapes.children = [subprocessNode]; + if (shape.subProcess.type === 'Transaction') { + this.getBPMNSubProcessTransaction(node, node.shape, subProcessShapes); + } + var iconSpace = 4; + var subChildSpace = 12; + var childSpace = subChildCount * subChildSpace; + var area = size.width / 2; + if (subChildCount === 1) { + x = area - (subChildSpace * 0.5); + } + else { + x = area - (childSpace / 2) - ((subChildCount - 1) * iconSpace) / 2; + } + //set style + this.setStyle(subprocessNode, node); + if ((node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["NodeConstraints"].Shadow) !== 0) { + subProcessShapes.shadow = node.shadow; + } + var collapsedShape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + collapsedShape.id = node.id + '_0_collapsed'; + collapsedShape.width = 12; + collapsedShape.height = 12; + collapsedShape.style.fill = 'black'; + collapsedShape.style.strokeColor = node.style.strokeColor; + collapsedShape.margin.bottom = 5; + collapsedShape.horizontalAlignment = 'Left'; + collapsedShape.verticalAlignment = 'Bottom'; + collapsedShape.setOffsetWithRespectToBounds(0, 1, 'Fraction'); + collapsedShape.relativeMode = 'Point'; + collapsedShape.data = getBpmnShapePathData('collapsedShape'); + collapsedShape.margin.left = x; + if (subProcess.collapsed === true && !subProcess.processes) { + collapsedShape.visible = true; + } + else { + collapsedShape.visible = false; + } + if (collapsedShape.visible === true) { + x += 12 + 6; + } + subProcessShapes.children.push(collapsedShape); + if (subProcess.type === 'Event') { + subprocessNode.style.strokeWidth = 1; + subprocessNode.style.strokeDashArray = '2 2'; + events = subProcess.events; + for (var i = 0; i < events.length; i++) { + event = events[parseInt(i.toString(), 10)]; + this.getBPMNSubEvent(event, node, subProcessShapes); + } + } + // set loop for subprocess + subProcessLoopShapes = this.getBPMNSubProcessLoopShape(node); + if (subChildCount === 1) { + x = area + 8; + } + subProcessLoopShapes.margin.left = x; + if (subProcessLoopShapes.visible === true) { + x += subChildSpace + iconSpace; + } + subProcessShapes.children.push(subProcessLoopShapes); + // set boundary for subprocess + subprocessNode.id = node.id + '_boundary'; + if (subProcess.boundary === 'Default') { + subprocessNode.style.strokeWidth = 1; + subprocessNode.style.strokeDashArray = '1 0'; + } + if (subProcess.boundary === 'Call') { + subprocessNode.style.strokeWidth = 4; + subprocessNode.style.strokeDashArray = '1 0'; + } + if (subProcess.boundary === 'Event') { + subprocessNode.style.strokeWidth = 1; + subprocessNode.style.strokeDashArray = '2 2'; + } + //set adhoc for subprocess + subprocessAdhoc = this.getBPMNAdhocShape(node, subprocessAdhoc, subProcess); + if (subChildCount === 1) { + x = area + 8; + } + subprocessAdhoc.margin.left = x; + if (subprocessAdhoc.visible === true) { + x += subChildSpace + iconSpace; + } + subProcessShapes.children.push(subprocessAdhoc); + //set compensation for subprocess + var subprocessComp = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + if (subProcess.compensation === true) { + subprocessComp.visible = true; + } + else { + subprocessComp.visible = false; + } + subprocessComp = this.getBPMNCompensationShape(node, subprocessComp); + if (subChildCount === 1) { + x = area + 8; + } + subprocessComp.margin.left = x; + if (subprocessComp.visible === true) { + x += subChildSpace + iconSpace; + } + subProcessShapes.children.push(subprocessComp); + //set style for subprocess + subProcessShapes.style.strokeColor = 'transparent'; + subProcessShapes.style.strokeWidth = 0; + subProcessShapes.style.fill = 'transparent'; + return subProcessShapes; + }; + BpmnDiagrams.prototype.getBPMNSubEvent = function (event, node, container, id) { + container.children = container.children || []; + //let eventContainer: Canvas; + var eventContainer = this.getBPMNEventShape(node, event, true, id); + this.getBPMNSubprocessEvent(node, eventContainer, event); + eventContainer.id = id || (node.id + '_subprocessEvents'); + eventContainer.width = event.width || 20; + eventContainer.height = event.height || 20; + // set offset for subevents + eventContainer.setOffsetWithRespectToBounds(event.offset.x, event.offset.y, 'Fraction'); + eventContainer.relativeMode = 'Point'; + //set margin for subevents + eventContainer.margin = event.margin; + //set alignment for subevents + eventContainer.horizontalAlignment = event.horizontalAlignment; + eventContainer.verticalAlignment = event.verticalAlignment; + // set style for subevent + eventContainer.style.fill = 'transparent'; + eventContainer.style.strokeColor = 'transparent'; + eventContainer.style.strokeWidth = 0; + container.children.push(eventContainer); + }; + BpmnDiagrams.prototype.getBPMNSubProcessTransaction = function (node, shape, container) { + var shapeWidth = container.children[0].width; + var shapeHeight = container.children[0].height; + var innerRect = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"](); + innerRect.margin = { left: 3, right: 0, top: 3, bottom: 0 }; + innerRect.id = node.id + '_0_Subprocess_innnerRect'; + innerRect.cornerRadius = 10; + innerRect.width = shapeWidth - 6; + //EJ2-824711 - Fill color is not applied properly for BPMN transaction subProcess. + innerRect.style.fill = 'transparent'; + innerRect.height = shapeHeight - 6; + container.children.push(innerRect); + var transactionEvents = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + transactionEvents.id = node.id + '_transaction_events'; + transactionEvents.style.gradient = node.style.gradient; + var transaction = shape.activity.subProcess.transaction; + this.getBPMNSubEvent(transaction.success, node, transactionEvents, node.id + '_success'); + this.getBPMNSubEvent(transaction.cancel, node, transactionEvents, node.id + '_cancel'); + this.getBPMNSubEvent(transaction.failure, node, transactionEvents, node.id + '_failure'); + this.updateDiagramContainerVisibility(transactionEvents.children[0], transaction.success.visible); + this.updateDiagramContainerVisibility(transactionEvents.children[1], transaction.cancel.visible); + this.updateDiagramContainerVisibility(transactionEvents.children[2], transaction.failure.visible); + transactionEvents.float = true; + transactionEvents.width = shapeWidth; + transactionEvents.height = shapeHeight; + transactionEvents.style.fill = transactionEvents.style.strokeColor = 'transparent'; + container.children.push(transactionEvents); + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNSubProcessLoopShape = function (node) { + var shape = node.shape.activity; + var loopType; + var subprocessLoop = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var subprocessLoopData; + var subProcess = shape.subProcess; + // eslint-disable-next-line prefer-const + loopType = subProcess.loop; + // eslint-disable-next-line prefer-const + subprocessLoopData = getBpmnLoopShapePathData(loopType); + if (loopType !== 'None') { + subprocessLoop.visible = true; + } + else { + subprocessLoop.visible = false; + } + subprocessLoop.id = node.id + '_loop'; + subprocessLoop.data = subprocessLoopData; + subprocessLoop.style.fill = 'black'; + subprocessLoop.width = 12; + subprocessLoop.height = 12; + subprocessLoop.horizontalAlignment = 'Left'; + subprocessLoop.verticalAlignment = 'Bottom'; + subprocessLoop.setOffsetWithRespectToBounds(0, 1, 'Fraction'); + subprocessLoop.relativeMode = 'Point'; + subprocessLoop.margin.bottom = 5; + subprocessLoop.style.fill = 'transparent'; + subprocessLoop.style.strokeColor = node.style.strokeColor; + return subprocessLoop; + }; + /** @private */ + BpmnDiagrams.prototype.drag = function (obj, tx, ty, diagram) { + var node = diagram.nameTable[(obj).processId]; + if (obj.margin.top + ty >= 0) { + diagram.nodePropertyChange(obj, {}, { margin: { top: obj.margin.top + ty } }); + } + if (obj.margin.left + tx >= 0) { + diagram.nodePropertyChange(obj, {}, { margin: { left: obj.margin.left + tx } }); + } + //const diffX: number = 0; + //const diffY: number = 0; + var bound = this.getChildrenBound(node, obj.id, diagram); + this.updateSubProcessess(bound, obj, diagram); + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](undefined, undefined)); + node.wrapper.arrange(node.wrapper.desiredSize); + diagram.refreshCanvasLayers(); + diagram.updateSelector(); + this.updateDocks(obj, diagram); + }; + /** @private */ + BpmnDiagrams.prototype.dropBPMNchild = function (target, source, diagram) { + if (source && source.shape.type === 'Bpmn' && target.shape.type === 'Bpmn' + && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && source.shape.shape !== 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && source.shape.bpmnShape !== 'TextAnnotation'))) { + var subProcess = diagram.nameTable[target.id].shape.activity.subProcess; + if (diagram.currentSymbol && target.shape.type === 'Bpmn' && !subProcess.collapsed) { + source.processId = target.id; + return; + } + subProcess.processes = subProcess.processes || []; + if (subProcess.processes && subProcess.processes.indexOf(source.id) === -1 && !subProcess.collapsed) { + subProcess.processes.push(source.id); + var redoElement = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(source); + var sources = diagram.nameTable[source.id].wrapper; + var targetWrapper = diagram.nameTable[target.id].wrapper; + sources.margin.top = (sources.offsetY - (sources.actualSize.height / 2)) + - (target.offsetY - (target.actualSize.height / 2)); + sources.margin.left = (sources.offsetX - (sources.actualSize.width / 2)) + - (target.offsetX - (target.actualSize.width / 2)); + sources.margin.top = (sources.margin.top < 0) ? 0 : sources.margin.top; + sources.margin.left = (sources.margin.left < 0) ? 0 : sources.margin.left; + diagram.nameTable[source.id].processId = target.id; + targetWrapper.children.push(diagram.nameTable[source.id].wrapper); + var bound = this.getChildrenBound(target, source.id, diagram); + this.updateSubProcessess(bound, source, diagram); + targetWrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](undefined, undefined)); + targetWrapper.arrange(targetWrapper.desiredSize); + diagram.refreshCanvasLayers(); + diagram.updateSelector(); + var edges = []; + edges = edges.concat(source.outEdges, source.inEdges); + for (var i = edges.length - 1; i >= 0; i--) { + if (diagram.bpmnModule.textAnnotationConnectors.indexOf(diagram.nameTable[edges[parseInt(i.toString(), 10)]]) === -1) { + diagram.remove(diagram.nameTable[edges[parseInt(i.toString(), 10)]]); + } + } + var obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(source); + var entry = { + type: 'PositionChanged', undoObject: { nodes: [redoElement] }, + redoObject: { nodes: [obj] }, category: 'Internal' + }; + diagram.addHistoryEntry(entry); + if (diagram.mode === 'SVG') { + if (source.zIndex < target.zIndex) { + diagram.updateProcesses(source); + this.updateSubprocessNodeIndex(source, diagram, target); + } + } + this.updateDocks(source, diagram); + } + } + }; + BpmnDiagrams.prototype.updateIndex = function (diagram, source) { + //let processNode: Node; + var processNode = source; + var nodeindex = diagram.getIndex(processNode, processNode.id); + diagram.nodes.splice(Number(nodeindex), 1); + processNode.zIndex = diagram.nodes[diagram.nodes.length - 1].zIndex + 1; + diagram.nodes.push(processNode); + }; + BpmnDiagrams.prototype.updateSubprocessNodeIndex = function (source, diagram, target) { + if (source.shape.activity.subProcess.processes + && source.shape.activity.subProcess.processes.length > 0) { + for (var i = 0; i < source.shape.activity.subProcess.processes.length; i++) { + this.updateIndex(diagram, source); + var processes = source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]; + if (diagram.nameTable["" + processes].shape.activity.subProcess.processes.length > 0) { + this.updateSubprocessNodeIndex(diagram.nameTable["" + processes], diagram, target); + } + else { + var node = diagram.nameTable[source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]]; + this.updateIndex(diagram, node); + } + } + } + else { + this.updateIndex(diagram, source); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateDocks = function (obj, diagram) { + if (obj.shape.type === 'Bpmn' && obj.shape.activity.subProcess.processes && + !obj.shape.activity.subProcess.collapsed) { + var processTable = obj.shape.activity.subProcess.processes; + for (var _i = 0, processTable_1 = processTable; _i < processTable_1.length; _i++) { + var i = processTable_1[_i]; + var actualObject = diagram.nameTable["" + i]; + if (actualObject) { + diagram.updateConnectorEdges(actualObject); + actualObject.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"](actualObject.wrapper.width, actualObject.wrapper.height)); + actualObject.wrapper.arrange(actualObject.wrapper.desiredSize); + if (actualObject.shape.activity.subProcess.processes + && actualObject.shape.activity.subProcess.processes.length) { + this.updateDocks(actualObject, diagram); + } + } + } + } + }; + /** @private */ + BpmnDiagrams.prototype.removeBpmnProcesses = function (currentObj, diagram) { + var element = diagram.nameTable[currentObj.processId]; + if (currentObj.shape.type === 'Bpmn' && currentObj.shape.activity.subProcess.processes && + currentObj.shape.activity.subProcess.processes.length > 0) { + var processes = currentObj.shape.activity.subProcess.processes; + for (var j = processes.length - 1; j >= 0; j--) { + diagram.remove(diagram.nameTable[processes[parseInt(j.toString(), 10)]]); + } + } + if (element) { + diagram.removeDependentConnector(currentObj); + var processes = element.shape.activity.subProcess.processes; + this.removeChildFromBPMN(element.wrapper, currentObj.id); + var processIndex = processes.indexOf(currentObj.id); + processes.splice(processIndex, 1); + } + }; + /** @private */ + BpmnDiagrams.prototype.removeChildFromBPMN = function (wrapper, name) { + for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) { + var i = _a[_i]; + if (i.id === name) { + wrapper.children.splice(wrapper.children.indexOf(i), 1); + } + else if (i.children) { + this.removeChildFromBPMN(i, name); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.removeProcess = function (id, diagram) { + var node = diagram.nameTable["" + id]; + if (node) { + var parent_1 = diagram.nameTable[node.processId]; + if (parent_1 && parent_1.shape.type === 'Bpmn') { + var processes = parent_1.shape.activity.subProcess.processes; + diagram.removeDependentConnector(node); + this.removeChildFromBPMN(parent_1.wrapper, id); + var processIndex = processes.indexOf(id); + processes.splice(processIndex, 1); + node.processId = ''; + diagram.refreshDiagramLayer(); + diagram.updateSelector(); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.addProcess = function (process, parentId, diagram) { + //let id: string; + process.id = process.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + var id = process.id; + var node = diagram.nameTable["" + id]; + if (!node) { + diagram.add(process); + } + process.processId = parentId; + var parentNode = diagram.nameTable["" + parentId]; + var subProcess = parentNode.shape.activity.subProcess; + if (node && parentNode && parentNode.shape.type === 'Bpmn' && node.shape.type === 'Bpmn' && + subProcess.processes) { + node.processId = parentId; + var processes = parentNode.shape.activity.subProcess.processes; + if (processes.indexOf(id) < 0) { + processes.push(id); + } + parentNode.wrapper.children.push(node.wrapper); + parentNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + parentNode.wrapper.arrange(parentNode.wrapper.desiredSize); + diagram.bpmnModule.updateDocks(parentNode, diagram); + diagram.refreshDiagramLayer(); + if (diagram.mode === 'SVG' && (node.shape && node.shape.activity + && !node.shape.activity.subProcess.processes)) { + var child = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["getDiagramElement"])(parentId + '_groupElement'); + child.appendChild(Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["getDiagramElement"])(process.id + '_groupElement')); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.getChildrenBound = function (node, excludeChild, diagram) { + var processes = node.shape.activity.subProcess.processes; + var bound; + if (processes && processes.length) { + for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) { + var i = processes_1[_i]; + if (excludeChild !== i) { + if (!bound) { + bound = diagram.nameTable["" + i].wrapper.bounds; + } + else { + bound = diagram.nameTable["" + i].wrapper.bounds.uniteRect(bound); + } + } + } + } + return bound || diagram.nameTable["" + excludeChild].wrapper.bounds; + }; + /** @private */ + BpmnDiagrams.prototype.updateSubProcessess = function (bound, obj, diagram) { + var diffX; + var diffY; + var node = diagram.nameTable[obj.processId]; + var right; + var bottom; + var pivot = { x: 0.5, y: 0.5 }; + if ((node.wrapper.bounds.left + obj.margin.left + obj.width) > (node.wrapper.bounds.right)) { + right = true; + } + if ((node.wrapper.bounds.top + obj.margin.top + obj.height) > (node.wrapper.bounds.bottom)) { + bottom = true; + } + if (right) { + pivot.x = 0; + } + if (bottom) { + pivot.y = 0; + } + var actualSize = node.wrapper.actualSize; + if (right) { + diffX = (obj.wrapper.margin.left + obj.wrapper.bounds.width) / actualSize.width; + } + if (bottom) { + diffY = (obj.wrapper.margin.top + obj.wrapper.bounds.height) / actualSize.height; + } + if (diffX > 0 || diffY > 0) { + diagram.commandHandler.scale(diagram.nameTable[obj.processId], diffX || 1, diffY || 1, pivot); + } + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNCompensationShape = function (node, compensationNode) { + compensationNode.id = node.id + '_0_compensation'; + compensationNode.width = 12; + compensationNode.height = 12; + compensationNode.margin.bottom = 5; + compensationNode.style.fill = 'transparent'; + compensationNode.style.strokeColor = node.style.strokeColor; + compensationNode.horizontalAlignment = 'Left'; + compensationNode.verticalAlignment = 'Bottom'; + compensationNode.relativeMode = 'Object'; + compensationNode.data = 'M 22.462 18.754 l -6.79 3.92 l 6.79 3.92 V 22.89 l 6.415 3.705 v -7.841 l -6.415 3.705 V 18.754 Z' + + ' M 28.331 19.701 v 5.947 l -5.149 -2.973 L 28.331 19.701 Z M 21.916 25.647 l -5.15 -2.973 l 5.15 -2.973 V 25.647 Z' + + ' M 22.275 12.674 c -5.513 0 -9.999 4.486 -9.999 9.999 c 0 5.514 4.486 10.001 9.999 10.001' + + ' c 5.514 0 9.999 -4.486 9.999 -10.001 C 32.274 17.16 27.789 12.674 22.275 12.674 Z M 22.275 32.127 ' + + ' c -5.212 0 -9.453 -4.241 -9.453 -9.454 c 0 -5.212 4.241 -9.453 9.453 -9.453 c 5.212 0 9.453 4.241 9.453 9.453' + + ' C 31.728 27.887 27.487 32.127 22.275 32.127 Z'; + return compensationNode; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNActivityShape = function (node) { + var eventshape = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var content; + var shape = node.shape.activity; + var task = shape.activity; + var subProcess = shape.subProcess; + var activityType = shape.activity; + if (task === 'Task') { + content = this.getBPMNTaskShape(node); + } + if (task === 'SubProcess' && subProcess) { + content = this.getBPMNSubProcessShape(node); + } + content.id = task + node.id; + eventshape.children = [content]; + eventshape.style.fill = 'transparent'; + eventshape.style.strokeColor = 'transparent'; + eventshape.style.strokeWidth = 0; + return eventshape; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNSubprocessEvent = function (node, subProcessEventsShapes, events) { + var annotations; + var ports; + if (events.annotations.length !== 0) { + for (var i = 0; i < events.annotations.length; i++) { + var annot = events.annotations[parseInt(i.toString(), 10)]; + annotations = node.initAnnotationWrapper(annot); + annotations.width = events.width; + annotations.height = events.height; + subProcessEventsShapes.children.push(annotations); + } + } + if (events.ports.length !== 0) { + for (var i = 0; i < events.ports.length; i++) { + var port = events.ports[parseInt(i.toString(), 10)]; + ports = node.initPortWrapper(port); + subProcessEventsShapes.children.push(ports); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNAdhocShape = function (node, adhocNode, subProcess) { + adhocNode.id = node.id + '_0_adhoc'; + adhocNode.width = 12; + adhocNode.height = 8; + adhocNode.style.fill = 'black'; + adhocNode.style.strokeColor = node.style.strokeColor; + adhocNode.margin.bottom = 5; + adhocNode.horizontalAlignment = 'Left'; + adhocNode.verticalAlignment = 'Bottom'; + adhocNode.relativeMode = 'Object'; + adhocNode.data = 'M 49.832 76.811 v -2.906 c 0 0 0.466 -1.469 1.931 -1.5 c 1.465 -0.031 2.331 1.219 2.897 1.688 ' + + 's 1.06 0.75 1.526 0.75 c 0.466 0 1.548 -0.521 1.682 -1.208 s 0.083 3.083 0.083 3.083 s -0.76 0.969 -1.859 0.969 ' + + 'c -1.066 0 -1.865 -0.625 -2.464 -1.438 s -1.359 -0.998 -2.064 -0.906 C 50.598 75.467 49.832 76.811 49.832 76.811 Z'; + if (subProcess && subProcess.adhoc === true) { + adhocNode.visible = true; + } + else { + adhocNode.visible = false; + } + return adhocNode; + }; + /** @private */ + BpmnDiagrams.prototype.getBPMNTextAnnotation = function (node, diagram, annotation, content) { + annotation.id = annotation.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + annotation.nodeId = node.id; + var annotationContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var annotationPath = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var textElement = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"](); + var margin = 10; + annotationPath.id = node.id + '_' + annotation.id + '_path'; + annotationPath.width = annotation.width; + annotationPath.height = annotation.height; + annotationPath.relativeMode = 'Object'; + textElement.id = node.id + '_' + annotation.id + '_text'; + textElement.content = annotation.text; + var style = node.style; + textElement.style = { + fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity, + bold: style.bold, textWrapping: style.textWrapping, color: style.color, fill: 'white', + fontFamily: style.fontFamily, whiteSpace: style.whiteSpace, textOverflow: 'Wrap', + strokeColor: 'none', strokeWidth: 0, + strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textDecoration: style.textDecoration + }; + textElement.horizontalAlignment = 'Center'; + textElement.verticalAlignment = 'Center'; + textElement.relativeMode = 'Object'; + textElement.margin = { left: 5, right: 5, top: 5, bottom: 5 }; + annotationContainer.offsetX = node.offsetX + annotation.length * + Math.cos(annotation.angle * (Math.PI / 180)); + annotationContainer.offsetY = node.offsetY + annotation.length * + Math.sin(annotation.angle * (Math.PI / 180)); + annotationContainer.float = true; + annotationContainer.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["Transform"].Self; + annotationContainer.id = node.id + '_textannotation_' + annotation.id; + annotationContainer.style.strokeColor = 'transparent'; + annotationContainer.margin = { left: margin, right: margin, top: margin, bottom: margin }; + annotationContainer.relativeMode = 'Object'; + annotationContainer.rotateAngle = 0; + annotationContainer.children = [annotationPath, textElement]; + var annotationNode = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"](node.shape, 'annotations', { id: annotationContainer.id, shape: { type: 'Bpmn', shape: 'TextAnnotation' } }, true); + annotationNode.ports = [ + { + id: annotationPath.id + '_port', shape: 'Square', + offset: { x: 0, y: 0.5 } + } + ]; + annotationNode.offsetX = annotationContainer.offsetX; + annotationNode.offsetY = annotationContainer.offsetY; + annotationNode.text = annotation.text; + annotationNode.angle = annotation.angle; + annotationNode.length = annotation.length; + annotationNode.width = annotation.width; + annotationNode.height = annotation.height; + annotationNode.wrapper = annotationContainer; + annotationContainer.children.push(annotationNode.initPortWrapper(annotationNode.ports[0])); + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_12__["Rect"](0, 0, 0, 0); + var width = node.width || node.minWidth || 0; + var height = node.height || node.minHeight || 0; + if (width !== undefined && height !== undefined) { + bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_12__["Rect"](node.offsetX - width / 2, node.offsetY - height / 2, width, height); + } + this.setAnnotationPath(bounds, annotationContainer, { x: annotationNode.offsetX, y: annotationNode.offsetY }, annotationNode, annotation.length, annotation.angle); + var connector = { + id: node.id + '_' + annotation.id + '_connector', + constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ConnectorConstraints"].Default & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_9__["ConnectorConstraints"].DragTargetEnd | _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ConnectorConstraints"].Drag), + sourceID: node.id, targetID: annotationContainer.id, + targetDecorator: { shape: 'None' } + }; + var annotationConnector = new _objects_connector__WEBPACK_IMPORTED_MODULE_8__["Connector"](node.shape, 'annotations', connector, true); + annotationConnector.targetPortID = annotationNode.ports[0].id; + annotationConnector.init(diagram); + annotationConnector.wrapper.float = false; + annotationConnector.wrapper.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["Transform"].Self; + content.children.push(annotationConnector.wrapper); + annotationConnector.zIndex = 10000; + var entry = this.annotationObjects[node.id]; + if (!entry) { + entry = {}; + } + if (!entry[annotation.id]) { + entry[annotation.id] = {}; + } + var nodeKey = 'node'; + var connKey = 'connector'; + entry[annotation.id]["" + nodeKey] = annotationNode; + entry[annotation.id]["" + connKey] = annotationConnector; + this.annotationObjects[node.id] = entry; + diagram.initObject(annotationNode, undefined, false); + annotationNode.zIndex = 10000; + return annotationContainer; + }; + /** @private */ + BpmnDiagrams.prototype.renderBPMNTextAnnotation = function (diagram, annotation, content) { + annotation.id = annotation.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["randomId"])(); + var annotationsContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var annotationPath = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var textObject = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"](); + var margin = 10; + annotationPath.id = '_' + annotation.id + '_path'; + annotationPath.width = annotation.width; + annotationPath.height = annotation.height; + annotationPath.relativeMode = 'Object'; + textObject.id = annotation.id + '_text'; + textObject.content = annotation.shape.annotation.text; + var textStyle = annotation.style; + textObject.style = { + fontSize: textStyle.fontSize, italic: textStyle.italic, gradient: null, opacity: textStyle.opacity, + bold: textStyle.bold, textWrapping: textStyle.textWrapping, color: textStyle.color, fill: 'white', + fontFamily: textStyle.fontFamily, whiteSpace: textStyle.whiteSpace, textOverflow: 'Wrap', + strokeColor: 'none', strokeWidth: 0, + strokeDashArray: textStyle.strokeDashArray, textAlign: textStyle.textAlign, textDecoration: textStyle.textDecoration + }; + textObject.horizontalAlignment = 'Left'; + textObject.verticalAlignment = 'Center'; + textObject.relativeMode = 'Object'; + textObject.margin = { left: 5, right: 5, top: 5, bottom: 5 }; + annotationsContainer.offsetX = annotation.offsetX + annotation.shape.annotation.length * + Math.cos(annotation.shape.annotation.angle * (Math.PI / 180)); + annotationsContainer.offsetY = annotation.offsetY + annotation.shape.annotation.length * + Math.sin(annotation.shape.annotation.angle * (Math.PI / 180)); + annotationsContainer.float = true; + // annotationContainer.transform = Transform.Self; + annotationsContainer.id = annotation.id + '_textannotation_' + annotation.id; + annotationsContainer.style.strokeColor = 'transparent'; + annotationsContainer.margin = { left: margin, right: margin, top: margin, bottom: margin }; + annotationsContainer.relativeMode = 'Object'; + annotationsContainer.rotateAngle = 0; + annotationsContainer.children = [annotationPath, textObject]; + var annotationObject = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"](annotation.shape, 'annotations', { id: annotationsContainer.id, shape: { type: 'Bpmn', shape: 'TextAnnotation' } }, true); + annotationObject.ports = [ + { + id: annotationPath.id + '_port', shape: 'Square', + offset: { x: 0, y: 0.5 } + } + ]; + annotationObject.offsetX = annotationsContainer.offsetX; + annotationObject.offsetY = annotationsContainer.offsetY; + if (annotationObject.shape && annotationObject.shape.annotation) { + annotationObject.text = annotation.shape.annotation.text; + annotationObject.angle = annotation.shape.annotation.angle; + annotationObject.length = annotation.shape.annotation.length; + } + annotationObject.width = annotation.width; + annotationObject.height = annotation.height; + annotationObject.wrapper = annotationsContainer; + annotationsContainer.children.push(annotationObject.initPortWrapper(annotationObject.ports[0])); + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_12__["Rect"](0, 0, 0, 0); + var width = annotation.width || 0; + var height = annotation.height || 0; + if (width !== undefined && height !== undefined) { + bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_12__["Rect"](annotation.offsetX - width / 2, annotation.offsetY - height / 2, width, height); + } + this.setAnnotationPath(bounds, annotationsContainer, { x: annotationObject.offsetX, y: annotationObject.offsetY }, annotationObject, annotation.length, annotation.angle); + return annotationsContainer; + }; + /** @private */ + BpmnDiagrams.prototype.getTextAnnotationWrapper = function (node, id) { + if (node && node.shape.type === 'Bpmn') { + var shape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() ? node.shape.bpmnShape : node.shape.shape); + if (shape === 'TextAnnotation') { + return node.wrapper.children[1]; + } + else if (this.annotationObjects[node.id] && this.annotationObjects[node.id]["" + id]) { + var annotationNode = this.annotationObjects[node.id]["" + id].node; + return this.getTextAnnotationWrapper(annotationNode, id); + } + } + return null; + }; + /** @private */ + BpmnDiagrams.prototype.addAnnotation = function (node, annotation, diagram) { + var bpmnShapeContent = node.wrapper.children[0]; + var shape = node.shape; + annotation.nodeId = node.id; + var annotationObj = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["BpmnAnnotation"](shape, 'annotations', annotation, true); + shape.annotations.push(annotationObj); + bpmnShapeContent.children.push(this.getBPMNTextAnnotation(node, diagram, annotation, bpmnShapeContent)); + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + node.wrapper.arrange(node.wrapper.desiredSize); + return this.annotationObjects[node.id][annotation.id].connector; + }; + BpmnDiagrams.prototype.clearAnnotations = function (obj, diagram) { + var bpmnShape = obj.shape; + if (bpmnShape.annotations.length) { + for (var i = bpmnShape.annotations.length - 1; i >= 0; i--) { + var annotation = bpmnShape.annotations[parseInt(i.toString(), 10)]; + this.removeAnnotationObjects(obj, annotation, diagram); + } + } + delete this.annotationObjects[obj.id]; + }; + /** @private */ + BpmnDiagrams.prototype.checkAndRemoveAnnotations = function (node, diagram) { + //remove connector path + //remove annotation node wrapper + //remove from a quad + if (node.shape.type === 'Bpmn') { + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.shape === 'TextAnnotation') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.bpmnShape === 'TextAnnotation')) { + var id = node.id.split('_'); + var annotationId = id[id.length - 1]; + var nodeId = id[id.length - 3] || id[0]; + var parentNode = diagram.nameTable["" + nodeId]; + var bpmnShape = parentNode.shape; + for (var _i = 0, _a = bpmnShape.annotations; _i < _a.length; _i++) { + var annotation = _a[_i]; + if (annotation.id === annotationId) { + var index = bpmnShape.annotations.indexOf(annotation); + if (index !== -1) { + diagram.removeDependentConnector(node); + this.removeAnnotationObjects(parentNode, annotation, diagram); + return true; + } + } + } + } + else if (node.shape.annotations && node.shape.annotations.length) { + this.clearAnnotations(node, diagram); + } + } + return false; + }; + BpmnDiagrams.prototype.removeAnnotationObjects = function (parentNode, annotation, diagram) { + var bpmnShape = parentNode.shape; + var index = bpmnShape.annotations.indexOf(annotation); + if (index !== -1) { + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramAction"].UndoRedo) && !(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["DiagramAction"].Group)) { + var entry_1 = { + type: 'CollectionChanged', changeType: 'Remove', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(annotation), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_7__["cloneObject"])(annotation), category: 'Internal' + }; + diagram.addHistoryEntry(entry_1); + } + bpmnShape.annotations.splice(index, 1); + var entry = this.annotationObjects[parentNode.id]; + if (entry && entry[annotation.id]) { + var annotationNode = entry[annotation.id].node; + var annotationConnector = entry[annotation.id].connector; + diagram.removeElements(annotationNode); + diagram.removeElements(annotationConnector); + var nodeContent = parentNode.wrapper.children[0]; + index = nodeContent.children.indexOf(annotationNode.wrapper); + nodeContent.children.splice(index, 1); + index = nodeContent.children.indexOf(annotationConnector.wrapper); + nodeContent.children.splice(index, 1); + diagram.removeFromAQuad(annotationNode); + diagram.removeFromAQuad(annotationConnector); + delete diagram.nameTable[annotationNode.id]; + delete diagram.nameTable[annotationConnector.id]; + delete entry[annotation.id]; + } + } + }; + BpmnDiagrams.prototype.setAnnotationPath = function (parentBounds, wrapper, position, node, length, angle) { + var rotateAngle = this.getAnnotationPathAngle(position, parentBounds); + var data = ''; + var pathElement = wrapper.children[0]; + var portElement = wrapper.children[2]; + var textElement = wrapper.children[1]; + pathElement.horizontalAlignment = 'Stretch'; + pathElement.verticalAlignment = 'Stretch'; + textElement.margin.left = textElement.margin.right = 5; + textElement.margin.top = textElement.margin.bottom = 5; + var point; + var segment; + if (rotateAngle === 0) { + data = 'M10,20 L0,20 L0,0 L10,0'; + pathElement.width = 10; + pathElement.horizontalAlignment = 'Left'; + portElement.setOffsetWithRespectToBounds(0, 0.5, 'Fraction'); + textElement.margin.top = textElement.margin.bottom = 10; + point = parentBounds.middleRight; + segment = { + x1: parentBounds.right, y1: parentBounds.top, + x2: parentBounds.right, y2: parentBounds.bottom + }; + } + else if (rotateAngle === 180) { + data = 'M0,0 L10,0 L10,20 L0,20'; + pathElement.width = 10; + pathElement.horizontalAlignment = 'Right'; + portElement.setOffsetWithRespectToBounds(1, 0.5, 'Fraction'); + textElement.margin.top = textElement.margin.bottom = 10; + point = parentBounds.middleLeft; + segment = { + x1: parentBounds.left, y1: parentBounds.top, + x2: parentBounds.left, y2: parentBounds.bottom + }; + } + else if (rotateAngle === 90) { + data = 'M20,10 L20,0 L0,0 L0,10'; + pathElement.height = 10; + pathElement.verticalAlignment = 'Top'; + portElement.setOffsetWithRespectToBounds(0.5, 0, 'Fraction'); + textElement.margin.left = textElement.margin.right = 10; + point = parentBounds.bottomCenter; + segment = { + x1: parentBounds.right, y1: parentBounds.bottom, + x2: parentBounds.left, y2: parentBounds.bottom + }; + } + else { + data = 'M0,0 L0,10 L20,10 L20,0'; + pathElement.height = 10; + pathElement.verticalAlignment = 'Bottom'; + portElement.setOffsetWithRespectToBounds(0.5, 1, 'Fraction'); + textElement.margin.left = textElement.margin.right = 10; + point = parentBounds.topCenter; + segment = { + x1: parentBounds.right, y1: parentBounds.top, + x2: parentBounds.left, y2: parentBounds.top + }; + } + var center = parentBounds.center; + var endPoint = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].transform(position, angle, Math.max(parentBounds.width, parentBounds.height)); + point = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_10__["getIntersectionPoints"])(segment, [center, endPoint], false, center); + pathElement.data = data; + if (length !== undefined && angle !== undefined) { + point = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].transform(point, angle, length); + wrapper.offsetX = node.offsetX = point.x; + wrapper.offsetY = node.offsetY = point.y; + } + }; + /** @private */ + BpmnDiagrams.prototype.isBpmnTextAnnotation = function (activeLabel, diagram) { + if (this.annotationObjects) { + var parentNodeId = activeLabel.parentId; + var annotationId = activeLabel.id; + var parentNode = diagram.nameTable["" + parentNodeId]; + if (parentNode && parentNode.shape.type === 'Bpmn' && this.annotationObjects["" + parentNodeId] && + this.annotationObjects["" + parentNodeId]["" + annotationId]) { + return parentNode; + } + return null; + } + return null; + }; + /** @private */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + BpmnDiagrams.prototype.updateTextAnnotationContent = function (parentNode, activeLabel, text, diagram) { + var parentNodeId = activeLabel.parentId; + var annotationId = activeLabel.id; + if (this.annotationObjects["" + parentNodeId] && this.annotationObjects["" + parentNodeId]["" + annotationId]) { + for (var _i = 0, _a = parentNode.shape.annotations; _i < _a.length; _i++) { + var annotation = _a[_i]; + if (annotation.id === annotationId) { + annotation.text = text; + var wrapper = this.annotationObjects["" + parentNodeId]["" + annotationId].node.wrapper.children[1]; + wrapper.content = text; + wrapper.visible = true; + parentNode.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_13__["Size"]()); + parentNode.wrapper.arrange(parentNode.wrapper.desiredSize); + } + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateQuad = function (actualObject, diagram) { + var annotation = actualObject.shape.annotations; + var annotationNode; + if (annotation && annotation.length > 0) { + for (var i = 0; i < annotation.length; i++) { + annotationNode = this.annotationObjects[actualObject.id][annotation[parseInt(i.toString(), 10)].id].node; + diagram.updateQuad(annotationNode); + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateTextAnnotationProp = function (actualObject, oldObject, diagram, isChild) { + if (actualObject.shape.type === 'Bpmn') { + var annotation = actualObject.shape.annotations; + if (annotation && annotation.length > 0) { + for (var i = 0; i < actualObject.wrapper.children[0].children.length; i++) { + for (var j = 0; j < annotation.length; j++) { + var annotationId = actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].id.split('_'); + var id = annotationId[annotationId.length - 1]; + if (id === annotation[parseInt(j.toString(), 10)].id) { + var annotationNode = this.annotationObjects[actualObject.id][annotation[parseInt(j.toString(), 10)].id].node; + var connector = this.annotationObjects[actualObject.id][annotation[parseInt(j.toString(), 10)].id].connector; + var direction = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_10__["getPortDirection"])(connector.targetPoint, actualObject.wrapper.bounds, actualObject.wrapper.bounds, false); + var position = connector.sourcePoint; + // EJ2-63939 - If it is swimlane children node means we take the offsetX from the wrapper. + position = { + x: connector.sourcePoint.x + (isChild ? actualObject.wrapper.offsetX : actualObject.offsetX) - (oldObject.offsetX), + y: connector.sourcePoint.y + (isChild ? actualObject.wrapper.offsetY : actualObject.offsetY) - (oldObject.offsetY) + }; + position = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].transform(position, annotation[parseInt(j.toString(), 10)].angle, annotation[parseInt(j.toString(), 10)].length); + actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].offsetX = + annotationNode.offsetX = position.x; + actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].offsetY = + annotationNode.offsetY = position.y; + diagram.updateQuad(annotationNode); + } + } + } + } + } + }; + // /** @private */ + // public findInteractableObject(obj: ConnectorModel, diagram: Diagram): NodeModel | ConnectorModel { + // if (obj.targetID) { + // let targetNode: NodeModel = diagram.nameTable[obj.targetID]; + // if (targetNode.shape.type === 'Bpmn' && (targetNode.shape as BpmnShape).shape === 'TextAnnotation') { + // return targetNode; + // } + // } + // return obj; + // } + /** @private */ + BpmnDiagrams.prototype.getSubprocessChildCount = function (node) { + var count = 0; + var shape = node.shape.activity; + //let loopType: string; + var subProcess = shape.subProcess; + var loopType = subProcess.loop; + if (loopType !== undefined && loopType !== 'None') { + count++; + } + if ((subProcess.compensation !== undefined) && + subProcess.compensation === true) { + count++; + } + if ((subProcess.collapsed !== undefined) && + subProcess.collapsed === true) { + count++; + } + if ((subProcess.adhoc !== undefined) && + subProcess.adhoc === true) { + count++; + } + return count; + }; + /** @private */ + BpmnDiagrams.prototype.getTaskChildCount = function (node) { + var count = 0; + var shape = node.shape.activity; + var task = shape.task; + var loopType; + if ((task.compensation !== undefined) && + task.compensation === true) { + count++; + } + if ((task.loop !== undefined) && + task.loop !== 'None') { + count++; + } + return count; + }; + /** @private */ + BpmnDiagrams.prototype.setStyle = function (child, node) { + //set style + child.style.fill = node.style.fill; + child.style.strokeColor = node.style.strokeColor; + child.style.strokeWidth = node.style.strokeWidth; + child.style.strokeDashArray = node.style.strokeDashArray; + child.style.opacity = node.style.opacity; + child.style.gradient = node.style.gradient; + if ((node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["NodeConstraints"].Shadow) !== 0) { + child.shadow = node.shadow; + } + }; + //End code conversion region + //Update BPMN Shapes on NodePropertyChange + //Start region + /** @private */ + BpmnDiagrams.prototype.updateBPMN = function (changedProp, oldObject, actualObject, diagram) { + var newShape = changedProp.shape || {}; + var elementWrapper = actualObject.wrapper.children[0]; + var actualShape = actualObject.shape.shape || + (actualObject.shape.bpmnShape); + var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined; + if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'Gateway') || newShape.shape === 'Gateway') && + newShape.gateway) { + this.removeBPMNElementFromDOM(actualObject, diagram); + actualObject.wrapper.children[0] = this.getBPMNGatewayShape(actualObject); + } + else if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'DataObject') || newShape.shape === 'DataObject') && + newShape.dataObject) { + this.removeBPMNElementFromDOM(actualObject, diagram); + actualObject.wrapper.children[0] = this.getBPMNDataObjectShape(actualObject); + } + else if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'Activity') || newShape.shape === 'Activity') && + newShape.activity) { + this.removeBPMNElementFromDOM(actualObject, diagram); + actualObject.wrapper.children[0] = this.getBPMNActivityShape(actualObject); + } + /** + * EJ2-EJ2-60644 - Bpmn event fill color does not applied while changing event in runtime. + */ + else if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'Event' || + actualObject.shape.bpmnShape === 'Event' || actualObject.shape.shape === 'Event') || newShape.shape === 'Event') && + newShape.event) { + this.removeBPMNElementFromDOM(actualObject, diagram); + var shapeEvent = newShape.event; + actualObject.wrapper.children[0] = this.getBPMNEventShape(actualObject, shapeEvent); + } + else if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'Message') || newShape.shape === 'Message') || + ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && newShape.bpmnShape === 'DataSource') || newShape.shape === 'DataSource')) { + this.removeBPMNElementFromDOM(actualObject, diagram); + actualObject.wrapper.children[0] = this.getBPMNShapes(actualObject); + //} + // else if (newShape.shape === 'Group') { + // actualObject.wrapper.children[0] = this.getBPMNGroup(actualObject, diagram); + } + else if (newShape.gateway !== undefined || (actualShape === 'Gateway' && sizeChanged)) { + this.updateBPMNGateway(actualObject, changedProp); + } + else if (newShape.dataObject !== undefined || (actualShape === 'DataObject' && sizeChanged)) { + this.updateBPMNDataObject(actualObject, changedProp, oldObject); + } + else if (newShape.activity !== undefined || (actualShape === 'Activity' && sizeChanged)) { + this.updateBPMNActivity(actualObject, changedProp, oldObject, diagram); + } + else if (newShape.event !== undefined || (actualShape === 'Event' && sizeChanged)) { + this.updateBPMNEvent(actualObject, changedProp, oldObject); + } + actualObject.wrapper.children[0].id = actualObject.wrapper.children[0].id || elementWrapper.id; + if (changedProp.style) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(changedProp.style, elementWrapper instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_3__["Container"] ? ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.shape === 'Activity' || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.bpmnShape === 'Activity'))) ? + elementWrapper.children[0].children[0] : + elementWrapper.children[0] : elementWrapper); + if (changedProp.style && changedProp.style.strokeColor) { + if (elementWrapper.children.length > 0) { + if (((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.shape === 'Activity') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.bpmnShape === 'Activity')) && + actualObject.shape.activity.activity === 'SubProcess') { + var child = elementWrapper.children[0]; + this.updateBPMNStyle(child, changedProp.style.strokeColor); + } + else if (((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.shape === 'Gateway') + || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.bpmnShape === 'Gateway')) || + ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.shape === 'Event') + || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && actualObject.shape.bpmnShape === 'Event'))) { + this.updateBPMNStyle(elementWrapper, changedProp.style.strokeColor); + } + } + } + } + }; + /** + * EJ2-60574 -BPMN shape do not get changed at runtime properly + */ + BpmnDiagrams.prototype.removeBPMNElementFromDOM = function (actualObject, diagram) { + for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["removeElement"])(actualObject.id + '_groupElement', elementId); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNStyle = function (elementWrapper, changedProp) { + for (var i = 0; i < elementWrapper.children.length; i++) { + var child = elementWrapper.children[parseInt(i.toString(), 10)]; + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])({ strokeColor: changedProp }, child); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNGateway = function (node, changedProp) { + var bpmnShape = node.shape; + var elementWrapper = node.wrapper.children[0]; + if (bpmnShape) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(node.style, elementWrapper.children[0]); + var pathData = getBpmnGatewayShapePathData(bpmnShape.gateway.type); + var dataobjTypeNode = this.updateGatewaySubType(elementWrapper, node, pathData); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["removeElement"])(elementWrapper.children[1].id); + elementWrapper.children.splice(1, 1); + elementWrapper.children.push(dataobjTypeNode); + } + if (changedProp.width !== undefined || changedProp.height !== undefined) { + this.setSizeForBPMNGateway(node.shape.gateway, elementWrapper, changedProp.width || node.width, changedProp.height || node.height); + } + }; + /** + * Used to update Bpmn gateway child in runtime + * EJ2-60581 + * @param elementWrapper + * @param node + * @param pathData + * @returns + */ + BpmnDiagrams.prototype.updateGatewaySubType = function (elementWrapper, node, pathData) { + var dataobjTypeNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + dataobjTypeNode.id = node.id + '_1_gatewayType'; + dataobjTypeNode.width = elementWrapper.children[1].width; + dataobjTypeNode.height = elementWrapper.children[1].height; + dataobjTypeNode.margin.left = elementWrapper.children[1].margin.left; + dataobjTypeNode.margin.top = elementWrapper.children[1].margin.top; + dataobjTypeNode.data = pathData; + dataobjTypeNode.offsetX = elementWrapper.children[1].offsetX; + dataobjTypeNode.offsetY = elementWrapper.children[1].offsetY; + dataobjTypeNode.style = elementWrapper.children[1].style; + dataobjTypeNode.horizontalAlignment = elementWrapper.children[1].horizontalAlignment; + dataobjTypeNode.verticalAlignment = elementWrapper.children[1].verticalAlignment; + dataobjTypeNode.relativeMode = elementWrapper.children[1].relativeMode; + dataobjTypeNode.transform = elementWrapper.children[1].transform; + return dataobjTypeNode; + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNDataObject = function (node, newObject, oldObject) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0]; + if (bpmnShape) { + var elementWrapperChild1 = elementWrapper.children[1]; + var elementWrapperChild2 = elementWrapper.children[2]; + if (newObject.style !== undefined) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(newObject.style, elementWrapper.children[0]); + elementWrapperChild1.style.opacity = node.style.opacity; + elementWrapperChild2.style.opacity = node.style.opacity; + } + if (bpmnShape.dataObject) { + switch (bpmnShape.dataObject.type) { + case 'None': + elementWrapperChild1.visible = false; + break; + case 'Input': + elementWrapperChild1.style.fill = 'white'; + break; + case 'Output': + elementWrapperChild1.style.fill = 'black'; + break; + } + if (oldObject.shape.dataObject.type === 'None') { + elementWrapperChild1.visible = true; + } + if (newObject.shape.dataObject.collection !== undefined) { + elementWrapperChild2.visible = bpmnShape.dataObject.collection; + } + } + } + if (newObject.width !== undefined || newObject.height !== undefined) { + this.setSizeForBPMNDataObjects(node.shape.dataObject, elementWrapper, newObject.width || node.width, newObject.height || node.height); + } + }; + /** @private */ + BpmnDiagrams.prototype.getEvent = function (node, oldObject, event, child0, child1, child2) { + switch (event) { + case 'Start': + child1.visible = false; + child0.style.strokeDashArray = ''; + child2.style.fill = 'white'; + child2.style.strokeColor = 'black'; + child0.style.fill = 'white'; + break; + case 'NonInterruptingStart': + child0.style.strokeDashArray = '2 3'; + child2.style.fill = 'white'; + child0.style.fill = 'white'; + child2.style.strokeColor = 'black'; + child1.visible = false; + break; + case 'Intermediate': + child0.style.strokeDashArray = ''; + child0.style.fill = 'white'; + child1.style.strokeDashArray = ''; + child0.style.gradient = null; + child2.style.fill = 'white'; + child2.style.strokeColor = 'black'; + this.updateEventVisibility(oldObject, child1); + break; + case 'NonInterruptingIntermediate': + child0.style.fill = 'white'; + child0.style.gradient = null; + child2.style.fill = 'white'; + child2.style.strokeColor = 'black'; + child0.style.strokeDashArray = '2 3'; + child1.style.strokeDashArray = '2 3'; + this.updateEventVisibility(oldObject, child1); + break; + case 'ThrowingIntermediate': + case 'End': + child0.style.fill = event !== 'End' ? 'white' : 'black'; + child0.style.strokeDashArray = ''; + child1.style.strokeDashArray = ''; + child0.style.gradient = null; + child2.style.fill = 'black'; + this.updateEventVisibility(oldObject, child1); + child2.style.strokeColor = node.style.fill; + break; + } + }; + /** @private */ + BpmnDiagrams.prototype.updateEventVisibility = function (oldObject, child1) { + if (oldObject.shape.activity && oldObject.shape.activity.subProcess && + oldObject.shape.activity.subProcess.events && + oldObject.shape.activity.subProcess.events[0] !== undefined && + oldObject.shape.activity.subProcess.events[0].event !== undefined) { + if (oldObject.shape.activity.subProcess.events[0].event === 'NonInterruptingStart' || + oldObject.shape.activity.subProcess.events[0].event === 'Start') { + child1.visible = true; + } + } + else if (oldObject.shape.event !== undefined) { + if (oldObject.shape.event.event === 'NonInterruptingStart' || + oldObject.shape.event.event === 'Start') { + child1.visible = true; + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNEvent = function (node, newObject, oldObject) { + var bpmnShape = newObject.shape; + var trigger; + var elementWrapper = node.wrapper.children[0]; + if (bpmnShape) { + var elementWrapperChild0 = elementWrapper.children[0]; + var elementWrapperChild1 = elementWrapper.children[1]; + var elementWrapperChild2 = elementWrapper.children[2]; + //let event: string; + if (newObject.style !== undefined) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(node.style, elementWrapper.children[0]); + if (newObject.style.opacity !== undefined || newObject.style.strokeColor !== undefined) { + elementWrapperChild1.style.opacity = node.style.opacity; + elementWrapperChild1.style.strokeColor = node.style.strokeColor; + } + } + var event_1 = bpmnShape.event.event; + trigger = bpmnShape.event.trigger; + if (event_1 !== undefined) { + this.getEvent(node, oldObject, event_1, elementWrapperChild0, elementWrapperChild1, elementWrapperChild2); + } + if (trigger !== undefined) { + this.updateBPMNEventTrigger(node, newObject); + } + } + if (newObject.width !== undefined || newObject.height !== undefined || trigger !== undefined) { + this.setSizeForBPMNEvents(node.shape.event, elementWrapper, newObject.width || node.width, newObject.height || node.height); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNEventTrigger = function (node, newObject) { + var bpmnShape = node.shape; + var elementWrapper = node.wrapper.children[0].children[2]; + elementWrapper.canMeasurePath = true; + if (newObject.style && + (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined)) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(node.style, elementWrapper); + } + var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(bpmnShape.event.trigger); + elementWrapper.data = bpmnshapeTriggerdata; + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNActivity = function (node, newObject, oldObject, diagram) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0]; + var size = this.getSize(node, elementWrapper.children[0].children[0]); + if (bpmnShape) { + var oldProp = oldObject.shape.activity.activity; + var actualObjectProp = node.shape.activity.activity; + if ((oldProp === 'SubProcess' || oldProp === 'Task') && (actualObjectProp === 'SubProcess' || actualObjectProp === 'Task')) { + diagram.removeElements(node); + node.wrapper.children[0] = this.getBPMNActivityShape(node); + } + else { + if (actualObjectProp === 'Task' && bpmnShape.activity.task !== undefined) { + this.updateBPMNActivityTask(node, newObject); + var subChildCount = this.getTaskChildCount(node); + var x = void 0; + var childSpace = subChildCount * 12; + var area = size.width / 2 - childSpace; + if (subChildCount === 1) { + x = area + 8; + } + else { + x = area + (subChildCount - 1) * 8; + } + if (bpmnShape.activity.task.loop !== undefined) { + this.updateBPMNActivityTaskLoop(node, newObject, x, subChildCount, area, 2); + } + } + if (actualObjectProp === 'SubProcess' && bpmnShape.activity.subProcess !== undefined) { + this.updateBPMNActivitySubProcess(node, newObject, oldObject, diagram); + } + } + this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node); + } + if (newObject.width !== undefined || newObject.height !== undefined) { + this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNActivityTask = function (node, newObject) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0].children[0]; + var task = bpmnShape.activity.task; + for (var i = 0; i < elementWrapper.children.length; i++) { + if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_taskTypeService') { + elementWrapper.children.splice(i, 1); + var element = document.getElementById(node.id + '_1_taskTypeService'); + element.parentNode.removeChild(element); + } + } + if (task.type === 'Receive' || task.type === 'Send') { + elementWrapper.children[1].height = 14; + } + else { + elementWrapper.children[1].height = 20; + } + if (task.type !== undefined) { + var bpmnshapeTaskdata = getBpmnTaskShapePathData(task.type); + elementWrapper.children[1].data = bpmnshapeTaskdata; + for (var i = 0; i < elementWrapper.children.length; i++) { + if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_tasktType') { + elementWrapper.children.splice(i, 1); + var element = document.getElementById(node.id + '_1_tasktType'); + element.parentNode.removeChild(element); + } + } + var taskTypeNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + taskTypeNode.id = node.id + '_1_tasktType'; + taskTypeNode.margin.left = 5; + taskTypeNode.margin.top = 5; + taskTypeNode.data = bpmnshapeTaskdata; + taskTypeNode.style.fill = 'transparent'; + taskTypeNode.style.opacity = node.style.opacity; + /** + * Used to update the Bpmn activity task type at runtime + * EJ2-60586 + */ + if (task.type === 'Receive' || task.type === 'Send') { + taskTypeNode.width = 18; + taskTypeNode.height = 16; + if (task.type === 'Send') { + taskTypeNode.style.fill = 'black'; + } + elementWrapper.children.splice(1, 0, taskTypeNode); + } + else if (task.type === 'Manual') { + taskTypeNode.width = 16; + taskTypeNode.height = 11; + elementWrapper.children.splice(1, 0, taskTypeNode); + } + else if (task.type !== 'Service') { + taskTypeNode.width = 20; + taskTypeNode.height = 20; + elementWrapper.children.splice(1, 0, taskTypeNode); + } + else { + taskTypeNode.width = 20; + taskTypeNode.height = 20; + elementWrapper.children.splice(1, 0, taskTypeNode); + var taskTypeNodeService = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + taskTypeNodeService.id = node.id + '_1_taskTypeService'; + taskTypeNodeService.data = bpmnshapeTaskdata; + taskTypeNodeService.margin.left = elementWrapper.children[1].margin.left + 9; + taskTypeNodeService.margin.top = elementWrapper.children[1].margin.top + 9; + taskTypeNodeService.style.fill = 'white'; + taskTypeNodeService.style.opacity = node.style.opacity; + elementWrapper.children.splice(2, 0, taskTypeNodeService); + } + } + if (bpmnShape.activity.task.call !== undefined) { + if (bpmnShape.activity.task.call !== false) { + elementWrapper.children[0].style.strokeWidth = 4; + } + else { + elementWrapper.children[0].style.strokeWidth = 1; + } + } + if (bpmnShape.activity.task.compensation !== undefined) { + if (bpmnShape.activity.task.compensation === true) { + elementWrapper.children[3].visible = true; + } + else { + elementWrapper.children[3].visible = false; + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNActivityTaskLoop = function (node, newObject, x, subChildCount, area, start) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0].children[0]; + var activity = bpmnShape.activity; + var loop; + var index = 0; + var bpmnshapeLoopdata; + if (activity.subProcess !== undefined) { + var subProcess = activity.subProcess; + index = (activity.subProcess.type === 'Transaction') ? 2 : 0; + loop = subProcess.loop; + bpmnshapeLoopdata = getBpmnLoopShapePathData(loop); + elementWrapper.children[2 + index].data = bpmnshapeLoopdata; + elementWrapper.children[2 + index].visible = (loop === 'None') ? false : true; + } + else if (activity.task !== undefined && activity.task.loop !== undefined) { + bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop); + elementWrapper.children[2].data = bpmnshapeLoopdata; + elementWrapper.children[2].visible = (activity.task.loop === 'None') ? false : true; + } + this.updateChildMargin(elementWrapper, subChildCount, area, x, start + index); + }; + /** @private */ + BpmnDiagrams.prototype.updateChildMargin = function (elementWrapper, subChildCount, area, x, start) { + if (subChildCount === 1) { + for (var i = start; i < elementWrapper.children.length; i++) { + if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) { + elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x; + x = area + 8; + } + } + } + else { + x = area + (subChildCount - 1) * 8; + for (var i = start; i < elementWrapper.children.length; i++) { + if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) { + elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x; + x += 12 + 8; + } + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNActivitySubProcess = function (node, newObject, oldObject, diagram) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0]; + var size = this.getSize(node, elementWrapper.children[0].children[0]); + var subProcess = bpmnShape.activity.subProcess; + var subChildCount = this.getSubprocessChildCount(node); + var x; + var childSpace = subChildCount * 12; + var area = size.width / 2 - childSpace; + if (subChildCount === 1) { + x = area + 8; + } + else { + x = area + (subChildCount - 1) * 8; + } + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(node.style, elementWrapper.children[0].children[0]); + if (subProcess.events !== undefined) { + this.updateBPMNSubProcessEvent(node, newObject, oldObject, diagram); + } + if (subProcess.adhoc !== undefined) { + this.updateBPMNSubProcessAdhoc(node, oldObject, subProcess, x, subChildCount, area); + } + if (subProcess.boundary !== undefined) { + this.updateBPMNSubProcessBoundary(node, subProcess); + } + if (subProcess.collapsed !== undefined) { + this.updateBPMNSubProcessCollapsed(node, oldObject, subProcess, x, subChildCount, area, diagram); + } + if (subProcess.compensation !== undefined) { + this.updateBPMNSubProcessCompensation(node, oldObject, subProcess, x, subChildCount, area); + } + if (subProcess.loop !== undefined) { + this.updateBPMNSubProcessLoop(node, oldObject, subProcess, x, subChildCount, area); + } + if (subProcess.transaction !== undefined) { + this.updateBPMNSubProcessTransaction(node, newObject, oldObject, diagram); + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessEvent = function (node, newObject, oldObject, diagram) { + var bpmnShape = newObject.shape; + var elementWrapper = node.wrapper.children[0]; + var nodeContent = elementWrapper.children[0]; + var index; + var j = 0; + var elementWrapperChildLen = elementWrapper.children[0].children.length; + var subProcess = bpmnShape.activity.subProcess; + var events; + var start = 2; + for (var _i = 0, _a = Object.keys(subProcess.events); _i < _a.length; _i++) { + var key = _a[_i]; + var eventIndex = Number(key); + var eventWrapper = nodeContent.children[eventIndex + start]; + var actualEvent = node.shape.activity.subProcess.events[parseInt(eventIndex.toString(), 10)]; + this.updateBPMNSubEvent(node, subProcess.events[parseInt(eventIndex.toString(), 10)], actualEvent, eventWrapper, newObject, oldObject, diagram); + } + }; + BpmnDiagrams.prototype.updateBPMNSubEvent = function (node, newEvent, actualEvent, eventWrapper, newObject, oldObject, diagram) { + var elementWrapper = node.wrapper.children[0]; + var bpmnShape = newObject.shape; + var child0 = eventWrapper.children[0]; + var child1 = eventWrapper.children[1]; + var child2 = eventWrapper.children[2]; + var eventType; + var trigger; + if (newObject.style) { + if (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined) { + elementWrapper.children[0].children[1].style.strokeColor = newObject.style.strokeColor; + elementWrapper.children[0].children[1].style.opacity = newObject.style.opacity; + } + } + if (bpmnShape.activity.subProcess !== undefined) { + eventType = newEvent.event; + trigger = newEvent.trigger; + } + if (eventType !== undefined) { + this.getEvent(newObject, oldObject, eventType, child0, child1, child2); + } + if (trigger !== undefined) { + if (newObject.style) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_6__["updateStyle"])(newObject.style, elementWrapper.children[0]); + } + var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(trigger); + eventWrapper.children[2].data = bpmnshapeTriggerdata; + } + if (newEvent.height !== undefined || newEvent.width !== undefined) { + this.getEventSize(newEvent, eventWrapper); + } + if (newEvent.id !== undefined) { + eventWrapper.id = newEvent.id; + } + if (newEvent.margin !== undefined) { + eventWrapper.margin = newEvent.margin; + } + if (newEvent.horizontalAlignment !== undefined) { + eventWrapper.horizontalAlignment = newEvent.horizontalAlignment; + } + if (newEvent.verticalAlignment !== undefined) { + eventWrapper.verticalAlignment = newEvent.verticalAlignment; + } + if (newEvent.offset !== undefined) { + eventWrapper.setOffsetWithRespectToBounds(actualEvent.offset.x, actualEvent.offset.y, 'Fraction'); + eventWrapper.relativeMode = 'Point'; + } + if (newEvent.annotations !== undefined) { + var annotations = void 0; + var annotation = elementWrapper.children[0].children[2]; + if (eventWrapper.children[3] && eventWrapper.children.length > 3) { + annotations = eventWrapper.children[3]; + diagram.updateAnnotation(newEvent.annotations[0], annotations, annotation); + } + } + if (newEvent.ports !== undefined) { + var ports = void 0; + var port = elementWrapper.children[0].children[2]; + if (eventWrapper.children[4] && eventWrapper.children.length > 4) { + ports = eventWrapper.children[4]; + diagram.updatePort(newEvent.ports[0], ports, port); + } + } + if (newEvent.visible !== undefined) { + this.updateDiagramContainerVisibility(eventWrapper, newEvent.visible); + } + }; + BpmnDiagrams.prototype.updateBPMNSubProcessTransaction = function (node, newObject, oldObject, diagram) { + var transaction = newObject.shape.activity.subProcess.transaction; + var eventContainer = node.wrapper.children[0].children[0].children[2]; + var actualEvent; + if (transaction.success !== undefined) { + actualEvent = node.shape.activity.subProcess.transaction.success; + this.updateBPMNSubEvent(node, transaction.success, actualEvent, eventContainer.children[0], newObject, oldObject, diagram); + } + if (transaction.cancel !== undefined) { + actualEvent = node.shape.activity.subProcess.transaction.cancel; + this.updateBPMNSubEvent(node, transaction.cancel, actualEvent, eventContainer.children[1], newObject, oldObject, diagram); + } + if (transaction.failure !== undefined) { + actualEvent = node.shape.activity.subProcess.transaction.failure; + this.updateBPMNSubEvent(node, transaction.failure, actualEvent, eventContainer.children[2], newObject, oldObject, diagram); + } + for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) { + var edge = _a[_i]; + var connector = diagram.nameTable["" + edge]; + switch (connector.sourcePortID) { + case 'success': + if (transaction.success && transaction.success.visible !== undefined) { + diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'success' }); + } + break; + case 'cancel': + if (transaction.cancel && transaction.cancel.visible !== undefined) { + diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'cancel' }); + } + break; + case 'failure': + if (transaction.failure && transaction.failure.visible !== undefined) { + diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'failure' }); + } + break; + } + } + }; + /** @private */ + BpmnDiagrams.prototype.getEventSize = function (events, wrapperChild) { + if (events.height !== undefined) { + wrapperChild.height = events.height; + wrapperChild.children[0].height = events.height; + wrapperChild.children[1].height = events.height * 0.85; + wrapperChild.children[2].height = events.height * 0.54; + } + if (events.width !== undefined) { + wrapperChild.width = events.width; + wrapperChild.children[0].width = events.width; + wrapperChild.children[1].width = events.width * 0.85; + wrapperChild.children[2].width = events.width * 0.54; + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessAdhoc = function (node, oldObject, subProcess, x, subChildCount, area) { + var shape = node.shape; + var elementWrapper = node.wrapper.children[0].children[0]; + var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0; + if (subProcess.adhoc === false) { + elementWrapper.children[3 + index].visible = false; + } + else { + elementWrapper.children[3 + index].visible = true; + } + this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + index); + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessBoundary = function (node, subProcess) { + var shape = node.shape; + var elementWrapper = (node.wrapper.children[0].children[0].children[0]); + if (subProcess.boundary === 'Default') { + elementWrapper.style.strokeWidth = 1; + elementWrapper.style.strokeDashArray = '1 0'; + } + if (subProcess.boundary === 'Call') { + elementWrapper.style.strokeWidth = 4; + elementWrapper.style.strokeDashArray = '1 0'; + } + if (subProcess.boundary === 'Event') { + elementWrapper.style.strokeWidth = 1; + elementWrapper.style.strokeDashArray = '2 2'; + } + }; + /** @private */ + BpmnDiagrams.prototype.updateElementVisibility = function (node, visible, diagram) { + if (node.shape.activity.subProcess.processes + && node.shape.activity.subProcess.processes.length > 0) { + var processes = node.shape.activity.subProcess.processes; + for (var j = processes.length - 1; j >= 0; j--) { + var currentNode = diagram.nameTable[processes[parseInt(j.toString(), 10)]]; + currentNode.visible = visible; + diagram.updateElementVisibility(currentNode.wrapper, currentNode, visible); + if (visible) { + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && currentNode.shape.shape === 'Event') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && currentNode.shape.bpmnShape === 'Event')) { + this.setEventVisibility(currentNode, currentNode.wrapper.children[0].children); + } + if (currentNode.shape.activity.activity === 'SubProcess') { + this.setSubProcessVisibility(currentNode); + } + } + var connectors = currentNode.inEdges.concat(currentNode.outEdges); + for (var i = connectors.length - 1; i >= 0; i--) { + var connector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]]; + connector.visible = visible; + diagram.updateElementVisibility(connector.wrapper, connector, visible); + } + } + } + if (visible) { + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.shape === 'Event') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.bpmnShape === 'Event')) { + this.setEventVisibility(node, node.wrapper.children[0].children); + } + if (node.shape.activity.activity === 'SubProcess') { + this.setSubProcessVisibility(node); + } + if (node.shape.activity.activity === 'Task' && + ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.shape === 'Activity') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_15__["isBlazor"])() && node.shape.bpmnShape === 'Activity')) + && node.shape.activity.subProcess.loop === 'None') { + node.wrapper.children[0].children[0].children[3].visible = false; + } + } + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessCollapsed = function (node, oldObject, subProcess, x, subChildCount, area, diagram) { + var eventLength = node.shape.activity.subProcess.events.length; + var elementWrapper = node.wrapper.children[0].children[0]; + var index = (node.shape.activity.subProcess.type === 'Transaction') ? 3 : 1; + if (subProcess.collapsed === false) { + this.updateElementVisibility(node, true, diagram); + elementWrapper.children[index + eventLength].visible = false; + } + else { + this.updateElementVisibility(node, false, diagram); + elementWrapper.children[index + eventLength].visible = true; + } + this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + eventLength); + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessCompensation = function (node, oldObject, subProcess, x, subChildCount, area) { + var elementWrapper = node.wrapper.children[0].children[0]; + var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0; + if (subProcess.compensation === false) { + elementWrapper.children[4 + index].visible = false; + } + else { + elementWrapper.children[4 + index].visible = true; + } + this.updateChildMargin(elementWrapper, subChildCount, area, x, 4 + index); + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNSubProcessLoop = function (node, oldObject, subProcess, x, subChildCount, area) { + this.updateBPMNActivityTaskLoop(node, node, x, subChildCount, area, 1); + }; + /** @private */ + BpmnDiagrams.prototype.updateBPMNConnector = function (actualObject, oldObject, connection, diagram) { + var flowType = connection.shape; + //EJ2-66905 - Changing BPMN flow connectors at runtime is not working properly. + var flow = actualObject.shape.flow; + if ((flowType.flow === 'Sequence' || flowType.sequence) && flow === 'Sequence') { + actualObject = this.getSequence(actualObject, oldObject, connection, diagram); + } + if ((flowType.flow === 'Association' || flowType.association) && flow === 'Association') { + actualObject = this.getAssociation(actualObject, oldObject, connection, diagram); + } + if ((flowType.flow === 'Message' || flowType.message) && flow === 'Message') { + actualObject = this.getMessage(actualObject, oldObject, connection, diagram); + } + return actualObject; + }; + /** @private */ + BpmnDiagrams.prototype.getSequence = function (actualObject, oldObject, connection, diagram) { + if ((connection.shape.sequence) === 'Normal' || actualObject.shape.sequence === 'Normal') { + actualObject.targetDecorator.shape = 'Arrow'; + actualObject.sourceDecorator.shape = 'None'; + actualObject.style.strokeDashArray = 'None'; + actualObject.targetDecorator.style.fill = 'black'; + actualObject.targetDecorator.width = 10; + actualObject.targetDecorator.height = 10; + diagram.connectorPropertyChange(actualObject, oldObject, { + targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 }, + sourceDecorator: { shape: 'None' }, + style: { strokeDashArray: 'None' } + }); + actualObject.wrapper.children[3].visible = false; + } + if ((connection.shape.sequence) === 'Default' || actualObject.shape.sequence === 'Default') { + actualObject.targetDecorator.shape = 'Arrow'; + actualObject.sourceDecorator.shape = 'None'; + actualObject.style.strokeDashArray = 'None'; + actualObject.targetDecorator.style.fill = 'black'; + actualObject.targetDecorator.width = 10; + actualObject.targetDecorator.height = 10; + diagram.connectorPropertyChange(actualObject, oldObject, { + style: { strokeDashArray: 'None' }, + targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 }, + sourceDecorator: { shape: 'None' } + }); + var segment = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var pathseq = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + var pathseqData = void 0; + segment = actualObject.getSegmentElement(actualObject, segment); + var anglePoints = actualObject.intermediatePoints; + for (var j = 0; j < anglePoints.length - 1; j++) { + // eslint-disable-next-line no-global-assign + length = length + actualObject.distance(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]); + pathseqData = actualObject.findPath(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]); + } + var content = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + content.data = pathseqData[0]; + content.id = actualObject.id + '_' + connection.shape.sequence || actualObject.shape.sequence; + content.offsetX = pathseqData[1].x; + content.offsetY = pathseqData[1].y; + content.rotateAngle = 45; + content.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["Transform"].Self; + this.removeDomElement(actualObject, diagram, content); + } + if ((connection.shape.sequence) === 'Conditional' || actualObject.shape.sequence === 'Conditional') { + actualObject.sourceDecorator.shape = 'Diamond'; + actualObject.sourceDecorator.width = 20; + actualObject.sourceDecorator.height = 10; + actualObject.sourceDecorator.style.fill = 'white'; + actualObject.targetDecorator.style.fill = 'black'; + actualObject.style.strokeDashArray = 'None'; + actualObject.targetDecorator.shape = 'Arrow'; + diagram.connectorPropertyChange(actualObject, oldObject, { + style: { strokeDashArray: 'None' }, + targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 }, + sourceDecorator: { shape: 'Diamond', width: 20, height: 10, style: { fill: 'white' } } + }); + actualObject.wrapper.children[3].visible = false; + } + return actualObject; + }; + /** @private */ + BpmnDiagrams.prototype.getAssociation = function (actualObject, oldObject, connection, diagram) { + if ((connection.shape.association) === 'Default' || actualObject.shape.association === 'Default') { + actualObject.sourceDecorator.shape = 'None'; + actualObject.targetDecorator.shape = 'None'; + actualObject.style.strokeDashArray = '2 2'; + diagram.connectorPropertyChange(actualObject, oldObject, { + style: { strokeDashArray: '2 2' }, + targetDecorator: { shape: 'None' }, + sourceDecorator: { shape: 'None' } + }); + actualObject.wrapper.children[3].visible = false; + } + if ((connection.shape.association) === 'Directional' || actualObject.shape.association === 'Directional') { + actualObject.sourceDecorator.shape = 'None'; + actualObject.style.strokeDashArray = '2 2'; + actualObject.targetDecorator.shape = 'OpenArrow'; + actualObject.targetDecorator.width = 10; + actualObject.targetDecorator.height = 10; + diagram.connectorPropertyChange(actualObject, oldObject, { + style: { strokeDashArray: '2 2' }, + targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 }, + sourceDecorator: { shape: 'None' } + }); + actualObject.wrapper.children[3].visible = false; + } + if ((connection.shape.association) === 'BiDirectional' || actualObject.shape.association === 'BiDirectional') { + actualObject.sourceDecorator.shape = 'OpenArrow'; + actualObject.targetDecorator.shape = 'OpenArrow'; + actualObject.sourceDecorator.width = 10; + actualObject.sourceDecorator.height = 10; + actualObject.sourceDecorator.style.fill = 'black'; + diagram.connectorPropertyChange(actualObject, oldObject, { + style: { strokeDashArray: '2 2' }, + targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 }, + sourceDecorator: { shape: 'OpenArrow', width: 10, height: 10, style: { fill: 'black' } } + }); + actualObject.wrapper.children[3].visible = false; + } + return actualObject; + }; + /** @private */ + BpmnDiagrams.prototype.getMessage = function (actualObject, oldObject, connection, diagram) { + var segmentOffset = 0.5; + var angle; + var pt; + actualObject.sourceDecorator.shape = 'Circle'; + actualObject.sourceDecorator.width = 10; + actualObject.targetDecorator.shape = 'Arrow'; + actualObject.sourceDecorator.height = 10; + actualObject.sourceDecorator.style.fill = 'White'; + actualObject.targetDecorator.style.fill = 'White'; + diagram.connectorPropertyChange(actualObject, oldObject, { sourceDecorator: { shape: 'Circle', style: { fill: 'White' }, width: 10, height: 10 }, targetDecorator: { shape: 'Arrow', style: { fill: 'white' } } }); + var anglePoints = actualObject.intermediatePoints; + var length = 0; + for (var j = 0; j < anglePoints.length - 1; j++) { + /* eslint-disable */ + length = length + actualObject.distance(anglePoints[j], anglePoints[j + 1]); + /* eslint-enable */ + var offLength = length * segmentOffset; + if (length >= offLength) { + angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_10__["findAngle"])(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]); + pt = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].transform(anglePoints[parseInt(j.toString(), 10)], angle, offLength); + } + } + var content = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_4__["PathElement"](); + actualObject.wrapper.children[0].style.strokeDashArray = ' 4 4'; + actualObject.style.strokeDashArray = '4 4'; + content.id = actualObject.id + '_' + connection.shape.message || actualObject.shape.message; + content.width = 25; + content.height = 15; + content.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0'; + content.horizontalAlignment = 'Center'; + content.verticalAlignment = 'Center'; + content.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_9__["Transform"].Self; + content.style.fill = connection.shape.message === 'NonInitiatingMessage' ? + 'lightgrey' : 'white'; + content.offsetX = pt.x; + content.offsetY = pt.y; + if ((connection.shape.message !== 'Default' && connection.shape.message !== undefined) || actualObject.shape.message !== 'Default') { + content.style.fill = (connection.shape.message || actualObject.shape.message) === 'NonInitiatingMessage' ? + 'lightgrey' : 'white'; + } + else { + content.visible = false; + } + this.removeDomElement(actualObject, diagram, content); + return actualObject; + }; + // To remove old wrapper element from dom. + BpmnDiagrams.prototype.removeDomElement = function (actualObject, diagram, content) { + for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["removeElement"])(actualObject.id + '_groupElement', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["removeElement"])(actualObject.id + '_content_groupElement', elementId); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_14__["removeElement"])(actualObject.id + '_html_element', elementId); + } + actualObject.wrapper.children.splice(3, 1); + actualObject.wrapper.children.splice(3, 0, content); + }; + //End update Region + //size updation + BpmnDiagrams.prototype.setSizeForBPMNEvents = function (event, wrapper, width, height) { + wrapper.children[0].width = width; + wrapper.children[0].height = height; + //child node 1 - event node + var eventNode = wrapper.children[1]; + eventNode.width = width * 0.85; + eventNode.height = height * 0.85; + var triggerNode = wrapper.children[2]; + if (event.trigger === 'Message') { + triggerNode.width = width * 0.54; + triggerNode.height = height * 0.4; + } + else { + triggerNode.width = width * 0.5; + triggerNode.height = height * 0.5; + } + }; + /** @private */ + BpmnDiagrams.prototype.updateAnnotationDrag = function (node, diagram, tx, ty) { + var checkAnnotation = node.id.split('_'); + if (checkAnnotation[1] === 'textannotation') { + var parentNode = void 0; + for (var j = 0; j < node.inEdges.length; j++) { + var connector = diagram.nameTable[node.inEdges[parseInt(j.toString(), 10)]]; + if (connector) { + parentNode = diagram.nameTable[connector.sourceID]; + } + var start = { x: node.offsetX + tx, y: node.offsetY + ty }; + var end = connector.sourcePoint; + var length_1 = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].findLength(start, end); + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_11__["Point"].findAngle(end, start); + if (parentNode.shape.annotations) { + for (var x = 0; x < (parentNode.shape.annotations).length; x++) { + if ((parentNode.shape.annotations)[parseInt(x.toString(), 10)].id === checkAnnotation[checkAnnotation.length - 1]) { + (parentNode.shape.annotations[parseInt(x.toString(), 10)]).length = length_1; + (parentNode.shape.annotations[parseInt(x.toString(), 10)]).angle = angle; + this.setAnnotationPath(parentNode.wrapper.bounds, node.wrapper, start, node); + return false; + } + } + } + } + } + if (node.processId) { + this.drag(node, tx, ty, diagram); + return true; + } + return false; + }; + BpmnDiagrams.prototype.getAnnotationPathAngle = function (point, bounds) { + var direction = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_10__["getPortDirection"])(point, bounds, bounds, false); + var rotateAngle = 0; + switch (direction) { + case 'Right': + rotateAngle = 0; + break; + case 'Left': + rotateAngle = 180; + break; + case 'Bottom': + rotateAngle = 90; + break; + case 'Top': + rotateAngle = 270; + break; + } + return rotateAngle; + }; + BpmnDiagrams.prototype.setSizeForBPMNGateway = function (event, wrapper, width, height) { + wrapper.children[0].width = width; + wrapper.children[0].height = height; + wrapper.children[1].width = width * 0.45; + wrapper.children[1].height = height * 0.45; + }; + BpmnDiagrams.prototype.setSizeForBPMNDataObjects = function (event, wrapper, width, height) { + wrapper.children[0].width = width; + wrapper.children[0].height = height; + }; + BpmnDiagrams.prototype.setSizeForBPMNActivity = function (activity, wrapper, width, height, node) { + //child node 1 - event node + wrapper.children[0].width = width; + wrapper.children[0].height = height; + wrapper.children[0].children[0].width = width; + wrapper.children[0].children[0].height = height; + if (activity.subProcess.type === 'Transaction') { + wrapper.children[0].children[1].width = Math.max(width - 6, 1); + wrapper.children[0].children[1].height = Math.max(height - 6, 1); + wrapper.children[0].children[2].width = width; + wrapper.children[0].children[2].height = height; + } + var taskNode = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_1__["DiagramElement"](); + var x; + var size = this.getSize(node, taskNode); + var childCount; + var iconSpace = 4; + if (activity.activity === 'Task') { + childCount = this.getTaskChildCount(node); + } + else { + childCount = this.getSubprocessChildCount(node); + } + var childSpace = childCount * 12; + var area = (width || size.width) / 2; + if (childCount === 1) { + x = area - 6; + } + else { + x = area - (childSpace / 2) - ((childCount - 1) * iconSpace) / 2; + } + for (var i = 0; i < wrapper.children[0].children.length; i++) { + if (wrapper.children[0].children[parseInt(i.toString(), 10)].visible && + (wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_loop') > -1 || + wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_compensation') > -1 || + wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_adhoc') > -1 || + wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_collapsed') > -1)) { + wrapper.children[0].children[parseInt(i.toString(), 10)].margin.left = x; + x += wrapper.children[0].children[parseInt(i.toString(), 10)].actualSize.width + iconSpace; + } + } + }; + BpmnDiagrams.prototype.updateDiagramContainerVisibility = function (element, visible) { + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_3__["Container"]) { + for (var i = 0; i < element.children.length; i++) { + this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible); + } + } + element.visible = visible; + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + BpmnDiagrams.prototype.destroy = function () { + /** + * Destroys the BpmnDiagrams module + */ + }; + /** + * Get module name. + * + * @returns {string} Get module name. + */ + BpmnDiagrams.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'Bpmn'; + }; + return BpmnDiagrams; +}()); + +/** + * getBpmnShapePathData method \ + * + * @returns { string } getBpmnShapePathData method .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getBpmnShapePathData(shape) { + return bpmnShapes[shape.toString()]; +} +/** + * getBpmnTriggerShapePathData method \ + * + * @returns { string } getBpmnTriggerShapePathData method .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getBpmnTriggerShapePathData(shape) { + return bpmnTriggerShapes[shape.toString()]; +} +/** + * getBpmnGatewayShapePathData method \ + * + * @returns { string } getBpmnGatewayShapePathData method .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getBpmnGatewayShapePathData(shape) { + return bpmnGatewayShapes[shape.toString()]; +} +/** + * getBpmnTaskShapePathData method \ + * + * @returns { string } getBpmnTaskShapePathData method .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getBpmnTaskShapePathData(shape) { + return bpmnTaskShapes[shape.toString()]; +} +/** + * getBpmnLoopShapePathData method \ + * + * @returns { string } getBpmnLoopShapePathData method .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getBpmnLoopShapePathData(shape) { + return bpmnLoopShapes[shape.toString()]; +} +var bpmnShapes = { + 'Event': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' + + 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z', + 'Message': 'M0,0L19.8,12.8L40,0L0,0L0,25.5L40,25.5L40,0z', + 'DataSource': 'M 0 10.6 c 0 5.9 16.8 10.6 37.5 10.6 S 75 16.4 75 10.6 v 0 v 68.9 v -0.1 C 75 85.3 58.2 90 37.5 90 ' + + 'S 0 85.3 0 79.4 l 0 0.1 V 56 V 40.6 L 0 10.6 C 0 4.7 16.8 0 37.5 0 S 75 4.7 75 10.6 S 58.2 21.2 37.5 21.2' + + 'S 0 16.5 0 10.6 l 0 6.7 v -0.2 c 0 5.9 16.8 10.6 37.5 10.6 S 75 22.9 75 17.1 v 6.8 v -0.1 ' + + 'c 0 5.9 -16.8 10.6 -37.5 10.6 S 0 29.6 0 23.8', + 'SubProcess': 'M100,100 h200 a20,20 0 0 1 20,20 v200 a20,20 0 0 1 -20,20 h-200 ' + + 'a20,20 0 0 1 -20,-20 v-200 a20,20 0 0 1 20,-20 z', + 'collapsedShape': 'M 8.13789 15 H 0 V 0 H 8.13789 V 15 Z M 0.625991 13.75 H 7.51189 V 1.25 H 0.625991 V 13.75 Z ' + + 'M 2.18095 7.03125 L 5.95631 7.03125 L 5.95631 7.46875 L 2.18095 7.46875 Z M 3.8342 3.73 ' + + 'L 4.30369 3.73 L 4.30369 11.2687 L 3.8342 11.2687 Z' +}; +var bpmnTriggerShapes = { + // 'None': '', + 'Message': 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0', + 'Timer': 'M40,20c0,8.654-5.496,16.024-13.189,18.81' + + 'C24.685,39.58,22.392,40,20,40C8.954,40,0,31.046,0,20S8.954,0,20,0S40,8.954,40,20z M20,0 L20,2.583 L20,5.283 M10.027,2.681' + + 'L11.659,5.507 L12.669,7.257 M2.731,9.989 L6.014,11.885 L7.307,12.631 M0.067,19.967 L2.667,19.967 L5.35,19.967' + + 'M2.748,29.939 L5.731,28.217 L7.323,27.298 M10.056,37.236 L11.292,35.095 L12.698,32.66 M20.033,39.9 L20.033,36.417 L20.033,34.617' + + 'M30.006,37.219 L28.893,35.292 L27.364,32.643 M37.302,29.911 L34.608,28.355 L32.727,27.269' + + 'M39.967,19.933 L37.417,19.933 L34.683,19.933 M37.286,9.961 L34.583,11.521 L32.71,12.602 M29.977,2.664 L28.653,4.957 L27.336,' + + '7.24 M22.104,8.5 L19.688,20 L24.75,20 L31.604,20 L24.75,20 L19.688,20z', + 'Error': 'M 23.77 18.527 l -7.107 27.396 l 8.507 -17.247 L 36.94 40.073 l 6.394 -25.997 l -8.497 15.754 L 23.77 18.527 Z', + 'Escalation': 'M 30.001 8.098 L 11.842 43.543 l 18.159 -18.882 l 18.162 18.882 L 30.001 8.098 Z ', + 'Cancel': 'M 3.5 16 L 0 12.6 L 4.6 8 L 0 3.5 L 3.4 0 L 8 4.6 l 4.5 -4.5 L 16 3.5 L 11.5 8 l 4.5 4.5 l -3.4 3.5 L 8 11.4 L 3.5 16 Z', + 'Compensation': 'M 25.7086 0 L 0 25 L 25.7086 50 V 26.3752 L 50 50 V 0 L 25.7086 23.6248 V 0 Z ', + 'Conditional': 'M 0 0 H 16 V 16 H 0 z M 1.14 3.2 H 14.85 M 1.14 6.4 H 14.85 M 1.14 9.6 H 14.85 M 1.14 12.8 H 14.85', + 'Link': 'M 32.014 19.258 v 5.992 H 9.373 v 9.504 h 22.641 v 5.988 L 50.622 30 L 32.014 19.258 Z', + 'Signal': 'M 50 50 H 0 L 25.0025 0 L 50 50 Z', + 'Terminate': 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25 C 50 38.79 38.78 50 25 50', + 'Multiple': 'M 17.784 48.889 H 42.21 l 7.548 -23.23 L 29.997 11.303 L 10.236 25.658 L 17.784 48.889 Z', + 'Parallel': 'M 27.276 49.986 h 5.58 v -17.15 h 17.146 V 27.17 h -17.15 l 0.004 -17.15 h -5.58 l -0.004 17.15 ' + + 'H 9.994 v 5.666 h 17.278 L 27.276 49.986 Z' +}; +var bpmnGatewayShapes = { + 'None': '', + //exclusive + 'Exclusive': 'M 11.196 29.009 l 6.36 -9.712 l -5.764 -8.899 h 4.393 l 3.732 5.979 l 3.656 -5.979 h 4.354 l -5.789 9.039' + + 'l 6.36 9.572 h -4.532 l -4.126 -6.437 l -4.139 6.437 H 11.196 Z', + //inclusive + 'Inclusive': 'M 20.323 31.333 c -6.625 0 -12.015 -5.39 -12.015 -12.015 s 5.39 -12.015 12.015 -12.015 ' + + 's 12.016 5.39 12.016 12.015 S 26.948 31.333 20.323 31.333 Z M 20.323 9.303 c -5.522 0 -10.015 4.493 -10.015 10.015 ' + + 's 4.492 10.015 10.015 10.015 s 10.016 -4.493 10.016 -10.015 S 25.846 9.303 20.323 9.303 Z', + //parallel + 'Parallel': 'M 18.394 29.542 v -8.833 H 9.626 v -3.691 h 8.768 V 8.251 h 3.734 v 8.767 h 8.768 v 3.691 h -8.768 v 8.833 H 18.394 Z', + //complex + 'Complex': 'M29.198,19.063L23.089,19.063L27.794,14.358L26.38,12.944L21.223,18.101L21.223,10.443L19.223,10.443L19.223,17.976' + + 'L14.022,12.776L12.608,14.19L17.48,19.063L10.365,19.063L10.365,21.063L18.261,21.063L12.392,26.932L13.806,28.346' + + 'L19.223,22.929L19.223,30.225L21.223,30.225L21.223,22.805L25.925,27.507L27.339,26.093L22.309,21.063L29.198,21.063z', + //eventbased + 'EventBased': 'M 20.322 29.874 c -5.444 0 -9.873 -4.43 -9.873 -9.874 s 4.429 -9.874 9.873 -9.874 s 9.874 4.429 9.874 9.874 ' + + 'S 25.767 29.874 20.322 29.874 Z M 20.322 32.891 c -7.107 0 -12.89 -5.783 -12.89 -12.891 c 0 -7.107 5.782 -12.89 12.89 -12.89 ' + + 'c 7.108 0 12.891 5.783 12.891 12.89 C 33.213 27.108 27.431 32.891 20.322 32.891 Z M 24.191 25.386 ' + + 'h -7.984 l -2.469 -7.595 l 6.461 -4.693 l 6.461 4.693 L 24.191 25.386 Z', + //exclusive event based + 'ExclusiveEventBased': 'M 30 15 C 30 23.28 23.28 30 15 30 S 0 23.28 0 15 S 6.72 0 15 0 S 30 6.72 30 15 z M 15 5 ' + + 'L 5 12.5 L 8 22.5 H 22 L 25 12.5 z', + //parallel event based + 'ParallelEventBased': 'M 35 17.5 C 35 27.16 27.16 35 17.5 35 S 0 27.16 0 17.5 S 7.84 0 17.5 0 S 35 7.84 35 17.5 z M 14.58 5.83 ' + + 'V 14.58 H 5.83 V 20.42 H 14.58 V 29.17 H 20.42 V 20.42 H 29.17 V 14.58 H 20.42 V 5.83 z' +}; +var bpmnTaskShapes = { + 'None': '', + 'Service': 'M 32.699 20.187 v -4.005 h -3.32 c -0.125 -0.43 -0.292 -0.83 -0.488 -1.21 l 2.373 -2.375 ' + + 'l -2.833 -2.83 l -2.333 2.333 c -0.44 -0.253 -0.9 -0.448 -1.387 -0.595 v -3.32 h -4.003 v 3.32 c -0.46 0.137 -0.89' + + '0.322 -1.3 0.537 l -2.285 -2.275 l -2.833 2.83 l 2.285 2.278 c -0.235 0.42 -0.41 0.847 -0.547 1.307 h -3.33 v 4.005 h 3.33 ' + + 'c 0.148 0.488 0.343 0.955 0.588 1.395 l -2.325 2.325 l 2.822 2.832 l 2.373 -2.382 c 0.392 0.205 0.792 0.37 1.212 0.497 v 3.33 ' + + 'h 4.003 v -3.33 c 0.46 -0.138 0.89 -0.323 1.3 -0.547 l 2.43 2.432 l 2.822 -2.832 l -2.42 -2.422 c 0.222 -0.41 0.4 -0.85 0.535' + + '-1.297 H 32.699 Z M 22.699 21.987 c -2.1 0 -3.803 -1.703 -3.803 -3.803 c 0 -2.1 1.703 -3.803 3.803 -3.803 c 2.1 0 3.803 ' + + '1.703 3.803 3.803 C 26.502 20.285 24.8 21.987 22.699 21.987 Z', + 'Receive': 'M 12.217 12.134 v 13.334 h 20 V 12.134 H 12.217 Z M 30.44 13.007 l -8.223 5.35 l -8.223 -5.35 H 30.44 Z M 13.09' + + ' 24.594 V 13.459 l 9.127 5.94 l 9.127 -5.94 v 11.135 H 13.09 Z', + 'Send': 'M0,1.2260086 L8.0000002,8.3380068 16,1.2260086 16,12.000007 0,12.000007 z M1.6300015,0 L14.371001,0 8.0000055,5.662 z', + 'InstantiatingReceive': 'M 16.306 17.39 v 8.79 h 13.198 v -8.79 H 16.306 Z M 28.375 17.946 l -5.47 3.558 l -5.47 -3.558 ' + + 'H 28.375 Z M 28.948 25.625 H 16.861 v -7.389 l 6.043 3.931 l 6.043 -3.931 V 25.625 Z M 22.905 11.785' + + 'c -5.514 0 -9.999 4.486 -9.999 10 c 0 5.514 4.485 10 9.999 10 s 9.999 -4.486 9.999 -10 ' + + 'C 32.904 16.272 28.419 11.785 22.905 11.785 Z M 22.905 31.239 c -5.212 0 -9.453 -4.241 -9.453 -9.454' + + 'c 0 -5.212 4.241 -9.453 9.453 -9.453 s 9.452 4.241 9.452 9.453 C 32.357 26.998 28.117 31.239 22.905 31.239 Z', + 'Manual': 'M9.21 612 L5.82 612 L1.07 612 a1.07317 1 -180 0 1 -1.07317 -1 L0 604.75 A3.42007 1.59344 -180 0 0 1.61 604 L2.6 604 L5.99 604 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L2.6 605.34 a0.48818 0.183302 -90 0 0 0.0837073 0.342385 L5.63 605.69 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.28 605.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 607.01 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 607.35 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.01 607.33 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 608.67 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 609.01 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.47 608.99 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 610.34 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 610.68 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.21 610.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672', + 'BusinessRule': 'M 32.844 13.245 h -0.089 v 0 H 13.764 v -0.015 h -1.009 v 16.989 h 0.095 v 0.011 h 19.716 v -0.011 h 0.278 ' + + 'V 13.245 Z M 31.844 14.229 v 4.185 h -18.08 v -4.185 H 31.844 Z M 18.168 25.306 v 3.938 h -4.404 v -3.938 H 18.168 Z ' + + 'M 13.764 24.322 v -4.923 h 4.404 v 4.923 H 13.764 Z M 19.177 25.306 h 12.667 v 3.938 H 19.177 V 25.306 Z M 19.177 24.322' + + 'v -4.923 h 12.667 v 4.923 H 19.177 Z', + 'User': 'M8.6751149,13.75 L10.79009,18.703003 11.664047,18.696991 13.792084,13.75 13.824066,13.75 C18.177001,13.75 21.709022,' + + '17.259003 21.748998,21.60199 21.748998,21.649994 21.743993,21.700012 21.735021,21.747009 21.137981,24.774994 18.775997,' + + '27.144989 15.74904,27.75 L6.7491024,27.75 C3.7231224,27.144989 1.3601628,24.774994 0.76312089,21.747009 0.75414884,21.700012 0.74914402,' + + '21.649994 0.75012076,21.60199 0.78912175,17.259003 4.3221171,13.75 8.6751149,13.75 z M11.249014,0.75 C14.287014,0.75 16.749015,' + + '3.2119999 16.749015,6.25 16.749015,9.2880001 14.287014,11.75 11.249014,11.75 8.211015,11.75 5.7490147,9.2880001 5.7490147,6.25 5.7490147,3.2119999 8.211015,0.75 11.249014,0.75 z', + 'Script': 'M22.3,80.4 A82.9529,77.0159,-180,0,0,10.3,46.7 A69.8467,64.8477,0,0,1,0,19.7 A27.6207,25.6439,0,0,1,12.1,0 L84.7,0 A37.4124,34.7347,-180,0,0,77.7,19.6 A82.8871,76.9547,' + + '-180,0,0,89.7,53.3 A69.8146,64.81790000000001,0,0,1,100,80.3 A27.603399999999997,25.6278,0,0,1,87.9,100 L15.3,100 A37.4265,34.7479,-180,0,0,22.3,80.4 M12.5,28.6 L67.3,28.6 M18.3,42.9 L72.1,42.9 M80.8,' + + '57.1 L26,57.1 M85.6,71.4 L32.6,71.4' +}; +var bpmnLoopShapes = { + 'None': '', + 'Standard': 'M 52.002 73.379 c -2.494 -2.536 -6.55 -2.534 -9.043 0 c -1.208 1.228 -1.874 2.861 -1.874 4.598 ' + + 'c 0 1.225 0.337 2.395 0.957 3.411 l -1.167 1.186 l 2.071 0.458 l 2.071 0.458 l -0.45 -2.106 l -0.45 -2.106 l -1.292 1.314' + + 'c -1.119 -2.065 -0.842 -4.709 0.877 -6.458 c 2.084 -2.119 5.475 -2.117 7.557 0 c 2.083 2.119 2.083 5.565 0 7.685' + + 'c -0.976 0.992 -2.272 1.557 -3.65 1.59 l 0.025 1.068 c 1.65 -0.041 3.2 -0.716 4.368 -1.903 ' + + 'c 1.208 -1.228 1.874 -2.861 1.874 -4.597 C 53.875 76.24 53.209 74.607 52.002 73.379 Z', + 'ParallelMultiInstance': 'M 51.5,69.5 L52.5,69.5 L52.5,84.5 L51.5 84.5 Z M 46.5,69.5 L47.5,69.5 L47.5,84.5 L46.5 84.5 Z' + + ' M 41.5,69.5 L42.5,69.5 L42.5,84.5 L41.5 84.5 Z ', + 'SequenceMultiInstance': 'M 40.375,71.5 L 55.375,71.5 L 55.375,72.5 L 40.375,72.5 Z M 40.375,76.5 L 55.375,76.5 ' + + 'L 55.375,77.5 L 40.375,77.5 Z M 40.375,76.5 L 55.375,76.5 L 55.375,77.5 L 40.375,77.5 Z M 40.375,81.5 L 55.375,81.5' + + 'L 55.375,82.5 L 40.375,82.5 Z' +}; + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector-bridging.js": +/*!******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector-bridging.js ***! + \******************************************************************************************/ +/*! exports provided: ConnectorBridging */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorBridging", function() { return ConnectorBridging; }); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable valid-jsdoc */ + + + + +/** + * ConnectorBridging defines the bridging behavior + */ +/** @private */ +var ConnectorBridging = /** @__PURE__ @class */ (function () { + /** + * Constructor for the bridging module + * + * @private + */ + function ConnectorBridging() { + //constructs the bridging module + } + /** + * @param {Connector}conn - provide the target value. + * @param {Diagram}diagram - provide the target value. + * @private + */ + ConnectorBridging.prototype.updateBridging = function (conn, diagram) { + var lastBridge = []; + var bounds; + conn.bridges = []; + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_3__["canBridge"])(conn, diagram)) { + // if (this.canBridge(conn, diagram)) { + var points1 = this.getPoints(conn); + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds(points1); + var bridgeSpacing = conn.bridgeSpace; + var bgedir = diagram.bridgeDirection; + var count = -1; + var quads = diagram.connectors; + for (var q = 0; q < quads.length; q++) { + var connector1 = quads[parseInt(q.toString(), 10)]; + if (conn && connector1 && conn.id !== connector1.id) { + var points2 = this.getPoints(connector1); + var bounds1 = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds(points2); + if (this.intersectsRect(bounds, bounds1)) { + var intersectPts = this.intersect(points1, points2, false, bgedir, true); + if (intersectPts.length > 0) { + for (var i = 0; i < intersectPts.length; i++) { + var fullLength = 0; + var length_1 = 0; + var segmentIndex = 0; + var pointIndex = 0; + var obj = this.getLengthAtFractionPoint(conn, intersectPts[parseInt(i.toString(), 10)]); + if (obj.pointIndex !== -1) { + length_1 = obj.lengthFractionIndex; + fullLength = obj.fullLength; + segmentIndex = obj.segmentIndex; + pointIndex = obj.pointIndex; + var stBridge = this.getPointAtLength((length_1 - (bridgeSpacing / 2)), points1); + var enBridge = this.getPointAtLength((length_1 + (bridgeSpacing / 2)), points1); + var fractLength = (length_1 - (bridgeSpacing / 2)) / fullLength; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + fractLength = (length_1 + (bridgeSpacing / 2)) / fullLength; + if (this.isEmptyPoint(enBridge)) { + enBridge = stBridge; + } + var end = void 0; + var start = conn.sourcePoint; + if (conn.type === 'Straight') { + end = conn.targetPoint; + } + else { + end = conn.intermediatePoints[parseInt(pointIndex.toString(), 10)]; + } + var angle = this.angleCalculation(start, end); + if (lastBridge.length) { + var fixedPoint = conn.sourcePoint; + var fix = Math.abs(this.lengthCalculation(fixedPoint, enBridge)); + var var1 = 0; + var insertAt = -1; + count = -1; + for (var k = 0; k < lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.length; k++) { + count++; + var arcSeg = lastBridge[parseInt(segmentIndex.toString(), 10)].bridges[parseInt(k.toString(), 10)]; + var1 = Math.abs(this.lengthCalculation(fixedPoint, arcSeg.endPoint)); + if (fix < var1) { + insertAt = count; + break; + } + } + if (insertAt >= 0) { + //let paths: ArcSegment; + // eslint-disable-next-line max-len + var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram); + paths.target = connector1.id; + lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.splice(insertAt, 0, paths); + lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.join(); + lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.splice(insertAt, 0, stBridge); + lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.join(); + lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex; + } + else { + //let paths: ArcSegment; + // eslint-disable-next-line max-len + var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram); + paths.target = connector1.id; + lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(paths); + lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.push(stBridge); + lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex; + } + } + else { + if (!isNaN(stBridge.x) && !isNaN(stBridge.y) && !this.isEmptyPoint(enBridge)) { + //let arcs: ArcSegment; + var bges = []; + var bgept = []; + // eslint-disable-next-line max-len + var arcs = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram); + var bgseg = { + bridges: bges, bridgeStartPoint: bgept, segmentIndex: segmentIndex + }; + arcs.target = connector1.id; + var stPoints = []; + var edPoints = []; + stPoints.push(stBridge); + edPoints.push(enBridge); + lastBridge[parseInt(segmentIndex.toString(), 10)] = bgseg; + lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(arcs); + lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint = stPoints; + lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex; + } + } + } + } + } + } + } + } + if (lastBridge.length !== 0) { + this.firstBridge(lastBridge, conn, bridgeSpacing); + } + } + }; + /** + * @param {BridgeSegment[]}bridgeList - provide the bridgeList value. + * @param {Connector}connector - provide the connector value. + * @param {number}bridgeSpacing - provide the bridgeSpacing value. + * @private + */ + ConnectorBridging.prototype.firstBridge = function (bridgeList, connector, bridgeSpacing) { + for (var i = 0; i < bridgeList.length; i++) { + var bridge = bridgeList[parseInt(i.toString(), 10)]; + for (var k = 1; k < bridge.bridges.length; k++) { + if (_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(bridge.bridges[parseInt(k.toString(), 10)].endPoint, bridge.bridges[k - 1].endPoint) < bridgeSpacing) { + bridge.bridges[k - 1].endPoint = bridge.bridges[parseInt(k.toString(), 10)].endPoint; + var subBridge = bridge.bridges[k - 1]; + var arc = this.createBridgeSegment(subBridge.startPoint, subBridge.endPoint, subBridge.angle, bridgeSpacing, subBridge.sweep); + bridge.bridges[k - 1].path = arc; + bridge.bridges.splice(k, 1); + bridge.bridgeStartPoint.splice(k, 1); + k--; + } + } + var pre = connector.sourcePoint; + for (var j = 0; j < bridge.bridges.length; j++) { + var subBridge = bridge.bridges[parseInt(j.toString(), 10)]; //const preventChecking: boolean = true; + pre = subBridge.endPoint; + connector.bridges.push(subBridge); + } + } + }; + /** + * @returns { ArcSegment } checkSourcePointInTarget method .\ + * @param {PointModel}st- provide the st value. + * @param {PointModel}end- provide the end value. + * @param {number}angle- provide the angle value. + * @param {BridgeDirection}direction- provide the direction value. + * @param {number}index- provide the index value. + * @param {Connector}conn- provide the conn value. + * @param {Diagram} diagram- provide the diagram value. + * @private + */ + ConnectorBridging.prototype.createSegment = function (st, end, angle, direction, index, conn, diagram) { + //let arc: string; + //let sweep: number; + var path = { + angle: 0, endPoint: { x: 0, y: 0 }, target: '', path: '', + segmentPointIndex: -1, startPoint: { x: 0, y: 0 }, sweep: 1, rendered: false + }; + var sweep = this.sweepDirection(angle, direction, conn, diagram); + var arc = this.createBridgeSegment(st, end, angle, conn.bridgeSpace, sweep); + path.path = arc; + path.startPoint = st; + path.endPoint = end; + path.angle = angle; + path.segmentPointIndex = index; + path.sweep = sweep; + return path; + }; + /** + * @param {PointModel}startPt- provide the startPt value. + * @param {PointModel}endPt- provide the endPt value. + * @param {number}angle- provide the angle value. + * @param {number}bridgeSpace- provide the bridgeSpace value. + * @param {number}sweep- provide the sweep value. + * @private + */ + ConnectorBridging.prototype.createBridgeSegment = function (startPt, endPt, angle, bridgeSpace, sweep) { + var path = 'A ' + bridgeSpace / 2 + ' ' + bridgeSpace / 2 + ' ' + angle + ' , 1 ' + sweep + ' ' + endPt.x + ',' + endPt.y; + return path; + }; + /** + * @param {number}angle- provide the source value. + * @param {BridgeDirection}bridgeDirection- provide the source value. + * @param {Connector}connector- provide the source value. + * @param {Diagram}diagram- provide the source value. + * @private + */ + ConnectorBridging.prototype.sweepDirection = function (angle, bridgeDirection, connector, diagram) { + var angle1 = Math.abs(angle); + var sweep; + switch (bridgeDirection) { + case 'Top': + case 'Bottom': + sweep = 1; + if (angle1 >= 0 && angle1 <= 90) { + sweep = 0; + } + break; + case 'Left': + case 'Right': + sweep = 1; + if (angle < 0 && angle >= -180) { + sweep = 0; + } + break; + } + if (bridgeDirection === 'Right' || bridgeDirection === 'Bottom') { + if (sweep === 0) { + sweep = 1; + } + else { + sweep = 0; + } + } + return sweep; + }; + /** @private */ + ConnectorBridging.prototype.getPointAtLength = function (length, pts) { + var run = 0; + var pre; + var found = { x: 0, y: 0 }; + for (var i = 0; i < pts.length; i++) { + var pt = pts[parseInt(i.toString(), 10)]; + if (!pre) { + pre = pt; + continue; + } + else { + var l = this.lengthCalculation(pre, pt); + if (run + l > length) { + var r = length - run; + var deg = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findAngle(pre, pt); + var x = r * Math.cos(deg * Math.PI / 180); + var y = r * Math.sin(deg * Math.PI / 180); + found = { x: pre.x + x, y: pre.y + y }; + break; + } + else { + run += l; + } + } + pre = pt; + } + return found; + }; + /** + * @param {PointModel[]}connector- provide the source value. + * @private + */ + ConnectorBridging.prototype.getPoints = function (connector) { + var points = []; + if (connector.intermediatePoints && (connector.type === 'Straight' || connector.type === 'Orthogonal')) { + for (var j = 0; j < connector.intermediatePoints.length; j++) { + points.push(connector.intermediatePoints[parseInt(j.toString(), 10)]); + } + } + return points; + }; + ConnectorBridging.prototype.intersectsRect = function (rect1, rect2) { + return ((((rect2.x < (rect1.x + rect1.width)) && (rect1.x < (rect2.x + rect2.width))) + && (rect2.y < (rect1.y + rect1.height))) && (rect1.y < (rect2.y + rect2.height))); + }; + /** + * @param {PointModel[]}points1- provide the source value. + * @param {PointModel[]}points2- provide the source value. + * @param {boolean}self- provide the source value. + * @param {BridgeDirection}bridgeDirection- provide the source value. + * @param {PointModel[]}zOrder- provide the source value. + * @private + */ + ConnectorBridging.prototype.intersect = function (points1, points2, self, bridgeDirection, zOrder) { + if (self && points2.length >= 2) { + points2.splice(0, 1); + points2.splice(0, 1); + } + var points = []; + for (var i = 0; i < points1.length - 1; i++) { + var pt = this.inter1(points1[parseInt(i.toString(), 10)], points1[i + 1], points2, zOrder, bridgeDirection); + if (pt.length > 0) { + for (var k = 0; k < pt.length; k++) { + points.push(pt[parseInt(k.toString(), 10)]); + } + } + if (self && points2.length >= 1) { + points2.splice(0, 1); + } + } + return points; + }; + /** + * @param {PointModel}startPt- provide the target value. + * @param {PointModel}endPt- provide the target value. + * @param {PointModel[]}pts- provide the target value. + * @param {boolean}zOrder- provide the target value. + * @param {BridgeDirection}bridgeDirection- provide the target value. + * @private + */ + ConnectorBridging.prototype.inter1 = function (startPt, endPt, pts, zOrder, bridgeDirection) { + var points1 = []; + for (var i = 0; i < pts.length - 1; i++) { + var point = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["intersect2"])(startPt, endPt, pts[parseInt(i.toString(), 10)], pts[i + 1]); + if (!this.isEmptyPoint(point)) { + var angle = this.angleCalculation(startPt, endPt); + var angle1 = this.angleCalculation(pts[parseInt(i.toString(), 10)], pts[i + 1]); + angle = this.checkForHorizontalLine(angle); + angle1 = this.checkForHorizontalLine(angle1); + switch (bridgeDirection) { + case 'Left': + case 'Right': + if (angle > angle1) { + points1.push(point); + } + break; + case 'Top': + case 'Bottom': + if (angle < angle1) { + points1.push(point); + } + break; + } + if (angle === angle1 && zOrder) { + points1.push(point); + } + } + } + return points1; + }; + ConnectorBridging.prototype.checkForHorizontalLine = function (angle) { + var temp = 0; + var roundedAngle = Math.abs(angle); + if (roundedAngle > 90) { + temp = 180 - roundedAngle; + } + else { + temp = roundedAngle; + } + return temp; + }; + ConnectorBridging.prototype.isEmptyPoint = function (point) { + return point.x === 0 && point.y === 0; + }; + ConnectorBridging.prototype.getLengthAtFractionPoint = function (connector, pointAt) { + var confirm = 100; + var pointIndex = -1; + var fullLength = 0; + var segmentIndex = -1; + var count = 0; + var lengthAtFractionPt = 0; + var pt1 = connector.sourcePoint; + var previouspt2 = pt1; + var points = []; + for (var i = 0; i < connector.intermediatePoints.length; i++) { + var point2 = connector.intermediatePoints[parseInt(i.toString(), 10)]; + points.push(point2); + } + for (var j = 0; j < points.length; j++) { + var pt2 = points[parseInt(j.toString(), 10)]; + var suspect = this.getSlope(pt2, pt1, pointAt, connector); + if (suspect < confirm) { + confirm = suspect; + lengthAtFractionPt = fullLength + this.lengthCalculation(pointAt, previouspt2); + segmentIndex = count; + pointIndex = j; + } + fullLength += _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(pt2, pt1); + pt1 = pt2; + previouspt2 = pt2; + } + count++; + var lengthFraction = { + lengthFractionIndex: lengthAtFractionPt, fullLength: fullLength, + segmentIndex: segmentIndex, pointIndex: pointIndex + }; + return lengthFraction; + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + ConnectorBridging.prototype.getSlope = function (startPt, endPt, point, connector) { + var three = 3.0; + var delX = Math.abs(startPt.x - endPt.x); + var delY = Math.abs(startPt.y - endPt.y); + var lhs = ((point.y - startPt.y) / (endPt.y - startPt.y)); + var rhs = ((point.x - startPt.x) / (endPt.x - startPt.x)); + if (!isFinite(lhs) || !isFinite(rhs) || isNaN(lhs) || isNaN(rhs)) { + if (startPt.x === endPt.x) { + if (startPt.y === endPt.y) { + return 10000; + } + else if (((startPt.y > point.y) && (point.y > endPt.y)) || ((startPt.y < point.y) && (point.y < endPt.y))) { + return Math.abs(startPt.x - point.x); + } + } + else if (startPt.y === endPt.y) { + if (((startPt.x > point.x) && (point.x > endPt.x)) || ((startPt.x < point.x) && (point.x < endPt.x))) { + return Math.abs(startPt.y - point.y); + } + } + } + else { + if ((startPt.x >= point.x && point.x >= endPt.x) || (startPt.x <= point.x && point.x <= endPt.x) || delX < three) { + if ((startPt.y >= point.y && point.y >= endPt.y) || (startPt.y <= point.y && point.y <= endPt.y) || delY < three) { + return Math.abs(lhs - rhs); + } + } + } + return 10000; + }; + /** + * @param {PointModel}startPt- provide the target value. + * @param {PointModel}endPt- provide the target value. + * @private + */ + ConnectorBridging.prototype.angleCalculation = function (startPt, endPt) { + var xDiff = startPt.x - endPt.x; + var yDiff = startPt.y - endPt.y; + return Math.atan2(yDiff, xDiff) * (180 / Math.PI); + }; + ConnectorBridging.prototype.lengthCalculation = function (startPt, endPt) { + //removed a try catch from here + var len = Math.sqrt(((startPt.x - endPt.x) * (startPt.x - endPt.x)) + ((startPt.y - endPt.y) * (startPt.y - endPt.y))); + return len; + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + ConnectorBridging.prototype.destroy = function () { + /** + * Destroys the bridging module + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + ConnectorBridging.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'Bridging'; + }; + return ConnectorBridging; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js ***! + \*********************************************************************************/ +/*! exports provided: Decorator, Vector, BezierSettings, ConnectorShape, ActivityFlow, BpmnFlow, ConnectorSegment, StraightSegment, BezierSegment, OrthogonalSegment, DiagramConnectorSegment, getDirection, isEmptyVector, getBezierPoints, getBezierBounds, bezierPoints, MultiplicityLabel, ClassifierMultiplicity, RelationShip, DiagramConnectorShape, Connector */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Decorator", function() { return Decorator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Vector", function() { return Vector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BezierSettings", function() { return BezierSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorShape", function() { return ConnectorShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActivityFlow", function() { return ActivityFlow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnFlow", function() { return BpmnFlow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorSegment", function() { return ConnectorSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StraightSegment", function() { return StraightSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BezierSegment", function() { return BezierSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OrthogonalSegment", function() { return OrthogonalSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorSegment", function() { return DiagramConnectorSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return getDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmptyVector", function() { return isEmptyVector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBezierPoints", function() { return getBezierPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBezierBounds", function() { return getBezierBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bezierPoints", function() { return bezierPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MultiplicityLabel", function() { return MultiplicityLabel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClassifierMultiplicity", function() { return ClassifierMultiplicity; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RelationShip", function() { return RelationShip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorShape", function() { return DiagramConnectorShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return Connector; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_connector__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _annotation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _dictionary_common__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./dictionary/common */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js"); +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _node_base__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./node-base */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node-base.js"); +/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./preview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js"); +/* harmony import */ var _fixed_user_handle__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./fixed-user-handle */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js"); +/* harmony import */ var _interaction_tool__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../interaction/tool */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/tool.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable jsdoc/require-param */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable no-self-assign */ +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var getConnectorType = function (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + return DiagramConnectorShape; + } + else { + if (obj) { + switch (obj.type) { + case 'Bpmn': + return BpmnFlow; + case 'UmlActivity': + return ActivityFlow; + case 'UmlClassifier': + return RelationShip; + default: + return ConnectorShape; + } + } + return ConnectorShape; + } +}; +var getSegmentType = function (obj) { + if (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + return DiagramConnectorSegment; + } + else { + switch (obj.type) { + case 'Straight': + return StraightSegment; + case 'Bezier': + return BezierSegment; + case 'Orthogonal': + return OrthogonalSegment; + default: + return StraightSegment; + } + } + } + return undefined; +}; +/** + * Decorators are used to decorate the end points of the connector with some predefined path geometry + */ +var Decorator = /** @__PURE__ @class */ (function (_super) { + __extends(Decorator, _super); + function Decorator() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], Decorator.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], Decorator.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Arrow') + ], Decorator.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ fill: 'black', strokeColor: 'black', strokeWidth: 1 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["ShapeStyle"]) + ], Decorator.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0.5 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], Decorator.prototype, "pivot", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Decorator.prototype, "pathData", void 0); + return Decorator; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Describes the length and angle between the control point and the start point of bezier segment + */ +var Vector = /** @__PURE__ @class */ (function (_super) { + __extends(Vector, _super); + function Vector() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Vector.prototype, "angle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Vector.prototype, "distance", void 0); + return Vector; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Describes the length and angle between the control point and the start point of bezier segment + */ +var BezierSettings = /** @__PURE__ @class */ (function (_super) { + __extends(BezierSettings, _super); + function BezierSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["ControlPointsVisibility"].All) + ], BezierSettings.prototype, "controlPointsVisibility", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('FreeForm') + ], BezierSettings.prototype, "segmentEditOrientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["BezierSmoothness"].Default) + ], BezierSettings.prototype, "smoothness", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], BezierSettings.prototype, "allowSegmentsReset", void 0); + return BezierSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Sets the type of the connector + */ +var ConnectorShape = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectorShape, _super); + function ConnectorShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], ConnectorShape.prototype, "type", void 0); + return ConnectorShape; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Sets the type of the flow in a BPMN Process + */ +var ActivityFlow = /** @__PURE__ @class */ (function (_super) { + __extends(ActivityFlow, _super); + function ActivityFlow() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Object') + ], ActivityFlow.prototype, "flow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(30) + ], ActivityFlow.prototype, "exceptionFlowHeight", void 0); + return ActivityFlow; +}(ConnectorShape)); + +/** + * Sets the type of the flow in a BPMN Process + */ +var BpmnFlow = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnFlow, _super); + function BpmnFlow() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Sequence') + ], BpmnFlow.prototype, "flow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Normal') + ], BpmnFlow.prototype, "sequence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], BpmnFlow.prototype, "message", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], BpmnFlow.prototype, "association", void 0); + return BpmnFlow; +}(ConnectorShape)); + +/** + * Defines the behavior of connector segments + */ +var ConnectorSegment = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectorSegment, _super); + // tslint:disable-next-line:no-any + function ConnectorSegment(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + _this.points = []; + return _this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Straight') + ], ConnectorSegment.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ConnectorSegment.prototype, "allowDrag", void 0); + return ConnectorSegment; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of straight segments + */ +var StraightSegment = /** @__PURE__ @class */ (function (_super) { + __extends(StraightSegment, _super); + function StraightSegment() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class StraightSegment + * + * @private + */ + StraightSegment.prototype.getClassName = function () { + return 'StraightSegment'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], StraightSegment.prototype, "point", void 0); + return StraightSegment; +}(ConnectorSegment)); + +/** + * Defines the behavior of bezier segments + */ +var BezierSegment = /** @__PURE__ @class */ (function (_super) { + __extends(BezierSegment, _super); + function BezierSegment() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @private + * Returns the name of class BezierSegment + */ + BezierSegment.prototype.getClassName = function () { + return 'BezierSegment'; + }; + /** + * @private + * Returns the total points of the bezier curve + */ + BezierSegment.prototype.getPoints = function (segments, start) { + var points = []; + if (points.length > 0 || start != null) { + var st = points.length > 0 ? points[points.length - 1] : start; + var bezier = this.bezireToPoly(st, segments); + points.push.apply(points, bezier); + } + return points; + }; + /** + * @private + * Returns the total points of the bezier curve + */ + BezierSegment.prototype.bezireToPoly = function (start, segment) { + var points = []; + if (segment) { + var bezSeg = segment; + var pt0 = start; + var pt1 = bezSeg.bezierPoint1; + var pt2 = bezSeg.bezierPoint2; + var pt3 = { x: bezSeg.points[1].x, y: bezSeg.points[1].y }; + this.flattenCubicBezier(points, pt0, pt1, pt2, pt3, 10); + } + return points; + }; + /** + * @private + * Returns the total points of the bezier curve + */ + BezierSegment.prototype.flattenCubicBezier = function (points, ptStart, ptCtrl1, ptCtrl2, ptEnd, tolerance) { + var max = ((_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(ptStart, ptCtrl1) + _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(ptCtrl1, ptCtrl2) + _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findLength(ptCtrl2, ptEnd)) / tolerance); + var i; + for (i = 0; i <= max; i++) { + var t = i / max; + var x = (1 - t) * (1 - t) * (1 - t) * ptStart.x + + 3 * t * (1 - t) * (1 - t) * ptCtrl1.x + + 3 * t * t * (1 - t) * ptCtrl2.x + + t * t * t * ptEnd.x; + var y = (1 - t) * (1 - t) * (1 - t) * ptStart.y + + 3 * t * (1 - t) * (1 - t) * ptCtrl1.y + + 3 * t * t * (1 - t) * ptCtrl2.y + + t * t * t * ptEnd.y; + points.push({ x: x, y: y }); + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], BezierSegment.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], BezierSegment.prototype, "point1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], BezierSegment.prototype, "point2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ angle: 0, distance: 0 }, Vector) + ], BezierSegment.prototype, "vector1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ angle: 0, distance: 0 }, Vector) + ], BezierSegment.prototype, "vector2", void 0); + return BezierSegment; +}(StraightSegment)); + +/** + * Defines the behavior of orthogonal segments + */ +var OrthogonalSegment = /** @__PURE__ @class */ (function (_super) { + __extends(OrthogonalSegment, _super); + function OrthogonalSegment() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the module of class OrthogonalSegment + * + * @private + */ + OrthogonalSegment.prototype.getClassName = function () { + return 'OrthogonalSegment'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], OrthogonalSegment.prototype, "length", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], OrthogonalSegment.prototype, "direction", void 0); + return OrthogonalSegment; +}(ConnectorSegment)); + +/** + * Defines the behavior of orthogonal segments + */ +var DiagramConnectorSegment = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramConnectorSegment, _super); + function DiagramConnectorSegment() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * @private + * Returns the module of class OrthogonalSegment + */ + DiagramConnectorSegment.prototype.getClassName = function () { + return 'DiagramConnectorSegment'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Straight') + ], DiagramConnectorSegment.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], DiagramConnectorSegment.prototype, "allowDrag", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], DiagramConnectorSegment.prototype, "point", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], DiagramConnectorSegment.prototype, "point1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], DiagramConnectorSegment.prototype, "point2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ angle: 0, distance: 0 }, Vector) + ], DiagramConnectorSegment.prototype, "vector1", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ angle: 0, distance: 0 }, Vector) + ], DiagramConnectorSegment.prototype, "vector2", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], DiagramConnectorSegment.prototype, "length", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], DiagramConnectorSegment.prototype, "direction", void 0); + return DiagramConnectorSegment; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Get the direction of the control points while the bezier is connected to the node + */ +function getDirection(bounds, points, excludeBounds) { + var center = bounds.center; + var direction; + var part = excludeBounds ? 45 : (180 / (2 + 2 / (bounds.height / bounds.width))); + var fourty5 = part; + var one35 = (180 - part); + var two25 = one35 + (2 * part); + var three15 = 360 - part; + var angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_7__["findAngle"])(points, center); + if (angle > fourty5 && angle < one35) { + return direction = 'top'; + } + else if (angle > one35 && angle < two25) { + return direction = 'right'; + } + else if (angle > two25 && angle < three15) { + return direction = 'bottom'; + } + else { + return direction = 'left'; + } +} +function isEmptyVector(element) { + if (!element.distance && !element.angle) { + return true; + } + return false; +} +/** + * Get the bezier points if control points are not given. + */ +function getBezierPoints(sourcePoint, targetPoint, direction) { + var distance = 60; + var value = { x: 0, y: 0 }; + if (!direction) { + if (Math.abs(targetPoint.x - sourcePoint.x) > Math.abs(targetPoint.y - sourcePoint.y)) { + direction = sourcePoint.x < targetPoint.x ? 'right' : 'left'; + } + else { + direction = sourcePoint.y < targetPoint.y ? 'bottom' : 'top'; + } + } + switch (direction) { + case 'bottom': + case 'top': + distance = Math.min(Math.abs(sourcePoint.y - targetPoint.y) * 0.45, distance); + value = { x: sourcePoint.x, y: sourcePoint.y + (direction === 'bottom' ? distance : -distance) }; + break; + case 'right': + case 'left': + distance = Math.min(Math.abs(sourcePoint.x - targetPoint.x) * 0.45, distance); + value = { x: sourcePoint.x + (direction === 'right' ? distance : -distance), y: sourcePoint.y }; + break; + } + return value; +} +/** + * Get the bezier curve bounds. + */ +function getBezierBounds(startPoint, controlPoint1, controlPoint2, endPoint, connector) { + var minx = 0; + var miny = 0; + var maxx = 0; + var maxy = 0; + var tolerancevalue = 3; + var max = Number((connector.distance(controlPoint1, startPoint) + + connector.distance(controlPoint2, controlPoint1) + + connector.distance(endPoint, controlPoint2)) / tolerancevalue); + if (max !== 0) { + for (var i = 0; i <= max; i++) { + var t = i / max; + var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x + + 3 * t * (1 - t) * (1 - t) * controlPoint1.x + + 3 * t * t * (1 - t) * controlPoint2.x + + t * t * t * endPoint.x; + var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y + + 3 * t * (1 - t) * (1 - t) * controlPoint1.y + + 3 * t * t * (1 - t) * controlPoint2.y + + t * t * t * endPoint.y; + if (i === 0) { + minx = maxx = x; + miny = maxy = y; + } + else { + minx = Math.min(x, minx); + miny = Math.min(y, miny); + maxx = Math.max(x, maxx); + maxy = Math.max(y, maxy); + } + } + } + return { + x: minx, y: miny, width: maxx - minx, height: maxy - miny, + left: minx, top: miny, right: (minx + (maxx - minx)), bottom: (miny + (maxy - miny)), + center: { x: (minx + (maxx - minx)) / 2, y: (miny + (maxy - miny)) / 2 } + }; +} +/** + * Get the intermediate bezier curve for point over connector + */ +function bezierPoints(connector, startPoint, point1, point2, endPoint, i, max) { + var pt = { x: 0, y: 0 }; + var t = i / max; + var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x + + 3 * t * (1 - t) * (1 - t) * point1.x + + 3 * t * t * (1 - t) * point2.x + + t * t * t * endPoint.x; + pt.x = x; + var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y + + 3 * t * (1 - t) * (1 - t) * point1.y + + 3 * t * t * (1 - t) * point2.y + + t * t * t * endPoint.y; + pt.y = y; + return pt; +} +/** + * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults + */ +var MultiplicityLabel = /** @__PURE__ @class */ (function (_super) { + __extends(MultiplicityLabel, _super); + function MultiplicityLabel() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], MultiplicityLabel.prototype, "optional", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], MultiplicityLabel.prototype, "lowerBounds", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], MultiplicityLabel.prototype, "upperBounds", void 0); + return MultiplicityLabel; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults + */ +var ClassifierMultiplicity = /** @__PURE__ @class */ (function (_super) { + __extends(ClassifierMultiplicity, _super); + function ClassifierMultiplicity() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('OneToOne') + ], ClassifierMultiplicity.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, MultiplicityLabel) + ], ClassifierMultiplicity.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, MultiplicityLabel) + ], ClassifierMultiplicity.prototype, "source", void 0); + return ClassifierMultiplicity; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the UMLActivity shape + */ +var RelationShip = /** @__PURE__ @class */ (function (_super) { + __extends(RelationShip, _super); + function RelationShip() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('UmlClassifier') + ], RelationShip.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Aggregation') + ], RelationShip.prototype, "relationship", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Directional') + ], RelationShip.prototype, "associationType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, ClassifierMultiplicity) + ], RelationShip.prototype, "multiplicity", void 0); + return RelationShip; +}(ConnectorShape)); + +/** + * Connector shape for blazor + */ +var DiagramConnectorShape = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramConnectorShape, _super); + function DiagramConnectorShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], DiagramConnectorShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Directional') + ], DiagramConnectorShape.prototype, "associationType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Aggregation') + ], DiagramConnectorShape.prototype, "relationship", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, ClassifierMultiplicity) + ], DiagramConnectorShape.prototype, "multiplicity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Sequence') + ], DiagramConnectorShape.prototype, "bpmnFlow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], DiagramConnectorShape.prototype, "message", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Normal') + ], DiagramConnectorShape.prototype, "sequence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], DiagramConnectorShape.prototype, "association", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Object') + ], DiagramConnectorShape.prototype, "umlActivityFlow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(30) + ], DiagramConnectorShape.prototype, "exceptionFlowHeight", void 0); + return DiagramConnectorShape; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Connectors are used to create links between nodes + */ +var Connector = /** @__PURE__ @class */ (function (_super) { + __extends(Connector, _super); + // tslint:disable-next-line:no-any + function Connector(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + /** @private */ + _this.parentId = ''; + /** @private */ + _this.bridges = []; + /** @private */ + _this.status = 'None'; + if (_this.shape && _this.shape.type === 'UmlActivity') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["setUMLActivityDefaults"])(defaultValue, _this); + } + if (defaultValue && defaultValue.shape && defaultValue.shape.type !== 'None') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["setConnectorDefaults"])(defaultValue, _this); + } + return _this; + } + /* tslint:disable */ + Connector.prototype.setPortID = function (diagram, isTarget) { + if (this.targetID && this.sourceID) { + var targetNode = diagram.nameTable[this.targetID]; + var sourceNode = diagram.nameTable[this.sourceID]; + var ports = isTarget ? (targetNode && targetNode.ports) : (sourceNode && sourceNode.ports); + var port = void 0; + for (var i = 0; ports && i < ports.length; i++) { + port = ports[parseInt(i.toString(), 10)]; + if (this.targetPortID === port.id && isTarget) { + if ((port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortConstraints"].None) || !(port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortConstraints"].InConnect)) { + this.targetPortID = ''; + } + } + else if (this.sourcePortID === port.id && !isTarget) { + if ((port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortConstraints"].None) || !(port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortConstraints"].OutConnect)) { + this.sourcePortID = ''; + } + } + } + } + }; + /* tslint:enable */ + /** @private */ + // tslint:disable-next-line:no-any + Connector.prototype.init = function (diagram) { + if (!this.id) { + this.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_9__["randomId"])(); + } + if (this.sourcePortID) { + this.setPortID(diagram); + } + if (this.targetPortID) { + this.setPortID(diagram, true); + } + var bpmnElement; + var container = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_12__["Canvas"](); + var segment = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + segment.id = this.id + '_path'; + var srcDecorator = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + var targetDecorator = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + segment = this.getSegmentElement(this, segment); + //let bounds: Rect; + var points = []; + points = this.type === 'Bezier' ? this.intermediatePoints : this.getConnectorPoints(this.type); + points = this.clipDecorators(this, points); + var bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds(points); + container.width = bounds.width; + container.height = bounds.height; + container.offsetX = bounds.x + container.pivot.x * bounds.width; + container.offsetY = bounds.y + container.pivot.y * bounds.height; + switch (this.shape.type) { + case 'Bpmn': + // eslint-disable-next-line no-case-declarations + var flow = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? this.shape.bpmnFlow : this.shape.flow); + switch (flow) { + case 'Sequence': + bpmnElement = this.getBpmnSequenceFlow(); + break; + case 'Association': + bpmnElement = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + bpmnElement.visible = false; + this.getBpmnAssociationFlow(); + break; + case 'Message': + bpmnElement = this.getBpmnMessageFlow(); + segment = this.getSegmentElement(this, segment); + this.updateShapePosition(this, bpmnElement); + break; + } + break; + case 'UmlActivity': + // eslint-disable-next-line no-case-declarations + var activityFlow = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? this.shape.umlActivityFlow : + this.shape.flow); + switch (activityFlow) { + case 'Object': + this.getUMLObjectFlow(); + break; + case 'Exception': + this.getUMLExceptionFlow(segment); + break; + } + break; + case 'UmlClassifier': + this.getConnectorRelation(); + break; + } + var anglePoints = this.intermediatePoints; + if (this.type === 'Bezier') { + var firstSegment = this.segments[0]; + var lastSegment = this.segments[this.segments.length - 1]; + anglePoints = [!_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2, + !_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1]; + } + var accessContent = 'getDescription'; + var getDescription = diagram["" + accessContent]; + //const strokeWidth: number = this.sourceWrapper ? this.sourceWrapper.style.strokeWidth / 2 / 2 : 0; + srcDecorator = this.getDecoratorElement(points[0], anglePoints[1], this.sourceDecorator, true, getDescription); + targetDecorator = this.getDecoratorElement(points[points.length - 1], anglePoints[anglePoints.length - 2], this.targetDecorator, false, getDescription); + srcDecorator.id = this.id + '_srcDec'; + targetDecorator.id = this.id + '_tarDec'; + segment.style = this.style; + /* tslint:disable:no-string-literal */ + segment.style['fill'] = 'transparent'; + if (getDescription !== undefined) { + // tslint:disable-next-line:no-any + var wrapperContent = getDescription(this, diagram); + segment.description = wrapperContent ? wrapperContent : this.id; + } + container.style.strokeColor = 'transparent'; + container.style.fill = 'transparent'; + container.style.strokeWidth = 0; + container.children = [segment, srcDecorator, targetDecorator]; + container.id = this.id; + if (bpmnElement !== undefined) { + container.children.push(bpmnElement); + } + container.offsetX = segment.offsetX; + container.offsetY = segment.offsetY; + container.width = segment.width; + container.height = segment.height; + for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) { + container.children.push(this.getAnnotationElement(this.annotations[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, getDescription, diagram.element.id, diagram.annotationTemplate)); + } + for (var i = 0; this.fixedUserHandles !== undefined, i < this.fixedUserHandles.length; i++) { + container.children.push(this.getfixedUserHandle(this.fixedUserHandles[parseInt(i.toString(), 10)], this.intermediatePoints, bounds)); + } + this.wrapper = container; + return container; + }; + Connector.prototype.getConnectorRelation = function () { + var shape = this.shape; + if (shape.relationship === 'Association') { + this.segments[0].type = 'Straight'; + this.sourceDecorator.shape = 'None'; + this.targetDecorator.shape = 'Arrow'; + } + else if (shape.relationship === 'Inheritance') { + this.segments[0].type = 'Orthogonal'; + this.sourceDecorator.shape = 'None'; + this.targetDecorator.shape = 'Arrow'; + } + else if (shape.relationship === 'Composition') { + this.segments[0].type = 'Orthogonal'; + this.sourceDecorator.shape = 'Diamond'; + this.targetDecorator.shape = 'None'; + } + else if (shape.relationship === 'Aggregation') { + this.segments[0].type = 'Orthogonal'; + this.sourceDecorator.shape = 'Diamond'; + this.targetDecorator.shape = 'None'; + } + else if (shape.relationship === 'Dependency') { + this.segments[0].type = 'Orthogonal'; + this.sourceDecorator.shape = 'None'; + this.targetDecorator.shape = 'OpenArrow'; + } + else if (shape.relationship === 'Realization') { + this.segments[0].type = 'Orthogonal'; + this.sourceDecorator.shape = 'None'; + this.targetDecorator.shape = 'Arrow'; + } + if (shape.associationType === 'BiDirectional') { + this.sourceDecorator.shape = 'None'; + this.targetDecorator.shape = 'None'; + } + var text1 = ''; + //let lower: MultiplicityLabelModel; + //let upper: MultiplicityLabelModel; + var sourceText = ''; + var targetText = ''; + var text = ''; + if (shape.multiplicity.source) { + shape.multiplicity.source.lowerBounds = shape.multiplicity.source.lowerBounds; + shape.multiplicity.source.upperBounds = shape.multiplicity.source.upperBounds; + } + if (shape.multiplicity.target) { + shape.multiplicity.target.lowerBounds = shape.multiplicity.target.lowerBounds; + shape.multiplicity.target.upperBounds = shape.multiplicity.target.upperBounds; + } + var lower = shape.multiplicity.source; + var upper = shape.multiplicity.target; + text = lower.upperBounds ? lower.lowerBounds + '...' + lower.upperBounds : lower.lowerBounds; + text1 = upper.upperBounds ? upper.lowerBounds + '...' + upper.upperBounds : upper.lowerBounds; + if (shape.multiplicity.type === 'ManyToOne') { + shape.multiplicity.target.optional = false; + sourceText = text ? text : '*'; + targetText = '1'; + } + if (shape.multiplicity.type === 'OneToMany') { + shape.multiplicity.source.optional = false; + targetText = text1 ? text1 : '*'; + sourceText = '1'; + } + ///831806 -Added ManyToMany relationship for UML class connector annotation label + if (shape.multiplicity.type === 'ManyToMany') { + sourceText = text ? text : '*'; + targetText = text1 ? text1 : '*'; + } + if (shape.multiplicity.type === 'OneToOne') { + shape.multiplicity.target.optional = false; + shape.multiplicity.source.optional = false; + sourceText = '1'; + targetText = '1'; + } + this.annotations = [ + { + id: this.id + 'sourcelabel', content: sourceText, offset: 0, alignment: 'Before', + margin: { right: 5, bottom: 5 } + }, + { + id: this.id + 'targetlabel', content: targetText, offset: 1, alignment: 'Before', + margin: { right: 5, bottom: 5 } + } + ]; + }; + Connector.prototype.getBpmnSequenceFlow = function () { + var segment = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + var pathseq = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + var pathseqData; + if ((this.shape.sequence) === 'Normal' && this.type !== 'Bezier') { + this.targetDecorator.shape = 'Arrow'; + } + if ((this.shape.sequence) === 'Default') { + segment = this.getSegmentElement(this, segment); + var anglePoints = this.intermediatePoints; + pathseq = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updatePathElement"])(anglePoints, this); + this.targetDecorator.shape = 'Arrow'; + } + if ((this.shape.sequence) === 'Conditional') { + this.targetDecorator.shape = 'Arrow'; + this.sourceDecorator.shape = 'Diamond'; + pathseq.id = this.id + this.shape.type; + } + return pathseq; + }; + /** @private */ + Connector.prototype.getUMLObjectFlow = function () { + if (this.annotations) { + for (var i = 0; i < this.annotations.length; i++) { + this.annotations[parseInt(i.toString(), 10)].content = '[' + this.annotations[parseInt(i.toString(), 10)].content + ']'; + } + } + }; + /** @private */ + Connector.prototype.getUMLExceptionFlow = function (segment) { + this.type = 'Straight'; + var height = (this.shape.exceptionFlowHeight) / 2; + var midPt = { x: (this.targetPoint.x + this.sourcePoint.x) / 2, y: (this.targetPoint.y + this.sourcePoint.y) / 2 }; + var xDist = midPt.x - this.sourcePoint.x; + var yDist = midPt.y - this.sourcePoint.y; + var dist = Math.sqrt(xDist * xDist + yDist * yDist); + var fractionOfTotal = (height) / dist; + var midPt2 = { x: midPt.x - xDist * fractionOfTotal, y: midPt.y - yDist * fractionOfTotal }; + var midPt1 = { x: midPt.x + xDist * fractionOfTotal, y: midPt.y + yDist * fractionOfTotal }; + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["rotateMatrix"])(matrix, 315, midPt.x, midPt.y); + this.segments = []; + var segments = new StraightSegment(this, 'segments', { type: 'Straight', point: Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["transformPointByMatrix"])(matrix, midPt1) }, true); + (this.segments).push(segments); + segments = new StraightSegment(this, 'segments', { type: 'Straight', point: Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["transformPointByMatrix"])(matrix, midPt2) }, true); + (this.segments).push(segments); + segment = this.getSegmentElement(this, segment); + }; + Connector.prototype.getBpmnAssociationFlow = function () { + if ((this.shape.association) === 'Default') { + this.targetDecorator.shape = 'None'; + this.style.strokeDashArray = '2 2'; + } + if ((this.shape.association) === 'Directional') { + this.targetDecorator.shape = 'OpenArrow'; + this.style.strokeDashArray = '2 2'; + } + if ((this.shape.association) === 'BiDirectional') { + this.targetDecorator.shape = 'OpenArrow'; + this.sourceDecorator.shape = 'OpenArrow'; + this.style.strokeDashArray = '2 2'; + } + }; + /** @private */ + Connector.prototype.getfixedUserHandle = function (fixedUserHandle, points, bounds) { + var fixedUserHandleContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_12__["Canvas"](); + fixedUserHandleContainer.float = true; + var children = []; + fixedUserHandle.id = fixedUserHandle.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_9__["randomId"])(); + fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id; + fixedUserHandleContainer.children = children; + fixedUserHandleContainer.visible = fixedUserHandle.visibility; + fixedUserHandleContainer.width = fixedUserHandle.width; + fixedUserHandleContainer.height = fixedUserHandle.height; + fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth; + fixedUserHandleContainer.style.fill = fixedUserHandle.fill; + fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor; + fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius; + this.updateAnnotation(fixedUserHandle, points, bounds, fixedUserHandleContainer); + var symbolIcon = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["initfixedUserHandlesSymbol"])(fixedUserHandle, fixedUserHandleContainer); + fixedUserHandleContainer.children.push(symbolIcon); + fixedUserHandleContainer.description = fixedUserHandleContainer.id; + return fixedUserHandleContainer; + }; + Connector.prototype.getBpmnMessageFlow = function () { + var segmentMessage = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + this.targetDecorator.shape = 'Arrow'; + this.targetDecorator.width = 10; + this.targetDecorator.height = 10; + this.sourceDecorator.shape = 'Circle'; + this.sourceDecorator.style.fill = 'white'; + this.targetDecorator.style.fill = 'white'; + if (((this.shape.message) === 'InitiatingMessage') || + ((this.shape.message) === 'NonInitiatingMessage')) { + segmentMessage.id = this.id + '_' + (this.shape.message); + segmentMessage.width = 25; + segmentMessage.height = 15; + segmentMessage.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0'; + segmentMessage.horizontalAlignment = 'Center'; + segmentMessage.verticalAlignment = 'Center'; + segmentMessage.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_4__["Transform"].Self; + segmentMessage.style.fill = (this.shape.message) === 'NonInitiatingMessage' ? 'lightgrey' : 'white'; + } + return segmentMessage; + }; + /** @private */ + Connector.prototype.distance = function (pt1, pt2) { + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findDistance"])(pt1, pt2); + }; + /** @private */ + Connector.prototype.findPath = function (sourcePt, targetPt) { + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["findPath"])(sourcePt, targetPt); + }; + /** @private */ + Connector.prototype.getAnnotationElement = function (annotation, points, bounds, getDescription, diagramId, annotationTemplate) { + annotation.id = annotation.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_9__["randomId"])(); + var textele; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && annotation.annotationType === 'Template') { + annotation.template = annotation.template ? annotation.template : ''; + } + if (diagramId && (annotation.template || annotation.annotationType === 'Template' + || (annotationTemplate && annotation.content === ''))) { + textele = new _core_elements_html_element__WEBPACK_IMPORTED_MODULE_18__["DiagramHtmlElement"](this.id, diagramId, annotation.id, annotationTemplate); + textele = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_19__["getTemplateContent"])(textele, annotation, annotationTemplate); + } + else { + textele = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_3__["TextElement"](); + textele.content = annotation.content; + textele.style.textOverflow = 'Wrap'; + } + textele.constraints = annotation.constraints; + textele.visible = annotation.visibility; + textele.rotateAngle = annotation.rotateAngle; + textele.horizontalAlignment = annotation.horizontalAlignment; + textele.verticalAlignment = annotation.verticalAlignment; + textele.width = annotation.width; + textele.height = annotation.height; + if (bounds.width !== undefined && !annotation.template) { + textele.width = (annotation.width || bounds.width) - annotation.margin.left - annotation.margin.right; + } + textele.margin = annotation.margin; + textele.id = this.id + '_' + annotation.id; + if (bounds.width === 0) { + bounds.width = this.style.strokeWidth; + } + if (bounds.height === 0) { + bounds.height = this.style.strokeWidth; + } + textele.style = annotation.style; + // tslint:disable-next-line:no-any + var wrapperContent; + var description = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_9__["getFunction"])(getDescription); + if (description) { + wrapperContent = description(annotation, this); + } + textele.description = wrapperContent ? wrapperContent : textele.id; + this.updateAnnotation(annotation, points, bounds, textele); + return textele; + }; + /** @private */ + Connector.prototype.updateAnnotation = function (annotation, points, bounds, textElement, canRefresh) { + //let getPointloop: SegmentInfo; + //let align: Alignment; let hAlign: string; + var pivotPoint = { x: 0, y: 0 }; + if (!(textElement instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_18__["DiagramHtmlElement"] || _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_14__["DiagramElement"]) && (!canRefresh)) { + textElement.refreshTextElement(); + } + textElement.width = (annotation.width || bounds.width); + var getPointloop = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["getAnnotationPosition"])(points, annotation, bounds); + var newPoint = getPointloop.point; + if (annotation instanceof _annotation__WEBPACK_IMPORTED_MODULE_11__["PathAnnotation"] && annotation.segmentAngle) { + textElement.rotateAngle = annotation.rotateAngle + getPointloop.angle; + textElement.rotateAngle = (textElement.rotateAngle + 360) % 360; + } + if (bounds.width === 0) { + bounds.width = this.style.strokeWidth; + } + if (bounds.height === 0) { + bounds.height = this.style.strokeWidth; + } + var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) }; + pivotPoint.x = bounds.width * offsetPoint.x; + pivotPoint.y = bounds.height * offsetPoint.y; + var align = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["alignLabelOnSegments"])(annotation, getPointloop.angle, points); + var hAlign = align.hAlign; + var vAlign = align.vAlign; + var horizor; + var verzor; + if (hAlign === 'left') { + horizor = 'Left'; + pivotPoint.x += annotation.displacement.x; + } + else if (hAlign === 'right') { + horizor = 'Right'; + pivotPoint.x -= annotation.displacement.x; + } + else if (hAlign === 'center') { + horizor = 'Center'; + } + if (vAlign === 'top') { + verzor = 'Top'; + pivotPoint.y += annotation.displacement.y; + } + else if (vAlign === 'bottom') { + verzor = 'Bottom'; + pivotPoint.y -= annotation.displacement.y; + } + else if (vAlign === 'center') { + verzor = 'Center'; + } + textElement.horizontalAlignment = horizor; + textElement.verticalAlignment = verzor; + textElement.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute'); + textElement.relativeMode = 'Point'; + }; + /** @private */ + Connector.prototype.getConnectorPoints = function (type, points, layoutOrientation, lineDistribution) { + //const width: number = Math.abs(this.sourcePoint.x - this.targetPoint.x); + //const height: number = Math.abs(this.sourcePoint.y - this.targetPoint.y); + points = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_7__["findConnectorPoints"])(this, layoutOrientation, lineDistribution); + var newPoints = points.slice(0); + if (newPoints && newPoints.length > 0) { + this.sourcePoint = newPoints[0]; + this.targetPoint = newPoints[newPoints.length - 1]; + } + return newPoints; + }; + /** @private */ + Connector.prototype.clipDecorator = function (connector, points, isSource, diagramAction) { + var point = { x: 0, y: 0 }; + var start = { x: 0, y: 0 }; + var end = { x: 0, y: 0 }; + var length = points.length; + start = !isSource ? points[length - 1] : points[0]; + end = !isSource ? points[length - 2] : points[1]; + var len = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].distancePoints(start, end); + len = (len === 0) ? 1 : len; + var strokeWidth = 1; + var node = isSource ? connector.sourceWrapper : connector.targetWrapper; + if (node) { + strokeWidth = node.style.strokeWidth; + if (diagramAction && ((diagramAction) & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramAction"].DecoratorPropertyChange)) { + strokeWidth = 1; + } + } + var width = strokeWidth - 1; + point.x = (Math.round(start.x + width * (end.x - start.x) / len)); + point.y = (Math.round(start.y + width * (end.y - start.y) / len)); + if ((isSource && connector.sourceDecorator.shape !== 'None') || + (!isSource && connector.targetDecorator.shape !== 'None')) { + point = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].adjustPoint(point, end, true, (diagramAction & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["DiagramAction"].DecoratorPropertyChange) ? 0 : (strokeWidth / 2)); + } + return point; + }; + /** @private */ + Connector.prototype.clipDecorators = function (connector, pts, diagramAction) { + if (connector.sourceDecorator.shape !== 'None') { + pts[0] = this.clipDecorator(connector, pts, true, diagramAction); + } + if (connector.targetDecorator.shape !== 'None') { + pts[pts.length - 1] = this.clipDecorator(connector, pts, false, diagramAction); + } + return pts; + }; + /** @private */ + Connector.prototype.updateSegmentElement = function (connector, points, element, diagramActions) { + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"](); + //let point: PointModel[]; + var segmentPath = this.getSegmentPath(connector, points, diagramActions); + if (connector.type === 'Bezier') { + if (this.segments.length > 0) { + for (var i = 0; i < this.segments.length; i++) { + var segment = this.segments[parseInt(i.toString(), 10)]; + var connectorSegment = connector.segments[parseInt(i.toString(), 10)]; + // eslint-disable-next-line max-len + var point1 = !_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segment.point1) ? connectorSegment.point1 : connectorSegment.bezierPoint1; + // eslint-disable-next-line max-len + var point2 = !_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segment.point2) ? connectorSegment.point2 : connectorSegment.bezierPoint2; + bounds.uniteRect(getBezierBounds(segment.points[0], point1, point2, segment.points[1], connector)); + } + } + } + else { + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"].toBounds(points); + } + element.width = bounds.width; + element.height = bounds.height; + element.offsetX = bounds.x + element.width / 2; + element.offsetY = bounds.y + element.height / 2; + element.data = segmentPath; + if (connector.wrapper) { + connector.wrapper.offsetX = element.offsetX; + connector.wrapper.offsetY = element.offsetY; + connector.wrapper.width = bounds.width; + connector.wrapper.height = bounds.height; + } + return element; + }; + /** @private */ + Connector.prototype.getSegmentElement = function (connector, segmentElement, layoutOrientation, diagramActions, isFlip) { + if (isFlip === void 0) { isFlip = true; } + //let bounds: Rect; let segmentPath: string; + var points = []; + if (isFlip) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["flipConnector"])(connector); + } + points = this.getConnectorPoints(connector.type, undefined, layoutOrientation); + this.intermediatePoints = points; + segmentElement.staticSize = true; + segmentElement = this.updateSegmentElement(connector, points, segmentElement, diagramActions); + return segmentElement; + }; + /** @private */ + Connector.prototype.getDecoratorElement = function (offsetPoint, adjacentPoint, decorator, isSource, getDescription) { + var decEle = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"](); + var getPath; + var angle; + decEle.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_4__["Transform"].Self; + this.updateDecoratorElement(decEle, offsetPoint, adjacentPoint, decorator); + if (getDescription !== undefined) { + // tslint:disable-next-line:no-any + var wrapperContent = getDescription(decorator, this); + decEle.description = wrapperContent ? wrapperContent : + ( true ? 'source' : undefined); + } + return decEle; + }; + Connector.prototype.bridgePath = function (connector, path, pointIndex) { + var pathData = path; + if (connector.bridges.length > 0) { + if (connector.type === 'Straight' && connector.segments.length < 2) { + for (var n = 0; n < connector.bridges.length; n++) { + var bridge = connector.bridges[parseInt(n.toString(), 10)]; + if (!bridge.rendered) { + pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y; + pathData += bridge.path; + bridge.rendered = true; + } + } + } + else if (connector.type === 'Orthogonal' || (connector.type === 'Straight' && connector.segments.length > 1)) { + for (var n = 0; n < connector.bridges.length; n++) { + var bridge = connector.bridges[parseInt(n.toString(), 10)]; + if (bridge.segmentPointIndex === pointIndex) { + if (!bridge.rendered) { + if (bridge.segmentPointIndex === pointIndex) { + pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y; + pathData += bridge.path; + bridge.rendered = true; + } + } + } + } + } + } + return pathData; + }; + /** @private */ + Connector.prototype.updateDecoratorElement = function (element, pt, adjacentPoint, decorator) { + //let getPath: string;// let angle: number; + element.offsetX = pt.x; + element.offsetY = pt.y; + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].findAngle(pt, adjacentPoint); + var getPath = Object(_dictionary_common__WEBPACK_IMPORTED_MODULE_13__["getDecoratorShape"])(decorator.shape, decorator); + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](decorator.width, decorator.height); + element.pivot.x = decorator.pivot.x; + element.pivot.y = decorator.pivot.y; + element.style = decorator.style; + element.rotateAngle = angle; + element.data = getPath; + element.canMeasurePath = true; + element.width = size.width; + element.height = size.height; + }; + /** @private */ + Connector.prototype.getSegmentPath = function (connector, points, diagramAction) { + var path = ''; + var getPt; + var end; + var st; + var pts = []; + var j = 0; + while (j < points.length) { + pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y }); + j++; + } + for (var m = 0; m < connector.bridges.length; m++) { + var bridge = connector.bridges[parseInt(m.toString(), 10)]; + bridge.rendered = false; + } + pts = this.clipDecorators(connector, pts, diagramAction); + if (this.cornerRadius > 0 && this.type !== 'Bezier') { + for (var j_1 = 0; j_1 < pts.length - 1; j_1++) { + getPt = pts[parseInt(j_1.toString(), 10)]; + if (j_1 === 0) { + path = 'M' + getPt.x + ' ' + getPt.y; + } + var segLength = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].distancePoints(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1]); + if (segLength > 0) { + if (j_1 < pts.length - 2) { + if (segLength < this.cornerRadius * 2) { + end = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, segLength / 2); + } + else { + end = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, this.cornerRadius); + } + } + else { + end = pts[j_1 + 1]; + } + if (j_1 > 0) { + if (segLength < this.cornerRadius * 2) { + st = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, segLength / 2); + if (j_1 < pts.length - 2) { + end = null; + } + } + else { + st = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, this.cornerRadius); + } + } + if (st) { + path += 'Q' + getPt.x + ' ' + getPt.y + ' ' + st.x + ' ' + st.y; + } + if (end) { + if (connector.bridges.length > 0) { + path = this.bridgePath(connector, path, j_1); + if (connector.type === 'Orthogonal') { + path = this.bridgePath(connector, path, j_1 + 1); + } + } + path += ' L' + end.x + ' ' + end.y; + } + } + } + } + else { + if (this.type === 'Bezier') { + var isrezise = void 0; + var isDrawing = void 0; + if (this.parentObj.element) { + var action = this.parentObj.element.ej2_instances[0]['eventHandler'].action; + isrezise = (this.parentObj.element.ej2_instances[0]['eventHandler']).tool instanceof _interaction_tool__WEBPACK_IMPORTED_MODULE_22__["ResizeTool"]; + isDrawing = action.includes('PortDraw') || action.includes('Drag'); + } + var direction = void 0; + var segments = this.segments; + for (var j_2 = 0; j_2 < segments.length; j_2++) { + if (pts.length > 2) { + segments[parseInt(j_2.toString(), 10)].bezierPoint1 = { x: 0, y: 0 }; + segments[parseInt(j_2.toString(), 10)].bezierPoint2 = { x: 0, y: 0 }; + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point1) && !segments[parseInt(j_2.toString(), 10)].vector1.angle && !segments[parseInt(j_2.toString(), 10)].vector1.distance) { + if ((connector.sourceID || this.sourcePortID) && this.sourceWrapper && !isDrawing && !isrezise) { + direction = getDirection(this.sourceWrapper.bounds, pts[parseInt(j_2.toString(), 10)], true); + } + segments[parseInt(j_2.toString(), 10)].bezierPoint1 = getBezierPoints(pts[parseInt(j_2.toString(), 10)], pts[j_2 + 1], direction); + } + else if (segments[parseInt(j_2.toString(), 10)].vector1.angle || segments[parseInt(j_2.toString(), 10)].vector1.distance) { + segments[parseInt(j_2.toString(), 10)].bezierPoint1 = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].transform(pts[parseInt(j_2.toString(), 10)], segments[parseInt(j_2.toString(), 10)].vector1.angle, segments[parseInt(j_2.toString(), 10)].vector1.distance); + } + else { + segments[parseInt(j_2.toString(), 10)].bezierPoint1 = { + x: segments[parseInt(j_2.toString(), 10)].point1.x || segments[parseInt(j_2.toString(), 10)].bezierPoint1.x, + y: segments[parseInt(j_2.toString(), 10)].point1.y || segments[parseInt(j_2.toString(), 10)].bezierPoint1.y + }; + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point2) && !segments[parseInt(j_2.toString(), 10)].vector2.angle && !segments[parseInt(j_2.toString(), 10)].vector2.distance) { + if ((connector.targetID || this.targetPortID) && this.targetWrapper && !isDrawing && !isrezise) { + direction = getDirection(this.targetWrapper.bounds, pts[j_2 + 1], true); + } + segments[parseInt(j_2.toString(), 10)].bezierPoint2 = getBezierPoints(pts[j_2 + 1], pts[parseInt(j_2.toString(), 10)], direction); + } + else if (segments[parseInt(j_2.toString(), 10)].vector2.angle || segments[parseInt(j_2.toString(), 10)].vector2.distance) { + segments[parseInt(j_2.toString(), 10)].bezierPoint2 = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].transform(pts[j_2 + 1], segments[parseInt(j_2.toString(), 10)].vector2.angle, segments[parseInt(j_2.toString(), 10)].vector2.distance); + } + else { + segments[parseInt(j_2.toString(), 10)].bezierPoint2 = { + x: segments[parseInt(j_2.toString(), 10)].point2.x || segments[parseInt(j_2.toString(), 10)].bezierPoint2.x, + y: segments[parseInt(j_2.toString(), 10)].point2.y || segments[parseInt(j_2.toString(), 10)].bezierPoint2.y + }; + } + } + pts.splice(1, 0, { x: segments[0].bezierPoint1.x, y: segments[0].bezierPoint1.y }); + pts.splice(pts.length - 1, 0, { + x: segments[segments.length - 1].bezierPoint2.x, y: segments[segments.length - 1].bezierPoint2.y + }); + pts = this.clipDecorators(connector, pts, diagramAction); + for (var j_3 = 0; j_3 < segments.length; j_3++) { + if (j_3 === 0) { + path = 'M' + pts[0].x + ' ' + pts[0].y; + } + var lastPoint = (j_3 === segments.length - 1) ? pts[pts.length - 1].x + ' ' + pts[pts.length - 1].y : + segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].x + ' ' + segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].y; + path += 'C' + + segments[parseInt(j_3.toString(), 10)].bezierPoint1.x + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint1.y + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint2.x + ' ' + + segments[parseInt(j_3.toString(), 10)].bezierPoint2.y + ' ' + lastPoint; + } + } + else { + for (var k = 0; k < pts.length; k++) { + getPt = pts[parseInt(k.toString(), 10)]; + if (k === 0) { + path = 'M' + getPt.x + ' ' + getPt.y; + } + if (k > 0) { + path = this.bridgePath(connector, path, k); + path += ' ' + 'L' + getPt.x + ' ' + getPt.y; + } + } + } + } + return path; + }; + /** @private */ + Connector.prototype.updateShapeElement = function (connector) { + var element; + switch (connector.shape.type) { + case 'Bpmn': + if (connector.wrapper.children[3] instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_10__["PathElement"]) { + element = connector.wrapper.children[3]; + } + if (connector.shape.flow === 'Message' || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && connector.shape.bpmnFlow === 'Message')) { + this.updateShapePosition(connector, element); + } + break; + case 'UmlActivity': + if (connector.shape.flow === 'Exception' || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && + connector.shape.umlActivityFlow === 'Exception')) { + this.getUMLExceptionFlow(connector.wrapper.children[0]); + } + break; + } + }; + /** @private */ + Connector.prototype.updateShapePosition = function (connector, element) { + var segmentOffset = 0.5; + var angle; + var pt; + var length = 0; + var anglePoints = this.intermediatePoints; + for (var i = 0; i < anglePoints.length - 1; i++) { + length = length + this.distance(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]); + var offsetLength = length * segmentOffset; + if (length >= offsetLength) { + angle = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_7__["findAngle"])(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]); + pt = _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"].transform(anglePoints[parseInt(i.toString(), 10)], angle, offsetLength); + } + } + element.offsetX = pt.x; + element.offsetY = pt.y; + }; + /** @hidden */ + Connector.prototype.scale = function (sw, sh, width, height, refObject) { + var tx = 0; + var ty = 0; + if (this.wrapper && this.wrapper.outerBounds) { + var outerBounds = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_7__["getOuterBounds"])(this); + // EJ2-56887 - Connector do not get rendered properly in symbol palette. + // Added the absolute command to change the connector height to positive if it is in negative value. + var connWidth = Math.abs((this.wrapper.bounds.width || this.style.strokeWidth || 1) - 2); + var connHeight = Math.abs((this.wrapper.bounds.height || this.style.strokeWidth || 1) - 2); + tx = (outerBounds.width - connWidth); + ty = (outerBounds.height - connHeight); + sw = Math.abs((width - (Math.max(tx, ty))) / connWidth); + sh = Math.abs((height - (Math.max(tx, ty))) / connHeight); + tx = ty = Math.min(tx, ty); + } + sw = sh = Math.min(sw, sh); + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["identityMatrix"])(); + refObject = refObject || this.wrapper; + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["rotateMatrix"])(matrix, -refObject.rotateAngle, refObject.offsetX, refObject.offsetY); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["scaleMatrix"])(matrix, sw, sh, refObject.offsetX, refObject.offsetY); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["rotateMatrix"])(matrix, refObject.rotateAngle, refObject.offsetX, refObject.offsetY); + var points = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_17__["transformPointsByMatrix"])(matrix, this.intermediatePoints); + this.sourcePoint = points[0]; + this.targetPoint = points[points.length - 1]; + points = this.intermediatePoints = Object(_utility_connector__WEBPACK_IMPORTED_MODULE_7__["findConnectorPoints"])(this); + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_8__["updateConnector"])(this, points); + return { x: tx, y: ty }; + }; + /** + * @private + * Returns the name of class Connector + */ + Connector.prototype.getClassName = function () { + return 'Connector'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ComplexFactory"])(getConnectorType) + ], Connector.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["ConnectorConstraints"].Default) + ], Connector.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], Connector.prototype, "bridgeSpace", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _annotation__WEBPACK_IMPORTED_MODULE_11__["PathAnnotation"]) + ], Connector.prototype, "annotations", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], Connector.prototype, "sourcePoint", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], Connector.prototype, "targetPoint", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _fixed_user_handle__WEBPACK_IMPORTED_MODULE_21__["ConnectorFixedUserHandle"]) + ], Connector.prototype, "fixedUserHandles", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["CollectionFactory"])(getSegmentType) + ], Connector.prototype, "segments", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Connector.prototype, "sourceID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Connector.prototype, "targetID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], Connector.prototype, "hitPadding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Connector.prototype, "connectionPadding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Straight') + ], Connector.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Connector.prototype, "cornerRadius", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ shape: 'None' }, Decorator) + ], Connector.prototype, "sourceDecorator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ shape: 'Arrow' }, Decorator) + ], Connector.prototype, "targetDecorator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _tooltip__WEBPACK_IMPORTED_MODULE_16__["DiagramTooltip"]) + ], Connector.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Connector.prototype, "sourcePortID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Connector.prototype, "targetPortID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Connector.prototype, "sourcePadding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _preview__WEBPACK_IMPORTED_MODULE_20__["SymbolSize"]) + ], Connector.prototype, "previewSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _preview__WEBPACK_IMPORTED_MODULE_20__["SymbolSize"]) + ], Connector.prototype, "dragSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Connector.prototype, "targetPadding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(13) + ], Connector.prototype, "connectorSpacing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ strokeWidth: 1, strokeColor: 'black' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["StrokeStyle"]) + ], Connector.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Connector.prototype, "maxSegmentThumb", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Connector.prototype, "allowNodeOverlap", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BezierSettings) + ], Connector.prototype, "bezierSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Connector.prototype, "wrapper", void 0); + return Connector; +}(_node_base__WEBPACK_IMPORTED_MODULE_15__["NodeBase"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/context-menu.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/context-menu.js ***! + \************************************************************************************/ +/*! exports provided: menuClass, DiagramContextMenu */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "menuClass", function() { return menuClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramContextMenu", function() { return DiagramContextMenu; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_navigations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../ej2-navigations */ "./ej2-resources/22.1.37/scripts/ej2-navigations/index.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../diagram/utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (undefined && undefined.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + + +/** + * @private + */ +var menuClass = { + content: '.e-diagramcontent', + copy: 'e-copy', + paste: 'e-paste', + undo: 'e-undo', + redo: 'e-redo', + cut: 'e-cut', + selectAll: 'e-selectall', + grouping: 'e-grouping', + group: 'e-group', + unGroup: 'e-ungroup', + bringToFront: 'e-bringfront', + sendToBack: 'e-sendback', + moveForward: 'e-bringforward', + sendBackward: 'e-sendbackward', + order: 'e-order' +}; +/** + * 'ContextMenu module used to handle context menu actions.' + * + * @private + */ +var DiagramContextMenu = /** @__PURE__ @class */ (function () { + function DiagramContextMenu(parent, service) { + this.defaultItems = {}; + /** + * @private + */ + this.disableItems = []; + /** + * @private + */ + this.hiddenItems = []; + this.localeText = this.setLocaleKey(); + this.parent = parent; + this.serviceLocator = service; + this.addEventListener(); + } + /** + * addEventListener method \ + * + * @returns { void } addEventListener method .\ + * + * @private + */ + DiagramContextMenu.prototype.addEventListener = function () { + if (this.parent.isDestroyed) { + return; + } + this.parent.on('initial-load', this.render, this); + }; + /** + * removeEventListener method \ + * + * @returns { void } removeEventListener method .\ + * + * @private + */ + DiagramContextMenu.prototype.removeEventListener = function () { + if (this.parent.isDestroyed) { + return; + } + this.parent.off('initial-load', this.render); + }; + DiagramContextMenu.prototype.render = function () { + this.l10n = this.serviceLocator.getService('localization'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.element = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["createHtmlElement"])('ul', { id: this.parent.element.id + '_contextMenu' }); + this.parent.element.appendChild(this.element); + var target = '#' + this.parent.element.id; + this.contextMenu = new _ej2_navigations__WEBPACK_IMPORTED_MODULE_1__["ContextMenu"]({ + items: this.getMenuItems(), + enableRtl: this.parent.enableRtl, + enablePersistence: this.parent.enablePersistence, + locale: this.parent.locale, + target: target, + select: this.contextMenuItemClick.bind(this), + beforeOpen: this.contextMenuBeforeOpen.bind(this), + onOpen: this.contextMenuOpen.bind(this), + beforeItemRender: this.BeforeItemRender.bind(this), + onClose: this.contextMenuOnClose.bind(this), + cssClass: 'e-diagram-menu', + animationSettings: { effect: 'None' } + }); + this.contextMenu.appendTo(this.element); + } + }; + DiagramContextMenu.prototype.getMenuItems = function () { + var menuItems = []; + var orderItems = []; + var groupItems = []; + if (!this.parent.contextMenuSettings.showCustomMenuOnly) { + for (var _i = 0, _a = this.getDefaultItems(); _i < _a.length; _i++) { + var item = _a[_i]; + if (item.toLocaleLowerCase().indexOf('group') !== -1) { + if (item.toLocaleLowerCase() !== 'grouping') { + groupItems.push(this.buildDefaultItems(item)); + } + } + else if (item.toLocaleLowerCase().indexOf('order') !== -1) { + if (item.toLocaleLowerCase() !== 'order') { + orderItems.push(this.buildDefaultItems(item)); + } + } + else { + menuItems.push(this.buildDefaultItems(item)); + } + } + if (groupItems.length > 0) { + var orderGroup = this.buildDefaultItems('grouping'); + orderGroup.items = groupItems; + menuItems.push(orderGroup); + } + if (orderItems.length > 0) { + var orderGroup = this.buildDefaultItems('order'); + orderGroup.items = orderItems; + menuItems.push(orderGroup); + } + } + if (this.parent.contextMenuSettings.items) { + for (var _b = 0, _c = this.parent.contextMenuSettings.items; _b < _c.length; _b++) { + var customItem = _c[_b]; + menuItems.push(customItem); + } + } + return menuItems; + }; + DiagramContextMenu.prototype.contextMenuOpen = function () { + this.isOpen = true; + }; + DiagramContextMenu.prototype.BeforeItemRender = function (args) { + this.parent.trigger(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["contextMenuBeforeItemRender"], args); + }; + DiagramContextMenu.prototype.contextMenuItemClick = function (args) { + document.getElementById(this.parent.element.id + 'content').focus(); + this.parent.trigger(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["contextMenuClick"], args); + var item = this.getKeyFromId(args.item.id); + if (!args.cancel) { + switch (item) { + case 'cut': + this.parent.cut(); + break; + case 'copy': + this.parent.copy(); + break; + case 'undo': + this.parent.undo(); + break; + case 'redo': + this.parent.redo(); + break; + case 'paste': + this.parent.paste(); + break; + case 'selectAll': + this.parent.selectAll(); + break; + case 'group': + this.parent.group(); + break; + case 'unGroup': + this.parent.unGroup(); + break; + case 'bringToFrontOrder': + this.parent.bringToFront(); + break; + case 'moveForwardOrder': + this.parent.moveForward(); + break; + case 'sendToBackOrder': + this.parent.sendToBack(); + break; + case 'sendBackwardOrder': + this.parent.sendBackward(); + break; + } + } + }; + DiagramContextMenu.prototype.contextMenuOnClose = function (args) { + var parent = 'parentObj'; + if (args.items.length > 0 && args.items[0]["" + parent] instanceof _ej2_navigations__WEBPACK_IMPORTED_MODULE_1__["ContextMenu"]) { + this.updateItemStatus(); + } + }; + DiagramContextMenu.prototype.getLocaleText = function (item) { + return this.l10n.getConstant(this.localeText["" + item]); + }; + DiagramContextMenu.prototype.updateItemStatus = function () { + this.contextMenu.showItems(this.hiddenItems, true); + this.contextMenu.enableItems(this.disableItems, false, true); + this.hiddenItems = []; + this.disableItems = []; + this.isOpen = false; + }; + /** + * ensureItems method \ + * + * @returns { void } ensureItems method .\ + * @param {MenuItemModel} item - provide the item value. + * @param {Event} event - provide the event value. + * + * @private + */ + DiagramContextMenu.prototype.ensureItems = function (item, event) { + var key = this.getKeyFromId(item.id); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var dItem = this.defaultItems["" + key]; + if (this.getDefaultItems().indexOf(key) !== -1) { + if (item.target && (event || this.parent.checkMenu) && + !this.ensureTarget(item)) { + this.hiddenItems.push(item.id); + } + } + }; + /** + * refreshItems method \ + * + * @returns { void } refreshItems method .\ + * + * @private + */ + DiagramContextMenu.prototype.refreshItems = function () { + this.updateItems(); + this.contextMenu.refresh(); + }; + DiagramContextMenu.prototype.updateItems = function () { + var canInsert = true; + for (var i = 0; i < this.parent.contextMenuSettings.items.length; i++) { + var items = this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)]; + for (var j = 0; j < this.contextMenu.items.length; j++) { + if (this.contextMenu.items[parseInt(j.toString(), 10)].text === this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)].text) { + canInsert = false; + } + } + if (canInsert) { + this.contextMenu.insertAfter([items], this.contextMenu.items[this.contextMenu.items.length - 1].text); + } + } + }; + DiagramContextMenu.prototype.contextMenuBeforeOpen = function (args) { + return __awaiter(this, void 0, void 0, function () { + var diagramArgs, _i, _a, item, _b, _c, newItem, hidden, contextItems, i, item, i, item; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + if (!this.parent.checkMenu && + (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) { + this.parent.checkMenu = args.cancel = true; + } + if (this.parent.checkMenu) { + this.hiddenItems = []; + } + diagramArgs = args; + diagramArgs.hiddenItems = []; + for (_i = 0, _a = args.items; _i < _a.length; _i++) { + item = _a[_i]; + this.ensureItems(item, args.event); + if (item.items.length) { + for (_b = 0, _c = item.items; _b < _c.length; _b++) { + newItem = _c[_b]; + this.ensureItems(newItem, args.event); + } + } + } + this.eventArgs = args.event; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) return [3 /*break*/, 2]; + return [4 /*yield*/, this.parent.trigger(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["contextMenuOpen"], diagramArgs)]; + case 1: + diagramArgs = + (_d.sent()) || diagramArgs; + if (typeof diagramArgs === 'string') { + diagramArgs = JSON.parse(diagramArgs); + } + return [3 /*break*/, 3]; + case 2: + this.parent.trigger(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["contextMenuOpen"], diagramArgs); + _d.label = 3; + case 3: + hidden = true; + this.hiddenItems = this.hiddenItems.concat(diagramArgs.hiddenItems); + this.contextMenu.enableItems(this.disableItems, false, true); + contextItems = this; + for (i = 0; i < args.items.length; i++) { + item = args.items[parseInt(i.toString(), 10)]; + if (contextItems.hiddenItems.indexOf(item.id) > -1) { + contextItems.contextMenu.hideItems([item.id], true); + } + } + for (i = 0; i < contextItems.contextMenu.items.length; i++) { + item = contextItems.contextMenu.items[parseInt(i.toString(), 10)]; + if (contextItems.hiddenItems.indexOf(item.id) === -1) { + hidden = false; + contextItems.contextMenu.showItems([item.id], true); + } + } + if (hidden) { + diagramArgs.cancel = hidden; + this.hiddenItems = []; + } + /* tslint:disable */ + if (this.parent.selectedItems.nodes.length && this.parent.selectedItems.nodes[0].isPhase && !this.parent.contextMenuSettings.showCustomMenuOnly) { + args.cancel = true; + } + return [2 /*return*/]; + } + }); + }); + }; + DiagramContextMenu.prototype.ensureTarget = function (item) { + var selectedLength = this.parent.selectedItems.nodes.length + + this.parent.selectedItems.connectors.length; + var itemText = this.getKeyFromId(item.id); + var target = false; + switch (itemText) { + case 'undo': + target = this.parent.historyManager && this.parent.historyManager.canUndo ? true : false; + break; + case 'redo': + target = this.parent.historyManager && this.parent.historyManager.canRedo ? true : false; + break; + case 'paste': + target = this.parent.commandHandler.clipboardData.clipObject ? true : false; + break; + case 'selectAll': + target = this.parent.nodes.length + this.parent.connectors.length ? true : false; + break; + case 'grouping': + target = ((selectedLength > 1) || (this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children + && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false; + break; + case 'group': + target = selectedLength > 1; + break; + case 'unGroup': + target = ((this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children + && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false; + break; + case 'cut': + case 'copy': + case 'order': + case 'bringToFrontOrder': + case 'moveForwardOrder': + case 'sendToBackOrder': + case 'sendBackwardOrder': + target = selectedLength ? true : false; + break; + } + return target; + }; + /** + *To destroy the context menu + * + * @returns {void} To destroy the context menu + */ + DiagramContextMenu.prototype.destroy = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.contextMenu.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.element); + } + this.removeEventListener(); + }; + DiagramContextMenu.prototype.getModuleName = function () { + return 'contextMenu'; + }; + DiagramContextMenu.prototype.generateID = function (item) { + return this.parent.element.id + '_contextMenu_' + item; + }; + DiagramContextMenu.prototype.getKeyFromId = function (id) { + return id.replace(this.parent.element.id + '_contextMenu_', ''); + }; + DiagramContextMenu.prototype.buildDefaultItems = function (item) { + var menuItem; + switch (item) { + case 'copy': + menuItem = { target: menuClass.content, iconCss: menuClass.copy }; + break; + case 'cut': + menuItem = { target: menuClass.content, iconCss: menuClass.cut }; + break; + case 'paste': + menuItem = { target: menuClass.content, iconCss: menuClass.paste }; + break; + case 'undo': + menuItem = { target: menuClass.content, iconCss: menuClass.undo }; + break; + case 'redo': + menuItem = { target: menuClass.content, iconCss: menuClass.redo }; + break; + case 'grouping': + menuItem = { target: menuClass.content }; + break; + case 'group': + menuItem = { target: menuClass.content, iconCss: menuClass.group }; + break; + case 'unGroup': + menuItem = { target: menuClass.content, iconCss: menuClass.unGroup }; + break; + case 'order': + menuItem = { target: menuClass.content, iconCss: menuClass.order }; + break; + case 'bringToFrontOrder': + menuItem = { target: menuClass.content, iconCss: menuClass.bringToFront }; + break; + case 'moveForwardOrder': + menuItem = { target: menuClass.content, iconCss: menuClass.moveForward }; + break; + case 'sendToBackOrder': + menuItem = { target: menuClass.content, iconCss: menuClass.sendToBack }; + break; + case 'sendBackwardOrder': + menuItem = { target: menuClass.content, iconCss: menuClass.sendBackward }; + break; + case 'selectAll': + menuItem = { target: menuClass.content }; + break; + } + this.defaultItems["" + item] = { + text: this.getLocaleText(item), id: this.generateID(item), + target: menuItem.target, iconCss: menuItem.iconCss ? 'e-icons ' + menuItem.iconCss : '' + }; + return this.defaultItems["" + item]; + }; + DiagramContextMenu.prototype.getDefaultItems = function () { + return [ + 'copy', + 'cut', 'paste', 'undo', 'redo', 'selectAll', 'grouping', 'group', 'unGroup', 'order', + 'bringToFrontOrder', 'moveForwardOrder', 'sendToBackOrder', 'sendBackwardOrder' + ]; + }; + DiagramContextMenu.prototype.setLocaleKey = function () { + return { + 'copy': 'Copy', + 'cut': 'Cut', + 'paste': 'Paste', + 'undo': 'Undo', + 'redo': 'Redo', + 'selectAll': 'SelectAll', + 'grouping': 'Grouping', + 'group': 'Group', + 'unGroup': 'UnGroup', + 'order': 'Order', + 'bringToFrontOrder': 'BringToFront', + 'moveForwardOrder': 'MoveForward', + 'sendToBackOrder': 'SendToBack', + 'sendBackwardOrder': 'SendBackward' + }; + }; + return DiagramContextMenu; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/basic-shapes.js": +/*!***********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/basic-shapes.js ***! + \***********************************************************************************************/ +/*! exports provided: getBasicShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBasicShape", function() { return getBasicShape; }); +/** + * BasicShapeDictionary defines the shape of the built-in basic shapes \ + * + * @returns { string } BasicShapeDictionary defines the shape of the built-in basic shapes .\ + * @param {string} shape - provide the element value. + * + * @private + */ +function getBasicShape(shape) { + return basicShapes[shape.toString()]; +} +// eslint-disable-next-line prefer-const +var basicShapes = { + //Rectangle, + 'Rectangle': 'M0,0 L50,0 L50,50 L0,50 z', + //Ellipse, + 'Ellipse': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' + + 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z', + //Hexagon, + 'Hexagon': 'M30,0 L60,0 L90,30 L60,60 L30,60 L0,30 L30,0 z', + //Parallelogram, + 'Parallelogram': 'M30,0 L60,0 L45,30 L15,30 z', + //Triangle, + 'Triangle': 'M45,0 L90,45 L0,45 L45,0 z', + //Plus, + 'Plus': 'M696.6084,158.2656 L674.8074,158.2656 L674.8074,136.4656 L658.4084,136.4656 L658.4084,158.2656 L636.6084,158.2656' + + 'L636.6084,174.6646 L658.4084,174.6646 L658.4084,196.4656 L674.8074,196.4656 L674.8074,174.6646 L696.6084,174.6646' + + 'L696.6084,158.2656 z', + //Star, + 'Star': 'M540.3643,137.9336 L546.7973,159.7016 L570.3633,159.7296 L550.7723,171.9366 L558.9053,194.9966 L540.3643,179.4996' + + 'L521.8223,194.9966 L529.9553,171.9366 L510.3633,159.7296 L533.9313,159.7016 L540.3643,137.9336 z', + //Pentagon, + 'Pentagon': 'M30,0 L60,30 L50,70 L10,70 L0,30 L30,0 z', + //Heptagon, + 'Heptagon': 'M223.7783,195.7134 L207.1303,174.8364 L213.0713,148.8034 L237.1303,137.2174 L261.1883,148.8034 L267.1303,174.8364' + + 'L250.4813,195.7134 L223.7783,195.7134 z', + //Octagon, + 'Octagon': 'M98.7319,196.4653 L81.1579,178.8923 L81.1579,154.0393 L98.7319,136.4653 L123.5849,136.4653' + + 'L141.1579,154.0393 L141.1579,178.8923 L123.5849,196.4653 L98.7319,196.4653 z', + //Trapezoid, + 'Trapezoid': 'M127.2842,291.4492 L95.0322,291.4492 L81.1582,256.3152 L141.1582,256.3152 L127.2842,291.4492 z', + //Decagon, + 'Decagon': 'M657.3379,302.4141 L642.3369,291.5161 L636.6089,273.8821 L642.3369,256.2481 L657.3379,245.3511 L675.8789,245.3511' + + 'L690.8789,256.2481 L696.6089,273.8821' + + 'L690.8789,291.5161 L675.8789,302.4141 L657.3379,302.4141 z', + //RightTriangle, + 'RightTriangle': 'M836.293,292.9238 L776.293,292.9238 L776.293,254.8408 L836.293,292.9238 z', + //Cylinder, + 'Cylinder': 'M 542.802,362.009C 542.802,368.452 525.341,373.676 503.802,373.676C 482.263,373.676 464.802,368.452 464.802,362.009' + + 'L 464.802,466.484C 464.802,472.928 482.263,478.151 503.802,478.151' + + 'C 525.341,478.151 542.802,472.928 542.802,466.484L 542.802,362.016C 542.802,368.459 525.341,373.534 503.802,373.534' + + 'C 482.263,373.534 464.802,368.31 464.802,361.867' + + 'L 464.802,362.016C 464.802,355.572 482.263,350.349 503.802,350.349C 525.341,350.349 542.802,355.572 542.802,362.016', + //Diamond, + 'Diamond': 'M397.784,287.875 L369.5,316.159 L341.216,287.875 L369.5,259.591 L397.784,287.875 z' +}; + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js ***! + \*****************************************************************************************/ +/*! exports provided: getPortShape, getDecoratorShape, getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical, getIconShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPortShape", function() { return getPortShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDecoratorShape", function() { return getDecoratorShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeHorizontal", function() { return getSegmentThumbShapeHorizontal; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeVertical", function() { return getSegmentThumbShapeVertical; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIconShape", function() { return getIconShape; }); +/** + *ShapeDictionary defines the shape of the default nodes and ports \ + * + * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\ + * @param {PortShapes} shape - provide the element value. + * + * @private + */ +function getPortShape(shape) { + return portShapes[shape.toString()]; +} +/** + *ShapeDictionary defines the shape of the default nodes and ports \ + * + * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\ + * @param {DecoratorShapes} shape - provide the element value. + * @param {DecoratorModel} decorator - provide the element value. + + * + * @private + */ +function getDecoratorShape(shape, decorator) { + if (shape === 'Custom') { + return decorator.pathData; + } + return decoratorShapes["" + shape]; +} +function getSegmentThumbShapeHorizontal(shapes) { + return segmentThumbShapeHorizontal["" + shapes]; +} +function getSegmentThumbShapeVertical(shapes) { + return segmentThumbShapeVertical["" + shapes]; +} +/** + *sets the path data for different icon shapes \ + * + * @returns { string } sets the path data for different icon shapes\ + * @param {IconShapeModel} icon - provide the element value. + * + * @private + */ +function getIconShape(icon) { + var data; + switch (icon.shape) { + case 'Minus': + data = 'M0,50 L100,50'; + break; + case 'Plus': + data = 'M0,-50 L0,50 M-50,0 L50,0'; + break; + case 'ArrowUp': + data = 'M0,100 L50,0 L100,100 Z'; + break; + case 'ArrowDown': + data = 'M0,0 L50,100 L100,0 Z'; + break; + case 'Path': + data = icon.pathData; + break; + } + return data; +} +// eslint-disable-next-line prefer-const +var portShapes = { + 'X': 'M14,14 L106,106 M106,14 L14,106', + 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z', + 'Square': 'M0,0 L10,0 L10,10 L0,10 z' +}; +// eslint-disable-next-line prefer-const +var decoratorShapes = { + 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z', + 'Square': 'M0,0 L10,0 L10,10 L0,10 z', + 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z', + 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' + + 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' + + 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' + + 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z', + 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z', + 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z', + 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z', + 'Arrow': 'M15,10 L15,22 L5,16Z', + 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z', + 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z' +}; +var segmentThumbShapeHorizontal = { + 'Square': 'M0,0 L10,0 L10,10 L0,10 z', + 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ', + 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z ', + 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z', + 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ', + 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ', + 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ', + 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ', + 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z', + 'Arrow': 'M15,10 L15,22 L5,16Z', + 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ', + 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ', + 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z ' +}; +var segmentThumbShapeVertical = { + 'Square': 'M0,0 L10,0 L10,10 L0,10 z', + 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ', + 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z', + 'OpenArrow': 'M23,15.9 L16,5 L9,15.9 L10.7,17 L16,8.7 L21,17.3Z', + 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ', + 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ', + 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ', + 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ', + 'DoubleArrow': 'M10,19 L22,19 L16,13Z M10,12 L22,12 L16,6Z', + 'Arrow': 'M10,15 L22,15 L16,5Z', + 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ', + 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ', + 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z ' +}; + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/flow-shapes.js": +/*!**********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/flow-shapes.js ***! + \**********************************************************************************************/ +/*! exports provided: getFlowShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFlowShape", function() { return getFlowShape; }); +/** + * FlowShapeDictionary defines the shape of the built-in flow shapes \ + * + * @returns { string } FlowShapeDictionary defines the shape of the built-in flow shapes .\ + * @param {string} shape - provide the element value. + * + * @private + */ +function getFlowShape(shape) { + return flowShapes[shape.toString()]; +} +/* eslint-disable */ +var flowShapes = { + // Process, + 'Process': 'M419.511,76.687L359.511,76.687L359.511,43.086L419.511,43.086z', + // Decision, + 'Decision': 'M 253.005,115.687L 200.567,146.071L 148.097,115.687L 200.534,85.304L 253.005,115.687 Z', + // Document, + 'Document': 'M 60 31.9 c 0 0 -11 -7.7 -30 0 s -30 0 -30 0 V 0 h 60 V 31.9 Z', + // PreDefinedProcess, + 'PreDefinedProcess': 'M 0,0 L 50,0 L 50,50 L 0,50 Z M 8.334,0 L 8.334,50 M 41.667,0 L 41.667,50', + // Terminator, + 'Terminator': 'M 269.711,29.33C 269.71,44.061 257.77,56 243.04,56L 158.058,56C 143.33,56 131.39,44.061 131.39,29.33L 131.39,29.33' + + 'C 131.391,14.6057 143.33,2.669 158.058,2.669L 243.044,2.669C 257.772,2.669 269.711,14.6057 269.711,29.333 Z', + // PaperTap, + 'PaperTap': 'M0.0009,17.2042 L0.0009,47.165 C0.001,47.165 14.403,53.5455 25.00,47.165 C35.599,40.7852 44.403,43.5087 50.00,47.165' + + 'L50.001,17.2042 M50.001,32.7987 L50.001,2.8405 C50.001,2.8405 35.599,-3.5427 25.001,2.8405' + + 'C14.403,9.2237 5.599,6.494 0.0009,2.8405 L0.0009,32.7987', + // DirectData, + 'DirectData': 'M 132.62 0 L 17.38 0 C 7.78 0 0 13.43 0 30 C 0 46.57 7.78 60 17.38 60 L 132.62 60 M 132.62 0' + + 'C 123.02 0 115.24 13.43 115.24 30 C 115.24 46.57 123.02 60 132.62 60 C 142.22 60 150 46.57 150 30 C 150 13.43 142.22 0 132.62 0 z ', + // SequentialData, + 'SequentialData': 'M0.0029,24.999 C0.0029,11.1922 10.433,0.0021 23.295,0.0021 C36.159,0.00216 46.585,11.1922 46.585,24.999' + + 'C46.585,38.8057 36.159,49.9979 23.295,49.9979 C10.433,49.9979 0.0029,38.8057 0.0029,24.999 z M23.294,49.999 L50.002,49.999', + // Sort, + 'Sort': 'M50.001,24.9971 L25.001,49.9971 L0.00097,24.9971 L25.001,-0.00286865 L50.001,24.9971 z' + + ' M0.000976562,24.9971 L50.001,24.9971', + // MultiDocument, + 'MultiDocument': 'M43.6826,40 C44.8746,40.6183 45.8586,41.3502 46.8366,42.1122 L46.8366,4.74487 L3.09857,4.74487 L3.09857,10.9544' + + ' M46.837,35.143 C48.027,35.765 49.025,36.604 50.003,37.369 L50.003,0.002 L6.264,0.002 L6.264,4.744 M43.682,47.113 L43.682,10.765' + + ' L0.0025,10.7652 L0.0025,47.1132 C0.0025,47.1132 12.5846,53.6101 21.8426,47.1132 C31.1006,40.6163 38.792,43.393 43.6826,47.1132 z', + // Collate, + 'Collate': 'M50.001,0.0028 L25.001,25.0029 L0.00097,0.0028 L50.001,0.002 z M0.0009,50.002 L25.001,25.002' + + 'L50.001,50.002 L0.0009,50.0029 z', + // SummingJunction, + 'SummingJunction': 'M7.3252,42.6768 L42.6772,7.3247 M42.6768,42.6768 L7.3248,7.3247 M0.0009,25.001 ' + + 'C0.0009,11.193 11.197,0.0009 25.001,0.0009' + + ' C38.809,0.0009 50.001,11.193 50.001,25.001 C50.001,38.809 38.809,50.001 25.001,50.001 C11.197,50.00 0.0009,38.809 0.0009,25.00 z', + // Or, + 'Or': 'M 0 50 L 100 50 M 50 100 L 50 0.0 M 0 50 C 0 22.384 22.392 0 50 0 C 77.616 0 100 22.384 100 50' + + ' C 100 77.616 77.616 100 50 100 C 22.392 100 0 77.616 0 50 Z', + // InternalStorage, + 'InternalStorage': 'M 0 3.81946A 2.5,3.81946 0 0,1 2.5,0L 47.5 0A 2.5,3.81946 0 0,1 50,3.81946' + + 'L 50 45.836A 2.5,3.819446 0 0,1 47.5,49.652778' + + 'L 2.5 49.652778A 2.5,3.819446 0 0,1 0,45.8336L 0 3.819446ZM 0 11.45834L 50 11.4583334M 12.5 0L 12.5 49.652778', + // Extract, + 'Extract': 'M0,35 L30,0 L60,35 Z', + // ManualOperation, + 'ManualOperation': 'M46.4,28.8 L14.8,28.8 L0,0 L60,0 Z', + // Merge, + 'Merge': 'M60,0 L30,35 L0,0 Z', + // OffPageReference, + 'OffPageReference': 'M60,33.3 L30.1,39 L0,33.3 L0,0 L60,0 Z', + // SequentialAccessStorage, + 'SequentialAccessStorage': 'M 60 30 C 60 13.4 46.6 0 30 0 S 0 13.4 0 30 s 13.4 30 30 30 h 28.6 v -6.5 h -9.9' + + 'C 55.5 48 60 39.5 60 30 Z', + // Annotation, + 'Annotation': 'M49.9984,50.0029 L-0.00271199,50.0029 L-0.00271199,0.00286865 L49.9984,0.00286865', + // Annotation2, + 'Annotation2': 'M49.9977,50.0029 L25.416,50.0029 L25.416,0.00286865 L49.9977,0.00286865 M25.4166,25.0029 L-0.00227869,25.0029', + // Data, + 'Data': 'M 10 0 L 40 0 L 30 40 L 0 40 Z', + // Card, + 'Card': 'M275,60 L400,60 L400,110 L260,110 L260,75 Z', + // Delay, + 'Delay': 'M0,0 L12.029,0 C14.212999,0 16,1.7869979 16,3.9709952 C16,6.1549926 14.212999,7.9409904 12.029,7.9409904 L0,7.9409904 z', + // Preparation, + 'Preparation': 'M 1048.17 572 C 1051.06 568.86 1055.17 567.05 1059.5 567 L 1094.51 567' + + ' C 1098.84 567.05 1102.95 568.86 1105.84 572' + + ' L 1126.43 595 C 1127.01 596.28 1127.01 597.72 1126.43 599 L 1105.84 622 C 1102.95 625.14 1098.84 626.95 1094.51 627' + + ' L 1059.5 627 C 1055.17 626.95 1051.06 625.14 1048.17 622 L 1027.58 599 C 1027 597.72 1027 596.28 1027.58 595 L 1048.17 572 Z', + // Display, + 'Display': 'M47.8809,19.2914 L32.7968,-0.00594145 L11.3902,-0.00594145 C7.93166,-0.00594145 0.00124586,11.187 0.00124586,24.9968' + + 'C0.00124586,38.8032 7.93166,49.9962 11.3902,49.9962 L32.7968,49.99 L47.615,31.038 C47.615,31.0388 52.798,24.9968 47.880,19.2914 z', + // ManualInput, + 'ManualInput': 'M 912 732 L 1006.85 707 C 1008.2 707 1009.5 707.53 1010.46 708.46 C 1011.41 709.4 1011.95 710.67 1011.95 712' + + ' L 1011.95 762C 1012 764.41 1010.28 766.52 1007.87 767 L 917.1 767 C 915.75 767 914.45 766.47 913.49 765.54' + + ' C 912.54 764.6 912 763.33 912 762 L 912 732 Z', + // LoopLimit, + 'LoopLimit': 'M 8 9 L 27 9 L 33 15 L 33 26 C 33 27 33 27 32 27 L 4 27 C 3 27 2 27 2 26 L 2 15 L 8 9 Z', + // StoredData + 'StoredData': 'M 5.55 0L 50 0A 1.5,30 0 0,1 50,0A 5.555,25 0 0,0 50,50A 1.5,30 0 0,1 50,50L 5.555 50A 5.55,25 0 0,1 5.555,0Z', +}; +/* eslint-enable */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/umlactivity-shapes.js": +/*!*****************************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/umlactivity-shapes.js ***! + \*****************************************************************************************************/ +/*! exports provided: getUMLActivityShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUMLActivityShape", function() { return getUMLActivityShape; }); +/** + * UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes \ + * + * @returns { string } UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes .\ + * @param {string} shape - provide the shape value. + * + * @private + */ +function getUMLActivityShape(shape) { + return umlActivityShapes[shape.toString()]; +} +/* eslint-disable */ +var umlActivityShapes = { + // Action, + 'Action': 'M 90 82.895 C 90 86.819 86.776 90 82.8 90 H 7.2 C 3.224 90 0 86.819 0 82.895' + + ' V 7.105 C 0 3.181 3.224 0 7.2 0 h 75.6 C 86.776 0 90 3.181 90 7.105 V 82.895 Z', + // Decision, + 'Decision': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z', + // MergeNode, + 'MergeNode': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z', + // InitialNode, + 'InitialNode': 'M10,19.5c-5.238,0-9.5-4.262-9.5-9.5S4.762,0.5,10,0.5s9.5,4.262,9.5,9.5S15.238,19.5,10,19.5z', + // ForkNode, + 'ForkNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z', + // JoinNode, + 'JoinNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z', + // TimeEvent, + 'TimeEvent': 'M50.001,0.00286865 L25.001,25.0029 L0.000976562,0.00286865 L50.001,0.00286865 z' + + ' M0.000976562,50.0029 L25.001,25.0029 L50.001,50.0029 L0.000976562,50.0029 z', + // AcceptingEvent, + 'AcceptingEvent': 'M17.8336 32.164 L29.64 24 L17.32 16 L48.1664 16 L48.5 32 Z', + // SendSignal, + 'SendSignal': 'M48.164 31.8336 L56 23.832 L47.836 16 L16.168 16 L16.1668 31.8336 Z', + // ReceiveSignal, + 'ReceiveSignal': 'M48.1664 31.8336 L39.836 24 L47.836 16 L16.168 16 L16.168 31.836 Z', + // StructuredNode, + 'StructuredNode': 'M0,0 L50,0 L50,50 L0,50 z', + // Note, + 'Note': 'M20 12 L4 12 L4 22 L22 22 L22 14 L20 14 L20 12 L22 14 Z' +}; +/* eslint-enable */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js ***! + \*****************************************************************************************/ +/*! exports provided: FixedUserHandle, NodeFixedUserHandle, ConnectorFixedUserHandle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandle", function() { return FixedUserHandle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeFixedUserHandle", function() { return NodeFixedUserHandle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectorFixedUserHandle", function() { return ConnectorFixedUserHandle; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * Specifies the behavior of fixedUserHandles + */ +/** @private */ +var FixedUserHandle = /** @__PURE__ @class */ (function (_super) { + __extends(FixedUserHandle, _super); + function FixedUserHandle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], FixedUserHandle.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], FixedUserHandle.prototype, "fill", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('black') + ], FixedUserHandle.prototype, "iconStrokeColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], FixedUserHandle.prototype, "iconStrokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], FixedUserHandle.prototype, "visibility", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], FixedUserHandle.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], FixedUserHandle.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], FixedUserHandle.prototype, "handleStrokeColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], FixedUserHandle.prototype, "handleStrokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], FixedUserHandle.prototype, "pathData", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], FixedUserHandle.prototype, "cornerRadius", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 0, right: 0, top: 0, bottom: 0 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], FixedUserHandle.prototype, "padding", void 0); + return FixedUserHandle; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the node Fixed User Handle + */ +var NodeFixedUserHandle = /** @__PURE__ @class */ (function (_super) { + __extends(NodeFixedUserHandle, _super); + function NodeFixedUserHandle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], NodeFixedUserHandle.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], NodeFixedUserHandle.prototype, "margin", void 0); + return NodeFixedUserHandle; +}(FixedUserHandle)); + +/** + * Defines the connector Fixed User Handle + */ +var ConnectorFixedUserHandle = /** @__PURE__ @class */ (function (_super) { + __extends(ConnectorFixedUserHandle, _super); + function ConnectorFixedUserHandle() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.5) + ], ConnectorFixedUserHandle.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], ConnectorFixedUserHandle.prototype, "alignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0, y: 0 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], ConnectorFixedUserHandle.prototype, "displacement", void 0); + return ConnectorFixedUserHandle; +}(FixedUserHandle)); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/icon.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/icon.js ***! + \****************************************************************************/ +/*! exports provided: IconShape */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IconShape", function() { return IconShape; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * Defines the behavior of default IconShapes + */ +var IconShape = /** @__PURE__ @class */ (function (_super) { + __extends(IconShape, _super); + function IconShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], IconShape.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('white') + ], IconShape.prototype, "fill", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], IconShape.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], IconShape.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], IconShape.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], IconShape.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0.5, y: 1 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], IconShape.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#1a1a1a') + ], IconShape.prototype, "borderColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], IconShape.prototype, "borderWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], IconShape.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], IconShape.prototype, "pathData", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], IconShape.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], IconShape.prototype, "cornerRadius", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 2, right: 2, top: 2, bottom: 2 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], IconShape.prototype, "padding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#1a1a1a') + ], IconShape.prototype, "iconColor", void 0); + return IconShape; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/layout-animation.js": +/*!****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/layout-animation.js ***! + \****************************************************************************************/ +/*! exports provided: LayoutAnimation */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutAnimation", function() { return LayoutAnimation; }); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); + + + + +/** + * Layout Animation function to enable or disable layout animation + */ +var LayoutAnimation = /** @__PURE__ @class */ (function () { + function LayoutAnimation() { + this.protectChange = false; + } + /** + * Layout expand function for animation of expand and collapse \ + * + * @returns { void } Layout expand function for animation of expand and collapse .\ + * @param {boolean} animation - provide the angle value. + * @param {ILayout} objects - provide the angle value. + * @param {Node} node - provide the angle value. + * @param {Diagram} diagram - provide the angle value. + * @private + */ + LayoutAnimation.prototype.expand = function (animation, objects, node, diagram) { + var _this = this; + var setIntervalObject = {}; + var i = 0; + var j = 0; + diagram.realActions = diagram.realActions | _enum_enum__WEBPACK_IMPORTED_MODULE_1__["RealAction"].AnimationClick; + setIntervalObject[parseInt(i.toString(), 10)] = setInterval(function () { + j++; + return _this.layoutAnimation(objects, setIntervalObject, j === 6, diagram, node); + }, 20); + if (node.isExpanded) { + var opacity_1 = .2; + var protect = 'isProtectedOnChange'; + this.protectChange = diagram["" + protect]; + diagram.protectPropertyChange(false); + //let objects: ILayout = diagram.doLayout(); + var setIntervalObjects_1 = {}; + var x = 0; + if (animation) { + this.updateOpacity(node, opacity_1, diagram); + // eslint-disable-next-line @typescript-eslint/no-this-alias + var current = this; + setIntervalObjects_1[parseInt(x.toString(), 10)] = setInterval(function () { + diagram.allowServerDataBinding = false; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + opacity_1 <= 1 ? _this.updateOpacity(node, opacity_1, diagram) : clearInterval(setIntervalObjects_1[0]); + opacity_1 += .2; + diagram.allowServerDataBinding = true; + }, 20); + } + } + }; + /** + * Setinterval and Clear interval for layout animation \ + * + * @returns { void } Setinterval and Clear interval for layout animation .\ + * @param {ILayout} objValue - provide the angle value. + * @param {Object} layoutTimer - provide the angle value. + * @param {ILayout} stop - provide the angle value. + * @param {Diagram} diagram - provide the angle value. + * @param {NodeModel} node - provide the angle value. + * @private + */ + LayoutAnimation.prototype.layoutAnimation = function (objValue, layoutTimer, stop, diagram, node) { + if (!stop) { + for (var k = 0; k < objValue.objects.length; k++) { + var node_1 = diagram.nameTable[objValue.objects[parseInt(k.toString(), 10)].id]; + node_1.offsetX += objValue.objects[parseInt(k.toString(), 10)].differenceX / 5; + node_1.offsetY += objValue.objects[parseInt(k.toString(), 10)].differenceY / 5; + } + } + if (stop) { + clearInterval(layoutTimer[0]); + diagram.realActions = diagram.realActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_1__["RealAction"].AnimationClick; + diagram.refreshCanvasLayers(); + diagram.protectPropertyChange(true); + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramEvent"].animationComplete, undefined); + diagram.organizationalChartModule.isAnimation = false; + diagram.layout.fixedNode = ''; + diagram.protectPropertyChange(this.protectChange); + var arg = { + element: Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_3__["cloneBlazorObject"])(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(node)), state: (node.isExpanded) ? true : false + }; + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramEvent"].expandStateChange, arg); + if (diagram.lineRoutingModule && diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].LineRouting) { + diagram.resetSegments(); + } + } + }; + /** + *update the node opacity for the node and connector once the layout animation starts \ + * + * @returns { void } update the node opacity for the node and connector once the layout animation starts .\ + * @param {Node} source - provide the source value. + * @param {number} value - provide the value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ + LayoutAnimation.prototype.updateOpacity = function (source, value, diagram) { + for (var i = 0; i < source.outEdges.length; i++) { + var connector = diagram.nameTable[source.outEdges[parseInt(i.toString(), 10)]]; + var target = diagram.nameTable[connector.targetID]; + connector.style.opacity = value; + for (var j = 0; j < connector.wrapper.children.length; j++) { + connector.wrapper.children[parseInt(j.toString(), 10)].style.opacity = value; + target.style.opacity = value; + if (target.wrapper instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_0__["Container"]) { + diagram.updateNodeProperty(target.wrapper, undefined, value); + } + } + this.updateOpacity(target, value, diagram); + } + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + LayoutAnimation.prototype.destroy = function () { + /** + * Destroys the LayoutAnimate module + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + LayoutAnimation.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'LayoutAnimate'; + }; + return LayoutAnimation; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node-base.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node-base.js ***! + \*********************************************************************************/ +/*! exports provided: NodeBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeBase", function() { return NodeBase; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./preview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +/** + * Defines the common behavior of nodes, connectors and groups + */ +var NodeBase = /** @__PURE__ @class */ (function (_super) { + __extends(NodeBase, _super); + function NodeBase() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], NodeBase.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], NodeBase.prototype, "zIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], NodeBase.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], NodeBase.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _tooltip__WEBPACK_IMPORTED_MODULE_2__["DiagramTooltip"]) + ], NodeBase.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], NodeBase.prototype, "excludeFromLayout", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], NodeBase.prototype, "addInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], NodeBase.prototype, "flip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('All') + ], NodeBase.prototype, "flipMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _preview__WEBPACK_IMPORTED_MODULE_3__["SymbolPaletteInfo"]) + ], NodeBase.prototype, "symbolInfo", void 0); + return NodeBase; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js ***! + \****************************************************************************/ +/*! exports provided: Shape, Path, Native, Html, Image, Text, BasicShape, FlowShape, BpmnGateway, BpmnDataObject, BpmnTask, BpmnEvent, BpmnSubEvent, BpmnTransactionSubProcess, BpmnSubProcess, BpmnActivity, BpmnAnnotation, BpmnShape, UmlActivityShape, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, UmlClassifierShape, DiagramShape, Node, Header, Lane, Phase, SwimLane, ChildContainer, Selector */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Shape", function() { return Shape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Path", function() { return Path; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Native", function() { return Native; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Html", function() { return Html; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return Image; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return Text; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BasicShape", function() { return BasicShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FlowShape", function() { return FlowShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnGateway", function() { return BpmnGateway; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnDataObject", function() { return BpmnDataObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnTask", function() { return BpmnTask; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnEvent", function() { return BpmnEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnSubEvent", function() { return BpmnSubEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnTransactionSubProcess", function() { return BpmnTransactionSubProcess; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnSubProcess", function() { return BpmnSubProcess; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnActivity", function() { return BpmnActivity; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnAnnotation", function() { return BpmnAnnotation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BpmnShape", function() { return BpmnShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlActivityShape", function() { return UmlActivityShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MethodArguments", function() { return MethodArguments; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlClassAttribute", function() { return UmlClassAttribute; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlClassMethod", function() { return UmlClassMethod; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlClass", function() { return UmlClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlInterface", function() { return UmlInterface; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlEnumerationMember", function() { return UmlEnumerationMember; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlEnumeration", function() { return UmlEnumeration; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UmlClassifierShape", function() { return UmlClassifierShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramShape", function() { return DiagramShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return Node; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return Header; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Lane", function() { return Lane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Phase", function() { return Phase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SwimLane", function() { return SwimLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChildContainer", function() { return ChildContainer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Selector", function() { return Selector; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dictionary/basic-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/basic-shapes.js"); +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _core_elements_image_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../core/elements/image-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _port__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _annotation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _dictionary_common__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./dictionary/common */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js"); +/* harmony import */ var _dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./dictionary/flow-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/flow-shapes.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _node_base__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./node-base */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node-base.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./icon */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/icon.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../core/containers/stack-panel */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/stack-panel.js"); +/* harmony import */ var _core_containers_grid__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../core/containers/grid */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js"); +/* harmony import */ var _utility_uml_util__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../utility/uml-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/uml-util.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./../utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _interaction_selector__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../interaction/selector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/selector.js"); +/* harmony import */ var _diagram_layoutinfo__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../diagram/layoutinfo */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/layoutinfo.js"); +/* harmony import */ var _preview__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./preview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js"); +/* harmony import */ var _fixed_user_handle__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./fixed-user-handle */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +/* eslint-disable jsdoc/require-param */ +/* eslint-disable max-len */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable no-case-declarations */ +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +var getShapeType = function (obj) { + if (obj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + return DiagramShape; + } + else { + switch (obj.type) { + case 'Basic': + return BasicShape; + case 'Flow': + return FlowShape; + case 'Path': + return Path; + case 'Image': + return Image; + case 'Text': + return Text; + case 'Bpmn': + return BpmnShape; + case 'Native': + return Native; + case 'HTML': + return Html; + case 'UmlActivity': + return UmlActivityShape; + case 'UmlClassifier': + return UmlClassifierShape; + case 'SwimLane': + return SwimLane; + default: + return BasicShape; + } + } + } + return (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) ? DiagramShape : BasicShape; +}; +/** + * Defines the behavior of default shape + */ +var Shape = /** @__PURE__ @class */ (function (_super) { + __extends(Shape, _super); + function Shape() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Basic') + ], Shape.prototype, "type", void 0); + return Shape; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of path shape + */ +var Path = /** @__PURE__ @class */ (function (_super) { + __extends(Path, _super); + function Path() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * getClassName method \ + * + * @returns { string } toBounds method .\ + * + * @private + */ + Path.prototype.getClassName = function () { + return 'Path'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Path') + ], Path.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Path.prototype, "data", void 0); + return Path; +}(Shape)); + +/** + * Defines the behavior of Native shape + */ +var Native = /** @__PURE__ @class */ (function (_super) { + __extends(Native, _super); + function Native() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Native + * + * @private + */ + Native.prototype.getClassName = function () { + return 'Native'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Native') + ], Native.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Native.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Stretch') + ], Native.prototype, "scale", void 0); + return Native; +}(Shape)); + +/** + * Defines the behavior of html shape + */ +var Html = /** @__PURE__ @class */ (function (_super) { + __extends(Html, _super); + function Html() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Html + * + * @private + */ + Html.prototype.getClassName = function () { + return 'Html'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('HTML') + ], Html.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Html.prototype, "content", void 0); + return Html; +}(Shape)); + +/** + * Defines the behavior of image shape + */ +var Image = /** @__PURE__ @class */ (function (_super) { + __extends(Image, _super); + function Image() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Image + * + * @private + */ + Image.prototype.getClassName = function () { + return 'Image'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Image') + ], Image.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Image.prototype, "source", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Image.prototype, "scale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Image.prototype, "align", void 0); + return Image; +}(Shape)); + +/** + * Defines the behavior of the text shape + */ +var Text = /** @__PURE__ @class */ (function (_super) { + __extends(Text, _super); + function Text() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Text + * + * @private + */ + Text.prototype.getClassName = function () { + return 'Text'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Text') + ], Text.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Text.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], Text.prototype, "margin", void 0); + return Text; +}(Shape)); + +/** + * Defines the behavior of the basic shape + */ +var BasicShape = /** @__PURE__ @class */ (function (_super) { + __extends(BasicShape, _super); + function BasicShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BasicShape + * + * @private + * + */ + BasicShape.prototype.getClassName = function () { + return 'BasicShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Basic') + ], BasicShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Rectangle') + ], BasicShape.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], BasicShape.prototype, "cornerRadius", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], BasicShape.prototype, "points", void 0); + return BasicShape; +}(Shape)); + +/** + * Defines the behavior of the flow shape + */ +var FlowShape = /** @__PURE__ @class */ (function (_super) { + __extends(FlowShape, _super); + function FlowShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class FlowShape + * + * @private + */ + FlowShape.prototype.getClassName = function () { + return 'FlowShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Flow') + ], FlowShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Terminator') + ], FlowShape.prototype, "shape", void 0); + return FlowShape; +}(Shape)); + +/** + * Defines the behavior of the bpmn gateway shape + */ +var BpmnGateway = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnGateway, _super); + function BpmnGateway() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnGateway + * + * @private + */ + BpmnGateway.prototype.getClassName = function () { + return 'BpmnGateway'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnGateway.prototype, "type", void 0); + return BpmnGateway; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn data object + */ +var BpmnDataObject = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnDataObject, _super); + function BpmnDataObject() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnDataObject + * + * @private + */ + BpmnDataObject.prototype.getClassName = function () { + return 'BpmnDataObject'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnDataObject.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BpmnDataObject.prototype, "collection", void 0); + return BpmnDataObject; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn task shape + */ +var BpmnTask = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnTask, _super); + function BpmnTask() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnTask.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnTask.prototype, "loop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BpmnTask.prototype, "call", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BpmnTask.prototype, "compensation", void 0); + return BpmnTask; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn Event shape + */ +var BpmnEvent = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnEvent, _super); + function BpmnEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnEvent + * + * @private + */ + BpmnEvent.prototype.getClassName = function () { + return 'BpmnEvent'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Start') + ], BpmnEvent.prototype, "event", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnEvent.prototype, "trigger", void 0); + return BpmnEvent; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn sub event + */ +var BpmnSubEvent = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnSubEvent, _super); + function BpmnSubEvent() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnSubEvent + * + * @private + */ + BpmnSubEvent.prototype.getClassName = function () { + return 'BpmnSubEvent'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnSubEvent.prototype, "trigger", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Start') + ], BpmnSubEvent.prototype, "event", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], BpmnSubEvent.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], BpmnSubEvent.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _annotation__WEBPACK_IMPORTED_MODULE_14__["ShapeAnnotation"]) + ], BpmnSubEvent.prototype, "annotations", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _port__WEBPACK_IMPORTED_MODULE_13__["PointPort"]) + ], BpmnSubEvent.prototype, "ports", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], BpmnSubEvent.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], BpmnSubEvent.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], BpmnSubEvent.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], BpmnSubEvent.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], BpmnSubEvent.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], BpmnSubEvent.prototype, "visible", void 0); + return BpmnSubEvent; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the BpmnTransactionSubProcess + */ +var BpmnTransactionSubProcess = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnTransactionSubProcess, _super); + function BpmnTransactionSubProcess() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ id: 'success', event: 'End', offset: { x: 1, y: 0.5 } }, BpmnSubEvent) + ], BpmnTransactionSubProcess.prototype, "success", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ id: 'failure', event: 'Intermediate', trigger: 'Error', offset: { x: 0.25, y: 1 } }, BpmnSubEvent) + ], BpmnTransactionSubProcess.prototype, "failure", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ id: 'cancel', event: 'Intermediate', trigger: 'Cancel', offset: { x: 0.75, y: 1 } }, BpmnSubEvent) + ], BpmnTransactionSubProcess.prototype, "cancel", void 0); + return BpmnTransactionSubProcess; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the BPMNSubProcess + */ +var BpmnSubProcess = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnSubProcess, _super); + function BpmnSubProcess() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnSubProcess.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BpmnSubProcess.prototype, "adhoc", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], BpmnSubProcess.prototype, "boundary", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BpmnSubProcess.prototype, "compensation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], BpmnSubProcess.prototype, "loop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], BpmnSubProcess.prototype, "collapsed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], BpmnSubEvent) + ], BpmnSubProcess.prototype, "events", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnTransactionSubProcess) + ], BpmnSubProcess.prototype, "transaction", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(undefined) + ], BpmnSubProcess.prototype, "processes", void 0); + return BpmnSubProcess; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn activity shape + */ +var BpmnActivity = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnActivity, _super); + function BpmnActivity() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnActivity + * + * @private + */ + BpmnActivity.prototype.getClassName = function () { + return 'BpmnActivity'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Task') + ], BpmnActivity.prototype, "activity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnTask) + ], BpmnActivity.prototype, "task", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnSubProcess) + ], BpmnActivity.prototype, "subProcess", void 0); + return BpmnActivity; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn annotation + * + */ +var BpmnAnnotation = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnAnnotation, _super); + // tslint:disable-next-line:no-any + function BpmnAnnotation(parent, propName, defaultValue, isArray) { + return _super.call(this, parent, propName, defaultValue, isArray) || this; + } + /** + * @private + * Returns the name of class BpmnAnnotation + */ + BpmnAnnotation.prototype.getClassName = function () { + return 'BpmnAnnotation'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], BpmnAnnotation.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], BpmnAnnotation.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], BpmnAnnotation.prototype, "angle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], BpmnAnnotation.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], BpmnAnnotation.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], BpmnAnnotation.prototype, "length", void 0); + return BpmnAnnotation; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the bpmn shape + */ +var BpmnShape = /** @__PURE__ @class */ (function (_super) { + __extends(BpmnShape, _super); + function BpmnShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class BpmnShape + * + * @private + */ + BpmnShape.prototype.getClassName = function () { + return 'BpmnShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Bpmn') + ], BpmnShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Event') + ], BpmnShape.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnEvent) + ], BpmnShape.prototype, "event", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnGateway) + ], BpmnShape.prototype, "gateway", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnDataObject) + ], BpmnShape.prototype, "dataObject", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnActivity) + ], BpmnShape.prototype, "activity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnAnnotation) + ], BpmnShape.prototype, "annotation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], BpmnAnnotation) + ], BpmnShape.prototype, "annotations", void 0); + return BpmnShape; +}(Shape)); + +/** + * Defines the behavior of the UMLActivity shape + */ +var UmlActivityShape = /** @__PURE__ @class */ (function (_super) { + __extends(UmlActivityShape, _super); + function UmlActivityShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlActivityShape + * + * @private + */ + UmlActivityShape.prototype.getClassName = function () { + return 'UmlActivityShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('UmlActivity') + ], UmlActivityShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Action') + ], UmlActivityShape.prototype, "shape", void 0); + return UmlActivityShape; +}(Shape)); + +/** + * Defines the behavior of the uml class method + */ +var MethodArguments = /** @__PURE__ @class */ (function (_super) { + __extends(MethodArguments, _super); + function MethodArguments() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class MethodArguments + * + * @private + */ + MethodArguments.prototype.getClassName = function () { + return 'MethodArguments'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MethodArguments.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MethodArguments.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], MethodArguments.prototype, "style", void 0); + return MethodArguments; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the uml class attributes + */ +var UmlClassAttribute = /** @__PURE__ @class */ (function (_super) { + __extends(UmlClassAttribute, _super); + function UmlClassAttribute() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlClassAttribute + * + * @private + */ + UmlClassAttribute.prototype.getClassName = function () { + return 'UmlClassAttribute'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Public') + ], UmlClassAttribute.prototype, "scope", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], UmlClassAttribute.prototype, "isSeparator", void 0); + return UmlClassAttribute; +}(MethodArguments)); + +/** + * Defines the behavior of the uml class method + */ +var UmlClassMethod = /** @__PURE__ @class */ (function (_super) { + __extends(UmlClassMethod, _super); + function UmlClassMethod() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlClassMethod + * + * @private + */ + UmlClassMethod.prototype.getClassName = function () { + return 'UmlClassMethod'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], MethodArguments) + ], UmlClassMethod.prototype, "parameters", void 0); + return UmlClassMethod; +}(UmlClassAttribute)); + +/** + * Defines the behavior of the uml class shapes + */ +var UmlClass = /** @__PURE__ @class */ (function (_super) { + __extends(UmlClass, _super); + function UmlClass() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlClass + * + * @private + */ + UmlClass.prototype.getClassName = function () { + return 'UmlClass'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UmlClass.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], UmlClassAttribute) + ], UmlClass.prototype, "attributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], UmlClassMethod) + ], UmlClass.prototype, "methods", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], UmlClass.prototype, "style", void 0); + return UmlClass; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the uml interface shapes + */ +var UmlInterface = /** @__PURE__ @class */ (function (_super) { + __extends(UmlInterface, _super); + function UmlInterface() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlInterface + * + * @private + */ + UmlInterface.prototype.getClassName = function () { + return 'UmlInterface'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], UmlInterface.prototype, "isSeparator", void 0); + return UmlInterface; +}(UmlClass)); + +/** + * Defines the behavior of the uml interface shapes + */ +var UmlEnumerationMember = /** @__PURE__ @class */ (function (_super) { + __extends(UmlEnumerationMember, _super); + function UmlEnumerationMember() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlEnumerationMember + * + * @private + */ + UmlEnumerationMember.prototype.getClassName = function () { + return 'UmlEnumerationMember'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UmlEnumerationMember.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UmlEnumerationMember.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], UmlEnumerationMember.prototype, "isSeparator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], UmlEnumerationMember.prototype, "style", void 0); + return UmlEnumerationMember; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the uml interface shapes + */ +var UmlEnumeration = /** @__PURE__ @class */ (function (_super) { + __extends(UmlEnumeration, _super); + function UmlEnumeration() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlEnumeration + * + * @private + */ + UmlEnumeration.prototype.getClassName = function () { + return 'UmlEnumeration'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], UmlEnumeration.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], UmlEnumerationMember) + ], UmlEnumeration.prototype, "members", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], UmlEnumeration.prototype, "style", void 0); + return UmlEnumeration; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of the UMLActivity shape + */ +var UmlClassifierShape = /** @__PURE__ @class */ (function (_super) { + __extends(UmlClassifierShape, _super); + function UmlClassifierShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlClassifierShape + * + * @private + */ + UmlClassifierShape.prototype.getClassName = function () { + return 'UmlClassifierShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('UmlClassifier') + ], UmlClassifierShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlClass) + ], UmlClassifierShape.prototype, "classShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlInterface) + ], UmlClassifierShape.prototype, "interfaceShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlEnumeration) + ], UmlClassifierShape.prototype, "enumerationShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Class') + ], UmlClassifierShape.prototype, "classifier", void 0); + return UmlClassifierShape; +}(Shape)); + +/* tslint:disable */ +/** + * Defines the behavior of the UMLActivity shape + */ +var DiagramShape = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramShape, _super); + function DiagramShape() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class UmlClassifierShape + * + * @private + */ + DiagramShape.prototype.getClassName = function () { + return 'DiagramShape'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Basic') + ], DiagramShape.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Rectangle') + ], DiagramShape.prototype, "basicShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Terminator') + ], DiagramShape.prototype, "flowShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Event') + ], DiagramShape.prototype, "bpmnShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Action') + ], DiagramShape.prototype, "umlActivityShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramShape.prototype, "data", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramShape.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramShape.prototype, "textContent", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Stretch') + ], DiagramShape.prototype, "scale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramShape.prototype, "source", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], DiagramShape.prototype, "align", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], DiagramShape.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], DiagramShape.prototype, "cornerRadius", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], DiagramShape.prototype, "points", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnDataObject) + ], DiagramShape.prototype, "dataObject", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnEvent) + ], DiagramShape.prototype, "event", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnGateway) + ], DiagramShape.prototype, "gateway", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], BpmnAnnotation) + ], DiagramShape.prototype, "annotations", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnActivity) + ], DiagramShape.prototype, "activity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, BpmnAnnotation) + ], DiagramShape.prototype, "annotation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlEnumeration) + ], DiagramShape.prototype, "enumerationShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Class') + ], DiagramShape.prototype, "classifier", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlClass) + ], DiagramShape.prototype, "classShape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, UmlInterface) + ], DiagramShape.prototype, "interfaceShape", void 0); + return DiagramShape; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/* tslint:enable */ +/** + * Defines the behavior of nodes + */ +var Node = /** @__PURE__ @class */ (function (_super) { + __extends(Node, _super); + function Node(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + /** @private */ + _this.isCanvasUpdate = false; + /** @private */ + _this.status = 'None'; + /** @private */ + _this.parentId = ''; + /** @private */ + _this.processId = ''; + /** @private */ + _this.umlIndex = -1; + /** @private */ + _this.outEdges = []; + /** @private */ + _this.inEdges = []; + /** @private */ + _this.isHeader = false; + /** @private */ + _this.isLane = false; + /** @private */ + _this.isPhase = false; + /** @private */ + _this.isTextNode = false; + var nodeDefault; + if (_this.children && _this.children.length > 0) { + nodeDefault = defaultValue; + if (!nodeDefault.style || !nodeDefault.style.fill) { + _this.style.fill = 'transparent'; + } + if (!nodeDefault.style || !nodeDefault.style.strokeColor) { + _this.style.strokeColor = 'transparent'; + } + } + if (_this.shape && _this.shape.type === 'UmlActivity') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["setUMLActivityDefaults"])(defaultValue, _this); + } + if (_this.shape && _this.shape.type === 'SwimLane') { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["setSwimLaneDefaults"])(defaultValue, _this); + } + if (_this.ports && _this.ports.length) { + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["setPortsEdges"])(_this); + } + return _this; + } + Object.defineProperty(Node.prototype, "actualSize", { + /** @private */ + get: function () { + if (this.wrapper !== null) { + return this.wrapper.actualSize; + } + else { + return new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](this.width || 0, this.height || 0); + } + }, + enumerable: true, + configurable: true + }); + /** + * Allows to initialize the UI of a node + */ + /** @private */ + /* tslint:disable */ + // tslint:disable-next-line:no-any + Node.prototype.init = function (diagram) { + var content; + if (this.shape.type !== 'SwimLane') { + content = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__["DiagramElement"](); + } + else { + content = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_26__["GridPanel"](); + } + var textStyle; + var changedProperties = 'changedProperties'; + var oldProperties = 'oldProperties'; + this.shape["" + changedProperties] = {}; + this.shape["" + oldProperties] = {}; + switch (this.shape.type) { + case 'Path': + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && (this.type === 'Freehand'))) { + var path = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + path.data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_23__["getFreeHandPath"])(this.shape.points); + content = path; + } + else { + var pathContent = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + pathContent.data = this.shape.data; + content = pathContent; + } + break; + case 'Image': + var imageContent = new _core_elements_image_element__WEBPACK_IMPORTED_MODULE_11__["ImageElement"](); + imageContent.source = this.shape.source; + imageContent.imageAlign = this.shape.align; + imageContent.imageScale = this.shape.scale; + content = imageContent; + break; + case 'Text': + var textContent = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"](); + textContent.content = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? this.shape.textContent : this.shape.content); + content = textContent; + textStyle = this.style; + content.style = textStyle; + break; + case 'Basic': + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape === 'Rectangle') || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.basicShape === 'Rectangle')) { + var basicshape = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__["DiagramElement"](); + content = basicshape; + content.cornerRadius = this.shape.cornerRadius; + } + else if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape === 'Polygon') || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.basicShape === 'Polygon')) { + var path = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + path.data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_23__["getPolygonPath"])(this.shape.points); + content = path; + } + else { + var basicshape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + var basicshapedata = Object(_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_7__["getBasicShape"])((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) ? this.shape.basicShape : this.shape.shape); + basicshape.data = basicshapedata; + content = basicshape; + } + break; + case 'Flow': + var flowshape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + var flowshapedata = Object(_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_16__["getFlowShape"])((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? this.shape.flowShape : this.shape.shape)); + flowshape.data = flowshapedata; + content = flowshape; + break; + case 'UmlActivity': + var umlactivityshape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + content = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["getUMLActivityShapes"])(umlactivityshape, content, this); + break; + case 'Bpmn': + if (diagram.bpmnModule) { + content = diagram.bpmnModule.initBPMNContent(content, this, diagram); + this.wrapper.elementActions = this.wrapper.elementActions | _enum_enum__WEBPACK_IMPORTED_MODULE_4__["ElementAction"].ElementIsGroup; + var subProcess = this.shape.activity.subProcess; + if (subProcess.processes && subProcess.processes.length) { + var children = this.shape.activity.subProcess.processes; + for (var _i = 0, children_1 = children; _i < children_1.length; _i++) { + var i = children_1[_i]; + if (diagram.nameTable["" + i] && (!diagram.nameTable["" + i].processId || diagram.nameTable["" + i].processId === this.id)) { + diagram.nameTable["" + i].processId = this.id; + if (subProcess.collapsed) { + diagram.updateElementVisibility(diagram.nameTable["" + i].wrapper, diagram.nameTable["" + i], !subProcess.collapsed); + } + content.children.push(diagram.nameTable["" + i].wrapper); + } + } + } + } + break; + case 'Native': + var nativeContent = new _core_elements_native_element__WEBPACK_IMPORTED_MODULE_12__["DiagramNativeElement"](this.id, diagram.element.id); + nativeContent.content = this.shape.content; + nativeContent.scale = this.shape.scale; + content = nativeContent; + break; + case 'HTML': + var htmlContent = new _core_elements_html_element__WEBPACK_IMPORTED_MODULE_24__["DiagramHtmlElement"](this.id, diagram.element.id, undefined, diagram.nodeTemplate); + if (this.shape.content) { + htmlContent.content = this.shape.content; + } + else if (diagram.nodeTemplate) { + htmlContent.isTemplate = true; + htmlContent.template = htmlContent.content = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_22__["getContent"])(htmlContent, true, this); + } + content = htmlContent; + break; + case 'UmlClassifier': + // let umlClassifierShape: StackPanel = new StackPanel(); + content = Object(_utility_uml_util__WEBPACK_IMPORTED_MODULE_27__["getULMClassifierShapes"])(content, this, diagram); + break; + case 'SwimLane': + this.annotations = []; + this.ports = []; + content.cellStyle.fill = 'none'; + content.cellStyle.strokeColor = 'none'; + this.container = { type: 'Grid', orientation: this.shape.orientation }; + content.id = this.id; + this.container.orientation = this.shape.orientation; + this.constraints |= _enum_enum__WEBPACK_IMPORTED_MODULE_4__["NodeConstraints"].HideThumbs; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_28__["initSwimLane"])(content, diagram, this); + break; + } + content.id = this.id + '_content'; + content.relativeMode = 'Object'; + // (EJ2-56444) - Added the below code to check whether node shape type is basic and shape is rectangle. + // This code added due to while render radial gradient in canvas mode we want to check this type and pass args according to that + if (this.shape.type === 'Basic' && this.shape.shape === 'Rectangle') { + content.shapeType = 'Rectangle'; + } + else { + content.shapeType = 'Others'; + } + if (this.width !== undefined) { + content.width = this.width; + } + content.horizontalAlignment = 'Stretch'; + if (this.height !== undefined) { + content.height = this.height; + } + if (this.minHeight !== undefined) { + content.minHeight = this.minHeight; + } + if (this.maxHeight !== undefined) { + content.maxHeight = this.maxHeight; + } + if (this.minWidth !== undefined) { + content.minWidth = this.minWidth; + } + if (this.maxWidth !== undefined) { + content.maxWidth = this.maxWidth; + } + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape === 'Rectangle' && !this.shape.cornerRadius) || + ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) && (this.shape.basicShape === 'Rectangle' + && this.shape.type === 'Basic' && !this.shape.cornerRadius))) { + content.isRectElement = true; + } + content.verticalAlignment = 'Stretch'; + if ((this.shape instanceof Text) || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.type === 'Text')) { + content.margin = this.shape.margin; + } + if (Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_20__["canShadow"])(this)) { + if ((this.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["NodeConstraints"].Shadow) !== 0) { + content.shadow = this.shadow; + } + } + if ((this.shape.type !== 'Bpmn' || ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape === 'Message') || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.bpmnShape === 'Message')) || + ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape === 'DataSource') || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.bpmnShape === 'DataSource'))) && ((this.shape.type !== 'UmlActivity' || ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.shape !== 'FinalNode') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.shape.umlActivityShape !== 'FinalNode'))))) { + if (this.shape.type !== 'Text') { + content.style = this.style; + this.oldGradientValue = (this.style.gradient) ? Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["cloneObject"])(this.style.gradient) : null; + } + } + if (!(this.wrapper.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_4__["ElementAction"].ElementIsGroup) && this.flip === 'Horizontal' || this.flip === 'Vertical') { + content.flip = this.flip; + } + return content; + }; + /* tslint:enable */ + /** @private */ + Node.prototype.initContainer = function () { + if (!this.id) { + this.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["randomId"])(); + } + // Creates canvas element + var canvas; + if (!this.container || this.shape instanceof SwimLane) { + canvas = this.children ? new _core_containers_container__WEBPACK_IMPORTED_MODULE_5__["Container"]() : new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_6__["Canvas"](); + } + else { + switch (this.container.type) { + case 'Canvas': + canvas = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_6__["Canvas"](); + break; + case 'Stack': + canvas = new _core_containers_stack_panel__WEBPACK_IMPORTED_MODULE_25__["StackPanel"](); + break; + case 'Grid': + canvas = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_26__["GridPanel"](); + canvas.setDefinitions(this.rows, this.columns); + break; + } + } + canvas.id = this.id; + canvas.offsetX = this.offsetX; + canvas.offsetY = this.offsetY; + canvas.visible = this.visible; + canvas.horizontalAlignment = this.horizontalAlignment; + canvas.verticalAlignment = this.verticalAlignment; + if (this.container) { + canvas.width = this.width; + canvas.height = this.height; + if (this.container.type === 'Stack') { + canvas.orientation = this.container.orientation; + } + } + canvas.style.fill = this.backgroundColor; + canvas.style.strokeColor = this.borderColor; + canvas.style.strokeWidth = this.borderWidth; + canvas.rotateAngle = this.rotateAngle; + canvas.minHeight = this.minHeight; + canvas.minWidth = this.minWidth; + canvas.maxHeight = this.maxHeight; + canvas.maxWidth = this.maxWidth; + canvas.pivot = this.pivot; + canvas.margin = this.margin; + canvas.flip = this.flip; + this.wrapper = canvas; + return canvas; + }; + /** @private */ + Node.prototype.initPorts = function (accessibilityContent, container) { + for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) { + this.initPort(accessibilityContent, container, this.ports[parseInt(i.toString(), 10)]); + } + }; + /** @private */ + Node.prototype.initPort = function (accessibilityContent, container, port) { + var canvas = this.wrapper; + var portWrapper; + // eslint-disable-next-line prefer-const + portWrapper = this.initPortWrapper(port, this); + // tslint:disable-next-line:no-any + var wrapperContent; + var contentAccessibility = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getFunction"])(accessibilityContent); + if (contentAccessibility) { + wrapperContent = contentAccessibility(portWrapper, this); + } + portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id; + portWrapper.inversedAlignment = canvas.inversedAlignment; + portWrapper.elementActions = portWrapper.elementActions | _enum_enum__WEBPACK_IMPORTED_MODULE_4__["ElementAction"].ElementIsPort; + container.children.push(portWrapper); + }; + Node.prototype.getIconOffet = function (layout, icon) { + var x; + var y; + if (layout.orientation === 'BottomToTop') { + x = icon.offset.x; + y = 1 - icon.offset.y; + } + else if (layout.orientation === 'LeftToRight') { + x = icon.offset.y; + y = icon.offset.x; + } + else if (layout.orientation === 'RightToLeft') { + x = 1 - icon.offset.y; + y = icon.offset.x; + } + else { + x = icon.offset.x; + y = icon.offset.y; + } + return { x: x, y: y }; + }; + /** @private */ + Node.prototype.initIcons = function (accessibilityContent, layout, container, diagramId) { + var canvas = this.wrapper; + var offset; + var icon = this.isExpanded ? this.expandIcon : this.collapseIcon; + if (icon.shape !== 'None') { + var iconContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_6__["Canvas"](); + iconContainer.float = true; + var children = []; + iconContainer.id = this.id + '_icon_content'; + iconContainer.children = children; + iconContainer.height = icon.height; + iconContainer.width = icon.width; + iconContainer.style.strokeColor = 'transparent'; + iconContainer.margin = icon.margin; + iconContainer.horizontalAlignment = 'Center'; + iconContainer.verticalAlignment = 'Center'; + iconContainer.visible = this.visible; + iconContainer.cornerRadius = icon.cornerRadius; + offset = this.getIconOffet(layout, icon); + iconContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction'); + iconContainer.relativeMode = 'Point'; + this.initIconSymbol(icon, iconContainer, accessibilityContent, diagramId); + // tslint:disable-next-line:no-any + var wrapperContent = void 0; + var contentAccessibility = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getFunction"])(accessibilityContent); + if (contentAccessibility) { + wrapperContent = contentAccessibility(icon, this); + } + iconContainer.description = wrapperContent ? wrapperContent : iconContainer.id; + iconContainer.inversedAlignment = canvas.inversedAlignment; + container.children.push(iconContainer); + } + }; + /** @private */ + Node.prototype.initfixedUserHandles = function (fixedUserHandle) { + var canvas = this.wrapper; + //let fixedUserHandleContainer: Canvas; + var fixedUserHandleContainer = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_6__["Canvas"](); + fixedUserHandleContainer.float = true; + var children = []; + fixedUserHandle.id = fixedUserHandle.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["randomId"])(); + fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id; + fixedUserHandleContainer.children = children; + fixedUserHandleContainer.height = fixedUserHandle.height; + fixedUserHandleContainer.width = fixedUserHandle.width; + fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor; + fixedUserHandleContainer.style.fill = fixedUserHandle.fill; + fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth; + fixedUserHandleContainer.margin = fixedUserHandle.margin; + fixedUserHandleContainer.visible = fixedUserHandle.visibility; + fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius; + fixedUserHandleContainer.horizontalAlignment = 'Center'; + fixedUserHandleContainer.verticalAlignment = 'Center'; + var offset = this.getfixedUserHandleOffet(fixedUserHandle); + fixedUserHandleContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction'); + fixedUserHandleContainer.relativeMode = 'Point'; + var symbolIcon = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["initfixedUserHandlesSymbol"])(fixedUserHandle, fixedUserHandleContainer); + fixedUserHandleContainer.children.push(symbolIcon); + fixedUserHandleContainer.description = fixedUserHandleContainer.id; + fixedUserHandleContainer.inversedAlignment = canvas.inversedAlignment; + return fixedUserHandleContainer; + }; + Node.prototype.getfixedUserHandleOffet = function (fixedUserHandle) { + //let x: number; + //let y: number; + var x = fixedUserHandle.offset.x; + var y = fixedUserHandle.offset.y; + return { x: x, y: y }; + }; + /** @private */ + Node.prototype.initAnnotations = function (accessibilityContent, container, diagramId, virtualize, annotationTemplate) { + var annotation; + for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) { + annotation = this.initAnnotationWrapper(this.annotations[parseInt(i.toString(), 10)], diagramId, virtualize, i, annotationTemplate); + // tslint:disable-next-line:no-any + var wrapperContent = void 0; + var contentAccessibility = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["getFunction"])(accessibilityContent); + if (contentAccessibility) { + wrapperContent = contentAccessibility(annotation, this); + } + annotation.description = wrapperContent ? wrapperContent : annotation.id; + annotation.inversedAlignment = container.inversedAlignment; + container.children.push(annotation); + } + }; + /** @private */ + Node.prototype.initPortWrapper = function (ports, Node) { + ports.id = ports.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["randomId"])(); + // Creates port element + var portContent = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + portContent.height = ports.height; + portContent.width = ports.width; + var pathdata = (ports.shape === 'Custom') ? ports.pathData : Object(_dictionary_common__WEBPACK_IMPORTED_MODULE_15__["getPortShape"])(ports.shape); + portContent.id = this.id + '_' + (ports.id); + portContent.margin = ports.margin; + portContent.data = pathdata; + //EJ2-826617 - For BPMN node port flip is to be defined. + //EJ2-830012 - Complex-hierarchical tree breaks due to Node undefined + if (Node) { + if (Node.shape.type === 'Bpmn') { + portContent.flip = this.flip; + } + } + var style = ports.style; + portContent.style = { + fill: style.fill, strokeColor: style.strokeColor, gradient: null, + opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth + }; + portContent.horizontalAlignment = ports.horizontalAlignment; + portContent.verticalAlignment = ports.verticalAlignment; + if (Node && Node.flipMode !== 'Label' && Node.flipMode !== 'None') { + portContent = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["updatePortEdges"])(portContent, this.flip, ports); + } + else { + portContent = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["updatePortEdges"])(portContent, 'None', ports); + } + if (this.width !== undefined || this.height !== undefined) { + portContent.float = true; + } + portContent.relativeMode = 'Point'; + portContent.visible = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["checkPortRestriction"])(ports, _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortVisibility"].Visible) && + !Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["checkPortRestriction"])(ports, _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortVisibility"].Hover) && !Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_17__["checkPortRestriction"])(ports, _enum_enum__WEBPACK_IMPORTED_MODULE_4__["PortVisibility"].Connect) ? true : false; + portContent.elementActions = portContent.elementActions | _enum_enum__WEBPACK_IMPORTED_MODULE_4__["ElementAction"].ElementIsPort; + return portContent; + }; + /** @private */ + Node.prototype.initAnnotationWrapper = function (annotation, diagramId, virtualize, value, annotationTemplate) { + annotation.id = annotation.id || value + 'annotation' || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_18__["randomId"])(); + var label = annotation; + var annotationcontent; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && annotation.annotationType === 'Template') { + annotation.template = annotation.template ? annotation.template : ''; + } + if (diagramId && (annotation.template || annotation.annotationType === 'Template' + || (annotationTemplate && annotation.content === ''))) { + annotationcontent = new _core_elements_html_element__WEBPACK_IMPORTED_MODULE_24__["DiagramHtmlElement"](this.id, diagramId, annotation.id, annotationTemplate); + annotationcontent = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_22__["getTemplateContent"])(annotationcontent, annotation, annotationTemplate); + } + else { + annotationcontent = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"](); + annotationcontent.canMeasure = !virtualize; + var style = annotation.style; + var link = annotation.hyperlink.link ? annotation.hyperlink : undefined; + annotationcontent.style = { + fill: style.fill, strokeColor: style.strokeColor, strokeWidth: style.strokeWidth, + bold: style.bold, textWrapping: style.textWrapping, + color: link ? link.color || annotationcontent.hyperlink.color : style.color, whiteSpace: style.whiteSpace, + fontFamily: style.fontFamily, fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity, + strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textOverflow: annotation.style.textOverflow, + textDecoration: link ? link.textDecoration || + annotationcontent.hyperlink.textDecoration : style.textDecoration + }; + annotationcontent.hyperlink.link = annotation.hyperlink.link || undefined; + annotationcontent.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined; + annotationcontent.hyperlink.content = annotation.hyperlink.content || undefined; + annotationcontent.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined; + annotationcontent.content = link ? link.content || + annotationcontent.hyperlink.link : annotation.content; + } + annotationcontent.constraints = annotation.constraints; + annotationcontent.height = annotation.height; + annotationcontent.width = annotation.width; + annotationcontent.visible = annotation.visibility; + annotationcontent.rotateAngle = annotation.rotateAngle; + annotationcontent.id = this.id + '_' + annotation.id; + if (this.width !== undefined && !annotation.template) { + if (annotation.width === undefined || (annotation.width > this.width && + (annotation.style.textWrapping === 'Wrap' || annotation.style.textWrapping === 'WrapWithOverflow'))) { + annotationcontent.width = this.width; + } + } + annotationcontent.margin = annotation.margin; + annotationcontent.horizontalAlignment = annotation.horizontalAlignment; + annotationcontent.verticalAlignment = annotation.verticalAlignment; + annotationcontent.setOffsetWithRespectToBounds(label.offset.x, label.offset.y, 'Fraction'); + if (this.width !== undefined || this.height !== undefined) { + annotationcontent.float = true; + } + annotationcontent.relativeMode = 'Point'; + return annotationcontent; + }; + Node.prototype.initIconContainer = function (options, iconContainer) { + var rect = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_8__["DiagramElement"](); + rect.id = iconContainer.id + '_rect'; + rect.height = options.height; + rect.width = options.width; + rect.visible = iconContainer.visible; + rect.margin = options.margin; + rect.cornerRadius = options.cornerRadius; + rect.style = { + fill: options.fill, strokeColor: options.borderColor, + strokeWidth: options.borderWidth + }; + rect.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction'); + rect.horizontalAlignment = 'Center'; + rect.verticalAlignment = 'Center'; + rect.relativeMode = 'Object'; + rect.description = rect.description || 'Click here to expand or collapse'; + return rect; + }; + Node.prototype.initIconSymbol = function (options, iconContainer, accessibilityContent, diagramId) { + var iconContent; + iconContainer.children.push(this.initIconContainer(options, iconContainer)); + if (options.shape === 'Template') { + iconContent = new _core_elements_native_element__WEBPACK_IMPORTED_MODULE_12__["DiagramNativeElement"](this.id, diagramId); + iconContent.content = options.content; + iconContent.height = 10; + iconContent.width = 10; + } + else { + iconContent = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_9__["PathElement"](); + iconContent.data = Object(_dictionary_common__WEBPACK_IMPORTED_MODULE_15__["getIconShape"])(options); + var iconContentBounds = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_22__["measurePath"])(iconContent.data); + iconContent.height = + iconContentBounds.height < 10 ? iconContentBounds.height : 10 - (options.padding.bottom + options.padding.top); + iconContent.width = + iconContentBounds.width < 10 ? iconContentBounds.width : 10 - (options.padding.left + options.padding.right); + } + iconContent.id = iconContainer.id + '_shape'; + iconContent.horizontalAlignment = 'Center'; + iconContent.verticalAlignment = 'Center'; + iconContent.visible = iconContainer.visible; + iconContent.visible = iconContainer.visible; + iconContent.style = { + fill: 'black', + strokeColor: options.iconColor, + strokeWidth: options.borderWidth, + }; + iconContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction'); + iconContent.relativeMode = 'Object'; + iconContent.description = iconContainer.description || 'Click here to expand or collapse'; + iconContainer.children.push(iconContent); + }; + /** + * @private + * + * Returns the name of class Node + */ + Node.prototype.getClassName = function () { + return 'Node'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _annotation__WEBPACK_IMPORTED_MODULE_14__["ShapeAnnotation"]) + ], Node.prototype, "annotations", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Node.prototype, "offsetX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_layoutinfo__WEBPACK_IMPORTED_MODULE_31__["LayoutInfo"]) + ], Node.prototype, "layoutInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Node.prototype, "offsetY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _port__WEBPACK_IMPORTED_MODULE_13__["PointPort"]) + ], Node.prototype, "ports", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Node.prototype, "isExpanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _fixed_user_handle__WEBPACK_IMPORTED_MODULE_33__["NodeFixedUserHandle"]) + ], Node.prototype, "fixedUserHandles", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _icon__WEBPACK_IMPORTED_MODULE_21__["IconShape"]) + ], Node.prototype, "expandIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _icon__WEBPACK_IMPORTED_MODULE_21__["IconShape"]) + ], Node.prototype, "collapseIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0.5, y: 0.5 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], Node.prototype, "pivot", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "minWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "minHeight", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "maxWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "maxHeight", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Node.prototype, "rotateAngle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ fill: 'white' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["TextStyle"]) + ], Node.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('transparent') + ], Node.prototype, "backgroundColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('none') + ], Node.prototype, "borderColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Node.prototype, "borderWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "data", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ComplexFactory"])(getShapeType) + ], Node.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _preview__WEBPACK_IMPORTED_MODULE_32__["SymbolSize"]) + ], Node.prototype, "previewSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _preview__WEBPACK_IMPORTED_MODULE_32__["SymbolSize"]) + ], Node.prototype, "dragSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Node.prototype, "wrapper", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["NodeConstraints"].Default) + ], Node.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Shadow"]) + ], Node.prototype, "shadow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "children", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 0, right: 0, top: 0, bottom: 0 }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], Node.prototype, "padding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Node.prototype, "container", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], Node.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Top') + ], Node.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "rows", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "columns", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "rowIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "columnIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "rowSpan", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Node.prototype, "columnSpan", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Node.prototype, "branch", void 0); + return Node; +}(_node_base__WEBPACK_IMPORTED_MODULE_19__["NodeBase"])); + +/** + * Defines the behavior of header in swimLane + */ +var Header = /** @__PURE__ @class */ (function (_super) { + __extends(Header, _super); + function Header() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Header.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _annotation__WEBPACK_IMPORTED_MODULE_14__["Annotation"]) + ], Header.prototype, "annotation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ fill: '#E7F4FF', strokeColor: '#CCCCCC' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["ShapeStyle"]) + ], Header.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(50) + ], Header.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(50) + ], Header.prototype, "width", void 0); + return Header; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of lane in swimLane + */ +var Lane = /** @__PURE__ @class */ (function (_super) { + __extends(Lane, _super); + function Lane() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Lane + * + * @private + */ + Lane.prototype.getClassName = function () { + return 'Lane'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Lane.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["ShapeStyle"]) + ], Lane.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Node) + ], Lane.prototype, "children", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], Lane.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], Lane.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header) + ], Lane.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Lane.prototype, "canMove", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Lane.prototype, "addInfo", void 0); + return Lane; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of phase in swimLane + */ +var Phase = /** @__PURE__ @class */ (function (_super) { + __extends(Phase, _super); + function Phase() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Returns the name of class Phase + * + * @private + */ + Phase.prototype.getClassName = function () { + return 'Phase'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Phase.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ strokeColor: '#CCCCCC' }, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["ShapeStyle"]) + ], Phase.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ annotation: { content: 'Phase' } }, Header) + ], Phase.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], Phase.prototype, "offset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Phase.prototype, "addInfo", void 0); + return Phase; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of swimLane shape + */ +var SwimLane = /** @__PURE__ @class */ (function (_super) { + __extends(SwimLane, _super); + function SwimLane() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /** + * Defines space between children and lane + * + * @private + * + */ + _this.padding = 20; + /** + * Defines header by user or not + * + * @private + * + */ + _this.hasHeader = true; + return _this; + } + /** + * Returns the name of class Phase + * + * @private + */ + SwimLane.prototype.getClassName = function () { + return 'SwimLane'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SwimLane') + ], SwimLane.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(20) + ], SwimLane.prototype, "phaseSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Phase) + ], SwimLane.prototype, "phases", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], SwimLane.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Lane) + ], SwimLane.prototype, "lanes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header) + ], SwimLane.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SwimLane.prototype, "isLane", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SwimLane.prototype, "isPhase", void 0); + return SwimLane; +}(Shape)); + +/** + * Defines the behavior of container + */ +var ChildContainer = /** @__PURE__ @class */ (function () { + function ChildContainer() { + } + /** + * Returns the name of class ChildContainer + * + * @private + */ + ChildContainer.prototype.getClassName = function () { + return 'ChildContainer'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Canvas') + ], ChildContainer.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Vertical') + ], ChildContainer.prototype, "orientation", void 0); + return ChildContainer; +}()); + +/** + * Defines the size and position of selected items and defines the appearance of selector + */ +var Selector = /** @__PURE__ @class */ (function (_super) { + __extends(Selector, _super); + function Selector() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * Initializes the UI of the container + */ + Selector.prototype.init = function (diagram) { + var container = new _core_containers_container__WEBPACK_IMPORTED_MODULE_5__["Container"](); + container.measureChildren = false; + //const consize: Size = new Size(); + container.children = []; + if (this.annotation) { + var object = (this.nodes.length > 0) ? diagram.nameTable[this.nodes[0].id].wrapper : + diagram.nameTable[this.connectors[0].id].wrapper; + var wrapper = diagram.getWrapper(object, this.annotation.id); + container.children.push(wrapper); + } + else { + if (this.nodes || this.connectors) { + for (var i = 0; i < this.nodes.length; i++) { + var node = diagram.nameTable[this.nodes[parseInt(i.toString(), 10)].id]; + var wrapper = node.wrapper; + // this.width = wrapper.actualSize.width; + // this.height = wrapper.actualSize.height; + // this.rotateAngle = wrapper.rotateAngle; + // this.offsetX = wrapper.offsetX; + // this.offsetY = wrapper.offsetY; + container.children.push(wrapper); + } + for (var j = 0; j < this.connectors.length; j++) { + var connector = diagram.nameTable[this.connectors[parseInt(j.toString(), 10)].id]; + var wrapper = connector.wrapper; + // this.width = wrapper.actualSize.width; this.height = wrapper.actualSize.height; + // this.rotateAngle = wrapper.rotateAngle; this.offsetX = wrapper.offsetX; + // this.offsetY = wrapper.offsetY; + container.children.push(wrapper); + } + } + } + var isProtectedOnChange = 'isProtectedOnChange'; + var diagramProtectPropertyChange = diagram["" + isProtectedOnChange]; + diagram.protectPropertyChange(false); + this.wrapper = container; + diagram.protectPropertyChange(diagramProtectPropertyChange); + return container; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Selector.prototype, "wrapper", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(14) + ], Selector.prototype, "handleSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Node) + ], Selector.prototype, "nodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _connector__WEBPACK_IMPORTED_MODULE_29__["Connector"]) + ], Selector.prototype, "connectors", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Selector.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Selector.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Selector.prototype, "rotateAngle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Selector.prototype, "offsetX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Selector.prototype, "offsetY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0.5, y: 0.5 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], Selector.prototype, "pivot", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('CompleteIntersect') + ], Selector.prototype, "rubberBandSelectionMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _interaction_selector__WEBPACK_IMPORTED_MODULE_30__["UserHandle"]) + ], Selector.prototype, "userHandles", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_4__["SelectorConstraints"].All) + ], Selector.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Selector.prototype, "setTooltipTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Node) + ], Selector.prototype, "selectedObjects", void 0); + return Selector; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js ***! + \****************************************************************************/ +/*! exports provided: Port, PointPort */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Port", function() { return Port; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PointPort", function() { return PointPort; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + + +/** + * Defines the behavior of connection ports + */ +var Port = /** @__PURE__ @class */ (function (_super) { + __extends(Port, _super); + // tslint:disable-next-line:no-any + function Port(parent, propName, defaultValue, isArray) { + var _this = _super.call(this, parent, propName, defaultValue, isArray) || this; + _this.inEdges = []; + _this.outEdges = []; + return _this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Port.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], Port.prototype, "horizontalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Center') + ], Port.prototype, "verticalAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["Margin"]) + ], Port.prototype, "margin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(12) + ], Port.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(12) + ], Port.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _core_appearance__WEBPACK_IMPORTED_MODULE_1__["ShapeStyle"]) + ], Port.prototype, "style", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Square') + ], Port.prototype, "shape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_3__["PortVisibility"].Connect) + ], Port.prototype, "visibility", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Port.prototype, "pathData", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(_enum_enum__WEBPACK_IMPORTED_MODULE_3__["PortConstraints"].Default) + ], Port.prototype, "constraints", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Port.prototype, "addInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Port.prototype, "outEdges", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Port.prototype, "inEdges", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _tooltip__WEBPACK_IMPORTED_MODULE_4__["DiagramTooltip"]) + ], Port.prototype, "tooltip", void 0); + return Port; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the behavior of a port, that sticks to a point + */ +var PointPort = /** @__PURE__ @class */ (function (_super) { + __extends(PointPort, _super); + function PointPort(parent, propName, defaultValue, isArray) { + return _super.call(this, parent, propName, defaultValue, isArray) || this; + } + /** + * getClassName method \ + * + * @returns { string } toBounds method .\ + * + * @private + */ + PointPort.prototype.getClassName = function () { + return 'PointPort'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ x: 0.5, y: 0.5 }, _primitives_point__WEBPACK_IMPORTED_MODULE_2__["Point"]) + ], PointPort.prototype, "offset", void 0); + return PointPort; +}(Port)); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/preview.js ***! + \*******************************************************************************/ +/*! exports provided: SymbolSize, SymbolPaletteInfo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolSize", function() { return SymbolSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolPaletteInfo", function() { return SymbolPaletteInfo; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * customize the size of the individual palette items. + */ +var SymbolSize = /** @__PURE__ @class */ (function (_super) { + __extends(SymbolSize, _super); + function SymbolSize() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolSize.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolSize.prototype, "height", void 0); + return SymbolSize; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Defines the size and description of a symbol + */ +var SymbolPaletteInfo = /** @__PURE__ @class */ (function (_super) { + __extends(SymbolPaletteInfo, _super); + function SymbolPaletteInfo() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "fit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "description", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPaletteInfo.prototype, "tooltip", void 0); + return SymbolPaletteInfo; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/service.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/service.js ***! + \*******************************************************************************/ +/*! exports provided: ServiceLocator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServiceLocator", function() { return ServiceLocator; }); +/** + * ServiceLocator + * + * @hidden + */ +var ServiceLocator = /** @__PURE__ @class */ (function () { + function ServiceLocator() { + this.services = {}; + } + ServiceLocator.prototype.register = function (name, type) { + this.services["" + name] = type; + }; + ServiceLocator.prototype.getService = function (name) { + return this.services["" + name]; + }; + return ServiceLocator; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/snapping.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/snapping.js ***! + \********************************************************************************/ +/*! exports provided: Snapping */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Snapping", function() { return Snapping; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _interaction_actions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../interaction/actions */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/actions.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); + + + + + + + + + + +/** + * Snapping + */ +var Snapping = /** @__PURE__ @class */ (function () { + function Snapping(diagram) { + this.line = []; + this.diagram = diagram; + } + /** @private */ + Snapping.prototype.canSnap = function () { + return (this.diagram.snapSettings.constraints + & (_enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToLines)) !== 0; + }; + Snapping.prototype.getWrapperObject = function (selectedObject, nameTable) { + if (selectedObject.nodes && selectedObject.nodes.length > 0 + && (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToLines || this.diagram.snapSettings.constraints + & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject)) { + for (var i = 0; i < selectedObject.nodes.length; i++) { + if (((selectedObject.nodes[parseInt(i.toString(), 10)].shape.type === 'SwimLane' || selectedObject.nodes[parseInt(i.toString(), 10)].isLane) + || selectedObject.nodes[parseInt(i.toString(), 10)].parentId !== '' + && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)] + && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)].isLane) && nameTable['helper']) { + return nameTable['helper'].wrapper; + } + else { + return selectedObject.wrapper; + } + } + } + return selectedObject.wrapper; + }; + Snapping.prototype.setSnapLineColor = function () { + return this.diagram.snapSettings.snapLineColor; + }; + /** + * Snap to object + * + * @private + */ + Snapping.prototype.snapPoint = function (diagram, selectedObject, towardsLeft, towardsTop, delta, startPoint, endPoint) { + var snapSettings = this.diagram.snapSettings; + var zoomFactor = this.diagram.scroller.currentZoom; + var offset = { x: 0, y: 0 }; + var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(wrapper); + var horizontallysnapped = { snapped: false, offset: 0 }; + var verticallysnapped = { snapped: false, offset: 0 }; + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject) { + //let snapLine: SVGElement; + var snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + snapLine.setAttribute('id', '_SnappingLines'); + snapLine.setAttribute('shapeRendering', 'crispEdges'); + this.getAdornerLayerSvg().appendChild(snapLine); + this.snapObject(diagram, selectedObject, snapLine, horizontallysnapped, verticallysnapped, delta, startPoint === endPoint); + } + //original position + var left = bounds.x + delta.x; + var top = bounds.y + delta.y; + var right = bounds.x + bounds.width + delta.x; + var bottom = bounds.y + bounds.height + delta.y; + var scaledIntervals = snapSettings.verticalGridlines.scaledIntervals; + //snapped positions + var roundedRight = this.round(right, scaledIntervals, zoomFactor); + var roundedLeft = this.round(left, scaledIntervals, zoomFactor); + scaledIntervals = snapSettings.horizontalGridlines.scaledIntervals; + var roundedTop = this.round(top, scaledIntervals, zoomFactor); + var roundedBottom = this.round(bottom, scaledIntervals, zoomFactor); + //currentposition + var currentright = bounds.x + bounds.width; + var currentbottom = bounds.y + bounds.height; + if (!horizontallysnapped.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToVerticalLines) { + if (Math.abs(delta.x) >= 1) { + if (towardsLeft) { + if (Math.abs(roundedRight - currentright) > Math.abs(roundedLeft - bounds.x)) { + offset.x += roundedLeft - bounds.x; + } + else { + offset.x += roundedRight - currentright; + } + } + else { + if (Math.abs(roundedRight - currentright) < Math.abs(roundedLeft - bounds.x)) { + offset.x += roundedRight - currentright; + } + else { + offset.x += roundedLeft - bounds.x; + } + } + } + } + else { + offset.x = endPoint.x - startPoint.x; + } + } + else { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject) { + offset.x = horizontallysnapped.offset; + } + else { + offset.x = endPoint.x - startPoint.x; + } + } + if (!verticallysnapped.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToHorizontalLines) { + if (Math.abs(delta.y) >= 1) { + if (towardsTop) { + if (Math.abs(roundedBottom - currentbottom) > Math.abs(roundedTop - bounds.y)) { + offset.y += roundedTop - bounds.y; + } + else { + offset.y += roundedBottom - currentbottom; + } + } + else { + if (Math.abs(roundedBottom - currentbottom) < Math.abs(roundedTop - bounds.y)) { + offset.y += roundedBottom - currentbottom; + } + else { + offset.y += roundedTop - bounds.y; + } + } + } + } + else { + offset.y = endPoint.y - startPoint.y; + } + } + else { + offset.y = verticallysnapped.offset; + } + return offset; + }; + /** + * @private + */ + Snapping.prototype.round = function (value, snapIntervals, scale) { + if (scale === 1) { + scale = Math.pow(2, Math.floor(Math.log(scale) / Math.log(2))); + } + else { + scale = scale; + } + var cutoff = 0; + var i = 0; + for (i = 0; i < snapIntervals.length; i++) { + cutoff += snapIntervals[parseInt(i.toString(), 10)]; + } + cutoff /= scale; + var quotient = Math.floor(Math.abs(value) / cutoff); + var bal = value % cutoff; + var prev = quotient * cutoff; + if (prev !== value) { + if (value >= 0) { + for (i = 0; i < snapIntervals.length; i++) { + if (bal <= snapIntervals[parseInt(i.toString(), 10)] / scale) { + return prev + (bal < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale)) ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale); + } + else { + prev += snapIntervals[parseInt(i.toString(), 10)] / scale; + bal -= snapIntervals[parseInt(i.toString(), 10)] / scale; + } + } + } + else { + prev = prev * -1; + for (i = snapIntervals.length - 1; i >= 0; i--) { + if (Math.abs(bal) <= snapIntervals[parseInt(i.toString(), 10)] / scale) { + return prev - (Math.abs(bal) < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale)) ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale); + } + else { + prev -= snapIntervals[parseInt(i.toString(), 10)] / scale; + bal += snapIntervals[parseInt(i.toString(), 10)] / scale; + } + } + } + } + return value; + }; + //Snap to Object + Snapping.prototype.snapObject = function (diagram, selectedObject, g, horizontalSnap, verticalSnap, delta, ended) { + var lengthX = null; + var lengthY; + var hTarget; + var vTarget; + var scroller = this.diagram.scroller; + var snapSettings = this.diagram.snapSettings; + var objectsAtLeft = []; + var objectsAtRight = []; + var objectsAtTop = []; + var objectsAtBottom = []; + var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(wrapper); + var scale = diagram.scroller.currentZoom; + var hoffset = -scroller.horizontalOffset; + var voffset = -scroller.verticalOffset; + var snapObjDistance = snapSettings.snapObjectDistance / scale; + var viewPort = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](0, 0, scroller.viewPortWidth, scroller.viewPortHeight); + var hIntersectRect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](hoffset / scale, (bounds.y - snapObjDistance - 5), viewPort.width / scale, (bounds.height + 2 * snapObjDistance + 10)); + var vIntersectRect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"]((bounds.x - snapObjDistance - 5), voffset / scale, (bounds.width + 2 * snapObjDistance + 10), viewPort.height / scale); + viewPort = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale); + var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vIntersectRect, viewPort); + var i; + var target; + var targetBounds; + var nameTable = diagram.nameTable; + for (i = 0; i < nodes.length; i++) { + target = nodes[parseInt(i.toString(), 10)]; + if (this.canBeTarget(diagram, target)) { + if (!(this.diagram.nameTable[target.id] instanceof _connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && this.canConsider(nameTable, selectedObject, target)) { + targetBounds = target.bounds; + if (targetBounds.height + targetBounds.y < delta.y + bounds.y) { + objectsAtTop.push({ + obj: target, distance: Math.abs(bounds.y + delta.y - targetBounds.y - targetBounds.height) + }); + } + else if (targetBounds.y > bounds.y + delta.y + bounds.height) { + objectsAtBottom.push({ obj: target, distance: Math.abs(bounds.y + delta.y + bounds.height - targetBounds.y) }); + } + if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y - delta.y)) { + if (Math.abs(targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2 + delta.x)) <= + snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'centerX'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'right'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(targetBounds.x - (bounds.x + delta.x)) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'left'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(targetBounds.x - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + delta.x)) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + } + } + } + } + nodes = this.findNodes(diagram.spatialSearch, selectedObject, hIntersectRect, viewPort); + for (var j = 0; j < nodes.length; j++) { + target = nodes[parseInt(j.toString(), 10)]; + if (this.canBeTarget(diagram, target)) { + if (!(this.diagram.nameTable[target.id] instanceof _connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && this.canConsider(nameTable, selectedObject, target)) { + targetBounds = target.bounds; + if (targetBounds.x + targetBounds.width < bounds.x + delta.x) { + objectsAtLeft[objectsAtLeft.length] = { + obj: target, distance: Math.abs((bounds.x + delta.x) - targetBounds.x - targetBounds.width) + }; + } + if (targetBounds.x > bounds.x + delta.x + bounds.width) { + objectsAtRight[objectsAtRight.length] = { + obj: target, distance: Math.abs(bounds.x + delta.x + bounds.width - targetBounds.x) + }; + } + if (lengthY == null || lengthY > Math.abs(targetBounds.x - bounds.x - delta.x)) { + if (Math.abs(targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2 + delta.y)) + <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds, bounds, 'centerY'); + lengthY = Math.abs(targetBounds.x - bounds.x); + } + else if (Math.abs(targetBounds.y - bounds.y - delta.y) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds, bounds, 'top'); + lengthY = Math.abs(targetBounds.x - bounds.x); + } + else if (Math.abs(targetBounds.y + targetBounds.height - (bounds.y + bounds.height + delta.y)) <= + snapObjDistance) { + vTarget = this.createSnapObject(targetBounds, bounds, 'bottom'); + lengthY = Math.abs(targetBounds.x - bounds.x); + } + else if (Math.abs(targetBounds.y + targetBounds.height - bounds.y - delta.y) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds, bounds, 'topBottom'); + lengthY = Math.abs(targetBounds.x - bounds.x); + } + else if (Math.abs(targetBounds.y - (bounds.y + bounds.height + delta.y)) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds, bounds, 'bottomTop'); + lengthY = Math.abs(targetBounds.x - bounds.x); + } + } + } + } + } + this.createGuidelines(diagram, hTarget, vTarget, g, horizontalSnap, verticalSnap, ended); + if (!horizontalSnap.snapped) { + this.createHSpacingLines(diagram, g, selectedObject, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance); + } + if (!verticalSnap.snapped) { + this.createVSpacingLines(diagram, g, selectedObject, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance); + } + }; + /** + * @private + */ + Snapping.prototype.snapConnectorEnd = function (point) { + var snapSettings = this.diagram.snapSettings; + var zoomFactor = this.diagram.scroller.currentZoom; + if (snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToLines) { + point.x = this.round(point.x, snapSettings.verticalGridlines.scaledIntervals, zoomFactor); + point.y = this.round(point.y, snapSettings.horizontalGridlines.scaledIntervals, zoomFactor); + } + return point; + }; + Snapping.prototype.canBeTarget = function (diagram, node) { + node = this.diagram.nameTable[node.id]; + return !(Object(_interaction_actions__WEBPACK_IMPORTED_MODULE_6__["isSelected"])(this.diagram, node, false)); + }; + Snapping.prototype.snapSize = function (diagram, horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, selectedObject, ended) { + var lengthX; + var lengthY; + var snapSettings = this.diagram.snapSettings; + var scroller = this.diagram.scroller; + var hTarget; + var vTarget; + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(selectedObject.wrapper); + var nameTable = diagram.nameTable; + var sameWidth = []; + var sameHeight = []; + var scale = diagram.scroller.currentZoom; + var hoffset = -scroller.horizontalOffset; + var voffset = -scroller.verticalOffset; + var snapObjDistance = snapSettings.snapObjectDistance / scale; + var viewPort = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](0, 0, scroller.viewPortWidth, scroller.viewPortHeight); + var hintersectedrect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](hoffset / scale, (bounds.y - 5) / scale, viewPort.width / scale, (bounds.height + 10) / scale); + var vintersectedrect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"]((bounds.x - 5) / scale, voffset / scale, (bounds.width + 10) / scale, viewPort.height / scale); + viewPort = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale); + var nodesInView = []; + var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vintersectedrect, viewPort, nodesInView); + var i; + var target; + var targetBounds; + for (i = 0; i < nodes.length; i++) { + target = nodes[parseInt(i.toString(), 10)]; + if (this.canConsider(nameTable, selectedObject, target) && !(this.diagram.nameTable[target.id] instanceof _connector__WEBPACK_IMPORTED_MODULE_3__["Connector"])) { + targetBounds = target.bounds; + if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y)) { + if (horizontalSnap.left) { + if (Math.abs(bounds.x + deltaX - targetBounds.x) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'left'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(bounds.x + deltaX - targetBounds.x - targetBounds.width) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + } + else if (horizontalSnap.right) { + if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x - targetBounds.width) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'right'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + else if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x) <= snapObjDistance) { + hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft'); + lengthX = Math.abs(targetBounds.y - bounds.y); + } + } + } + } + } + nodes = this.findNodes(diagram.spatialSearch, selectedObject, hintersectedrect, viewPort); + for (var i_1 = 0; i_1 < nodes.length; i_1++) { + var target_1 = nodes[parseInt(i_1.toString(), 10)]; + if (this.canConsider(nameTable, selectedObject, target_1) && !(this.diagram.nameTable[target_1.id] instanceof _connector__WEBPACK_IMPORTED_MODULE_3__["Connector"])) { + var targetBounds_1 = target_1.bounds; + if (lengthY == null || lengthY > Math.abs(targetBounds_1.x - bounds.x)) { + if (verticalSnap.top) { + if (Math.abs(bounds.y + deltaY - targetBounds_1.y) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds_1, bounds, 'top'); + lengthY = Math.abs(targetBounds_1.x - bounds.x); + } + else if (Math.abs(bounds.y + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds_1, bounds, 'topBottom'); + lengthY = Math.abs(targetBounds_1.x - bounds.x); + } + } + else if (verticalSnap.bottom) { + if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottom'); + lengthY = Math.abs(targetBounds_1.x - bounds.x); + } + else if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y) <= snapObjDistance) { + vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottomTop'); + lengthY = Math.abs(targetBounds_1.x - bounds.x); + } + } + } + } + } + for (i = 0; i < nodesInView.length; i++) { + target = nodesInView[parseInt(i.toString(), 10)]; + if (this.canConsider(nameTable, selectedObject, target)) { + var targetBounds_2 = target.bounds; + var delta = horizontalSnap.left ? -deltaX : deltaX; + var difference = Math.abs(bounds.width + delta - targetBounds_2.width); + var actualDiff = void 0; + if (difference <= snapObjDistance) { + actualDiff = horizontalSnap.left ? -targetBounds_2.width + bounds.width : targetBounds_2.width - bounds.width; + sameWidth[sameWidth.length] = { source: target, difference: difference, offset: actualDiff }; + } + delta = verticalSnap.top ? -deltaY : deltaY; + var dify = Math.abs(bounds.height + delta - targetBounds_2.height); + if (dify <= snapObjDistance) { + actualDiff = verticalSnap.top ? -targetBounds_2.height + bounds.height : targetBounds_2.height - bounds.height; + sameHeight[sameHeight.length] = { source: target, difference: dify, offset: actualDiff }; + } + } + } + var g; + if (!diagram.getTool) { + var g_1 = this.createGuidelines(diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended); + } + if (!horizontalSnap.snapped && sameWidth.length > 0 && (horizontalSnap.left || horizontalSnap.right)) { + this.addSameWidthLines(diagram, snapLine, sameWidth, horizontalSnap, ended, selectedObject); + } + if (!verticalSnap.snapped && sameHeight.length > 0 && (verticalSnap.top || verticalSnap.bottom)) { + this.addSameHeightLines(diagram, snapLine, sameHeight, verticalSnap, ended, selectedObject); + } + }; + /** + * Snap to object on top + * + * @private + */ + Snapping.prototype.snapTop = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsT) { + var dify = deltaY; + verticalSnap.top = true; + var y; + horizontalSnap.left = horizontalSnap.right = false; + var zoomFactor = this.diagram.scroller.currentZoom; + //let initialBoundsT: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height); + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject && !shape.rotateAngle) { + //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) { + y = initialBoundsT.y - initialBoundsT.height * shape.pivot.y + deltaY - (shape.offsetY - shape.height * shape.pivot.y); + this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended); + } + if (!verticalSnap.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToHorizontalLines) { + var top_1 = initialBoundsT.y - initialBoundsT.height * shape.pivot.y; + var actualTop = top_1 + deltaY; + var roundedTop = this.round(actualTop, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor); + dify = roundedTop - top_1; + } + } + else { + dify = (deltaY - y) + verticalSnap.offset; + } + return dify; + }; + /** + * Snap to object on right + * + * @private + */ + Snapping.prototype.snapRight = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBound) { + var difx = deltaX; + var x; + horizontalSnap.right = true; + verticalSnap.top = verticalSnap.bottom = false; + var zoomFactor = this.diagram.scroller.currentZoom; + //let initialBound: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height); + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject && !shape.rotateAngle) { + //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) { + x = initialBound.x + initialBound.width * (1 - shape.pivot.x) + deltaX - (shape.offsetX + shape.width * (1 - shape.pivot.x)); + this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended); + } + if (!horizontalSnap.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToVerticalLines) { + var right = initialBound.x + initialBound.width * (1 - shape.pivot.x); + var actualRight = right + deltaX; + var roundedRight = this.round(actualRight, this.diagram.snapSettings.verticalGridlines.scaledIntervals, zoomFactor); + difx = roundedRight - right; + } + } + else { + difx = (deltaX - x) + horizontalSnap.offset; + } + return difx; + }; + /** + * Snap to object on left + * + * @private + */ + Snapping.prototype.snapLeft = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsB) { + var difx = deltaX; + var x = 0; + horizontalSnap.left = true; + verticalSnap.top = verticalSnap.bottom = false; + var zoomFactor = this.diagram.scroller.currentZoom; + //let initialBoundsB: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height); + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject && !shape.rotateAngle) { + //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) { + x = initialBoundsB.x - initialBoundsB.width * shape.pivot.x + deltaX - (shape.offsetX - shape.width * shape.pivot.x); + this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended); + } + if (!horizontalSnap.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToVerticalLines) { + var left = initialBoundsB.x - initialBoundsB.width * shape.pivot.x; + var actualLeft = left + deltaX; + var roundedLeft = this.round(actualLeft, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor); + difx = roundedLeft - left; + } + } + else { + difx = (deltaX - x) + horizontalSnap.offset; + } + return difx; + }; + /** + * Snap to object on bottom + * + * @private + */ + Snapping.prototype.snapBottom = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialRect) { + var dify = deltaY; + verticalSnap.bottom = true; + horizontalSnap.left = horizontalSnap.right = false; + var zoomFactor = this.diagram.scroller.currentZoom; + var y = 0; + //let initialRect: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height); + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject && !shape.rotateAngle) { + //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) { + y = initialRect.y + initialRect.height * (1 - shape.pivot.y) + deltaY - (shape.offsetY + shape.height * (1 - shape.pivot.y)); + this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended); + } + // eslint-disable-next-line max-len + var bounds = ((shape instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_7__["TextElement"]) || (shape instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_8__["DiagramHtmlElement"])) ? Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(shape) : + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(shape.wrapper); + if (!verticalSnap.snapped) { + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToHorizontalLines) { + var bottom = initialRect.y + initialRect.height * (1 - shape.pivot.y); + var actualBottom = bottom + deltaY; + var roundedBottom = this.round(actualBottom, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor); + dify = roundedBottom - bottom; + } + } + else { + dify = (deltaY - y) + verticalSnap.offset; + } + return dify; + }; + //To create the same width and same size lines + Snapping.prototype.createGuidelines = function (diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended) { + if (hTarget) { + horizontalSnap.offset = hTarget.offsetX; + horizontalSnap.snapped = true; + if (!ended) { + if (hTarget.type === 'sideAlign') { + this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform); + } + else { + this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform); + } + } + } + if (vTarget) { + verticalSnap.offset = vTarget.offsetY; + verticalSnap.snapped = true; + if (!ended) { + if (vTarget.type === 'sideAlign') { + this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform); + } + else { + this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform); + } + } + } + return snapLine; + }; + //To create the alignment lines + Snapping.prototype.renderAlignmentLines = function (start, end, svg, transform) { + start = { + x: (start.x + transform.tx) * transform.scale, + y: (start.y + transform.ty) * transform.scale + }; + end = { + x: (end.x + transform.tx) * transform.scale, + y: (end.y + transform.ty) * transform.scale + }; + var line1 = { + stroke: this.setSnapLineColor(), strokeWidth: 1, startPoint: { x: start.x, y: start.y }, + endPoint: { x: end.x, y: end.y }, fill: this.setSnapLineColor(), dashArray: '', width: 1, + x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0, visible: true, opacity: 1, id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])() + }; + var i = 0; + this.line.push(line1); + for (i = 0; i < this.line.length; i++) { + this.diagram.diagramRenderer.drawLine(svg, this.line.pop()); + } + }; + //To create Horizontal spacing lines + Snapping.prototype.createHSpacingLines = function (diagram, g, shape, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) { + var top = 0; + this.sortByDistance(objectsAtLeft, 'distance', true); + this.sortByDistance(objectsAtRight, 'distance', true); + var equallySpaced = []; + var bounds; + if (diagram.selectedObject.helperObject) { + bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(diagram.selectedObject.helperObject.wrapper); + } + else { + bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(shape.wrapper); + } + var nearestleft; + var nearestright; + var targetBounds; + var equaldistance; + if (objectsAtLeft.length > 0) { + equallySpaced[equallySpaced.length] = objectsAtLeft[0]; + nearestleft = ((objectsAtLeft[0].obj).bounds); + top = nearestleft.y; + if (objectsAtLeft.length > 1) { + targetBounds = ((objectsAtLeft[1].obj).bounds); + equaldistance = nearestleft.x - targetBounds.x - targetBounds.width; + if (Math.abs(equaldistance - objectsAtLeft[0].distance) <= snapObjDistance) { + top = this.findEquallySpacedNodesAtLeft(objectsAtLeft, equaldistance, top, equallySpaced); + } + else { + equaldistance = objectsAtLeft[0].distance; + } + } + else { + equaldistance = objectsAtLeft[0].distance; + } + } + this.sortByDistance(equallySpaced, 'distance'); + equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 }; + top = bounds.y < top || !top ? bounds.y : top; + if (objectsAtRight.length > 0) { + var dist = void 0; + nearestright = ((objectsAtRight[0].obj).bounds); + top = nearestright.y < top ? nearestright.y : top; + if (objectsAtRight.length > 1) { + targetBounds = ((objectsAtRight[1].obj).bounds); + dist = targetBounds.x - nearestright.x - nearestright.width; + } + if (objectsAtLeft.length > 0) { + if (Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) <= snapObjDistance) { + var adjustablevalue = Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) / 2; + (objectsAtRight[0].distance < objectsAtLeft[0].distance) ? + equaldistance -= adjustablevalue : equaldistance += adjustablevalue; + equallySpaced[equallySpaced.length] = objectsAtRight[0]; + } + else if (objectsAtLeft.length === 1) { + nearestleft = undefined; + equallySpaced.splice(0, 1); + equallySpaced[equallySpaced.length] = objectsAtRight[0]; + equaldistance = dist; + } + } + else { + equaldistance = dist; + equallySpaced[equallySpaced.length] = objectsAtRight[0]; + } + if (objectsAtRight.length > 1 && nearestright.x + nearestright.width < targetBounds.x) { + top = this.findEquallySpacedNodesAtRight(objectsAtRight, dist, top, equallySpaced, snapObjDistance); + } + } + if (equallySpaced.length > 2) { + this.addHSpacingLines(diagram, g, equallySpaced, ended, top); + var deltaHorizontal = 0; + if (ended) { + deltaHorizontal = delta.x; + } + if (nearestleft) { + horizontalSnap.offset = equaldistance - Math.abs(bounds.x + deltaHorizontal - nearestleft.x - nearestleft.width) + + deltaHorizontal; + } + else if (nearestright) { + horizontalSnap.offset = Math.abs(bounds.x + bounds.width + deltaHorizontal - nearestright.x) + - equaldistance + deltaHorizontal; + } + horizontalSnap.snapped = true; + } + }; + //To create vertical spacing lines + Snapping.prototype.createVSpacingLines = function (diagram, g, shape, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) { + var right = 0; + this.sortByDistance(objectsAtTop, 'distance', true); + this.sortByDistance(objectsAtBottom, 'distance', true); + var equallySpaced = []; + var wrapper = this.getWrapperObject(shape, diagram.nameTable); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(wrapper); + var nearesttop; + var nearestbottom; + var targetBounds; + var equaldistance; + if (objectsAtTop.length > 0) { + equallySpaced[equallySpaced.length] = objectsAtTop[0]; + nearesttop = ((objectsAtTop[0].obj).bounds); + right = nearesttop.x + nearesttop.width; + if (objectsAtTop.length > 1) { + targetBounds = ((objectsAtTop[1].obj).bounds); + equaldistance = nearesttop.y - targetBounds.y - targetBounds.height; + if (Math.abs(equaldistance - objectsAtTop[0].distance) <= snapObjDistance) { + right = this.findEquallySpacedNodesAtTop(objectsAtTop, equaldistance, right, equallySpaced); + } + else { + equaldistance = objectsAtTop[0].distance; + } + } + else { + equaldistance = objectsAtTop[0].distance; + } + } + this.sortByDistance(equallySpaced, 'distance'); + equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 }; + right = bounds.x + bounds.width > right || !right ? bounds.x + bounds.width : right; + var dist; + if (objectsAtBottom.length > 0) { + nearestbottom = ((objectsAtBottom[0].obj).bounds); + right = nearestbottom.x + nearestbottom.width > right ? nearestbottom.x + nearestbottom.width : right; + if (objectsAtBottom.length > 1) { + targetBounds = ((objectsAtBottom[1].obj).bounds); + dist = targetBounds.y - nearestbottom.y - nearestbottom.height; + } + if (objectsAtTop.length > 0) { + if (Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) <= snapObjDistance) { + var adjustablevalue = Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) / 2; + (objectsAtBottom[0].distance < objectsAtTop[0].distance) ? + equaldistance -= adjustablevalue : equaldistance += adjustablevalue; + equallySpaced[equallySpaced.length] = objectsAtBottom[0]; + } + else if (objectsAtTop.length === 1) { + nearesttop = undefined; + equallySpaced.splice(0, 1); + equallySpaced[equallySpaced.length] = objectsAtBottom[0]; + equaldistance = dist; + } + } + else { + equaldistance = dist; + equallySpaced[equallySpaced.length] = objectsAtBottom[0]; + } + if (objectsAtBottom.length > 1 && targetBounds.y > nearestbottom.y + nearestbottom.height) { + right = this.findEquallySpacedNodesAtBottom(objectsAtBottom, dist, right, equallySpaced, snapObjDistance); + } + } + if (equallySpaced.length > 2) { + this.addVSpacingLines(diagram, g, equallySpaced, ended, right); + var deltaVertical = 0; + if (ended) { + deltaVertical = delta.y; + } + if (nearesttop) { + verticalSnap.offset = equaldistance - Math.abs(bounds.y + deltaVertical - nearesttop.y - nearesttop.height) + deltaVertical; + } + else if (nearestbottom) { + verticalSnap.offset = Math.abs(bounds.y + bounds.height + deltaVertical - nearestbottom.y) - equaldistance + deltaVertical; + } + verticalSnap.snapped = true; + } + }; + //Add the Horizontal spacing lines + Snapping.prototype.addHSpacingLines = function (diagram, g, equallySpaced, ended, top) { + var i; + var start; + var end; + if (!ended) { + for (i = 0; i < equallySpaced.length - 1; i++) { + var crnt = equallySpaced[parseInt(i.toString(), 10)].obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_4__["Selector"] ? + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])((equallySpaced[parseInt(i.toString(), 10)].obj).wrapper) : ((equallySpaced[parseInt(i.toString(), 10)].obj).bounds); + var next = equallySpaced[i + 1].obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_4__["Selector"] ? + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])((equallySpaced[i + 1].obj).wrapper) : ((equallySpaced[i + 1].obj).bounds); + start = { x: crnt.x + crnt.width, y: top - 15 }; + end = { x: next.x, y: top - 15 }; + this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform); + } + } + }; + //Add the vertical spacing lines + Snapping.prototype.addVSpacingLines = function (diagram, g, equallySpacedObjects, ended, right) { + var start; + var end; + if (!ended) { + for (var i = 0; i < equallySpacedObjects.length - 1; i++) { + var crnt = equallySpacedObjects[parseInt(i.toString(), 10)].obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_4__["Selector"] ? + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])((equallySpacedObjects[parseInt(i.toString(), 10)].obj).wrapper) : ((equallySpacedObjects[parseInt(i.toString(), 10)].obj).bounds); + var next = equallySpacedObjects[i + 1].obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_4__["Selector"] ? + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])((equallySpacedObjects[i + 1].obj).wrapper) : + ((equallySpacedObjects[i + 1].obj).bounds); + start = { x: right + 15, y: crnt.y + crnt.height }; + end = { x: right + 15, y: next.y }; + this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform); + } + } + }; + //To add same width lines + Snapping.prototype.addSameWidthLines = function (diagram, snapLine, sameWidths, horizontalSnap, ended, shape) { + this.sortByDistance(sameWidths, 'offset'); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(shape.wrapper); + var target = sameWidths[0]; + var startPt; + var endPt; + var targetBounds = (target.source).bounds; + var sameSizes = []; + sameSizes.push(sameWidths[0]); + var i; + var crntbounds; + for (i = 1; i < sameWidths.length; i++) { + crntbounds = (sameWidths[parseInt(i.toString(), 10)].source).bounds; + if (crntbounds.width === targetBounds.width) { + sameSizes.push(sameWidths[parseInt(i.toString(), 10)]); + } + } + if (!ended) { + startPt = { x: bounds.x + target.offset, y: bounds.y - 15 }; + endPt = { x: bounds.x + bounds.width + target.offset, y: bounds.y - 15 }; + this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform); + for (i = 0; i < sameSizes.length; i++) { + bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds; + startPt = { x: bounds.x, y: bounds.y - 15 }; + endPt = { x: bounds.x + bounds.width, y: bounds.y - 15 }; + this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform); + } + } + horizontalSnap.offset = target.offset; + horizontalSnap.snapped = true; + }; + //To add same height lines + Snapping.prototype.addSameHeightLines = function (diagram, snapLine, sameHeights, verticalSnap, ended, shape) { + this.sortByDistance(sameHeights, 'offset'); + var bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(shape.wrapper); + var target = sameHeights[0]; + var targetBounds = (target.source).bounds; + var start; + var end; + var sameSizes = []; + sameSizes.push(sameHeights[0]); + var i; + var crntbounds; + for (i = 0; i < sameHeights.length; i++) { + crntbounds = (sameHeights[parseInt(i.toString(), 10)].source).bounds; + if (crntbounds.height === targetBounds.height) { + sameSizes.push(sameHeights[parseInt(i.toString(), 10)]); + } + } + if (!ended) { + start = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset }; + end = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset + bounds.height }; + this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform); + for (i = 0; i < sameSizes.length; i++) { + bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds; + start = { x: bounds.x + bounds.width + 15, y: bounds.y }; + end = { x: bounds.x + bounds.width + 15, y: bounds.y + bounds.height }; + this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform); + } + } + verticalSnap.offset = target.offset; + verticalSnap.snapped = true; + }; + //Render spacing lines + Snapping.prototype.renderSpacingLines = function (start, end, snapLine, svg, transform) { + var d; + var d1; + var line1; + var element = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_1__["PathElement"](); + var options = {}; + start = { + x: (start.x + transform.tx) * transform.scale, + y: (start.y + transform.ty) * transform.scale + }; + end = { + x: (end.x + transform.tx) * transform.scale, + y: (end.y + transform.ty) * transform.scale + }; + if (start.x === end.x) { + d = 'M' + (start.x - 5) + ' ' + (start.y + 5) + 'L' + start.x + ' ' + start.y + + 'L' + (start.x + 5) + ' ' + (start.y + 5) + 'z' + 'M' + (end.x - 5) + ' ' + + (end.y - 5) + ' L' + end.x + ' ' + end.y + ' L' + + (end.x + 5) + ' ' + (end.y - 5) + 'z'; + line1 = { + startPoint: { x: start.x - 8, y: start.y - 1 }, + endPoint: { x: start.x + 8, y: start.y - 1 }, + stroke: this.setSnapLineColor(), + strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0, visible: true, opacity: 1, id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])() + }; + element.data = d; + options.data = element.data; + options.angle = 0; + options.pivotX = 0; + options.pivotY = 0; + options.x = 0; + options.y = 0; + options.height = 0; + options.width = 1; + options.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])(); + this.diagram.diagramRenderer.drawPath(snapLine, options); + this.line.push(line1); + this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop()); + line1 = { + startPoint: { x: end.x - 8, y: end.y + 1 }, + endPoint: { x: end.x + 8, y: end.y + 1 }, + stroke: this.setSnapLineColor(), + strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0, visible: true, opacity: 1, id: this.getAdornerLayerSvg().id + 'spacing' + }; + this.line.push(line1); + this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop()); + } + else { + d = 'M' + (start.x + 5) + ' ' + (start.y + 5) + ' L' + start.x + ' ' + start.y + + ' L' + (start.x + 5) + ' ' + (start.y - 5) + 'z' + 'M' + (end.x - 5) + ' ' + + (end.y - 5) + ' L' + end.x + ' ' + end.y + + ' L' + (end.x - 5) + ' ' + (end.y + 5) + 'z'; + element.data = d; + options.data = d; + options.angle = 0; + options.pivotX = 0; + options.pivotY = 0; + options.x = 0; + options.y = 0; + options.height = 0; + options.width = 1; + options.id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])(); + this.diagram.diagramRenderer.drawPath(snapLine, options); + line1 = { + visible: true, opacity: 1, id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])(), + startPoint: { x: start.x - 1, y: start.y - 8 }, + endPoint: { x: start.x - 1, y: start.y + 8 }, + stroke: this.setSnapLineColor(), + strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0 + }; + this.line.push(line1); + this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop()); + line1 = { + width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0, visible: true, opacity: 1, id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])(), + startPoint: { x: end.x + 1, y: end.y - 8 }, + endPoint: { x: end.x + 1, y: end.y + 8 }, + stroke: this.setSnapLineColor(), + strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0' + }; + this.line.push(line1); + this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop()); + } + line1 = { + startPoint: { x: start.x, y: start.y }, + endPoint: { x: end.x, y: end.y }, stroke: this.setSnapLineColor(), strokeWidth: 1, fill: this.setSnapLineColor(), + dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0, + pivotY: 0, visible: true, opacity: 1, id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["randomId"])() + }; + this.line.push(line1); + this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop()); + }; + /** + * To Create Snap object with position, initial bounds, and final bounds \ + * + * @returns { void } To Create Snap object with position, initial bounds, and final bounds .\ + * @param {Diagram} targetBounds - provide the targetBounds value. + * @param {Rect} bounds - provide the angle value. + * @param {string} snap - provide the angle value. + * @private + */ + Snapping.prototype.createSnapObject = function (targetBounds, bounds, snap) { + var snapObject; + switch (snap) { + case 'left': + snapObject = { + start: { x: (targetBounds.x), y: Math.min(targetBounds.y, bounds.y) }, + end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) }, + offsetX: targetBounds.x - bounds.x, offsetY: 0, type: 'sideAlign' + }; + break; + case 'right': + snapObject = { + type: 'sideAlign', + start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) }, + offsetX: targetBounds.x + targetBounds.width - bounds.x - bounds.width, + offsetY: 0, + end: { + x: (targetBounds.x + targetBounds.width), + y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) + } + }; + break; + case 'top': + snapObject = { + offsetY: targetBounds.y - bounds.y, offsetX: 0, type: 'sideAlign', + start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y }, + end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y } + }; + break; + case 'bottom': + snapObject = { + type: 'sideAlign', offsetY: targetBounds.y + targetBounds.height - bounds.y - bounds.height, offsetX: 0, + end: { + x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), + y: targetBounds.y + targetBounds.height + }, + start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height } + }; + break; + case 'topBottom': + snapObject = { + start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height }, + end: { + x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), + y: targetBounds.y + targetBounds.height + }, + offsetY: targetBounds.y + targetBounds.height - bounds.y, offsetX: 0, type: 'sideAlign' + }; + break; + case 'bottomTop': + snapObject = { + start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y }, + end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y }, + offsetY: targetBounds.y - bounds.y - bounds.height, offsetX: 0, type: 'sideAlign' + }; + break; + case 'leftRight': + snapObject = { + start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) }, + end: { + x: (targetBounds.x + targetBounds.width), + y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) + }, + offsetX: targetBounds.x + targetBounds.width - bounds.x, offsetY: 0, type: 'sideAlign' + }; + break; + case 'rightLeft': + snapObject = { + start: { x: (targetBounds.x), y: (Math.min(targetBounds.y, bounds.y)) }, + end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) }, + offsetX: targetBounds.x - bounds.x - bounds.width, offsetY: 0, type: 'sideAlign' + }; + break; + case 'centerX': + snapObject = { + start: { x: (targetBounds.x + targetBounds.width / 2), y: (Math.min(targetBounds.y, bounds.y)) }, + end: { + x: (targetBounds.x + targetBounds.width / 2), + y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) + }, + offsetX: targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2), offsetY: 0, type: 'centerAlign' + }; + break; + case 'centerY': + snapObject = { + start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height / 2 }, + end: { + x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), + y: targetBounds.y + targetBounds.height / 2 + }, + offsetY: targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2), offsetX: 0, type: 'centerAlign' + }; + break; + } + return snapObject; + }; + /** + * Calculate the snap angle \ + * + * @returns { void } Calculate the snap angle .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {number} angle - provide the angle value. + * @private + */ + Snapping.prototype.snapAngle = function (diagram, angle) { + var snapSettings = this.diagram.snapSettings; + var snapAngle = snapSettings.snapAngle; + var width = angle % (snapAngle || 0); + if (width >= (snapAngle / 2)) { + return angle + snapAngle - width; + } + else { + return angle - width; + } + }; + //Check whether the node to be snapped or not. + Snapping.prototype.canConsider = function (nameTable, selectedObject, target) { + var consider = false; + if (this.diagram.selectedItems.nodes.length && this.diagram.selectedItems.nodes[0].id === target.id) { + return false; + } + else { + return true; + } + }; + //Find the total number of nodes in diagram using SpatialSearch + Snapping.prototype.findNodes = function (spatialSearch, node, child, viewPort, nodesInView) { + var nodes = []; + var nd; + var bounds; + var quads = spatialSearch.findQuads(nodesInView ? viewPort : child); + for (var i = 0; i < quads.length; i++) { + var quad = quads[parseInt(i.toString(), 10)]; + if (quad.objects.length > 0) { + for (var j = 0; j < quad.objects.length; j++) { + nd = quad.objects[parseInt(j.toString(), 10)]; + if (!(this.diagram.nameTable[nd.id] instanceof _connector__WEBPACK_IMPORTED_MODULE_3__["Connector"]) && nd.visible + && !(this.diagram.nameTable[nd.id].shape.type === 'SwimLane') && !(this.diagram.nameTable[nd.id].isLane) && + !(this.diagram.nameTable[nd.id].isPhase) && !(this.diagram.nameTable[nd.id].isHeader) && nd.id !== 'helper') { + bounds = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_5__["getBounds"])(nd); + if (nodes.indexOf(nd) === -1 && this.intersectsRect(child, bounds)) { + nodes.push(nd); + } + if (nodesInView && nodesInView.indexOf(nd) && this.intersectsRect(viewPort, bounds)) { + nodesInView.push(nd); + } + } + } + } + } + return nodes; + }; + Snapping.prototype.intersectsRect = function (child, bounds) { + return ((((bounds.x < (child.x + child.width)) && (child.x < (bounds.x + bounds.width))) + && (bounds.y < (child.y + child.height))) && (child.y < (bounds.y + bounds.height))); + }; + Snapping.prototype.getAdornerLayerSvg = function () { + return this.diagram.diagramRenderer.adornerSvgLayer; + }; + /** + * To remove grid lines on mouse move and mouse up \ + * + * @returns { void } To remove grid lines on mouse move and mouse up .\ + * @param {Diagram} diagram - provide the source value. + * @private + */ + Snapping.prototype.removeGuidelines = function (diagram) { + var selectionRect = this.getAdornerLayerSvg().getElementById('_SnappingLines'); + var line = this.getAdornerLayerSvg().getElementById('pivotLine'); + if (selectionRect) { + selectionRect.parentNode.removeChild(selectionRect); + } + if (line) { + line.parentNode.removeChild(line); + } + }; + //Sort the objects by its distance + Snapping.prototype.sortByDistance = function (obj, value, ascending) { + var i; + var j; + var temp; + if (ascending) { + for (i = 0; i < obj.length; i++) { + for (j = i + 1; j < obj.length; j++) { + if (obj[parseInt(i.toString(), 10)]["" + value] > obj[parseInt(j.toString(), 10)]["" + value]) { + temp = obj[parseInt(i.toString(), 10)]; + obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)]; + obj[parseInt(j.toString(), 10)] = temp; + } + } + } + } + else { + for (i = 0; i < obj.length; i++) { + for (j = i + 1; j < obj.length; j++) { + if (obj[parseInt(i.toString(), 10)]["" + value] < obj[parseInt(j.toString(), 10)]["" + value]) { + temp = obj[parseInt(i.toString(), 10)]; + obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)]; + obj[parseInt(j.toString(), 10)] = temp; + } + } + } + } + }; + //To find nodes that are equally placed at left of the selected node + Snapping.prototype.findEquallySpacedNodesAtLeft = function (objectsAtLeft, equalDistance, top, equallySpaced) { + var prevBounds; + var targetBounds; + var dist; + var i; + for (i = 1; i < objectsAtLeft.length; i++) { + prevBounds = ((objectsAtLeft[i - 1].obj).bounds); + targetBounds = ((objectsAtLeft[parseInt(i.toString(), 10)].obj).bounds); + dist = prevBounds.x - targetBounds.x - targetBounds.width; + if (Math.abs(dist - equalDistance) <= 1) { + equallySpaced[equallySpaced.length] = objectsAtLeft[parseInt(i.toString(), 10)]; + if (targetBounds.y < top) { + top = targetBounds.y; + } + } + else { + break; + } + } + return top; + }; + //To find nodes that are equally placed at right of the selected node + Snapping.prototype.findEquallySpacedNodesAtRight = function (objectsAtRight, equalDistance, top, equallySpaced, snapObjDistance) { + var actualDistance = objectsAtRight[0].distance; + var target; + var targetBounds; + var prevBounds; + var dist; + if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) { + for (var i = 0; i < objectsAtRight.length - 1; i++) { + target = objectsAtRight[parseInt(i.toString(), 10)].obj; + targetBounds = ((objectsAtRight[i + 1].obj).bounds); + prevBounds = (target.bounds); + dist = targetBounds.x - prevBounds.x - prevBounds.width; + if (Math.abs(dist - equalDistance) <= 1) { + equallySpaced[equallySpaced.length] = objectsAtRight[i + 1]; + if (prevBounds.y < top) { + top = prevBounds.y; + } + } + else { + break; + } + } + } + return top; + }; + Snapping.prototype.findEquallySpacedNodesAtTop = function (objectsAtTop, equalDistance, right, equallySpaced) { + var prevBounds; + var targetBounds; + var dist; + for (var i = 1; i < objectsAtTop.length; i++) { + prevBounds = ((objectsAtTop[i - 1].obj).bounds); + targetBounds = ((objectsAtTop[parseInt(i.toString(), 10)].obj).bounds); + dist = prevBounds.y - targetBounds.y - targetBounds.height; + if (Math.abs(dist - equalDistance) <= 1) { + equallySpaced[equallySpaced.length] = objectsAtTop[parseInt(i.toString(), 10)]; + if (targetBounds.x + targetBounds.width > right) { + right = targetBounds.x + targetBounds.width; + } + } + else { + break; + } + } + return right; + }; + //To find nodes that are equally placed at bottom of the selected node + Snapping.prototype.findEquallySpacedNodesAtBottom = function (objectsAtBottom, equalDistance, right, equallySpaced, snapObjDistance) { + var actualDistance = objectsAtBottom[0].distance; + var target; + var targetBounds; + var prevBounds; + var dist; + if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) { + for (var i = 0; i < objectsAtBottom.length - 1; i++) { + target = objectsAtBottom[parseInt(i.toString(), 10)].obj; + targetBounds = ((objectsAtBottom[i + 1].obj).bounds); + prevBounds = (target.bounds); + dist = targetBounds.y - prevBounds.y - prevBounds.height; + if (Math.abs(dist - equalDistance) <= 1) { + equallySpaced[equallySpaced.length] = objectsAtBottom[i + 1]; + if (prevBounds.x + prevBounds.width > right) { + right = prevBounds.x + prevBounds.width; + } + } + else { + break; + } + } + } + return right; + }; + /** + * To get Adoner layer to draw snapLine + * + * @private + */ + Snapping.prototype.getLayer = function () { + var snapLine; + if (this.diagram.snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["SnapConstraints"].SnapToObject) { + snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + snapLine.setAttribute('id', '_SnappingLines'); + snapLine.setAttribute('shapeRendering', 'crispEdges'); + this.getAdornerLayerSvg().appendChild(snapLine); + } + return snapLine; + }; + /** + * Constructor for the snapping module + * + * @private + */ + // constructor() { + // //constructs the snapping module + // } + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + Snapping.prototype.destroy = function () { + /** + * Destroys the snapping module + */ + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + Snapping.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'Snapping'; + }; + return Snapping; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/tooltip.js ***! + \*******************************************************************************/ +/*! exports provided: DiagramTooltip, initTooltip, updateTooltip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramTooltip", function() { return DiagramTooltip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initTooltip", function() { return initTooltip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateTooltip", function() { return updateTooltip; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _blazor_tooltip_blazor_Tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blazor-tooltip/blazor-Tooltip */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/blazor-tooltip/blazor-Tooltip.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * Defines the tooltip that should be shown when the mouse hovers over node. + * An object that defines the description, appearance and alignments of tooltip + */ +var DiagramTooltip = /** @__PURE__ @class */ (function (_super) { + __extends(DiagramTooltip, _super); + function DiagramTooltip() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DiagramTooltip.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('TopLeft') + ], DiagramTooltip.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Mouse') + ], DiagramTooltip.prototype, "relativeMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], DiagramTooltip.prototype, "showTipPointer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], DiagramTooltip.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], DiagramTooltip.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], DiagramTooltip.prototype, "openOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], DiagramTooltip.prototype, "animation", void 0); + return DiagramTooltip; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * initTooltip method \ + * + * @returns { Tooltip | BlazorTooltip } initTooltip method .\ + * @param {Diagram} diagram - provide the points value. + * + * @private + */ +function initTooltip(diagram) { + var tooltip; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var tooltipOption = new _ej2_popups__WEBPACK_IMPORTED_MODULE_1__["Tooltip"]; + tooltipOption = updateTooltipContent(diagram.tooltip, tooltipOption); + tooltip = new _ej2_popups__WEBPACK_IMPORTED_MODULE_1__["Tooltip"](tooltipOption); + tooltip.beforeCollision = beforeCollision; + tooltip.beforeOpen = beforeOpen; + tooltip.cssClass = 'e-diagram-tooltip'; + tooltip.opensOn = 'custom'; + tooltip.appendTo('#' + diagram.element.id); + tooltip.close(); + } + else { + tooltip = new _blazor_tooltip_blazor_Tooltip__WEBPACK_IMPORTED_MODULE_2__["BlazorTooltip"](diagram); + tooltip = updateTooltipContent(diagram.tooltip, tooltip); + } + return tooltip; +} +/** + * beforeOpen method \ + * + * @returns { void } beforeOpen method .\ + * @param {TooltipEventArgs} args - provide the points value. + * + * @private + */ +function beforeOpen(args) { + if ((this.content === '' || this.content === undefined)) { + args.element.style.display = 'none'; + } +} +/** + * beforeCollision method \ + * + * @returns { void } beforeCollision method .\ + * @param {TooltipEventArgs} args - provide the points value. + * + * @private + */ +function beforeCollision(args) { + if ((args.collidedPosition && args.collidedPosition !== this.position)) { + args.element.style.display = 'none'; + } +} +/** + * updateTooltip method \ + * + * @returns { Tooltip } updateTooltip method .\ + * @param {Diagram} diagram - provide the points value. + * @param {NodeModel | ConnectorModel} node - provide the points value. + * + * @private + */ +function updateTooltip(diagram, node) { + //let tooltip: DiagramTooltipModel; + var tooltipObject = diagram.tooltipObject; + var tooltip = node ? node.tooltip : diagram.tooltip; + updateTooltipContent(tooltip, tooltipObject); + return tooltipObject; +} +/** + * updateTooltipContent method \ + * + * @returns { Tooltip | BlazorTooltip } updateTooltipContent method .\ + * @param {DiagramTooltipModel} tooltip - provide the points value. + * @param {Tooltip | BlazorTooltip} tooltipObject - provide the points value. + * + * @private + */ +function updateTooltipContent(tooltip, tooltipObject) { + if (tooltip.content) { + tooltipObject.content = tooltip.content; + if (typeof tooltip.content === 'string') { + var contentTemp = function () { + return tooltip.content; + }; + tooltipObject.content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["initializeCSPTemplate"])(contentTemp); + } + tooltipObject.position = tooltip.position; + tooltipObject.showTipPointer = tooltip.showTipPointer; + tooltipObject.width = tooltip.width; + tooltipObject.height = tooltip.height; + if (!tooltip.animation) { + tooltipObject.animation = { close: { effect: 'None' } }; + } + else { + tooltipObject.animation = tooltip.animation; + } + } + else { + tooltipObject.close(); + } + return tooltipObject; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/undo-redo.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/undo-redo.js ***! + \*********************************************************************************/ +/*! exports provided: UndoRedo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedo", function() { return UndoRedo; }); +/* harmony import */ var _node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js"); +/* harmony import */ var _utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utility/swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + + + + + + + + + +/** + * Undo redo function used for revert and restore the changes + */ +var UndoRedo = /** @__PURE__ @class */ (function () { + /** + * Constructor for the undo redo module + * + * @private + */ + function UndoRedo() { + this.groupUndo = false; + this.childTable = []; + this.historyCount = 0; + this.hasGroup = false; + this.groupCount = 0; + this.undoOffsets = []; + //constructs the undo redo module + } + /** + * initHistory method \ + * + * @returns { void } initHistory method .\ + * @param {Diagram} diagram - provide the points value. + * + * @private + */ + UndoRedo.prototype.initHistory = function (diagram) { + diagram.historyManager = { + canRedo: false, canUndo: false, currentEntry: null, + push: diagram.addHistoryEntry.bind(diagram), undo: Function, redo: Function, + startGroupAction: diagram.startGroupAction.bind(diagram), endGroupAction: diagram.endGroupAction.bind(diagram), + canLog: null, undoStack: [], redoStack: [], stackLimit: diagram.historyManager ? diagram.historyManager.stackLimit : undefined + }; + }; + /** + * addHistoryEntry method \ + * + * @returns { void } addHistoryEntry method .\ + * @param {HistoryEntry} entry - provide the points value. + * @param {Diagram} diagram - provide the points value. + * + * @private + */ + UndoRedo.prototype.addHistoryEntry = function (entry, diagram) { + var entryObject = null; + var nextEntry = null; + if (diagram.historyManager.canLog) { + var hEntry = diagram.historyManager.canLog(entry); + if (hEntry.cancel === true) { + return; + } + } + if (diagram.historyManager && diagram.historyManager.canUndo && diagram.historyManager.currentEntry) { + entryObject = diagram.historyManager.currentEntry; + if (entryObject.next) { + if (entryObject.previous) { + nextEntry = entryObject.next; + nextEntry.previous = null; + entryObject.next = entry; + entry.previous = entryObject; + } + } + else { + entryObject.next = entry; + entry.previous = entryObject; + } + } + diagram.historyManager.currentEntry = entry; + if (diagram.historyManager.stackLimit) { + if (entry.type === 'StartGroup' || entry.type === 'EndGroup') { + var value = entry.type === 'EndGroup' ? true : false; + this.setEntryLimit(value); + } + if (!this.hasGroup && this.groupCount === 0) { + if (this.historyCount < diagram.historyManager.stackLimit) { + this.historyCount++; + } + else { + this.applyLimit(diagram.historyManager.currentEntry, diagram.historyManager.stackLimit, diagram); + } + } + } + this.getHistoryList(diagram); + diagram.historyManager.canUndo = true; + diagram.historyManager.canRedo = false; + }; + /** + * applyLimit method \ + * + * @returns { void } applyLimit method .\ + * @param {HistoryEntry} list - provide the list value. + * @param {number} stackLimit - provide the list value. + * @param {Diagram} diagram - provide the list value. + * @param {boolean} limitHistory - provide the list value. + * + * @private + */ + UndoRedo.prototype.applyLimit = function (list, stackLimit, diagram, limitHistory) { + if (list && list.previous) { + if (list.type === 'StartGroup' || list.type === 'EndGroup') { + var value = list.type === 'StartGroup' ? true : false; + this.setEntryLimit(value); + } + if (!this.hasGroup && this.groupCount === 0) { + stackLimit--; + } + if (stackLimit === 0) { + if (limitHistory) { + this.limitHistoryStack(list.previous, diagram); + } + if (diagram.historyManager.stackLimit < this.historyCount) { + this.historyCount = diagram.historyManager.stackLimit; + } + delete list.previous; + } + else if (list.previous) { + this.applyLimit(list.previous, stackLimit, diagram, limitHistory); + } + } + this.groupCount = 0; + }; + /** + * clearHistory method \ + * + * @returns { void } clearHistory method .\ + * @param {Diagram} diagram - provide the points value. + * + * @private + */ + UndoRedo.prototype.clearHistory = function (diagram) { + var hList = diagram.historyManager; + hList.currentEntry = undefined; + hList.canUndo = false; + hList.canRedo = false; + this.historyCount = 0; + this.groupCount = 0; + diagram.historyManager.undoStack = []; + diagram.historyManager.redoStack = []; + }; + UndoRedo.prototype.setEntryLimit = function (value) { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + value ? this.groupCount-- : this.groupCount++; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + value ? this.hasGroup = !value : this.hasGroup = value; + }; + UndoRedo.prototype.limitHistoryStack = function (list, diagram) { + if (list.type !== 'StartGroup' && list.type !== 'EndGroup') { + this.removeFromStack(diagram.historyManager.undoStack, list); + this.removeFromStack(diagram.historyManager.redoStack, list); + } + if (list.previous) { + this.limitHistoryStack(list.previous, diagram); + } + }; + UndoRedo.prototype.removeFromStack = function (entyList, list) { + if (entyList.length) { + for (var i = 0; i <= entyList.length; i++) { + if (entyList[parseInt(i.toString(), 10)].undoObject === list.undoObject && entyList[parseInt(i.toString(), 10)].redoObject === list.redoObject) { + entyList.splice(i, 1); + break; + } + } + } + }; + /** + * undo method \ + * + * @returns { void } undo method .\ + * @param {Diagram} diagram - provide the diagram value. + * + * @private + */ + UndoRedo.prototype.undo = function (diagram) { + var entry = this.getUndoEntry(diagram); + var endGroupActionCount = 0; + if (entry) { + if (entry.category === 'Internal') { + if (entry.type === 'EndGroup') { + endGroupActionCount++; + this.groupUndo = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + diagram.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_1__["BlazorAction"].GroupingInProgress; + } + } + else { + this.undoEntry(entry, diagram); + } + if (this.groupUndo) { + this.undoGroupAction(entry, diagram, endGroupActionCount); + this.groupUndo = false; + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + diagram.historyManager.undo(entry); + } + var arg = { + entryType: 'undo', oldValue: entry.undoObject, newValue: entry.redoObject + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + arg = { + entryType: 'undo', oldValue: this.getHistoryChangeEvent(entry.undoObject, entry.blazorHistoryEntryType), + newValue: this.getHistoryChangeEvent(entry.redoObject, entry.blazorHistoryEntryType) + }; + } + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramEvent"].historyStateChange, arg); + } + } + }; + UndoRedo.prototype.getHistoryChangeEvent = function (object, prop) { + var value = {}; + switch (prop) { + case 'Node': + value.node = object; + break; + case 'Connector': + value.connector = object; + break; + case 'Selector': + value.selector = object; + break; + case 'Diagram': + value.diagram = object; + break; + case 'ShapeAnnotation': + value.shapeAnnotation = object; + break; + case 'PathAnnotation': + value.pathAnnotation = object; + break; + case 'PortObject': + value.pointPortModel = object; + break; + case 'Object': + value.object = object; + } + return value; + }; + UndoRedo.prototype.getHistoryList = function (diagram) { + var undoStack = []; + var redoStack = []; + var currEntry = diagram.historyManager.currentEntry; + var undoObj; + var redoObj; + currEntry = diagram.historyManager.currentEntry; + if (diagram.historyManager.canUndo || diagram.historyManager.undoStack.length === 0) { + this.getHistroyObject(undoStack, currEntry); + } + else { + this.getHistroyObject(redoStack, currEntry); + } + while (currEntry && currEntry.previous) { + undoObj = currEntry.previous; + this.getHistroyObject(undoStack, undoObj); + currEntry = currEntry.previous; + } + currEntry = diagram.historyManager.currentEntry; + while (currEntry && currEntry.next) { + redoObj = currEntry.next; + this.getHistroyObject(redoStack, redoObj); + currEntry = currEntry.next; + } + diagram.historyManager.undoStack = undoStack; + diagram.historyManager.redoStack = redoStack; + }; + UndoRedo.prototype.getHistroyObject = function (list, obj) { + if (obj && obj.type !== 'StartGroup' && obj.type !== 'EndGroup') { + list.push({ + redoObject: obj.redoObject ? obj.redoObject : null, + undoObject: obj.undoObject ? obj.undoObject : null, + type: obj.type ? obj.type : null, + category: obj.category ? obj.category : null + }); + } + }; + UndoRedo.prototype.undoGroupAction = function (entry, diagram, endGroupActionCount) { + while (endGroupActionCount !== 0) { + this.undoEntry(entry, diagram); + entry = this.getUndoEntry(diagram); + if (entry.type === 'StartGroup') { + endGroupActionCount--; + } + else if (entry.type === 'EndGroup') { + endGroupActionCount++; + } + } + endGroupActionCount = 0; + }; + UndoRedo.prototype.undoEntry = function (entry, diagram) { + var obj; + var nodeObject; + if (entry.type !== 'PropertyChanged' && entry.type !== 'CollectionChanged' && entry.type !== 'LabelCollectionChanged') { + obj = (entry.undoObject); + nodeObject = (entry.undoObject); + } + if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup') { + if (diagram.historyManager.undoStack.length > 0) { + var addObject = diagram.historyManager.undoStack.splice(0, 1); + diagram.historyManager.redoStack.splice(0, 0, addObject[0]); + nodeObject = (entry.undoObject); + } + } + diagram.protectPropertyChange(true); + diagram.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])() && entry.previous && entry.previous.type === 'StartGroup') { + diagram.blazorActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_1__["BlazorAction"].GroupingInProgress; + } + switch (entry.type) { + case 'PositionChanged': + case 'Align': + case 'Distribute': + this.recordPositionChanged(obj, diagram); + break; + case 'SizeChanged': + case 'Sizing': + this.recordSizeChanged(obj, diagram, entry); + break; + case 'RotationChanged': + this.recordRotationChanged(obj, diagram, entry, 'undo'); + break; + case 'ConnectionChanged': + this.recordConnectionChanged(obj, diagram); + break; + case 'PropertyChanged': + this.recordPropertyChanged(entry, diagram, false); + break; + case 'CollectionChanged': + if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') { + var group = diagram.getObject(entry.next.undoObject.id); + diagram.insertValue(Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(group), true); + } + entry.isUndo = true; + this.recordCollectionChanged(entry, diagram); + entry.isUndo = false; + if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') { + var group = diagram.getObject(entry.next.undoObject.id); + group.wrapper.measure(new _index__WEBPACK_IMPORTED_MODULE_4__["Size"]()); + group.wrapper.arrange(group.wrapper.desiredSize); + diagram.updateDiagramObject(group); + } + break; + case 'LabelCollectionChanged': + entry.isUndo = true; + this.recordLabelCollectionChanged(entry, diagram); + entry.isUndo = false; + break; + case 'PortCollectionChanged': + entry.isUndo = true; + this.recordPortCollectionChanged(entry, diagram); + entry.isUndo = false; + break; + case 'Group': + this.unGroup(entry, diagram); + break; + case 'UnGroup': + this.group(entry, diagram); + break; + case 'SegmentChanged': + this.recordSegmentChanged(obj, diagram); + break; + case 'PortPositionChanged': + this.recordPortChanged(entry, diagram, false); + break; + case 'AnnotationPropertyChanged': + this.recordAnnotationChanged(entry, diagram, false); + break; + case 'ChildCollectionChanged': + this.recordChildCollectionChanged(entry, diagram, false); + break; + case 'StackChildPositionChanged': + this.recordStackPositionChanged(entry, diagram, false); + break; + case 'RowHeightChanged': + this.recordGridSizeChanged(entry, diagram, false, true); + break; + case 'ColumnWidthChanged': + this.recordGridSizeChanged(entry, diagram, false, false); + break; + case 'LanePositionChanged': + this.recordLanePositionChanged(entry, diagram, false); + break; + case 'LaneCollectionChanged': + case 'PhaseCollectionChanged': + entry.isUndo = true; + this.recordLaneOrPhaseCollectionChanged(entry, diagram, false); + entry.isUndo = false; + break; + case 'SendToBack': + case 'SendForward': + case 'SendBackward': + case 'BringToFront': + this.recordOrderCommandChanged(entry, diagram, false); + break; + case 'AddChildToGroupNode': + this.recordAddChildToGroupNode(entry, diagram, false); + break; + } + diagram.diagramActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + diagram.protectPropertyChange(false); + diagram.historyChangeTrigger(entry, 'Undo'); + if (nodeObject) { + var object = this.checkNodeObject(nodeObject, diagram); + if (object) { + var getnodeDefaults = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(diagram.updateSelection); + if (getnodeDefaults) { + getnodeDefaults(object, diagram); + } + } + } + }; + UndoRedo.prototype.checkNodeObject = function (value, diagram) { + var object; + if (!value.id) { + if ((value.nodes && value.nodes.length > 0) || + (value.connectors && value.connectors.length > 0)) { + var undoNode = value.nodes.length > 0 ? + value.nodes : value.connectors; + for (var _i = 0, undoNode_1 = undoNode; _i < undoNode_1.length; _i++) { + object = undoNode_1[_i]; + object = diagram.nameTable[object.id]; + } + } + else { + var knownNode = value.nodes ? + value.nodes : value.connectors; + if (knownNode) { + for (var _a = 0, _b = Object.keys(knownNode); _a < _b.length; _a++) { + var key = _b[_a]; + var index = Number(key); + object = value.nodes ? diagram.nodes[parseInt(index.toString(), 10)] : diagram.connectors[parseInt(index.toString(), 10)]; + } + } + } + } + else { + object = diagram.nameTable[value.id]; + } + return object; + }; + UndoRedo.prototype.group = function (historyEntry, diagram) { + diagram.add(historyEntry.undoObject); + }; + UndoRedo.prototype.unGroup = function (entry, diagram) { + //const i: number = 0; + entry.redoObject = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(entry.undoObject); + var node = entry.undoObject; + diagram.commandHandler.unGroup(node); + }; + UndoRedo.prototype.ignoreProperty = function (key) { + if (key === 'zIndex' || key === 'wrapper' || key === 'parentObj' || key === 'controlParent') { + return true; + } + return false; + }; + UndoRedo.prototype.getProperty = function (collection, property) { + for (var _i = 0, _a = Object.keys(property); _i < _a.length; _i++) { + var key = _a[_i]; + if (collection) { + if (!this.ignoreProperty(key)) { + if (property["" + key] instanceof Object) { + this.getProperty(collection["" + key], property["" + key]); + } + else { + collection["" + key] = property["" + key]; + } + } + } + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + UndoRedo.prototype.recordLaneOrPhaseCollectionChanged = function (entry, diagram, isRedo) { + var node = entry.redoObject; + var obj = entry.undoObject; + var changeType; + if (entry.isUndo) { + if (entry.changeType === 'Insert') { + changeType = 'Remove'; + } + else { + changeType = 'Insert'; + } + } + else { + changeType = entry.changeType; + } + if (changeType === 'Remove') { + diagram.remove(node); + } + else { + if (node.isPhase) { + var swimlane = diagram.nameTable[node.parentId]; + diagram.addPhases(swimlane, [obj]); + } + else { + var swimlane = diagram.nameTable[node.parentId]; + var laneIndex = Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__["findLaneIndex"])(swimlane, node); + diagram.addLanes(swimlane, [obj], laneIndex); + } + } + diagram.clearSelection(); + }; + UndoRedo.prototype.recordAnnotationChanged = function (entry, diagram, isRedo) { + var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject); + if (diagram.canEnableBlazorObject) { + var node = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(diagram.nameTable[entryObject.id]); + diagram.insertValue(node, node instanceof _node__WEBPACK_IMPORTED_MODULE_0__["Node"] ? true : false); + } + var oldElement = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findAnnotation"])(entryObject, entry.objectId); + var undoChanges = diagram.commandHandler.getAnnotationChanges(diagram.nameTable[entryObject.id], oldElement); + var currentObject = diagram.nameTable[entryObject.id]; + var currentElement = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findAnnotation"])(currentObject, entry.objectId); + currentElement.offset = oldElement.offset; + currentElement.margin = oldElement.margin; + currentElement.width = oldElement.width; + currentElement.height = oldElement.height; + currentElement.rotateAngle = oldElement.rotateAngle; + currentElement.margin = oldElement.margin; + if (currentObject instanceof _node__WEBPACK_IMPORTED_MODULE_0__["Node"]) { + diagram.nodePropertyChange(currentObject, {}, undoChanges); + } + else { + diagram.connectorPropertyChange(currentObject, {}, undoChanges); + } + }; + UndoRedo.prototype.recordChildCollectionChanged = function (entry, diagram, isRedo) { + var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject); + var parentNode = diagram.nameTable[entryObject.parentId]; + var actualObject = diagram.nameTable[entryObject.id]; + if (parentNode) { + Object(_index__WEBPACK_IMPORTED_MODULE_4__["addChildToContainer"])(diagram, parentNode, actualObject, !isRedo, entry.historyAction === 'AddNodeToLane'); + } + else { + if (actualObject.parentId) { + parentNode = diagram.nameTable[actualObject.parentId]; + parentNode.children.splice(parentNode.children.indexOf(actualObject.id), 1); + parentNode.wrapper.children.splice(parentNode.wrapper.children.indexOf(actualObject.wrapper), 1); + } + if (entryObject.parentId && entryObject.parentId !== '') { + parentNode = diagram.nameTable[entryObject.parentId]; + parentNode.children.push(entryObject.id); + parentNode.wrapper.children.push(actualObject.wrapper); + } + actualObject.parentId = entryObject.parentId; + diagram.removeElements(actualObject); + diagram.updateDiagramObject(actualObject); + } + }; + UndoRedo.prototype.recordStackPositionChanged = function (entry, diagram, isRedo) { + var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject); + if (entryObject.source) { + var parent_1 = diagram.nameTable[entryObject.source.parentId]; + if (parent_1) { + if (entryObject.target) { + parent_1.wrapper.children.splice(entryObject.targetIndex, 1); + parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, entryObject.source.wrapper); + } + else { + if (entryObject.sourceIndex !== undefined) { + if (!diagram.nameTable[entryObject.source.id]) { + diagram.add(entryObject.source); + } + parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, diagram.nameTable[entryObject.source.id].wrapper); + diagram.nameTable[entryObject.source.id].parentId = parent_1.id; + } + else { + parent_1.wrapper.children.splice(parent_1.wrapper.children.indexOf(diagram.nameTable[entryObject.source.id].wrapper), 1); + diagram.nameTable[entryObject.source.id].parentId = ''; + } + } + if (isRedo && parent_1.shape.type === 'UmlClassifier') { + diagram.remove(entryObject.source); + } + parent_1.wrapper.measure(new _index__WEBPACK_IMPORTED_MODULE_4__["Size"]()); + parent_1.wrapper.arrange(parent_1.wrapper.desiredSize); + diagram.updateDiagramObject(parent_1); + diagram.updateSelector(); + } + } + }; + UndoRedo.prototype.recordGridSizeChanged = function (entry, diagram, isRedo, isRow) { + var obj = (isRedo) ? entry.redoObject : entry.undoObject; + var node = (!isRedo) ? entry.redoObject : entry.undoObject; + if (obj.parentId) { + var swimlane = diagram.nameTable[obj.parentId]; + var actualObject = diagram.nameTable[obj.id]; + var x = swimlane.wrapper.bounds.x; + var y = swimlane.wrapper.bounds.y; + if (swimlane.shape.type === 'SwimLane') { + var grid = swimlane.wrapper.children[0]; + var padding = swimlane.shape.padding; + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__["updateSwimLaneObject"])(diagram, node, swimlane, obj); + if (isRow) { + grid.updateRowHeight(obj.rowIndex, obj.wrapper.actualSize.height, true, padding); + swimlane.height = swimlane.wrapper.height = grid.height; + } + else { + grid.updateColumnWidth(obj.columnIndex, obj.wrapper.actualSize.width, true, padding); + swimlane.width = swimlane.wrapper.width = grid.width; + if (obj.isPhase) { + actualObject.maxWidth = actualObject.wrapper.maxWidth = obj.wrapper.actualSize.width; + } + } + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__["swimLaneMeasureAndArrange"])(swimlane); + var tx = x - swimlane.wrapper.bounds.x; + var ty = y - swimlane.wrapper.bounds.y; + diagram.drag(swimlane, tx, ty); + diagram.clearSelection(); + diagram.updateDiagramObject(swimlane); + } + } + }; + UndoRedo.prototype.recordLanePositionChanged = function (entry, diagram, isRedo) { + var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject); + if (entryObject.source) { + var parent_2 = diagram.nameTable[entryObject.source.parentId]; + if (parent_2 && parent_2.shape.type === 'SwimLane') { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__["laneInterChanged"])(diagram, entryObject.target, entryObject.source); + diagram.clearSelection(); + } + } + }; + UndoRedo.prototype.recordPortChanged = function (entry, diagram, isRedo) { + var entryObject = ((isRedo) ? entry.redoObject.nodes[0] : + entry.undoObject.nodes[0]); + if (diagram.canEnableBlazorObject) { + var node = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(diagram.nameTable[entryObject.id]); + diagram.insertValue(node, true); + } + var oldElement = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findPort"])(entryObject, entry.objectId); + var undoChanges = diagram.commandHandler.getPortChanges(diagram.nameTable[entryObject.id], oldElement); + var currentObject = diagram.nameTable[entryObject.id]; + var currentElement = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["findPort"])(currentObject, entry.objectId); + currentElement.offset = oldElement.offset; + diagram.nodePropertyChange(currentObject, {}, undoChanges); + if (currentObject.parentId) { + diagram.updateConnectorEdges(diagram.nameTable[currentObject.parentId]); + } + }; + UndoRedo.prototype.recordPropertyChanged = function (entry, diagram, isRedo) { + var redoObject = entry.redoObject; + var undoObject = entry.undoObject; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + for (var _i = 0, _a = Object.keys(undoObject); _i < _a.length; _i++) { + var prop = _a[_i]; + var obj = void 0; + switch (prop) { + case 'nodes': + for (var _b = 0, _c = Object.keys(undoObject.nodes); _b < _c.length; _b++) { + var key = _c[_b]; + if (diagram.canEnableBlazorObject) { + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(diagram.nodes[Number(key)]); + diagram.insertValue(obj, true); + } + } + break; + case 'connectors': + for (var _d = 0, _e = Object.keys(undoObject.connectors); _d < _e.length; _d++) { + var key = _e[_d]; + if (diagram.canEnableBlazorObject) { + obj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(diagram.connectors[Number(key)]); + diagram.insertValue(obj, false); + } + } + break; + } + } + } + this.getProperty(diagram, (isRedo ? redoObject : undoObject)); + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + isRedo ? diagram.onPropertyChanged(redoObject, undoObject) : diagram.onPropertyChanged(undoObject, redoObject); + diagram.diagramActions = diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + }; + UndoRedo.prototype.recordOrderCommandChanged = function (entry, diagram, isRedo) { + var redoObject = entry.redoObject; + var undoObject = entry.undoObject; + diagram.commandHandler.orderCommands(isRedo, (isRedo ? redoObject : undoObject), entry.type); + diagram.diagramActions = diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + }; + UndoRedo.prototype.recordAddChildToGroupNode = function (entry, diagram, isRedo) { + var group = diagram.nameTable[entry.undoObject.id]; + var child = diagram.nameTable[entry.objectId]; + if (isRedo && entry.changeType === 'Insert') { + diagram.addChildToGroup(group, child.id); + } + }; + UndoRedo.prototype.recordSegmentChanged = function (obj, diagram) { + var i = 0; + //let node: NodeModel; + var connector; + if (obj.connectors && obj.connectors.length > 0) { + for (i = 0; i < obj.connectors.length; i++) { + connector = obj.connectors[parseInt(i.toString(), 10)]; + this.segmentChanged(connector, diagram); + } + } + }; + UndoRedo.prototype.segmentChanged = function (connector, diagram) { + var conn = diagram.nameTable[connector.id]; + conn.segments = connector.segments; + diagram.commandHandler.updateEndPoint(conn); + }; + UndoRedo.prototype.recordPositionChanged = function (obj, diagram) { + var i = 0; + var node; + var connector; + if (obj.nodes && obj.nodes.length > 0) { + for (i = 0; i < obj.nodes.length; i++) { + node = obj.nodes[parseInt(i.toString(), 10)]; + this.positionChanged(node, diagram); + } + } + if (obj.connectors && obj.connectors.length > 0) { + for (i = 0; i < obj.connectors.length; i++) { + connector = obj.connectors[parseInt(i.toString(), 10)]; + this.connectionChanged(connector, diagram); + } + } + }; + UndoRedo.prototype.positionChanged = function (obj, diagram) { + var node = diagram.nameTable[obj.id]; + if (obj.processId && !node.processId) { + diagram.addProcess(obj, obj.processId); + } + if (!obj.processId && node.processId) { + diagram.removeProcess(obj.id); + } + if (node.processId) { + var tx = obj.margin.left - node.margin.left; + var ty = obj.margin.top - node.margin.top; + diagram.drag(node, tx, ty); + } + else { + if (node.parentId) { + var parent_3 = diagram.nameTable[node.parentId]; + if (parent_3.isLane) { + obj.wrapper.offsetX = (obj.width / 2) + (parent_3.wrapper.bounds.x + obj.margin.left); + obj.wrapper.offsetY = (obj.height / 2) + (parent_3.wrapper.bounds.y + obj.margin.top); + } + } + var tx = obj.wrapper.offsetX - node.offsetX; + var ty = obj.wrapper.offsetY - node.offsetY; + diagram.drag(node, tx, ty); + } + if (diagram.bpmnModule) { + diagram.bpmnModule.updateDocks(node, diagram); + } + }; + UndoRedo.prototype.recordSizeChanged = function (obj, diagram, entry) { + var i = 0; + var connector; + var node; + if (obj && obj.nodes && obj.nodes.length > 0) { + for (i = 0; i < obj.nodes.length; i++) { + node = obj.nodes[parseInt(i.toString(), 10)]; + if (node.children && !node.container) { + var elements = []; + var nodes = diagram.commandHandler.getAllDescendants(node, elements); + for (var i_1 = 0; i_1 < nodes.length; i_1++) { + var tempNode = entry.childTable[nodes[parseInt(i_1.toString(), 10)].id]; + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getObjectType"])(tempNode) === _node__WEBPACK_IMPORTED_MODULE_0__["Node"])) { + this.sizeChanged(tempNode, diagram, entry); + this.positionChanged(tempNode, diagram); + } + else { + this.connectionChanged(tempNode, diagram, entry); + } + } + } + else { + this.sizeChanged(node, diagram); + this.positionChanged(node, diagram); + } + } + } + if (obj && obj.connectors && obj.connectors.length > 0) { + var connectors = obj.connectors; + for (i = 0; i < connectors.length; i++) { + connector = connectors[parseInt(i.toString(), 10)]; + this.connectionChanged(connector, diagram); + } + } + }; + UndoRedo.prototype.sizeChanged = function (obj, diagram, entry) { + var node = diagram.nameTable[obj.id]; + var scaleWidth = obj.wrapper.actualSize.width / node.wrapper.actualSize.width; + var scaleHeight = obj.wrapper.actualSize.height / node.wrapper.actualSize.height; + if (entry && entry.childTable) { + entry.childTable[obj.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(node); + } + diagram.scale(node, scaleWidth, scaleHeight, { + x: obj.wrapper.offsetX / node.wrapper.offsetX, + y: obj.wrapper.offsetY / node.wrapper.offsetY + }); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + UndoRedo.prototype.recordRotationChanged = function (obj, diagram, entry, type) { + var i = 0; + var node; + var connector; + var selectorObj = diagram.selectedItems; + selectorObj.rotateAngle = obj.rotateAngle; + if (selectorObj && selectorObj.wrapper) { + selectorObj.wrapper.rotateAngle = obj.rotateAngle; + } + if (obj && obj.nodes && obj.nodes.length > 0) { + for (i = 0; i < obj.nodes.length; i++) { + node = obj.nodes[parseInt(i.toString(), 10)]; + // Bug 832864: Undo redo not working properly for group node with connectors. + // This code is executed only for group nodes with connectors when the connector is not connected to a node either as a source or target. + var isConnect = false; + if (node.children && node.children.length > 0) { + for (var j = 0; j < node.children.length; j++) { + var child = diagram.nameTable[node.children[parseInt(j.toString(), 10)]]; + if (!(Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getObjectType"])(child) === _node__WEBPACK_IMPORTED_MODULE_0__["Node"])) { + if (child.sourceID === '' || child.targetID === '') { + isConnect = true; + break; + } + } + } + if (isConnect && Object.keys(entry.childTable).length > 0) { + var elements = []; + var nodes = diagram.commandHandler.getAllDescendants(node, elements); + for (var i_2 = 0; i_2 < nodes.length; i_2++) { + var tempNode = entry.childTable[nodes[parseInt(i_2.toString(), 10)].id]; + if ((Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getObjectType"])(tempNode) === _node__WEBPACK_IMPORTED_MODULE_0__["Node"])) { + var object = { id: '', rotateAngle: 0, wrapper: { offsetX: 0, offsetY: 0 } }; + if (type === 'redo') { + object.id = tempNode.id; + object.rotateAngle = node.rotateAngle; + } + else { + object = tempNode; + } + this.rotationChanged(object, diagram); + if (type === 'undo') { + var offNode = diagram.nameTable[object.id]; + this.undoOffsets.push({ id: offNode.id, offsetX: offNode.offsetX, offsetY: offNode.offsetY }); + } + else { + var lastIndex = -1; + for (var i_3 = this.undoOffsets.length - 1; i_3 >= 0; i_3--) { + if (this.undoOffsets[parseInt(i_3.toString(), 10)].id === object.id) { + object.wrapper = this.undoOffsets[parseInt(i_3.toString(), 10)]; + lastIndex = i_3; + break; + } + } + if (lastIndex !== -1) { + this.undoOffsets.splice(lastIndex, 1); + } + } + this.positionChanged(object, diagram); + } + else { + this.connectionChanged(tempNode, diagram, entry); + } + } + var nd = diagram.nameTable[node.id]; + nd.rotateAngle = obj.rotateAngle; + diagram.updateSelector(); + this.rotationChanged(node, diagram); + } + else { + this.rotationChanged(node, diagram); + this.positionChanged(node, diagram); + } + } + else { + this.rotationChanged(node, diagram); + this.positionChanged(node, diagram); + } + } + } + if (obj && obj.connectors && obj.connectors.length > 0) { + for (i = 0; i < obj.connectors.length; i++) { + connector = obj.connectors[parseInt(i.toString(), 10)]; + this.connectionChanged(connector, diagram); + } + } + }; + UndoRedo.prototype.rotationChanged = function (obj, diagram) { + var node = diagram.nameTable[obj.id]; + diagram.rotate(node, obj.rotateAngle - node.rotateAngle); + }; + UndoRedo.prototype.recordConnectionChanged = function (obj, diagram) { + var connector; + if (obj && obj.connectors) { + connector = obj.connectors[0]; + } + else { + connector = obj; + } + if (connector.sourceID && diagram.nameTable[connector.sourceID]) { + diagram.insertValue(diagram.nameTable[connector.sourceID], true); + } + if (connector.targetID && diagram.nameTable[connector.targetID]) { + diagram.insertValue(diagram.nameTable[connector.targetID], true); + } + this.connectionChanged(connector, diagram); + }; + UndoRedo.prototype.connectionChanged = function (obj, diagram, entry) { + var connector = diagram.nameTable[obj.id]; + var node; + if (obj.sourcePortID !== connector.sourcePortID) { + diagram.removePortEdges(diagram.nameTable[connector.sourceID], connector.sourcePortID, connector.id, false); + connector.sourcePortID = obj.sourcePortID; + diagram.connectorPropertyChange(connector, {}, { sourcePortID: obj.sourcePortID }); + } + if (obj.targetPortID !== connector.targetPortID) { + diagram.removePortEdges(diagram.nameTable[connector.targetID], connector.targetPortID, connector.id, true); + connector.targetPortID = obj.targetPortID; + diagram.connectorPropertyChange(connector, {}, { targetPortID: obj.targetPortID }); + } + if (obj.sourceID !== connector.sourceID) { + if (obj.sourceID === '') { + node = diagram.nameTable[connector.sourceID]; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["removeItem"])(node.outEdges, obj.id); + } + else { + node = diagram.nameTable[obj.sourceID]; + node.outEdges.push(obj.id); + diagram.updatePortEdges(node, obj, false); + } + connector.sourceID = obj.sourceID; + diagram.connectorPropertyChange(connector, {}, { sourceID: obj.sourceID }); + } + if (obj.targetID !== connector.targetID) { + if (obj.targetID === '') { + node = diagram.nameTable[connector.targetID]; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_2__["removeItem"])(node.inEdges, obj.id); + } + else { + node = diagram.nameTable[obj.targetID]; + node.inEdges.push(obj.id); + diagram.updatePortEdges(node, obj, true); + } + connector.targetID = obj.targetID; + diagram.connectorPropertyChange(connector, {}, { targetID: obj.targetID }); + } + if (entry && entry.childTable) { + entry.childTable[obj.id] = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(connector); + } + var sx = obj.sourcePoint.x - connector.sourcePoint.x; + var sy = obj.sourcePoint.y - connector.sourcePoint.y; + if (sx !== 0 || sy !== 0) { + diagram.dragSourceEnd(connector, sx, sy); + } + var tx = obj.targetPoint.x - connector.targetPoint.x; + var ty = obj.targetPoint.y - connector.targetPoint.y; + if (tx !== 0 || ty !== 0) { + diagram.dragTargetEnd(connector, tx, ty); + } + diagram.updateSelector(); + if (diagram.mode !== 'SVG') { + diagram.refreshDiagramLayer(); + } + }; + UndoRedo.prototype.recordCollectionChanged = function (entry, diagram) { + var obj = entry.undoObject; + if (entry && entry.changeType) { + var changeType = void 0; + if (entry.isUndo) { + if (entry.changeType === 'Insert') { + changeType = 'Remove'; + } + else { + changeType = 'Insert'; + } + } + else { + changeType = entry.changeType; + } + if (changeType === 'Remove') { + if (obj.nodeId) { + diagram.remove(diagram.nameTable[obj.nodeId + '_textannotation_' + obj.id]); + } + else { + diagram.remove(obj); + diagram.clearSelectorLayer(); + } + } + else { + diagram.clearSelectorLayer(); + if (obj.parentId) { + var parentNode = diagram.nameTable[obj.parentId]; + if (parentNode) { + diagram.addChild(parentNode, obj); + } + else { + diagram.add(obj); + } + } + else if (obj.nodeId) { + diagram.addTextAnnotation(obj, diagram.nameTable[obj.nodeId]); + } + else { + if (!diagram.nameTable[obj.id]) { + if (obj && obj.shape && obj.shape.type === 'SwimLane' && entry.isUndo) { + Object(_utility_swim_lane_util__WEBPACK_IMPORTED_MODULE_5__["pasteSwimLane"])(obj, undefined, undefined, undefined, undefined, true); + } + diagram.add(obj); + } + } + if (obj.processId && diagram.nameTable[obj.processId]) { + diagram.addProcess(obj, obj.processId); + } + } + if (diagram.mode !== 'SVG') { + diagram.refreshDiagramLayer(); + } + } + }; + UndoRedo.prototype.recordLabelCollectionChanged = function (entry, diagram) { + var label = entry.undoObject; + var obj = entry.redoObject; + var node = diagram.nameTable[obj.id]; + if (entry && entry.changeType) { + var changeType = void 0; + if (entry.isUndo) { + changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert'; + } + else { + changeType = entry.changeType; + } + if (changeType === 'Remove') { + diagram.removeLabels(node, [label]); + diagram.clearSelectorLayer(); + } + else { + diagram.clearSelectorLayer(); + diagram.addLabels(node, [label]); + } + if (diagram.mode !== 'SVG') { + diagram.refreshDiagramLayer(); + } + } + }; + UndoRedo.prototype.recordPortCollectionChanged = function (entry, diagram) { + var port = entry.undoObject; + var obj = entry.redoObject; + var node = diagram.nameTable[obj.id]; + if (entry && entry.changeType) { + var changeType = void 0; + if (entry.isUndo) { + changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert'; + } + else { + changeType = entry.changeType; + } + if (changeType === 'Remove') { + diagram.removePorts(node, [port]); + diagram.clearSelectorLayer(); + } + else { + diagram.clearSelectorLayer(); + diagram.addPorts(node, [port]); + } + if (diagram.mode !== 'SVG') { + diagram.refreshDiagramLayer(); + } + } + }; + /** + * redo method \ + * + * @returns { void } redo method .\ + * @param {Diagram} diagram - provide the diagram value. + * + * @private + */ + UndoRedo.prototype.redo = function (diagram) { + var entry = this.getRedoEntry(diagram); + var startGroupActionCount = 0; + if (entry) { + if (entry.category === 'Internal') { + if (entry.type === 'StartGroup') { + startGroupActionCount++; + this.groupUndo = true; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + diagram.blazorActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_1__["BlazorAction"].GroupingInProgress; + } + } + else { + this.redoEntry(entry, diagram); + } + if (this.groupUndo) { + this.redoGroupAction(entry, diagram, startGroupActionCount); + this.groupUndo = false; + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + diagram.historyManager.redo(entry); + } + var arg = { + entryType: 'redo', oldValue: entry.redoObject, newValue: entry.undoObject + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])()) { + arg = { + entryType: 'redo', oldValue: this.getHistoryChangeEvent(entry.redoObject, entry.blazorHistoryEntryType), + newValue: this.getHistoryChangeEvent(entry.undoObject, entry.blazorHistoryEntryType) + }; + } + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramEvent"].historyStateChange, arg); + } + } + }; + UndoRedo.prototype.redoGroupAction = function (entry, diagram, startGroupActionCount) { + while (startGroupActionCount !== 0) { + this.redoEntry(entry, diagram); + entry = this.getRedoEntry(diagram); + if (entry.type === 'EndGroup') { + startGroupActionCount--; + } + else if (entry.type === 'StartGroup') { + startGroupActionCount++; + } + } + startGroupActionCount = 0; + }; + UndoRedo.prototype.redoEntry = function (historyEntry, diagram) { + var redoObject; + var redovalue; + if (historyEntry.type !== 'PropertyChanged' && historyEntry.type !== 'CollectionChanged') { + redoObject = (historyEntry.redoObject); + redovalue = (historyEntry.redoObject); + } + diagram.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + if (historyEntry.type !== 'StartGroup' && historyEntry.type !== 'EndGroup') { + if (diagram.historyManager.redoStack.length > 0) { + var addObject = diagram.historyManager.redoStack.splice(0, 1); + diagram.historyManager.undoStack.splice(0, 0, addObject[0]); + redovalue = (historyEntry.redoObject); + } + } + diagram.protectPropertyChange(true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_6__["isBlazor"])() && historyEntry.next && historyEntry.next.type === 'EndGroup') { + diagram.blazorActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_1__["BlazorAction"].GroupingInProgress; + } + switch (historyEntry.type) { + case 'PositionChanged': + case 'Align': + case 'Distribute': + this.recordPositionChanged(redoObject, diagram); + break; + case 'SizeChanged': + case 'Sizing': + this.recordSizeChanged(redoObject, diagram, historyEntry); + break; + case 'RotationChanged': + this.recordRotationChanged(redoObject, diagram, historyEntry, 'redo'); + break; + case 'ConnectionChanged': + this.recordConnectionChanged(redoObject, diagram); + break; + case 'PropertyChanged': + this.recordPropertyChanged(historyEntry, diagram, true); + break; + case 'CollectionChanged': + this.recordCollectionChanged(historyEntry, diagram); + break; + case 'LabelCollectionChanged': + this.recordLabelCollectionChanged(historyEntry, diagram); + break; + case 'PortCollectionChanged': + this.recordPortCollectionChanged(historyEntry, diagram); + break; + case 'Group': + this.group(historyEntry, diagram); + break; + case 'UnGroup': + this.unGroup(historyEntry, diagram); + break; + case 'SegmentChanged': + this.recordSegmentChanged(redoObject, diagram); + break; + case 'PortPositionChanged': + this.recordPortChanged(historyEntry, diagram, true); + break; + case 'AnnotationPropertyChanged': + this.recordAnnotationChanged(historyEntry, diagram, true); + break; + case 'ChildCollectionChanged': + this.recordChildCollectionChanged(historyEntry, diagram, true); + break; + case 'StackChildPositionChanged': + this.recordStackPositionChanged(historyEntry, diagram, true); + break; + case 'RowHeightChanged': + this.recordGridSizeChanged(historyEntry, diagram, true, true); + break; + case 'ColumnWidthChanged': + this.recordGridSizeChanged(historyEntry, diagram, true, false); + break; + case 'LanePositionChanged': + this.recordLanePositionChanged(historyEntry, diagram, true); + break; + case 'LaneCollectionChanged': + case 'PhaseCollectionChanged': + this.recordLaneOrPhaseCollectionChanged(historyEntry, diagram, true); + break; + case 'SendToBack': + case 'SendForward': + case 'SendBackward': + case 'BringToFront': + this.recordOrderCommandChanged(historyEntry, diagram, true); + break; + case 'AddChildToGroupNode': + this.recordAddChildToGroupNode(historyEntry, diagram, true); + break; + } + diagram.protectPropertyChange(false); + diagram.diagramActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].UndoRedo; + diagram.historyChangeTrigger(historyEntry, 'Redo'); + if (redovalue) { + var value = this.checkNodeObject(redovalue, diagram); + if (value) { + var getnodeDefaults = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(diagram.updateSelection); + if (getnodeDefaults) { + getnodeDefaults(value, diagram); + } + } + } + }; + UndoRedo.prototype.getUndoEntry = function (diagram) { + var undoEntry = null; + var currentObject; + var hList = diagram.historyManager; + if (hList.canUndo) { + undoEntry = hList.currentEntry; + currentObject = hList.currentEntry.previous; + if (currentObject) { + hList.currentEntry = currentObject; + if (!hList.canRedo) { + hList.canRedo = true; + } + } + else { + hList.canRedo = true; + hList.canUndo = false; + } + } + return undoEntry; + }; + UndoRedo.prototype.getRedoEntry = function (diagram) { + var redoEntry = null; + var entryCurrent; + var hList = diagram.historyManager; + if (hList.canRedo) { + if (!hList.currentEntry.previous && !hList.canUndo) { + entryCurrent = hList.currentEntry; + } + else { + entryCurrent = hList.currentEntry.next; + } + if (entryCurrent) { + hList.currentEntry = entryCurrent; + if (!hList.canUndo) { + hList.canUndo = true; + } + if (!entryCurrent.next) { + hList.canRedo = false; + hList.canUndo = true; + } + } + redoEntry = hList.currentEntry; + } + return redoEntry; + }; + /** + * To destroy the undo redo module + * + * @returns {void} + * @private + */ + UndoRedo.prototype.destroy = function () { + /** + * Destroys the undo redo module + */ + }; + /** + * @returns { string } toBounds method .\ + * Get getModuleName name. + */ + UndoRedo.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'UndoRedo'; + }; + return UndoRedo; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js ***! + \*********************************************************************************/ +/*! exports provided: MatrixTypes, Matrix, identityMatrix, transformPointByMatrix, transformPointsByMatrix, rotateMatrix, scaleMatrix, translateMatrix, multiplyMatrix */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MatrixTypes", function() { return MatrixTypes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Matrix", function() { return Matrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identityMatrix", function() { return identityMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformPointByMatrix", function() { return transformPointByMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformPointsByMatrix", function() { return transformPointsByMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateMatrix", function() { return rotateMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scaleMatrix", function() { return scaleMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "translateMatrix", function() { return translateMatrix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multiplyMatrix", function() { return multiplyMatrix; }); +/** + * Matrix module is used to transform points based on offsets, angle + */ +/** @private */ +var MatrixTypes; +(function (MatrixTypes) { + MatrixTypes[MatrixTypes["Identity"] = 0] = "Identity"; + MatrixTypes[MatrixTypes["Translation"] = 1] = "Translation"; + MatrixTypes[MatrixTypes["Scaling"] = 2] = "Scaling"; + MatrixTypes[MatrixTypes["Unknown"] = 4] = "Unknown"; +})(MatrixTypes || (MatrixTypes = {})); +/** @private */ +var Matrix = /** @__PURE__ @class */ (function () { + function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) { + this.m11 = m11; + this.m12 = m12; + this.m21 = m21; + this.m22 = m22; + this.offsetX = offsetX; + this.offsetY = offsetY; + // if (type === undefined) { + // this.type = MatrixTypes.Unknown; + // } else { + // this.type = type; + // } + this.type = type; + } + return Matrix; +}()); + +/** + * Will identify the matrix .\ + * + * @returns {Matrix} Will identify the matrix . + * @private + */ +function identityMatrix() { + return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity); +} +/** + * Will transform the points by matrix .\ + * + * @returns {PointModel[]} Will transform the points by matrix . + * + * @param {Matrix} matrix - provide the matrix value . + * @param {number} point - provide the points value. + * @private + */ +function transformPointByMatrix(matrix, point) { + var pt = multiplyPoint(matrix, point.x, point.y); + return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 }; +} +/** + * Will transform the points by matrix .\ + * + * @returns {PointModel[]} Will transform the points by matrix . + * + * @param {Matrix} matrix - provide the matrix value . + * @param {number} points - provide the points value. + * @private + */ +function transformPointsByMatrix(matrix, points) { + var transformedPoints = []; + for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { + var point = points_1[_i]; + transformedPoints.push(transformPointByMatrix(matrix, point)); + } + return transformedPoints; +} +/** + * Will rotate the matrix .\ + * + * @returns {void} Will rotate the matrix . + * + * @param {Matrix} matrix - provide the matrix value . + * @param {number} angle - provide the angle value. + * @param {number} centerX - provide the centerX value . + * @param {number} centerY - provide the centerY value . + * @private + */ +function rotateMatrix(matrix, angle, centerX, centerY) { + angle %= 360.0; + multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0)); +} +/** + * Will scale the matrix .\ + * + * @returns {void} Will scale the matrix . + * + * @param {Matrix} matrix - provide the matrix value . + * @param {number} scaleX - provide the scaleXvalue. + * @param {number} scaleY - provide the scaleY value . + * @param {number} centerX - provide the centerX value . + * @param {number} centerY - provide the centerY value . + * @private + */ +function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) { + if (centerX === void 0) { centerX = 0; } + if (centerY === void 0) { centerY = 0; } + multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY)); +} +/** + * Will translate the matrix .\ + * + * @returns {void} Will translate the matrix . + * + * @param {Matrix} matrix - provide the matrix value . + * @param {number} offsetX - provide the offset x value. + * @param {number} offsetY - provide the offset y value . + * @private + */ +function translateMatrix(matrix, offsetX, offsetY) { + if (matrix.type & MatrixTypes.Identity) { + matrix.type = MatrixTypes.Translation; + setMatrix(matrix, 1.0, 0.0, 0.0, 1.0, offsetX, offsetY); + return; + } + if (matrix.type & MatrixTypes.Unknown) { + matrix.offsetX += offsetX; + matrix.offsetY += offsetY; + return; + } + matrix.offsetX += offsetX; + matrix.offsetY += offsetY; + matrix.type |= MatrixTypes.Translation; +} +/** + * Will create scaling value .\ + * + * @returns {Matrix} Will create scaling value . . + * + * @param {Matrix} scaleX - provide the scale x value . + * @param {number} scaleY - provide the scale y value. + * @param {number} centerX - provide the centerX x value . + * @param {number} centerY - provide the centerX y value . + * @private + */ +function createScaling(scaleX, scaleY, centerX, centerY) { + var result = identityMatrix(); + result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation; + setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY); + return result; +} +/** + * Will create the rotation radians.\ + * + * @returns {Matrix} Will create the rotation radians . + * + * @param {Matrix} angle - provide the angle . + * @param {number} centerX - provide the x value . + * @param {number} centerY - provide the y value . + * @private + */ +function createRotationRadians(angle, centerX, centerY) { + var result = identityMatrix(); + var num = Math.sin(angle); + var num2 = Math.cos(angle); + var offsetX = centerX * (1.0 - num2) + centerY * num; + var offsetY = centerY * (1.0 - num2) - centerX * num; + result.type = MatrixTypes.Unknown; + setMatrix(result, num2, num, -num, num2, offsetX, offsetY); + return result; +} +/** + * Multiply the point .\ + * + * @returns {void} Multiply the point . + * + * @param {Matrix} matrix - Provide the matrix . + * @param {number} x - provide the x value . + * @param {number} y - provide the y value . + * @private + */ +function multiplyPoint(matrix, x, y) { + switch (matrix.type) { + case MatrixTypes.Identity: break; + case MatrixTypes.Translation: + x += matrix.offsetX; + y += matrix.offsetY; + break; + case MatrixTypes.Scaling: + x *= matrix.m11; + y *= matrix.m22; + break; + case MatrixTypes.Translation | MatrixTypes.Scaling: + x *= matrix.m11; + x += matrix.offsetX; + y *= matrix.m22; + y += matrix.offsetY; + break; + default: + // eslint-disable-next-line no-case-declarations + var num = y * matrix.m21 + matrix.offsetX; + // eslint-disable-next-line no-case-declarations + var num2 = x * matrix.m12 + matrix.offsetY; + x *= matrix.m11; + x += num; + y *= matrix.m22; + y += num2; + break; + } + return { x: x, y: y }; +} +/** + * Will multiply the matrix .\ + * + * @returns {void} Will multiply the matrix . + * + * @param {Matrix} matrix1 - Provide the matrix 1 value . + * @param {Matrix} matrix2 - Provide the matrix 2 value . + * @private + */ +function multiplyMatrix(matrix1, matrix2) { + var type = matrix1.type; + var type2 = matrix2.type; + if (type2 === MatrixTypes.Identity) { + return; + } + if (type === MatrixTypes.Identity) { + assignMatrix(matrix1, matrix2); + matrix1.type = matrix2.type; + return; + } + if (type2 === MatrixTypes.Translation) { + matrix1.offsetX += matrix2.offsetX; + matrix1.offsetY += matrix2.offsetY; + if (type !== MatrixTypes.Unknown) { + matrix1.type |= MatrixTypes.Translation; + } + return; + } + if (type !== MatrixTypes.Translation) { + var num = type << 4 | type2; + switch (num) { + case 34: + matrix1.m11 *= matrix2.m11; + matrix1.m22 *= matrix2.m22; + return; + case 35: + matrix1.m11 *= matrix2.m11; + matrix1.m22 *= matrix2.m22; + matrix1.offsetX = matrix2.offsetX; + matrix1.offsetY = matrix2.offsetY; + matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling); + return; + case 36: break; + default: + { + switch (num) { + case 50: + matrix1.m11 *= matrix2.m11; + matrix1.m22 *= matrix2.m22; + matrix1.offsetX *= matrix2.m11; + matrix1.offsetY *= matrix2.m22; + return; + case 51: + matrix1.m11 *= matrix2.m11; + matrix1.m22 *= matrix2.m22; + matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX; + matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY; + return; + case 52: break; + default: + switch (num) { + case 66: + case 67: + case 68: break; + default: return; + } + break; + } + break; + } + } + var result = identityMatrix(); + var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21; + var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22; + var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21; + var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22; + var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX; + var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY; + setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1); + if (result.m21 || result.m12) { + result.type = MatrixTypes.Unknown; + } + else { + if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) { + result.type = MatrixTypes.Scaling; + } + if (result.offsetX || result.offsetY) { + result.type |= MatrixTypes.Translation; + } + if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) { + result.type = MatrixTypes.Identity; + } + result.type = MatrixTypes.Scaling | MatrixTypes.Translation; + } + assignMatrix(matrix1, result); + matrix1.type = result.type; + return; + } + var offsetX = matrix1.offsetX; + var offsetY = matrix1.offsetY; + matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX; + matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY; + if (type2 === MatrixTypes.Unknown) { + matrix1.type = MatrixTypes.Unknown; + return; + } + matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling); +} +/** + * set the matrix .\ + * + * @returns {void} set the matrix . + * + * @param {Matrix} mat - Provide the matrix 1 value . + * @param {number} m11 - Provide the matrix m11 value . + * @param {number} m12 - Provide the matrix m11 value . + * @param {number} m21 - Provide the matrix m11 value . + * @param {number} m22 - Provide the matrix m11 value . + * @param {number} x - Provide the matrix m11 value . + * @param {number} y - Provide the matrix m11 value . + * @private + */ +function setMatrix(mat, m11, m12, m21, m22, x, y) { + mat.m11 = m11; + mat.m12 = m12; + mat.m21 = m21; + mat.m22 = m22; + mat.offsetX = x; + mat.offsetY = y; +} +/** + * Assign the matrix .\ + * + * @returns {void} Assign the matrix . + * + * @param {Matrix} matrix1 - Provide the element type as string . + * @param {Matrix} matrix2 - Provide the element type as string . + * @private + */ +function assignMatrix(matrix1, matrix2) { + matrix1.m11 = matrix2.m11; + matrix1.m12 = matrix2.m12; + matrix1.m21 = matrix2.m21; + matrix1.m22 = matrix2.m22; + matrix1.offsetX = matrix2.offsetX; + matrix1.offsetY = matrix2.offsetY; + matrix1.type = matrix2.type; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js ***! + \********************************************************************************/ +/*! exports provided: Point */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Point", function() { return Point; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * Defines and processes coordinates + */ +var Point = /** @__PURE__ @class */ (function (_super) { + __extends(Point, _super); + function Point() { + return _super !== null && _super.apply(this, arguments) || this; + } + /** + * equals method \ + * + * @returns { boolean } equals method .\ + * @param {PointModel} point1 - provide the point1 value. + * @param {PointModel} point2 - provide the point1 value. + * + * @private + */ + Point.equals = function (point1, point2) { + if (point1 === point2) { + return true; + } + if (!point1 || !point2) { + return false; + } + return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y; + }; + /** + * isEmptyPoint method \ + * + * @returns { boolean } isEmptyPoint method .\ + * @param {PointModel} point - provide the points value. + * + * @private + */ + Point.isEmptyPoint = function (point) { + if (point.x && point.y) { + return false; + } + return true; + }; + // public add(point1: PointModel, point2: PointModel): PointModel { + // return { x: point1.x + point2.x, y: point1.y + point2.y }; + // } + // public subtract(point1: PointModel, point2: PointModel): PointModel { + // return { x: point1.x - point2.x, y: point1.y - point2.y }; + // } + // public multiply(point1: PointModel, point2: PointModel): PointModel { + // return { + // x: point1.x * point2.x, y: point1.y * point2.y + // }; + // } + // public crossProduct(point1: PointModel, point2: PointModel): PointModel { + // return { + // x: point1.x * point2.y, y: point2.x * point1.y + // }; + // } + // public offset(offsetX: number, offsetY: number): void { + // this.x += offsetX; + // this.y += offsetY; + // } + // public rotate(angle: number): PointModel { + // let c: number = Math.cos(angle); + // let s: number = Math.sin(angle); + // return { + // x: c * this.x - s * this.y, y: s * this.x + c * this.y + // }; + // } + // public distance(point2: PointModel): number { + // return Math.sqrt(Math.pow(this.x - point2.x, 2) + Math.pow(this.y - point2.y, 2)); + // } + /** + * transform method \ + * + * @returns { PointModel } transform method .\ + * @param {PointModel} point - provide the points value. + * @param {number} angle - provide the points value. + * @param {number} length - provide the points value. + * + * @private + */ + Point.transform = function (point, angle, length) { + var pt = { x: 0, y: 0 }; + pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100; + pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100; + return pt; + }; + /** + * findLength method \ + * + * @returns { number } findLength method .\ + * @param {PointModel} s - provide the points value. + * @param {PointModel} e - provide the points value. + * + * @private + */ + Point.findLength = function (s, e) { + var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2)); + return length; + }; + /** + * findAngle method \ + * + * @returns { number } findAngle method .\ + * @param {PointModel} point1 - provide the points value. + * @param {PointModel} point2 - provide the points value. + * + * @private + */ + Point.findAngle = function (point1, point2) { + var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x); + angle = (180 * angle / Math.PI); + angle %= 360; + if (angle < 0) { + angle += 360; + } + return angle; + }; + /** + * distancePoints method \ + * + * @returns { number } distancePoints method .\ + * @param {PointModel} pt1 - provide the points value. + * @param {PointModel} pt2 - provide the points value. + * + * @private + */ + Point.distancePoints = function (pt1, pt2) { + return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2)); + }; + /** + * getLengthFromListOfPoints method \ + * + * @returns { number } getLengthFromListOfPoints method .\ + * @param {PointModel[]} points - provide the points value. + * + * @private + */ + Point.getLengthFromListOfPoints = function (points) { + var length = 0; + for (var j = 0; j < points.length - 1; j++) { + length += this.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]); + } + return length; + }; + /** + * adjustPoint method \ + * + * @returns { PointModel } adjustPoint method .\ + * @param {PointModel} source - provide the points value. + * @param {PointModel} target - provide the points value. + * @param {boolean} isStart - provide the isStart value. + * @param {number} length - provide the length value. + * + * @private + */ + Point.adjustPoint = function (source, target, isStart, length) { + var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y }; + var angle; + if (source.x === target.x) { + if (source.y < target.y && isStart || source.y > target.y && !isStart) { + pt.y += length; + } + else { + pt.y -= length; + } + } + else if (source.y === target.y) { + if (source.x < target.x && isStart || source.x > target.x && !isStart) { + pt.x += length; + } + else { + pt.x -= length; + } + } + else { + if (isStart) { + angle = this.findAngle(source, target); + pt = this.transform(source, angle, length); + } + else { + angle = this.findAngle(target, source); + pt = this.transform(target, angle, length); + } + } + return pt; + }; + /** + * direction method \ + * + * @returns { string } direction method .\ + * @param {PointModel} pt1 - provide the points value. + * @param {PointModel} pt2 - provide the points value. + * + * @private + */ + Point.direction = function (pt1, pt2) { + if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) { + return pt1.x < pt2.x ? 'Right' : 'Left'; + } + else { + return pt1.y < pt2.y ? 'Bottom' : 'Top'; + } + }; + //Move these methods to util + //public CompareTo(point: PointModel): number { + // let result: number = this.X.CompareTo(point.X); + // return result != 0 ? result : this.Y.CompareTo(point.Y); + //} + //public CompareOnYAxis(point: PointModel): number { + // let result: number = this.X.CompareTo(point.X); + // return result != 0 ? result : this.Y.CompareTo(point.Y); + //} + //public CompareOnXAxis(point: PointModel): number { + // let result: number = this.Y.CompareTo(point.Y); + // return result != 0 ? result : this.X.CompareTo(point.X); + //} + // public round(): void { + // this.x = Math.round(this.x); + // this.y = Math.round(this.y); + // } + /** + * getClassName method \ + * + * @returns { string } getClassName method .\ + * + * @private + */ + Point.prototype.getClassName = function () { + return 'Point'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Point.prototype, "x", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Point.prototype, "y", void 0); + return Point; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js ***! + \*******************************************************************************/ +/*! exports provided: Rect */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rect", function() { return Rect; }); +/** + * Rect defines and processes rectangular regions + */ +var Rect = /** @__PURE__ @class */ (function () { + function Rect(x, y, width, height) { + /** + * Sets the x-coordinate of the starting point of a rectangular region + * + * @default 0 + */ + this.x = Number.MAX_VALUE; + /** + * Sets the y-coordinate of the starting point of a rectangular region + * + * @default 0 + */ + this.y = Number.MAX_VALUE; + /** + * Sets the width of a rectangular region + * + * @default 0 + */ + this.width = 0; + /** + * Sets the height of a rectangular region + * + * @default 0 + */ + this.height = 0; + if (x === undefined || y === undefined) { + x = y = Number.MAX_VALUE; + width = height = 0; + } + else { + if (width === undefined) { + width = 0; + } + if (height === undefined) { + height = 0; + } + } + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + Object.defineProperty(Rect.prototype, "left", { + // eslint-disable-next-line jsdoc/require-returns + /** @private */ + get: function () { + return this.x; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "right", { + /** + * right method \ + * + * @returns { Rect } right method .\ + * + * @private + */ + get: function () { + return this.x + this.width; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "top", { + /** + * toBounds method \ + * + * @returns { Rect } toBounds method .\ + * + * @private + */ + get: function () { + return this.y; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "bottom", { + /** + * bottom method \ + * + * @returns { Rect } bottom method .\ + * + * @private + */ + get: function () { + return this.y + this.height; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "topLeft", { + /** + * topLeft method \ + * + * @returns { Rect } topLeft method .\ + * + * @private + */ + get: function () { + return { x: this.left, y: this.top }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "topRight", { + /** + * topRight method \ + * + * @returns { Rect } topRight method .\ + * + * @private + */ + get: function () { + return { x: this.right, y: this.top }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "bottomLeft", { + /** + * bottomLeft method \ + * + * @returns { Rect } bottomLeft method .\ + * + * @private + */ + get: function () { + return { x: this.left, y: this.bottom }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "bottomRight", { + /** + * bottomRight method \ + * + * @returns { Rect } bottomRight method .\ + * + * @private + */ + get: function () { + return { x: this.right, y: this.bottom }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "middleLeft", { + /** + * middleLeft method \ + * + * @returns { Rect } middleLeft method .\ + * + * @private + */ + get: function () { + return { x: this.left, y: this.y + this.height / 2 }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "middleRight", { + /** + * middleRight method \ + * + * @returns { Rect } middleRight method .\ + * + * @private + */ + get: function () { + return { x: this.right, y: this.y + this.height / 2 }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "topCenter", { + /** + * topCenter method \ + * + * @returns { Rect } topCenter method .\ + * + * @private + */ + get: function () { + return { x: this.x + this.width / 2, y: this.top }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "bottomCenter", { + /** + * bottomCenter method \ + * + * @returns { Rect } bottomCenter method .\ + * + * @private + */ + get: function () { + return { x: this.x + this.width / 2, y: this.bottom }; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Rect.prototype, "center", { + /** + * center method \ + * + * @returns { PointModel } center method .\ + * + * @private + */ + get: function () { + return { x: this.x + this.width / 2, y: this.y + this.height / 2 }; + }, + enumerable: true, + configurable: true + }); + /** + * equals method \ + * + * @returns { boolean } equals method .\ + * @param {Rect} rect1 - provide the rect1 value. + * @param {Rect} rect2 - provide the rect2 value. + * + * @private + */ + Rect.prototype.equals = function (rect1, rect2) { + return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height; + }; + /** + * uniteRect method \ + * + * @returns { Rect } uniteRect method .\ + * @param {Rect} rect - provide the points value. + * + * @private + */ + Rect.prototype.uniteRect = function (rect) { + var right = Math.max(Number.NaN === this.right || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right); + var bottom = Math.max(Number.NaN === this.bottom || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom); + this.x = Math.min(this.left, rect.left); + this.y = Math.min(this.top, rect.top); + this.width = right - this.x; + this.height = bottom - this.y; + return this; + }; + /** + * unitePoint method \ + * + * @returns { void } unitePoint method .\ + * @param {PointModel} point - provide the points value. + * + * @private + */ + Rect.prototype.unitePoint = function (point) { + if (this.x === Number.MAX_VALUE) { + this.x = point.x; + this.y = point.y; + return; + } + var x = Math.min(this.left, point.x); + var y = Math.min(this.top, point.y); + var right = Math.max(this.right, point.x); + var bottom = Math.max(this.bottom, point.y); + this.x = x; + this.y = y; + this.width = right - this.x; + this.height = bottom - this.y; + }; + // public intersection(rect: Rect): Rect { + // if (this.intersects(rect)) { + // let left: number = Math.max(this.left, rect.left); + // let top: number = Math.max(this.top, rect.top); + // let right: number = Math.min(this.right, rect.right); + // let bottom: number = Math.min(this.bottom, rect.bottom); + // return new Rect(left, top, right - left, bottom - top); + // } + // return Rect.empty; + // } + /** + * Inflate method \ + * + * @returns { Rect } Inflate method .\ + * @param {number} padding - provide the points value. + * + * @private + */ + Rect.prototype.Inflate = function (padding) { + this.x -= padding; + this.y -= padding; + this.width += padding * 2; + this.height += padding * 2; + return this; + }; + //public Inflate(size: Size): Rect { + // this.x -= size.Width; + // this.y -= size.Height; + // this.width += size.Width * 2; + // this.height += size.Height * 2; + // return this; + //} + // public inflate(width: number, height: number): void { + // this.x -= width; + // this.y -= height; + // this.width += width * 2; + // this.height += height * 2; + // } + /** + * intersects method \ + * + * @returns { boolean } intersects method .\ + * @param {Rect} rect - provide the points value. + * + * @private + */ + Rect.prototype.intersects = function (rect) { + if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) { + return false; + } + return true; + }; + /** + * containsRect method \ + * + * @returns { boolean } containsRect method .\ + * @param {Rect} rect - provide the points value. + * + * @private + */ + Rect.prototype.containsRect = function (rect) { + return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom; + }; + /** + * containsPoint method \ + * + * @returns { boolean } containsPoint method .\ + * @param {PointModel} point - provide the points value. + * @param {number} padding - provide the padding value. + * + * @private + */ + Rect.prototype.containsPoint = function (point, padding) { + if (padding === void 0) { padding = 0; } + return this.left - padding <= point.x && this.right + padding >= point.x + && this.top - padding <= point.y && this.bottom + padding >= point.y; + }; + // public toPoints(): PointModel[] { + // let points: PointModel[] = []; + // points.push(this.topLeft); + // points.push(this.topRight); + // points.push(this.bottomLeft); + // points.push(this.bottomRight); + // return points; + // } + /** + * toBounds method \ + * + * @returns { Rect } toBounds method .\ + * @param {PointModel[]} points - provide the points value. + * + * @private + */ + Rect.toBounds = function (points) { + var rect = new Rect(); + for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { + var pt = points_1[_i]; + rect.unitePoint(pt); + } + return rect; + }; + /** @private */ + Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0); + return Rect; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js ***! + \*******************************************************************************/ +/*! exports provided: Size */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Size", function() { return Size; }); +/** + * Size defines and processes the size(width/height) of the objects + */ +var Size = /** @__PURE__ @class */ (function () { + function Size(width, height) { + this.width = width; + this.height = height; + } + /** + * isEmpty method \ + * + * @returns { boolean } isEmpty method .\ + * + * @private + */ + Size.prototype.isEmpty = function () { + return this.height === 0 && this.width === 0; + }; + // public static get empty(): Size { + // return new Size(); + // } + // public get isEmpty(): boolean { + // return this.equals(Size.empty); + // } + // public equals(size2: Size): boolean { + // return this.width === size2.width && this.height === size2.height; + // } + // public union(size: Size): void { + // size.width = Math.max(size.width, this.width); + // size.height = Math.max(size.height, this.height); + // } + /** + * clone method \ + * + * @returns { Size } clone method .\ + * + * @private + */ + Size.prototype.clone = function () { + return new Size(this.width, this.height); + }; + return Size; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/print-settings.js": +/*!******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/print-settings.js ***! + \******************************************************************************/ +/*! exports provided: PrintAndExport */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrintAndExport", function() { return PrintAndExport; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _rendering_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rendering/renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* eslint-disable jsdoc/require-param */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/ban-types */ +/* eslint-disable valid-jsdoc */ +/* eslint-disable jsdoc/require-returns */ +/* eslint-disable @typescript-eslint/no-this-alias */ + + + + + + + + + + + + + +var storeFormat; +/** + * Print and Export Settings + */ +var PrintAndExport = /** @__PURE__ @class */ (function () { + function PrintAndExport(diagram) { + this.diagram = diagram; + } + /** + * To Export the diagram + * + * @private + */ + PrintAndExport.prototype.exportDiagram = function (options) { + var fileType; + var customBounds; + var content; + var content1 = ''; + var data = 'data'; + //let mode: string; + var buffers = []; + var margin = options.margin || {}; + var region = options && options.region ? options.region : 'Content'; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (options.Mode === 0) { + options.mode = 'Download'; + } + else { + options.mode = 'Data'; + } + } + var mode = options && options.mode ? options.mode : 'Download'; + var bounds = this.getDiagramBounds(region, options); + if (options.bounds) { + customBounds = true; + bounds.x = options.bounds.x ? options.bounds.x : bounds.x; + bounds.y = options.bounds.y ? options.bounds.y : bounds.y; + bounds.width = options.bounds.width || bounds.width; + bounds.height = options.bounds.height || bounds.height; + } + margin = { + top: margin.top !== undefined ? margin.top : 25, + bottom: margin.bottom !== undefined ? margin.bottom : 25, + right: margin.right !== undefined ? margin.right : 25, + left: margin.left !== undefined ? margin.left : 25 + }; + var nodes = this.diagram.nodes; + if (region !== 'PageSettings') { + bounds.x -= margin.left; + bounds.y -= margin.top; + bounds.width += margin.left + margin.right; + bounds.height += margin.top + margin.bottom; + } + var fileName = options.fileName || 'diagram'; + if (options.format !== 'SVG') { + data = this.setCanvas(options, bounds, margin, mode, customBounds, region, fileName); + if (data !== null) { + return data; + } + } + else { + fileType = options.format; + options.bounds = bounds; + options.margin = margin; + var svg = content = this.diagramAsSvg(options, margin); + if (mode === 'Data') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && options.format === 'SVG') { + var svgData = new XMLSerializer().serializeToString(svg); + return svgData; + } + return content; + } + var buffer = new XMLSerializer().serializeToString(svg); + buffers.push(buffer); + } + if (mode === 'Download' && data !== null) { + var browserInfo = void 0; + // Ensure this for Safari + // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') { + // let info: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9'; + // alert('Downloading option is not supported in ' + info + ', Please use the returned data'); + // return content; + // } else { + for (var b = 0; b < buffers.length; b++) { + var blob = new Blob([buffers[parseInt(b.toString(), 10)]], { type: 'application/octet-stream' }); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') { + window.navigator.msSaveOrOpenBlob(blob, fileName + '.' + fileType); + } + else { + var pom = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('a', { 'download': fileName + '.' + fileType }); + var url = URL.createObjectURL(blob); + pom.href = url; + var e = document.createEvent('MouseEvents'); + e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + pom.dispatchEvent(e); + } + } + } + return null; + }; + PrintAndExport.prototype.setCanvas = function (options, bounds, margin, mode, customBounds, region, fileName) { + var content; + options.bounds = bounds; + options.region = region; + var scaleX = 'scaleX'; + var scaleY = 'scaleY'; + var scaleOffsetX = 'scaleOffsetX'; + var scaleOffsetY = 'scaleOffsetY'; + this.setScaleValueforCanvas(options, bounds); + var canvas = this.diagramAsCanvas({ + bounds: bounds, margin: margin, region: region, scaleX: options["" + scaleX], + scaleY: options["" + scaleY], scaleOffsetX: options["" + scaleOffsetX], scaleOffsetY: options["" + scaleOffsetY] + }, customBounds); + var image; + if (options.format === 'JPG') { + image = content = storeFormat = canvas.toDataURL('image/jpeg'); + } + else if (options.format === 'BMP') { + image = content = storeFormat = canvas.toDataURL('image/bmp'); + } + else { + image = content = storeFormat = canvas.toDataURL(); + } + if (mode === 'Data') { + return content; + } + this.canvasMultiplePage(options, canvas, margin, image, fileName); + return null; + }; + PrintAndExport.prototype.canvasMultiplePage = function (options, canvas, margin, image, fileName) { + var _this = this; + var images = []; + var imageData = image.substring(image.indexOf(':') + 1, image.indexOf(';')); + var imageFormat = imageData.substring(imageData.indexOf('/') + 1); + if (imageFormat === 'jpeg') { + imageFormat = undefined; + } + else { + imageFormat = imageFormat.toUpperCase(); + } + var fileType = imageFormat || 'JPG'; + if (options.multiplePage) { + options.pageHeight = options.pageHeight ? options.pageHeight : this.diagram.pageSettings.height; + options.pageWidth = options.pageWidth ? options.pageWidth : this.diagram.pageSettings.width; + options.pageHeight = options.pageHeight ? options.pageHeight : canvas.width; + options.pageWidth = options.pageWidth ? options.pageWidth : canvas.height; + margin = options.margin || {}; + if (options.pageOrientation) { + if ((options.pageOrientation === 'Landscape' && options.pageHeight > options.pageWidth) || + options.pageOrientation === 'Portrait' && options.pageWidth > options.pageHeight) { + var temp = options.pageWidth; + options.pageWidth = options.pageHeight; + options.pageHeight = temp; + } + } + options.margin = { + top: !isNaN(margin.top) ? margin.top : 0, + bottom: !isNaN(margin.bottom) ? margin.bottom : 0, + left: !isNaN(margin.left) ? margin.left : 0, + right: !isNaN(margin.right) ? margin.right : 0 + }; + var attr = { + 'id': this.diagram.element.id + '_printImage', + 'src': image + }; + var img_1 = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('img', attr); + img_1.onload = function () { + images = _this.getMultipleImage(img_1, options, true); + _this.exportImage(images, fileName, fileType, image); + }; + } + else { + images = [image]; + this.exportImage(images, fileName, fileType, image); + } + }; + PrintAndExport.prototype.exportImage = function (images, fileName, fileType, image) { + var buffers = []; + var length = (!(images instanceof HTMLElement)) ? images.length : 0; + for (var g = 0; g < length; g++) { + image = images[parseInt(g.toString(), 10)]; + image = image.replace(/^data:[a-z]*;,/, ''); + var image1 = image.split(','); + var byteString = atob(image1[1]); + var buffer = new ArrayBuffer(byteString.length); + var intArray = new Uint8Array(buffer); + for (var i = 0; i < byteString.length; i++) { + intArray[parseInt(i.toString(), 10)] = byteString.charCodeAt(i); + } + buffers.push(buffer); + } + var _loop_1 = function (j) { + var b = new Blob([buffers[parseInt(j.toString(), 10)]], { type: 'application/octet-stream' }); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') { + window.navigator.msSaveOrOpenBlob(b, fileName + '.' + fileType); + } + else { + var htmlElement_1 = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('a', { 'download': fileName + '.' + fileType }); + var urlLink = URL.createObjectURL(b); + htmlElement_1.href = urlLink; + var mouseEvent_1 = document.createEvent('MouseEvents'); + mouseEvent_1.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + setTimeout(function () { + htmlElement_1.dispatchEvent(mouseEvent_1); + }, ((j + 1) * 5)); + } + }; + // Ensure this for safari + // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') { + // let browserInfo: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9'; + // alert('Downloading option is not supported in ' + browserInfo + ', Please use the returned data'); + // return content; + // } else { + for (var j = 0; j < buffers.length; j++) { + _loop_1(j); + } + }; + /** @private */ + PrintAndExport.prototype.getObjectsBound = function (options) { + var nodes = this.diagram.nodes; + var nodebounds; + for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { + var node = nodes_1[_i]; + if (node.visible) { + if (((options.format !== 'SVG' && !(node instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_9__["DiagramNativeElement"]) && !(node instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_8__["DiagramHtmlElement"])) + || (options.format === 'SVG' && !(node instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_8__["DiagramHtmlElement"])))) { + if (!nodebounds) { + nodebounds = node.wrapper.outerBounds; + } + else { + nodebounds = nodebounds.uniteRect(node.wrapper.outerBounds); + } + } + } + } + var connectors = this.diagram.connectors; + for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) { + var connector = connectors_1[_a]; + if (connector.visible) { + if (!nodebounds) { + nodebounds = connector.wrapper.outerBounds; + } + else { + nodebounds = nodebounds.uniteRect(connector.wrapper.outerBounds); + } + } + } + return nodebounds || new _primitives_rect__WEBPACK_IMPORTED_MODULE_6__["Rect"](0, 0, 0, 0); + }; + /** @private */ + PrintAndExport.prototype.getDiagramBounds = function (mode, options) { + var rect = this.getObjectsBound(options); + var left = rect.left; + var top = rect.top; + var right = rect.right - rect.left; + var bottom = rect.bottom - rect.top; + if (mode !== 'Content') { + if (this.diagram.pageSettings && this.diagram.pageSettings.multiplePage) { + left = rect.left; + top = rect.top; + if (this.diagram.pageSettings.width) { + left = Math.floor(left / this.diagram.pageSettings.width) * this.diagram.pageSettings.width; + right = Math.ceil(rect.right / this.diagram.pageSettings.width) * this.diagram.pageSettings.width - left; + } + if (this.diagram.pageSettings.height) { + top = Math.floor(top / this.diagram.pageSettings.height) * this.diagram.pageSettings.height; + bottom = Math.ceil(rect.bottom / this.diagram.pageSettings.height) * this.diagram.pageSettings.height - top; + } + if ((rect.width === 0) && this.diagram.pageSettings.width !== null) { + right = this.diagram.pageSettings.width; + } + if ((rect.height === 0) && this.diagram.pageSettings.height !== null) { + bottom = this.diagram.pageSettings.height; + } + } + else { + if (this.diagram.pageSettings.width) { + left = 0; + right = this.diagram.pageSettings.width; + } + if (this.diagram.pageSettings.height) { + top = 0; + bottom = this.diagram.pageSettings.height; + } + } + } + var svgBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_6__["Rect"](); + svgBounds.x = left; + svgBounds.y = top; + svgBounds.width = right; + svgBounds.height = bottom; + return svgBounds; + }; + PrintAndExport.prototype.setScaleValueforCanvas = function (options, bounds) { + var scaleX = 'scaleX'; + var scaleY = 'scaleY'; + var scaleOffsetX = 'scaleOffsetX'; + var scaleOffsetY = 'scaleOffsetY'; + options["" + scaleX] = 1; + options["" + scaleY] = 1; + options["" + scaleOffsetX] = 0; + options["" + scaleOffsetY] = 0; + options.pageHeight = options.pageHeight || this.diagram.pageSettings.height; + options.pageWidth = options.pageWidth || this.diagram.pageSettings.width; + var pageOrientation = options.pageOrientation || this.diagram.pageSettings.orientation; + if (!pageOrientation) { + pageOrientation = 'Portrait'; + } + if (pageOrientation === 'Portrait') { + if (options.pageWidth > options.pageHeight) { + var temp = options.pageHeight; + options.pageHeight = options.pageWidth; + options.pageWidth = temp; + } + } + else { + if (options.pageHeight > options.pageWidth) { + var temp = options.pageWidth; + options.pageWidth = options.pageHeight; + options.pageHeight = temp; + } + } + if (options.pageWidth && options.pageHeight && !options.multiplePage) { + options.stretch = 'Meet'; + } + var height = options.pageHeight || bounds.height; + var width = options.pageWidth || bounds.width; + if (options.stretch === 'Stretch' || options.stretch === 'Meet' || options.stretch === 'Slice') { + options["" + scaleX] = width / bounds.width; + options["" + scaleY] = height / bounds.height; + if (options.stretch === 'Meet') { + options["" + scaleX] = options["" + scaleY] = Math.min(options["" + scaleX], options["" + scaleY]); + options["" + scaleOffsetY] = (options.pageHeight - bounds.height * options["" + scaleX]) / 2; + options["" + scaleOffsetX] = (options.pageWidth - bounds.width * options["" + scaleX]) / 2; + } + else if (options.stretch === 'Slice') { + options["" + scaleX] = options["" + scaleY] = Math.max(options["" + scaleX], options["" + scaleY]); + } + bounds.width = width; + bounds.height = height; + } + bounds.x *= options["" + scaleX]; + bounds.y *= options["" + scaleY]; + }; + PrintAndExport.prototype.diagramAsSvg = function (options, margin) { + var svg = this.diagram.createSvg(this.diagram.element.id + '_diagram_svg', options.bounds.width, options.bounds.height); + document.body.appendChild(svg); + var g = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createSvgElement"])('g', { 'id': this.diagram.element.id + '_pageBackground' }); + var region = options && options.region ? options.region : 'Content'; + var bounds = this.getDiagramBounds(region, options); + var left = bounds.x; + var top = bounds.y; + var width = bounds.width; + var height = bounds.height; + svg.appendChild(g); + var attr = { + 'x': String(left), + 'y': String(top), 'width': String(width), 'height': String(height) + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["setAttributeSvg"])(g, attr); + this.setTransform(g, options.bounds, margin); + var gradient = document.getElementById(this.diagram.element.id + 'gradient_pattern'); + if (gradient) { + svg.appendChild(gradient); + } + attr = { + 'x': String(left), + 'y': String(top), 'width': String(width + margin.left + margin.right), 'height': String(height + margin.top + margin.bottom) + }; + var backimage = document.getElementById(this.diagram.element.id + '_backgroundImageLayer').cloneNode(true); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["setAttributeSvg"])(backimage, attr); + svg.appendChild(backimage); + this.setTransform(backimage, bounds, margin); + var backRect = document.getElementById(this.diagram.element.id + '_backgroundLayerrect').cloneNode(true); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["setAttributeSvg"])(backRect, attr); + svg.appendChild(backRect); + this.setTransform(backRect, bounds, margin); + if (this.diagram.mode === 'SVG') { + var element = void 0; + var i = void 0; + var diagramLayerSVG = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["getDiagramLayerSvg"])(this.diagram.element.id); + svg.appendChild(diagramLayerSVG.getElementById(this.diagram.diagramLayer.id).cloneNode(true)); + for (i = 0; i < svg.childNodes.length; i++) { + element = svg.childNodes[parseInt(i.toString(), 10)]; + if (element.id === this.diagram.element.id + '_diagramLayer') { + this.setTransform(element, bounds, margin); + } + } + } + else { + g = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createSvgElement"])('g', { 'id': this.diagram.element.id + '_diagramLayer' }); + svg.appendChild(g); + this.setTransform(g, options.bounds, margin); + //renderLabels + var renderer = new _rendering_renderer__WEBPACK_IMPORTED_MODULE_2__["DiagramRenderer"]('', null, true); + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["getHTMLLayer"])(this.diagram.element.id); + this.diagram.renderDiagramElements(svg, renderer, htmlLayer, false); + } + document.body.removeChild(svg); + return svg; + }; + PrintAndExport.prototype.setTransform = function (element, bounds, margin) { + element.setAttribute('transform', 'translate(' + (-bounds.x + margin.left) + ', ' + + (-bounds.y + margin.top) + ')'); + }; + PrintAndExport.prototype.diagramAsCanvas = function (options, customBounds) { + var scaleX = 'scaleX'; + var scaleY = 'scaleY'; + var scaleOffsetX = 'scaleOffsetX'; + var scaleOffsetY = 'scaleOffsetY'; + var element; + var elements = []; + var region = options.bounds; + var margin = options.margin; + var mode = options && options.region ? options.region : 'Content'; + var pageBounds = this.getDiagramBounds(mode, options); + var bgColor = this.diagram.pageSettings.background.color; + var canvas = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(this.diagram.element.id + '_diagram', options.bounds.width, options.bounds.height); + //canvas.setAttribute('style', 'position:absolute;top:135px;left:160px;'); + var context = canvas.getContext('2d'); + context.translate(-region.x, -region.y); + context.save(); + context.fillStyle = (this.diagram.pageSettings.background.color === 'transparent') ? 'white' : + this.diagram.pageSettings.background.color; + region = mode === 'Content' ? pageBounds : region; + context.fillRect(region.x, region.y, region.width, region.height); + var bgImg = this.diagram.pageSettings.background; + if (bgImg && bgImg.source) { + pageBounds = this.getDiagramBounds(mode, options); + var image = new Image(); + image.src = bgImg.source; + var proportionX = pageBounds.width / image.width; + var proportionY = pageBounds.height / image.height; + var x = pageBounds.x; + var y = pageBounds.y; + var width = pageBounds.width; + var height = pageBounds.height; + var exportable = this.isImageExportable(bgImg); + if (bgImg.scale !== 'None' && bgImg.align !== 'None') { + var proportion = bgImg.scale === 'Meet' ? Math.min(proportionX, proportionY) : Math.max(proportionX, proportionY); + width = proportion * image.width; + height = proportion * image.height; + if (bgImg.align.indexOf('xmid') > -1) { + x += (pageBounds.width - width) / 2; + } + else if (bgImg.align.indexOf('xmax') > -1) { + x = x + pageBounds.width - width; + } + if (bgImg.align.indexOf('ymid') > -1) { + y += (pageBounds.height - height) / 2; + } + else if (bgImg.align.indexOf('ymax') > -1) { + y = y + pageBounds.height - height; + } + if (this.diagram.pageSettings.background.color === 'none' || this.diagram.pageSettings.background.color === 'transparent') { + context.fillStyle = 'white'; + context.fillRect(pageBounds.x * options["" + scaleX], pageBounds.y * options["" + scaleY], pageBounds.width * options["" + scaleX], pageBounds.height * options["" + scaleY]); + } + if (exportable) { + context.drawImage(image, x, y, proportion * image.width, proportion * image.height); + } + } + else if (exportable) { + context.drawImage(image, x, y, pageBounds.width, pageBounds.height); + } + } + else { + context.fillStyle = bgColor === 'transparent' ? 'white' : bgColor; + context.fillRect((pageBounds.x * options["" + scaleX]) - margin.left, (pageBounds.y * options["" + scaleY]) - margin.top, (pageBounds.width * options["" + scaleX]) + margin.left + margin.right, (options["" + scaleY] * pageBounds.height) + margin.top + margin.bottom); + } + var brColor = this.diagram.pageSettings.background.color; + var brWidth = this.diagram.pageSettings.width; + if (brWidth) { + context.strokeStyle = brColor === 'none' ? 'transparent' : brColor; + context.lineWidth = brWidth; + context.strokeRect(pageBounds.x * options["" + scaleX], pageBounds.y * options["" + scaleY], pageBounds.width * options["" + scaleX], pageBounds.height * options["" + scaleY]); + } + context.restore(); + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["getHTMLLayer"])(this.diagram.element.id); + var renderer = new _rendering_renderer__WEBPACK_IMPORTED_MODULE_2__["DiagramRenderer"]('', null, false); + this.updateObjectValue(options["" + scaleX], options["" + scaleOffsetX], options["" + scaleOffsetY], true); + this.diagram.renderDiagramElements(canvas, renderer, htmlLayer, false, true); + this.updateObjectValue(options["" + scaleX], options["" + scaleOffsetX], options["" + scaleOffsetY], false); + return canvas; + }; + PrintAndExport.prototype.updateWrapper = function (canvas, value, scaleOffsetX, scaleOffsetY, isExport) { + if (canvas && canvas.length > 0) { + for (var j = 0; j < canvas.length; j++) { + if (canvas[parseInt(j.toString(), 10)].children) { + this.updateWrapper(canvas[parseInt(j.toString(), 10)].children, value, scaleOffsetX, scaleOffsetY, isExport); + } + canvas[parseInt(j.toString(), 10)].exportScaleValue.x = value; + canvas[parseInt(j.toString(), 10)].exportScaleValue.y = value; + canvas[parseInt(j.toString(), 10)].exportScaleOffset.x = scaleOffsetX; + canvas[parseInt(j.toString(), 10)].exportScaleOffset.y = scaleOffsetY; + canvas[parseInt(j.toString(), 10)].isExport = isExport; + } + } + }; + PrintAndExport.prototype.scaleGradientValue = function (node, scaleValue, isExport) { + if (node.style.gradient.stops.length > 0) { + var gradients = node.style.gradient; + if (node.style.gradient instanceof _core_appearance__WEBPACK_IMPORTED_MODULE_10__["LinearGradient"]) { + gradients.x1 = isExport ? gradients.x1 * scaleValue : gradients.x1 / scaleValue; + gradients.y1 = isExport ? gradients.y1 * scaleValue : gradients.y1 / scaleValue; + gradients.x2 = isExport ? gradients.x2 * scaleValue : gradients.x2 / scaleValue; + gradients.y2 = isExport ? gradients.y2 * scaleValue : gradients.y2 / scaleValue; + } + else { + gradients.fx = isExport ? gradients.fx * scaleValue : gradients.fx / scaleValue; + gradients.fy = isExport ? gradients.fy * scaleValue : gradients.fy / scaleValue; + gradients.cx = isExport ? gradients.cx * scaleValue : gradients.cx / scaleValue; + gradients.cy = isExport ? gradients.cy * scaleValue : gradients.cy / scaleValue; + gradients.r = isExport ? gradients.r * scaleValue : gradients.r / scaleValue; + } + } + }; + PrintAndExport.prototype.updateObjectValue = function (value, scaleOffsetX, scaleOffsetY, isExport) { + var wrapper; + for (var i = 0; i < this.diagram.nodes.length; i++) { + wrapper = this.diagram.nodes[parseInt(i.toString(), 10)].wrapper; + this.scaleGradientValue(this.diagram.nodes[parseInt(i.toString(), 10)], value, isExport); + this.updateWrapper(wrapper.children, value, scaleOffsetX, scaleOffsetY, isExport); + wrapper.exportScaleValue.x = value; + wrapper.exportScaleValue.y = value; + wrapper.exportScaleOffset.x = scaleOffsetX; + wrapper.exportScaleOffset.y = scaleOffsetY; + wrapper.isExport = isExport; + } + for (var j = 0; j < this.diagram.connectors.length; j++) { + wrapper = this.diagram.connectors[parseInt(j.toString(), 10)].wrapper; + for (var k = 0; k < wrapper.children.length; k++) { + wrapper.children[parseInt(k.toString(), 10)].isExport = isExport; + if (isExport) { + wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.x = value; + wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.y = value; + wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.x = scaleOffsetX; + wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.y = scaleOffsetY; + } + } + } + }; + PrintAndExport.prototype.isImageExportable = function (backgroundImage) { + var state = true; + var content; + var canvas; + if (backgroundImage.source) { + try { + canvas = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(this.diagram.element.id + 'temp_canvas', 100, 100); + var ctx = canvas.getContext('2d'); + ctx.save(); + var image = new Image(); + image.src = backgroundImage.source; + ctx.drawImage(image, 0, 0, 100, 100); + ctx.restore(); + content = canvas.toDataURL(); + } + catch (e) { + state = false; + } + } + return state; + }; + PrintAndExport.prototype.getPrintCanvasStyle = function (img, options) { + var width = 0; + var height = 0; + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_3__["Size"](); + width = img.width; + height = img.height; + if (options.pageHeight || options.pageWidth) { + height = options.pageHeight ? options.pageHeight : height; + width = options.pageWidth ? options.pageWidth : width; + } + if (options.pageOrientation) { + if ((options.pageOrientation === 'Landscape' && height > width) || options.pageOrientation === 'Portrait' && width > height) { + var temp = width; + width = height; + height = temp; + } + } + size.height = height; + size.width = width; + return size; + }; + PrintAndExport.prototype.getMultipleImage = function (img, options, isExport) { + var imageArray = []; + var div = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('div', {}); + var pageSize = this.getPrintCanvasStyle(img, options); + //let pageWidth: number; + //let pageHeight: number; + var margin = options.margin; + var mLeft = margin.left; + var mTop = margin.top; + var mRight = margin.right; + var mBottom = margin.bottom; + var x = 0; + var y = 0; + var pageWidth = pageSize.width + x; + var pageHeight = pageSize.height + y; + var drawnX = 0; + var drawnY = 0; + if (options && options.multiplePage) { + div.style.height = 'auto'; + div.style.width = 'auto'; + var imgHeight = img.height; + var imgWidth = img.width; + //if (img) { + var i = 0; + var j = 0; + var url = void 0; + var clipWidth = 0; + var clipHeight = 0; + var ctx = void 0; + var canvas = void 0; + do { + do { + clipWidth = pageSize.width; + clipHeight = pageSize.height; + if ((drawnX + pageSize.width) >= imgWidth) { + clipWidth = (imgWidth - drawnX); + } + if ((drawnY + pageSize.height) >= imgHeight) { + clipHeight = (imgHeight - drawnY); + } + canvas = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(this.diagram.element.id + '_multiplePrint', pageSize.width, pageSize.height); + ctx = canvas.getContext('2d'); + ctx.drawImage(img, x + drawnX + mLeft, y + drawnY + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop, 0 + mLeft, 0 + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop); + if ((drawnX + pageSize.width) >= imgWidth) { + drawnX -= (drawnX - imgWidth); + } + url = canvas.toDataURL(); + ctx.restore(); + drawnX += pageWidth; + if (isExport) { + imageArray.push(url); + } + else { + this.printImage(div, url, i + '' + j, pageWidth + 'px;', pageHeight + 'px;'); + } + i++; + } while (drawnX < imgWidth); + j++; + i = x = drawnX = 0; + if ((drawnY + pageSize.height) >= imgHeight) { + drawnY -= (drawnY - imgHeight); + } + drawnY += pageHeight; + } while (drawnY < imgHeight); + //} + } + else { + var x_1 = 0; + var y_1 = 0; + var pageSize_1 = this.getPrintCanvasStyle(img, options); + ///let pageWidth: number; let pageHeight: number; + var pageWidth_1 = pageSize_1.width; + var pageHeight_1 = pageSize_1.height; + //let ctx: CanvasRenderingContext2D; + //let canvas: HTMLCanvasElement; + //let url: string; + var canvas = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(this.diagram.element.id + '_diagram', pageWidth_1, pageHeight_1); + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, x_1 + mLeft, y_1 + mTop, img.width - (mRight + mLeft), img.height - (mTop + mBottom), 0 + mLeft, 0 + mTop, pageWidth_1 - (mRight + mLeft), pageHeight_1 - (mTop + mBottom)); + var url = canvas.toDataURL(); + ctx.restore(); + if (isExport) { + imageArray.push(url); + } + else { + this.printImage(div, url, 0); + } + } + if (isExport) { + return imageArray; + } + else { + return div; + } + }; + PrintAndExport.prototype.printImage = function (div, url, i, pageWidth, pageHeight) { + var attr = { 'class': 'e-diagram-print-page', 'style': 'width:' + pageWidth + 'height:' + pageHeight }; + var img = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('img', attr); + var innerDiv = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('div', attr); + attr = { 'id': this.diagram.element.id + '_multiplePrint_img' + i, 'style': 'float:left', 'src': url }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["setAttributeHtml"])(img, attr); + innerDiv.appendChild(img); + div.appendChild(innerDiv); + }; + /** + * To print the image + * + * @private + */ + PrintAndExport.prototype.print = function (options) { + options.mode = 'Data'; + var url = this.exportDiagram(options); + this.printImages(url, options); + }; + PrintAndExport.prototype.printImages = function (url, options) { + var _this = this; + var attr = { + 'id': this.diagram.element.id + '_printImage', + 'src': url + }; + options.margin = { top: 0, bottom: 0, right: 0, left: 0 }; + var img = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["createHtmlElement"])('img', attr); + img.onload = function () { + var div = _this.getMultipleImage(img, options); + // specify window parameters + var printWind = window.open(''); + if (printWind != null) { + if ((div instanceof HTMLElement)) { + printWind.document.write(''); + printWind.addEventListener('load', function (event) { + setTimeout(function () { + printWind.window.print(); + }, 3000); + }); + printWind.document.write('
' + div.innerHTML + '
'); + printWind.document.close(); + } + } + }; + }; + PrintAndExport.prototype.getContent = function (styleSheets) { + var snapConstraints = this.diagram.snapSettings.constraints; + this.diagram.snapSettings.constraints = (this.diagram.snapSettings.constraints & ~_enum_enum__WEBPACK_IMPORTED_MODULE_4__["SnapConstraints"].ShowLines); + this.diagram.dataBind(); + this.diagram.clearSelection(); + styleSheets = styleSheets || document.styleSheets; + var styleSheetRef = ''; + for (var i = 0; i < styleSheets.length; i++) { + if (styleSheets[parseInt(i.toString(), 10)].href || typeof styleSheets[parseInt(i.toString(), 10)] === 'string') { + styleSheetRef += ''; + } + } + var htmlData = document.getElementById(this.diagram.element.id + 'content').innerHTML; + var marginStyle = 'margin-left:' + 0 + 'px;margin-top:' + 0 + 'px;margin-right:' + + 0 + 'px;margin-bottom:' + 0 + 'px;'; + htmlData = styleSheetRef + '
' + htmlData + '
'; + htmlData = htmlData.replace(/ transform: t/g, ' -webkit-transform: t'); + this.diagram.snapSettings.constraints = snapConstraints; + this.diagram.dataBind(); + return htmlData; + }; + /** @private */ + PrintAndExport.prototype.getDiagramContent = function (styleSheets) { + if (this.diagram.scroller.currentZoom === 1) { + var htmlData = this.getContent(styleSheets); + /* tslint:disable */ + // eslint-disable-next-line quotes + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["checkBrowserInfo"])() ? htmlData.replace("url(" + location.protocol + '//' + location.host + location.pathname + "#diagram_pattern ", "url(#diagram_pattern)") : htmlData; + /* tslint:enable */ + } + else { + var container = document.getElementById(this.diagram.element.id + 'content'); + var scrollerX = container.scrollLeft; + var scrollerY = container.scrollTop; + var oldZoom = this.diagram.scrollSettings.currentZoom; + var oldHorizontalOffset = this.diagram.scroller.horizontalOffset; + var oldVerticalOffset = this.diagram.scroller.verticalOffset; + var oldWidth = Number(String(this.diagram.width).split('%')[0]) ? + container.clientWidth : Number(String(this.diagram.width).split('px')[0]); + var oldHeight = Number(String(this.diagram.height).split('%')[0]) ? + container.clientHeight : Number(String(this.diagram.height).split('px')[0]); + var bounds = this.getDiagramBounds('', {}); + this.diagram.scroller.zoom((1 / oldZoom)); + var scrollX_1 = 0; + var scrollY_1 = 0; + scrollX_1 = bounds.x; + scrollY_1 = bounds.y; + this.diagram.scroller.transform = { + tx: -scrollX_1, + ty: -scrollY_1, + scale: this.diagram.scroller.currentZoom + }; + this.diagram.scroller.horizontalOffset = -scrollX_1; + this.diagram.scroller.verticalOffset = -scrollY_1; + this.diagram.scroller.setSize(); + this.diagram.setSize(bounds.width, bounds.height); + var htmlData = this.getContent(styleSheets); + this.diagram.setSize(oldWidth, oldHeight); + this.diagram.scroller.zoom(oldZoom / this.diagram.scrollSettings.currentZoom); + this.diagram.dataBind(); + if (scrollerX || scrollerY) { + this.diagram.setOffset(scrollerX, scrollerY); + } + else { + this.diagram.scroller.transform = { + tx: (oldHorizontalOffset) / this.diagram.scroller.currentZoom, + ty: (oldVerticalOffset) / this.diagram.scroller.currentZoom, + scale: this.diagram.scroller.currentZoom + }; + this.diagram.scroller.horizontalOffset = oldHorizontalOffset; + this.diagram.scroller.verticalOffset = oldVerticalOffset; + } + this.diagram.renderSelector(false); + /* tslint:disable */ + // eslint-disable-next-line quotes + return Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["checkBrowserInfo"])() ? htmlData.replace("url(" + location.protocol + '//' + location.host + location.pathname + "#diagram_pattern ", "url(#diagram_pattern)") : htmlData; + /* tslint:enable */ + } + }; + /** @private */ + PrintAndExport.prototype.exportImages = function (image, options) { + var _this = this; + var region = options && options.region ? options.region : 'Content'; + var margin = options.margin || {}; + margin = { + top: !isNaN(margin.top) ? margin.top : 0, + bottom: !isNaN(margin.bottom) ? margin.bottom : 0, + left: !isNaN(margin.left) ? margin.left : 0, + right: !isNaN(margin.right) ? margin.right : 0 + }; + var bounds = this.getDiagramBounds(region, {}); + if (options.bounds) { + bounds.x = (!isNaN(options.bounds.x) ? options.bounds.x : bounds.x); + bounds.y = (!isNaN(options.bounds.y) ? options.bounds.y : bounds.y); + bounds.width = (options.bounds.width || bounds.width); + bounds.height = (options.bounds.height || bounds.height); + } + var img = document.createElement('img'); + var attr = { + 'src': image + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_5__["setAttributeHtml"])(img, attr); + var context = this; + img.onload = function () { + var canvas = _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_1__["CanvasRenderer"].createCanvas(context.diagram.element.id + 'innerImage', bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom)); + var ctx = canvas.getContext('2d'); + ctx.fillStyle = context.diagram.pageSettings.background.color; + ctx.fillRect(0, 0, bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom)); + ctx.drawImage(img, 0, 0, bounds.width, bounds.height, margin.left, margin.top, bounds.width, bounds.height); + image = canvas.toDataURL(); + if (options.printOptions) { + context.printImages(image, options); + return; + } + ctx.restore(); + var fileName = options.fileName || 'diagram'; + _this.canvasMultiplePage(options, canvas, margin, image, fileName); + }; + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + PrintAndExport.prototype.destroy = function () { + /** + * Destroys the Print and Export module + */ + }; + /** + * Get module name. + */ + PrintAndExport.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'PrintandExport'; + }; + return PrintAndExport; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js": +/*!*****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js ***! + \*****************************************************************************************/ +/*! exports provided: CanvasRenderer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CanvasRenderer", function() { return CanvasRenderer; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* eslint-disable no-case-declarations */ +/* eslint-disable @typescript-eslint/indent */ + + + + + +/** + * Canvas Renderer + */ +/** @private */ +var CanvasRenderer = /** @__PURE__ @class */ (function () { + function CanvasRenderer() { + } + /** + * Provide the context value for the canvas \ + * + * @returns {CanvasRenderingContext2D} Provide the context value for the canvas .\ + * @param { HTMLCanvasElement} canvas - Return the dashed array values . + * @private + */ + CanvasRenderer.getContext = function (canvas) { + return canvas.getContext('2d'); + }; + CanvasRenderer.setCanvasSize = function (canvas, width, height) { + if (canvas) { + canvas.setAttribute('width', width.toString()); + canvas.setAttribute('height', height.toString()); + } + }; + /** + * Draw the gradient for the diagram shapes .\ + * + * @returns {SVGElement} Draw the gradient for the diagram shapes. + * @param {StyleAttributes} options - Provide the options for the gradient element . + * @param {SVGElement} ctx - Provide canvas values . + * @param {string} x - Provide the x value for the gradient . + * @param {string} y - Provide the x value for the gradient . + * @private + */ + CanvasRenderer.prototype.renderGradient = function (options, ctx, x, y) { + var max; + var min; + var grd; + if (options.gradient.type !== 'None') { + for (var i = 0; i < options.gradient.stops.length; i++) { + max = max !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset); + min = min !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset); + } + if (options.gradient.type === 'Linear') { + var linear = options.gradient; + grd = ctx.createLinearGradient(x + linear.x1, y + linear.y1, x + linear.x2, y + linear.y2); + } + else { + var radial = options.gradient; + grd = ctx.createRadialGradient(x + radial.fx, y + radial.fy, 0, x + radial.cx, y + radial.cy, radial.r); + } + for (var i = 0; i < options.gradient.stops.length; i++) { + var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)]; + var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max; + grd.addColorStop(offset, stop_1.color); + } + ctx.fillStyle = grd; + } + return ctx; + }; + /** + * Draw the shawdow for the rectangle shape in diagram \ + * + * @returns {void} Draw the shawdow for the rectangle shape in diagram .\ + * + * @param { SVGElement} options - Provide the base attributes . + * @param { RectAttributes} canvas - Provide the canvas values . + * @param { string} collection - Provide the collection value. + * @private + */ + CanvasRenderer.prototype.renderShadow = function (options, canvas, collection) { + if (collection === void 0) { collection = null; } + var ctx = CanvasRenderer.getContext(canvas); + ctx.save(); + ctx.beginPath(); + ctx.strokeStyle = ctx.fillStyle = options.shadow.color; + ctx.globalAlpha = options.shadow.opacity; + var ptModel = { x: 0, y: 0 }; + var point = _primitives_point__WEBPACK_IMPORTED_MODULE_1__["Point"].transform(ptModel, options.shadow.angle, options.shadow.distance); + var transX = options.x + point.x; + var transY = options.y + point.y; + var pivotX = transX + options.width * options.pivotX; + var pivotY = transY + options.height * options.pivotY; + this.rotateContext(canvas, options.angle, pivotX, pivotY); + if (collection) { + ctx.translate(transX, transY); + this.renderPath(canvas, options, collection); + ctx.translate(-transX, -transY); + } + else { + ctx.rect(transX, transY, options.width, options.height); + ctx.fillRect(transX, transY, options.width, options.height); + } + ctx.fill(); + ctx.stroke(); + ctx.closePath(); + ctx.restore(); + }; + /** + * Create canvas element for the diagram \ + * + * @returns {HTMLCanvasElement} Create canvas element for the diagram .\ + * + * @param { SVGElement} id - Provide the id for the canvas. + * @param { Object} width - Provide the width for the canvas. + * @param { Object} height - Provide the height for the canvas. + * @private + */ + CanvasRenderer.createCanvas = function (id, width, height) { + var canvasObj = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('canvas', { 'id': id }); + this.setCanvasSize(canvasObj, width, height); + return canvasObj; + }; + CanvasRenderer.prototype.setStyle = function (canvas, style) { + var ctx = CanvasRenderer.getContext(canvas); + if (style.fill === 'none') { + style.fill = 'transparent'; + } + if (style.stroke === 'none') { + style.stroke = 'transparent'; + } + ctx.strokeStyle = style.stroke; + ctx.lineWidth = style.strokeWidth; + if (style.strokeWidth === 0) { + ctx.strokeStyle = 'transparent'; + } + ctx.globalAlpha = style.opacity; + var dashArray = []; + if (style.dashArray) { + dashArray = this.parseDashArray(style.dashArray); + } + ctx.setLineDash(dashArray); + if (style.gradient && style.gradient.type !== 'None') { + if (style.shapeType === 'Rectangle') { + this.renderGradient(style, ctx, style.x, style.y); + } + else { + this.renderGradient(style, ctx, 0, 0); + } + } + else { + ctx.fillStyle = style.fill; + } + }; + CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) { + var ctx = CanvasRenderer.getContext(canvas); + ctx.translate(x, y); + ctx.rotate(angle * Math.PI / 180); + ctx.translate(-x, -y); + }; + CanvasRenderer.prototype.setFontStyle = function (canvas, text) { + var ctx = CanvasRenderer.getContext(canvas); + var font = ''; + if (text.italic) { + font += 'italic '; + } + if (text.bold) { + font += 'bold '; + } + font += (text.fontSize) + 'px '; + font += text.fontFamily; + ctx.font = font; + }; + /** + * Return the dashed array values \ + * + * @returns {number[]} Return the dashed array values .\ + * @param { SVGElement} dashArray - Return the dashed array values . + * @private + */ + CanvasRenderer.prototype.parseDashArray = function (dashArray) { + var dashes = []; + var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ','; + var splittedDashes = dashArray.split(separator); + for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) { + var i = splittedDashes_1[_i]; + dashes.push(Number(i)); + } + return dashes; + }; + CanvasRenderer.prototype.drawRoundedRect = function (canvas, options) { + var context = CanvasRenderer.getContext(canvas); + context.beginPath(); + var x = options.x; + var y = options.y; + var w = options.width; + var h = options.height; + var mx = x + w / 2; + var my = y + h / 2; + context.beginPath(); + this.setStyle(canvas, options); + context.moveTo(x, my); + context.quadraticCurveTo(x, y, mx, y); + context.quadraticCurveTo(x + w, y, x + w, my); + context.quadraticCurveTo(x + w, y + h, mx, y + h); + context.quadraticCurveTo(x, y + h, x, my); + context.stroke(); + }; + //Rendering Part + /** + * Draw the Rectangle for the diagram \ + * + * @returns {void} Draw the Rectangle for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG . + * @param { RectAttributes} options - Provide the Rect attributes . + * @param { string} diagramId - Provide the diagram id . + * @param { boolean} isExport - Provide the isExport . + * @private + */ + CanvasRenderer.prototype.drawRectangle = function (canvas, options, diagramId, isExport) { + if (options.visible === true) { + if (options.cornerRadius) { + if (!isExport && (options.width < 30 || options.height < 30)) { + this.drawRoundedRect(canvas, options); + } + else { + options.data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_2__["getRectanglePath"])(options.cornerRadius, options.height, options.width); + this.drawPath(canvas, options); + } + } + else { + var ctx = CanvasRenderer.getContext(canvas); + if (options.shadow) { + this.renderShadow(options, canvas); + } + ctx.save(); + ctx.beginPath(); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var cornerRadius = options.cornerRadius; + var pivotX = options.x + options.width * options.pivotX; + var pivotY = options.y + options.height * options.pivotY; + this.rotateContext(canvas, options.angle, pivotX, pivotY); + this.setStyle(canvas, options); + ctx.rect(options.x, options.y, options.width, options.height); + ctx.fillRect(options.x, options.y, options.width, options.height); + ctx.fill(); + ctx.stroke(); + ctx.closePath(); + ctx.restore(); + } + } + }; + // public updateSelectionRegion(canvas: HTMLCanvasElement, options: RectAttributes): void { + // this.drawRectangle(canvas, options); + // } + // public drawLine(canvas: HTMLCanvasElement, options: LineAttributes): void { + // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas); + // ctx.save(); + // ctx.beginPath(); + // let pivotX: number = options.x + options.width * options.pivotX; + // let pivotY: number = options.y + options.height * options.pivotY; + // this.rotateContext(canvas, options.angle, pivotX, pivotY); + // this.setStyle(canvas, options as StyleAttributes); + // ctx.translate(options.x, options.y); + // ctx.moveTo(options.startPoint.x, options.startPoint.y); + // ctx.lineTo(options.endPoint.x, options.endPoint.y); + // ctx.translate(-options.x, -options.y); + // ctx.stroke(); + // ctx.closePath(); + // ctx.restore(); + // } + // public drawCircle(canvas: HTMLCanvasElement, options: CircleAttributes): void { + // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas); + // ctx.save(); + // ctx.beginPath(); + // let pivotY: number = options.y + options.height * options.pivotY; + // let pivotX: number = options.x + options.width * options.pivotX; + // this.setStyle(canvas, options as StyleAttributes); + // this.rotateContext(canvas, options.angle, pivotX, pivotY); + // ctx.arc(options.centerX, options.centerY, options.radius, 0, 2 * Math.PI); + // ctx.fill(); + // ctx.stroke(); + // ctx.closePath(); + // ctx.restore(); + // } + /** + * Draw the path element for the diagram\ + * + * @returns {void} Draw the path element for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG element . + * @param { PathAttributes} options - Provide the path element attributes . + * @private + */ + CanvasRenderer.prototype.drawPath = function (canvas, options) { + var collection = []; + collection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_2__["processPathData"])(options.data); + collection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_2__["pathSegmentCollection"])(collection); + if (options.shadow) { + this.renderShadow(options, canvas, collection); + } + var ctx = CanvasRenderer.getContext(canvas); + ctx.save(); + ctx.beginPath(); + var pivotY = options.y + options.height * options.pivotY; + var pivotX = options.x + options.width * options.pivotX; + if (options.flip === 'Horizontal' || options.flip === 'Vertical') { + ctx.translate(options.x + options.width / 2, options.y + options.height / 2); + ctx.rotate(-options.angle * Math.PI / 180); + ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2); + } + else { + this.rotateContext(canvas, options.angle, pivotX, pivotY); + } + this.setStyle(canvas, options); + ctx.translate(options.x, options.y); + if (options.flip === 'Horizontal') { + ctx.scale(-1, 1); + ctx.translate(options.width * -1, 0); + } + else if (options.flip === 'Vertical') { + ctx.scale(1, -1); + ctx.translate(0, options.height * -1); + } + else if (options.flip === 'Both') { + ctx.scale(-1, -1); + ctx.translate(options.width * -1, options.height * -1); + } + this.renderPath(canvas, options, collection); + ctx.fill(); + ctx.translate(-options.x, -options.y); + ctx.stroke(); + ctx.restore(); + }; + /** + * Draw the path element for the diagram\ + * + * @returns {void} Draw the path element for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG element . + * @param {PathAttributes} options - Provide the path element attributes . + * @param {Object[]} collection - Provide the parent SVG element . + * @private + */ + CanvasRenderer.prototype.renderPath = function (canvas, options, collection) { + if (options.visible === true) { + var ctx = CanvasRenderer.getContext(canvas); + var x0 = void 0; + var y0 = void 0; + var x1 = void 0; + var y1 = void 0; + var x2 = void 0; + var y2 = void 0; + var x = void 0; + var y = void 0; + var length_1; + var i = void 0; + var segs = collection; + for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) { + var obj = segs[parseInt(i.toString(), 10)]; + var seg = obj; + var char = seg.command; + if ('x1' in seg) { + x1 = seg.x1; + } + if ('x2' in seg) { + x2 = seg.x2; + } + if ('y1' in seg) { + y1 = seg.y1; + } + if ('y2' in seg) { + y2 = seg.y2; + } + if ('x' in seg) { + x = seg.x; + } + if ('y' in seg) { + y = seg.y; + } + switch (char) { + case 'M': + ctx.moveTo(x, y); + seg.x = x; + seg.y = y; + break; + case 'L': + ctx.lineTo(x, y); + seg.x = x; + seg.y = y; + break; + case 'C': + ctx.bezierCurveTo(x1, y1, x2, y2, x, y); + seg.x = x; + seg.y = y; + seg.x1 = x1; + seg.y1 = y1; + seg.x2 = x2; + seg.y2 = y2; + break; + case 'Q': + ctx.quadraticCurveTo(x1, y1, x, y); + seg.x = x; + seg.y = y; + seg.x1 = x1; + seg.y1 = y1; + break; + case 'A': + // eslint-disable-next-line + var curr = { x: x0, y: y0 }; + var rx = seg.r1; + var ry = seg.r2; + var xAxisRotation = seg.angle * (Math.PI / 180.0); + var largeArc = seg.largeArc; + var sweep = seg.sweep; + var cp = { x: x, y: y }; + var currp = { + x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0, + y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0 + }; + var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2); + if (l > 1) { + rx *= Math.sqrt(l); + ry *= Math.sqrt(l); + } + var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2)); + var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) / + (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2))); + if (isNaN(s)) { + s = 0; + } + var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx }; + var centp = { + x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, + y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y + }; + var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]); + var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]; + var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry]; + var ad = this.a(u, v); + if (this.r(u, v) <= -1) { + ad = Math.PI; + } + if (this.r(u, v) >= 1) { + ad = 0; + } + var dir = !sweep ? -1.0 : 1.0; + var ah = a1 + dir * (ad / 2.0); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var halfWay = { + x: centp.x + rx * Math.cos(ah), + y: centp.y + ry * Math.sin(ah) + }; + seg.centp = centp; + seg.xAxisRotation = xAxisRotation; + seg.rx = rx; + seg.ry = ry; + seg.a1 = a1; + seg.ad = ad; + seg.sweep = sweep; + if (ctx != null) { + var ra = rx > ry ? rx : ry; + var sx = rx > ry ? 1 : rx / ry; + var sy = rx > ry ? ry / rx : 1; + ctx.save(); + ctx.translate(centp.x, centp.y); + ctx.rotate(xAxisRotation); + ctx.scale(sx, sy); + ctx.arc(0, 0, ra, a1, a1 + ad, !sweep); + ctx.scale(1 / sx, 1 / sy); + ctx.rotate(-xAxisRotation); + ctx.translate(-centp.x, -centp.y); + ctx.restore(); + } + break; + case 'Z': + case 'z': + ctx.closePath(); + x = x0; + y = y0; + break; + } + x0 = x; + y0 = y; + } + } + }; + /** + * Draw the text element for the diagram\ + * + * @returns {void} Draw the text element for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG element . + * @param {TextAttributes} options - Provide the text element attributes . + * @param {SVGSVGElement} parentSvg - Provide the parent SVG element . + * @param {Object} ariaLabel - Provide the label properties . + * @param {string} diagramId - Provide the diagram id . + * @param {number} scaleValue - Provide the scale value . + * @param {Container} parentNode - Provide the parent node . + * @private + */ + CanvasRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) { + if (options.content && options.visible === true) { + var ctx = CanvasRenderer.getContext(canvas); + ctx.save(); + this.setStyle(canvas, options); + if (scaleValue) { + options.fontSize *= scaleValue; + } + var pivotX = options.x + options.width * options.pivotX; + var pivotY = options.y + options.height * options.pivotY; + this.rotateContext(canvas, options.angle, pivotX, pivotY); + this.setFontStyle(canvas, options); + var i = 0; + var childNodes = []; + childNodes = options.childNodes; + var wrapBounds = options.wrapBounds; + ctx.fillStyle = options.color; + if (wrapBounds) { + var position = this.labelAlign(options, wrapBounds, childNodes); + for (i = 0; i < childNodes.length; i++) { + var child = childNodes[parseInt(i.toString(), 10)]; + child.x = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setChildPosition"])(child, childNodes, i, options); + var offsetX = position.x + (scaleValue ? child.x * scaleValue : child.x) - wrapBounds.x; + var offsetY = position.y + (scaleValue ? child.dy * scaleValue : child.dy) * i + ((options.fontSize) * 0.8); + if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') { + child.text = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["overFlow"])(child.text, options); + } + if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && options.textWrapping === 'Wrap') { + if (offsetY < parentNode.actualSize.height + parentNode.bounds.y) { + if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) { + var temp = childNodes[i + 1]; + var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8); + if (y > parentNode.actualSize.height + parentNode.bounds.y) { + child.text = child.text.slice(0, child.text.length - 3); + child.text = child.text.concat('...'); + } + } + ctx.fillText(child.text, offsetX, offsetY); + } + } + else { + ctx.fillText(child.text, offsetX, offsetY); + } + if (options.textDecoration === 'Underline' + || options.textDecoration === 'Overline' + || options.textDecoration === 'LineThrough') { + var startPointX = offsetX; + var startPointY = void 0; + var textlength = ctx.measureText(child.text).width; + var endPointX = offsetX + textlength; + var endPointY = void 0; + switch (options.textDecoration) { + case 'Underline': + startPointY = offsetY + 2; + endPointY = offsetY + 2; + break; + case 'Overline': + startPointY = (position.y + child.dy * i); + endPointY = (position.y + child.dy * i); + break; + case 'LineThrough': + startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2; + endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2; + } + ctx.beginPath(); + ctx.moveTo(startPointX, startPointY); + ctx.lineTo(endPointX, endPointY); + ctx.strokeStyle = options.color; + ctx.lineWidth = options.fontSize * .08; + ctx.globalAlpha = options.opacity; + ctx.stroke(); + } + } + } + ctx.restore(); + } + }; + CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) { + this.rotateContext(canvas, obj.angle, pivotX, pivotY); + var image = new Image(); + image.src = obj.source; + this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj); + }; + /** + * Draw the image element for the diagram\ + * + * @returns {void} Draw the image element for the diagram . + * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element . + * @param {ImageAttributes} obj - Provide the image attributes . + * @param {SVGSVGElement} parentSvg - Provide the parent SVG element . + * @param {boolean} fromPalette - Provide the pointer event value . + * @private + */ + CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) { + var _this = this; + if (obj.visible) { + var ctx_1 = CanvasRenderer.getContext(canvas); + ctx_1.save(); + var pivotX_1 = obj.x + obj.width * obj.pivotX; + var pivotY_1 = obj.y + obj.height * obj.pivotY; + var imageObj = new Image(); + imageObj.src = obj.source; + var id = ctx_1.canvas.id.split('_'); + // eslint-disable-next-line + var value = id[id.length - 1] === ('diagram' || false) ? true : false; + // eslint-disable-next-line + /** + * Since Clipping portion for node with slice option is not calculated properly + * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined + * && obj.sourceHeight !== undefined) { + * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height); + * } else { + * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height); + * } + */ + if (!fromPalette) { + this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1); + } + else { + imageObj.onload = function () { + _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1); + }; + } + ctx_1.restore(); + } + }; + CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) { + ctx.beginPath(); + var srcWidth = image.width; + var srcHeight = image.height; + var destinationW = width; + var destinationH = height; + var resultWidth = 0; + var resultHeight = 0; + if (alignOptions && alignOptions.alignment !== 'None') { + var xalign = alignOptions.alignment.toLowerCase().substr(1, 3); + var yalign = alignOptions.alignment.toLowerCase().substr(5, 3); + if (alignOptions.scale === 'Slice') { + // eslint-disable-next-line + var a = function () { + resultWidth = destinationW; + resultHeight = srcHeight * destinationW / srcWidth; + }; + // eslint-disable-next-line + var b = function () { + resultWidth = srcWidth * destinationH / srcHeight; + resultHeight = destinationH; + }; + if (destinationW > destinationH) { + a(); + if (destinationH > resultHeight) { + b(); + } + } + else if (destinationW === destinationH) { + if (srcWidth > srcHeight) { + b(); + } + else { + a(); + } + } + else { + b(); + if (destinationW > resultWidth) { + a(); + } + } + var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth); + var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight); + var sWidth = srcWidth - x1; + var sHeight = srcHeight - y1; + var dWidth = resultWidth - (x1 * (resultWidth / srcWidth)); + var dHeight = resultHeight - (y1 * (resultHeight / srcHeight)); + var canvas1 = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('canvas', { 'width': width.toString(), 'height': height.toString() }); + var ctx1 = canvas1.getContext('2d'); + ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight); + ctx.drawImage(canvas1, x, y, width, height); + } + else if (alignOptions.scale === 'Meet') { + var srcRatio = (srcHeight / srcWidth); + var destRatio = (destinationH / destinationW); + resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio; + resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH; + x += this.getMeetOffset(xalign, resultWidth, destinationW); + y += this.getMeetOffset(yalign, resultHeight, destinationH); + ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight); + } + else { + ctx.drawImage(image, x, y, width, height); + } + } + else if (alignOptions.flip !== 'None') { + var scaleX = 1; + var scaleY = 1; + if (alignOptions.flip === 'Horizontal' || alignOptions.flip === 'Both') { + x = -x; + width = -width; + scaleX = -1; + } + if (alignOptions.flip === 'Vertical' || alignOptions.flip === 'Both') { + y = -y; + height = -height; + scaleY = -1; + } + ctx.scale(scaleX, scaleY); + ctx.drawImage(image, x, y, width, height); + } + else { + ctx.drawImage(image, x, y, width, height); + } + ctx.closePath(); + }; + CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) { + switch (arg) { + case 'min': return 0; + case 'mid': return (res - dest) / 2 * src / res; + case 'max': return (res - dest) * src / res; + default: return 0; + } + }; + CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) { + var max = Math.max(res, dest); + var min = Math.min(res, dest); + switch (arg) { + case 'min': return 0; + case 'mid': return (max - min) / 2; + case 'max': return max - min; + default: return 0; + } + }; + //end region + // vector magnitude + CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); }; + // ratio between two vectors + CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); }; + // angle between two vectors + CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); }; + // text utility + /** + * Draw the SVG label.\ + * + * @returns {PointModel} Draw the SVG label . + * @param {TextAttributes} text - Provide the canvas element . + * @param {Object} wrapBounds - Provide the canvas element . + * @param {SubTextElement []} childNodes - Provide the canvas element . + * @private + */ + CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) { + var bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](wrapBounds.width, childNodes.length * (text.fontSize * 1.2)); + var position = { x: 0, y: 0 }; + var labelX = text.x; + var labelY = text.y; + var offsetx = text.width * 0.5; + var offsety = text.height * 0.5; + var pointx = offsetx; + var pointy = offsety; + if (text.textAlign === 'left') { + pointx = 0; + } + else if (text.textAlign === 'center') { + if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) { + if (text.textWrapping === 'NoWrap') { + pointx = 0; + } + else { + pointx = text.width * 0.5; + } + } + else { + pointx = text.width * 0.5; + } + } + else if (text.textAlign === 'right') { + pointx = (text.width * 1); + } + position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0); + position.y = labelY + pointy - bounds.height / 2; + return position; + }; + return CanvasRenderer; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js ***! + \**********************************************************************************/ +/*! exports provided: DiagramRenderer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DiagramRenderer", function() { return DiagramRenderer; }); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_image_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/elements/image-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _svg_renderer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./svg-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js"); +/* harmony import */ var _canvas_renderer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _utility_constraints_util__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utility/constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _diagram__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../diagram */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js"); +/* harmony import */ var _objects_dictionary_common__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../objects/dictionary/common */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/common.js"); + + + + + + + + + + + + + + + + + + + + + + +/** + * Renderer module is used to render basic diagram elements + */ +/** @private */ +var DiagramRenderer = /** @__PURE__ @class */ (function () { + function DiagramRenderer(name, svgRender, isSvgMode) { + /** @private */ + this.renderer = null; + /** @private */ + this.isSvgMode = true; + this.transform = { x: 0, y: 0 }; + this.diagramId = name; + this.element = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getDiagramElement"])(this.diagramId); + this.svgRenderer = svgRender; + this.isSvgMode = isSvgMode; + this.renderer = isSvgMode ? new _svg_renderer__WEBPACK_IMPORTED_MODULE_10__["SvgRenderer"]() : new _canvas_renderer__WEBPACK_IMPORTED_MODULE_11__["CanvasRenderer"](); + } + /** + * Method used to set the cur \ + * + * @param {HTMLElement} canvas - Provide the canvas . + * @param {string} cursor - Provide the element . + * @returns {void } Method used to set the layer .\ + * @private + */ + DiagramRenderer.prototype.setCursor = function (canvas, cursor) { + canvas.style.cursor = cursor; + }; + /** + * Method used to set the layer \ + * + * @returns {void } Method used to set the layer .\ + * + * @private + */ + DiagramRenderer.prototype.setLayers = function () { + this.iconSvgLayer = this.element.getElementsByClassName('e-ports-expand-layer')[0]; + this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0]; + this.nativeSvgLayer = this.element.getElementsByClassName('e-native-layer')[0]; + this.diagramSvgLayer = this.element.getElementsByClassName('e-diagram-layer')[0]; + }; + DiagramRenderer.prototype.getAdornerLayer = function () { + var adornerLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getAdornerLayer"])(this.diagramId); + return adornerLayer; + }; + DiagramRenderer.prototype.getParentSvg = function (element, targetElement, canvas) { + if (this.diagramId && element && element.id) { + if (element.id.split('_icon_content').length > 1 || element.id.split('_nodeport').length > 1 || + (element.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsPort)) { + return this.iconSvgLayer; + } + if (targetElement && targetElement === 'selector') { + return this.adornerSvgLayer; + } + else if (element instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + return this.nativeSvgLayer; + } + else { + return this.diagramSvgLayer; + } + } + return canvas; + }; + DiagramRenderer.prototype.getParentElement = function (element, defaultParent, svgElement, indexValue) { + var layerGElement = defaultParent; + if (svgElement && this.diagramId && element && element.id) { + if (element.id.split('_icon_content').length > 1) { + layerGElement = svgElement.getElementById(this.diagramId + '_diagramExpander'); + defaultParent = null; + } + else if (element.id.split('_nodeport').length > 1) { + layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts'); + } + else if (element instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + layerGElement = svgElement.getElementById(this.diagramId + '_nativeLayer'); + defaultParent = null; + } + else if (element.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsPort) { + layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts'); + defaultParent = null; + } + else { + layerGElement = svgElement.getElementById(this.diagramId + '_diagramLayer'); + } + var groupElement = this.getGroupElement(element, defaultParent || layerGElement, indexValue); + layerGElement = groupElement.g; + if (groupElement.svg) { + svgElement = groupElement.svg; + } + } + return { g: layerGElement, svg: svgElement }; + }; + DiagramRenderer.prototype.getGroupElement = function (element, canvas, indexValue) { + var gElement; + var parentSvg = this.getParentSvg(element); + var svgElement; + if (canvas && parentSvg) { + if (parentSvg) { + gElement = parentSvg.getElementById(element.id + '_groupElement'); + if (!gElement && parentSvg !== this.nativeSvgLayer) { //code added + var nativeSvg = this.nativeSvgLayer; + gElement = nativeSvg.getElementById(element.id + '_groupElement'); + svgElement = nativeSvg; + } + } + if (!gElement) { + gElement = this.svgRenderer.createGElement('g', { id: element.id + '_groupElement' }); + if (indexValue !== undefined && canvas.childNodes.length > indexValue) { + canvas.insertBefore(gElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]); + } + else { + canvas.appendChild(gElement); + } + } + } + return { g: gElement, svg: svgElement }; + }; + /** + * Method used to render the diagram element \ + * + * @returns {void } Method used to render the diagram element .\ + * + * @param {DiagramElement} element - Provide the DiagramElement value. + * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas value. + * @param {HTMLElement } htmlLayer - Provide the HTMLElement value. + * @param {Transforms } transform - Provide the Transforms value. + * @param {SVGSVGElement} parentSvg - Provide the SVGSVGElement value. + * @param {boolean } createParent - Provide the boolean value. + * @param {boolean } fromPalette - Provide the boolean value. + * @param {number } indexValue - Provide the indexValue value. + * @param {boolean } isPreviewNode - Provide the isPreviewNode value. + * @param {object } centerPoint - Provide the centerPoint value. + * @private + */ + DiagramRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint) { + var isElement = true; + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_3__["Container"]) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + isElement = false; + element.id = element.id ? element.id : Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["randomId"])(); + this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint); + } + else if (element instanceof _core_elements_image_element__WEBPACK_IMPORTED_MODULE_1__["ImageElement"]) { + this.renderImageElement(element, canvas, transform, parentSvg, fromPalette); + } + else if (element instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_0__["PathElement"]) { + this.renderPathElement(element, canvas, transform, parentSvg, fromPalette, isPreviewNode); + } + else if (element instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) { + this.renderTextElement(element, canvas, transform, parentSvg, fromPalette, centerPoint); + } + else if (element instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + this.renderNativeElement(element, canvas, transform, parentSvg, fromPalette); + } + else if (element instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_14__["DiagramHtmlElement"]) { + this.renderHTMLElement(element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue); + } + else { + this.renderRect(element, canvas, transform, parentSvg, isPreviewNode); + } + }; + /** + * Method used to draw the selection rectangle for the node \ + * + * @returns {void } Method used to draw the selection rectangle for the node .\ + * + * @param {number} x - Provide the DiagramElement value. + * @param {number } y - Provide the SVGElement value. + * @param {number } w - Provide the Transforms value. + * @param {number } h - Provide the Transforms value. + * @param {HTMLCanvasElement | SVGElement } canvas - Provide the Transforms value. + * @param {number } t - Provide the Transforms value. + * @private + */ + DiagramRenderer.prototype.drawSelectionRectangle = function (x, y, w, h, canvas, t) { + x = (x + t.tx) * t.scale; + y = (y + t.ty) * t.scale; + var options = { + width: w * t.scale, height: h * t.scale, + x: x + 0.5, y: y + 0.5, fill: 'transparent', stroke: 'gray', angle: 0, + pivotX: 0.5, pivotY: 0.5, strokeWidth: 1, + dashArray: '6 3', opacity: 1, + visible: true, id: canvas.id + '_selected_region' + }; + var adornerLayer = this.getAdornerLayer(); + this.svgRenderer.updateSelectionRegion(adornerLayer, options); + }; + /** + * Method used to render the highlighter \ + * + * @returns {void } Method used to render the highlighter .\ + * + * @param {DiagramElement} element - Provide the DiagramElement value. + * @param {SVGElement } canvas - Provide the SVGElement value. + * @param {Transforms } transform - Provide the Transforms value. + * @private + */ + DiagramRenderer.prototype.renderHighlighter = function (element, canvas, transform) { + var width = element.actualSize.width || 2; + var height = element.actualSize.height || 2; + var x = element.offsetX - width * element.pivot.x; + var y = element.offsetY - height * element.pivot.y; + x = (x + transform.tx) * transform.scale; + y = (y + transform.ty) * transform.scale; + var options = { + width: width * transform.scale, height: height * transform.scale, + x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle, + pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 4, + dashArray: '', opacity: 1, cornerRadius: 0, + visible: true, id: canvas.id + '_highlighter', class: 'e-diagram-highlighter' + }; + this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, canvas); + }; + /** + * Method used to render the node selection rectangle \ + * + * @returns {void } Method used to render the node selection rectangle .\ + * + * @param {DiagramElement} element - Provide the DiagramElement value. + * @param {SVGElement } canvas - Provide the SVGElement value. + * @param {Transforms } transform - Provide the Transforms value. + * @param {number } isFirst - Provide the boolean value. + * @private + */ + DiagramRenderer.prototype.renderSelectionRectangle = function (element, canvas, transform, isFirst) { + var width = element.actualSize.width || 2; + var height = element.actualSize.height || 2; + var x = element.offsetX - width * element.pivot.x; + var y = element.offsetY - height * element.pivot.y; + x = (x + transform.tx) * transform.scale; + y = (y + transform.ty) * transform.scale; + var options = { + width: width * transform.scale, height: height * transform.scale, + x: x, y: y, fill: 'transparent', stroke: '#00cc00', angle: element.rotateAngle, + pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: isFirst ? 2 : 1, + dashArray: '', opacity: 1, cornerRadius: 0, + visible: true, id: element.id + '_highlighter', class: 'e-diagram-selection-indicator' + }; + var parentSvg = this.getParentSvg(element, 'selector'); + this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg); + }; + /** + * Method used to render the selection line for connector \ + * + * @returns {void } Method used to render the selection line for connector .\ + * + * @param {PathElement} element - Provide the path element of the diagram . + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { Transforms } transform - Provide the transform value. + * @param { boolean } isFirst - Provide the boolean value. + * @private + */ + DiagramRenderer.prototype.renderSelectionLine = function (element, canvas, transform, isFirst) { + var options = this.getBaseAttributes(element, transform); + options.data = element.absolutePath; + options.id = options.id + '_highlighter'; + var ariaLabel = element.description ? element.description : element.id; + if (!this.isSvgMode) { + options.x = element.flipOffset.x ? element.flipOffset.x : options.x; + options.y = element.flipOffset.y ? element.flipOffset.y : options.y; + } + if (transform) { + options.x = options.x * transform.scale; + options.y = options.y * transform.scale; + } + options.stroke = '#00cc00'; + options.strokeWidth = isFirst ? 2 : 1; + options.class = 'e-diagram-selection-indicator'; + var parentSvg = this.getParentSvg(element, 'selector'); + this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel, transform.scale); + }; + /** + * Method used to render the stack highlighter \ + * + * @returns {void } Method used to render the stack highlighter .\ + * + * @param {DiagramElement} element - Provide the DiagramElement value. + * @param {SVGElement } canvas - Provide the SVGElement value. + * @param {Transforms } transform - Provide the Transforms value. + * @param {boolean} isVertical - Provide the Boolean value. + * @param {PointModel } position - Provide the PointModel value. + * @param {boolean } isUml - Provide the boolean value. + * @param {boolean } isSwimlane - Provide the boolean value. + * @private + */ + DiagramRenderer.prototype.renderStackHighlighter = function (element, canvas, transform, isVertical, position, isUml, isSwimlane) { + var width = element.actualSize.width || 2; + var x = element.offsetX - width * element.pivot.x; + var height = element.actualSize.height || 2; + var y = element.offsetY - height * element.pivot.y; + x = (x + transform.tx) * transform.scale; + var data; + var bounds = element.bounds; + var newPathString = ''; + y = (y + transform.ty) * transform.scale; + if (!isVertical) { + var d = height * transform.scale; + data = 'M 10 -10 L 0 0 Z M -10 -10 L 0 0 Z M 0 0 L 0 ' + (d) + ' Z M 0 ' + (d) + + ' L -10 ' + (d + 10) + ' Z L 10 ' + (d + 10) + ' Z'; + if (position.x >= element.offsetX) { + x += width; + } + } + else { + if (isUml) { + var d = width * transform.scale; + data = 'M 0 0 L ' + (d + 2) + ' 0 Z'; + var scaleX = -bounds.x; + var scaleY = -bounds.y; + var arrayCollection = []; + scaleX = element.actualSize.width / Number(bounds.width ? bounds.width : 1) * transform.scale; + scaleY = element.actualSize.height / Number(bounds.height ? bounds.height : 1) * transform.scale; + var umlData = 'M7,4 L8,4 8,7 11,7 11,8 8,8 8,11 7,11 7,8 4,8 4,7 7,7 z M7.5,0.99999994' + + 'C3.9160004,1 1,3.9160004 0.99999994,7.5 1,11.084 3.9160004,14 7.5,14 11.084,14 14,11.084 14,7.5 14,' + + '3.9160004 11.084,1 7.5,0.99999994 z M7.5,0 C11.636002,0 15,3.3639984 15,7.5 15,11.636002 11.636002,15 7.5,' + + '15 3.3640003,15 0,11.636002 0,7.5 0,3.3639984 3.3640003,0 7.5,0 z'; + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["processPathData"])(umlData); + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["splitArrayCollection"])(arrayCollection); + newPathString = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["transformPath"])(arrayCollection, scaleX + d + 2, scaleY - 8, false, bounds.x, bounds.y, 0, 0); + if (position.y >= element.offsetY) { + y += height; + } + } + else { + if (isSwimlane) { + if (position.y >= element.offsetY) { + y += height; + } + } + var d = width * transform.scale; + data = 'M -10 -10 L 0 0 Z M -10 10 L 0 0 Z M 0 0 L ' + (d) + ' 0 Z M ' + (d) + ' 0 L ' + + (d + 10) + ' 10 Z L ' + (d + 10) + ' -10 Z'; + } + } + var options = { + data: data + newPathString, + width: width * transform.scale, height: height * transform.scale, + x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle, + pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1, + dashArray: '', opacity: 1, + visible: true, id: canvas.id + '_stack_highlighter', class: 'e-diagram-highlighter' + }; + this.svgRenderer.drawPath(canvas, options, this.diagramId); + }; + /** + * Method used to draw the line \ + * + * @returns {void } Method used to draw the line .\ + * + * @param {SVGElement} canvas - Provide the SVGElement value. + * @param {LineAttributes } options - Provide the LineAttributes value. + * @private + */ + DiagramRenderer.prototype.drawLine = function (canvas, options) { + this.svgRenderer.drawLine(canvas, options); + }; + /** + * Method used to draw the path \ + * + * @returns {void } Method used to draw the path .\ + * + * @param {SVGElement} canvas - Provide the canvas value. + * @param {PathAttributes } options - Provide the PathAttributes value. + * @private + */ + DiagramRenderer.prototype.drawPath = function (canvas, options) { + this.svgRenderer.drawPath(canvas, options, this.diagramId); + }; + /** + * Method used to render the resize handle \ + * + * @returns {void } Method used to render the resize handle .\ + * + * @param {DiagramElement} element - Provide the DiagramElement value. + * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas element. + * @param { ThumbsConstraints } constraints - Provide the constraints value . + * @param { number} currentZoom - Provide the currentZoom value. + * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value . + * @param { Transforms } transform - Provide the transform value. + * @param { boolean } canMask - Provide the canMask boolean value. + * @param { number } enableNode - Provide the enableNode value. + * @param { boolean } nodeConstraints - Provide the nodeConstraints value. + * @param { boolean } isSwimlane - Provide the isSwimlane boolean value. + * @param { number } handleSize - Provide the handleSize value. + * @private + */ + DiagramRenderer.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, selectorConstraints, transform, canMask, enableNode, nodeConstraints, isSwimlane, handleSize) { + var left = element.offsetX - element.actualSize.width * element.pivot.x; + var top = element.offsetY - element.actualSize.height * element.pivot.y; + var height = element.actualSize.height; + var width = element.actualSize.width; + if (!isSwimlane && + (constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].Rotate && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_16__["canDrawThumbs"])(this.rendererActions) && (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_16__["avoidDrawSelector"])(this.rendererActions)))) { + this.renderPivotLine(element, canvas, transform, selectorConstraints, canMask); + this.renderRotateThumb(element, canvas, transform, selectorConstraints, canMask); + } + this.renderBorder(element, canvas, transform, enableNode, nodeConstraints, isSwimlane); + var nodeWidth = element.actualSize.width * currentZoom; + var nodeHeight = element.actualSize.height * currentZoom; + if (!nodeConstraints && Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_16__["canDrawThumbs"])(this.rendererActions) && (!Object(_utility_constraints_util__WEBPACK_IMPORTED_MODULE_16__["avoidDrawSelector"])(this.rendererActions))) { + if (nodeWidth >= 40 && nodeHeight >= 40) { + //Hide corners when the size is less than 40 + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeNorthWest) { + this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeNorthWest'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-diagram-resize-handle e-northwest', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeNorthEast) { + this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeNorthEast'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-diagram-resize-handle e-northeast', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeSouthWest) { + this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeSouthWest'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-diagram-resize-handle e-southwest', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeSouthEast) { + this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeSouthEast'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-diagram-resize-handle e-southeast', handleSize); + } + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeNorth) { + this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeNorth'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-diagram-resize-handle e-north', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeSouth) { + this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeSouth'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-diagram-resize-handle e-south', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeWest) { + this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeWest'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-diagram-resize-handle e-west', handleSize); + } + if (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].ResizeEast) { + this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ResizeEast'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-diagram-resize-handle e-east', handleSize); + } + } + }; + /** + * Method used to render the end point of the handle \ + * + * @returns {void } Method used to render the end point of the handle .\ + * + * @param {ConnectorModel} selector - Provide the ConnectorModel. + * @param {HTMLCanvasElement | SVGElement } canvas - Provide the element. + * @param { ThumbsConstraints } constraints - Provide the constraints value . + * @param { SelectorConstraints} selectorConstraints - Provide the selectorConstraints value. + * @param { Transforms } transform - Provide the transform value . + * @param { boolean } connectedSource - Provide the connectedSource boolean value. + * @param { boolean } connectedTarget - Provide the connectedTarget boolean value. + * @param { boolean } isSegmentEditing - Provide the isSegmentEditing boolean value. + * @param { boolean } canShowBezierPoints - Provide the canShowBezierPoints boolean value. + * @param {number} handleSize - Provide the handleSize value. + * @private + */ + DiagramRenderer.prototype.renderEndPointHandle = function (selector, canvas, constraints, selectorConstraints, transform, connectedSource, connectedTarget, isSegmentEditing, canShowBezierPoints, handleSize) { + var sourcePoint = selector.sourcePoint; + var targetPoint = selector.targetPoint; + var wrapper = selector.wrapper; + var i; + var segment; + this.renderCircularHandle('connectorSourceThumb', wrapper, sourcePoint.x, sourcePoint.y, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorSourceThumb'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ConnectorSource, transform, connectedSource, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-endpoint-handle e-sourceend', handleSize); + this.renderCircularHandle('connectorTargetThumb', wrapper, targetPoint.x, targetPoint.y, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorTargetThumb'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ConnectorTarget, transform, connectedTarget, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-endpoint-handle e-targetend', handleSize); + if (isSegmentEditing) { + if ((selector.type === 'Straight' || selector.type === 'Bezier') && selector.segments.length > 0) { + for (i = 0; i < selector.segments.length - 1; i++) { + segment = selector.segments[parseInt(i.toString(), 10)]; + var className = selector.type === 'Bezier' ? 'e-diagram-bezier-segment-handle' : 'e-diagram-straight-segment-handle'; + this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ConnectorSource, transform, connectedSource, null, null, i, className, handleSize); + } + } + else { + // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not + if (!selector.maxSegmentThumb) { + for (i = 0; i < selector.segments.length; i++) { + var seg = selector.segments[parseInt(i.toString(), 10)]; + this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorSourceThumb'), transform, selector); + } + } + else { + // (EJ2-57115) - Added below code to check if maxSegmentThumb is non zero then we have ignore the rendering of + // first and last segment thumb + var start = selector.segments.length <= selector.maxSegmentThumb ? 0 : 1; + var end = selector.segments.length <= selector.maxSegmentThumb ? selector.segments.length : selector.segments.length - 1; + // (EJ2-57115) - If maxSegmentThumb is greater than or equal to 3 means then set start as second segment(1) and end as last before segment + if (selector.maxSegmentThumb >= 3 && selector.segments.length === 3) { + start = 1; + end = selector.segments.length - 1; + } + // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set start as 2 + start = selector.segments.length > selector.maxSegmentThumb + 2 ? 2 : start; + // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set end as last before segment + end = selector.segments.length > selector.maxSegmentThumb + 2 ? selector.segments.length - 2 : end; + if (selector.segments.length === 1 && selector.segments[0].points.length <= 2) { + start = 1; + end = selector.segments.length; + } + for (i = start; i < end; i++) { + var seg = selector.segments[parseInt(i.toString(), 10)]; + this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorSourceThumb'), transform, selector); + } + } + } + } + if (selector.type === 'Bezier' && canShowBezierPoints) { + var segmentCount = selector.segments.length - 1; + var controlPointsVisibility = selector.bezierSettings != null ? selector.bezierSettings.controlPointsVisibility : null; + for (i = 0; i <= segmentCount; i++) { + var segment_1 = selector.segments[parseInt(i.toString(), 10)]; + var bezierPoint = !_primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].isEmptyPoint(segment_1.point1) ? segment_1.point1 + : segment_1.bezierPoint1; + if (controlPointsVisibility != null && (i === 0 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowControlPoints"])(controlPointsVisibility, 'Source')) + || (i !== 0 && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowControlPoints"])(controlPointsVisibility, 'Intermediate'))) { + this.renderCircularHandle('bezierPoint_' + (i + 1) + '_1', wrapper, bezierPoint.x, bezierPoint.y, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorSourceThumb'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ConnectorSource, transform, undefined, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-source', handleSize); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorSourceThumb')) { + this.renderBezierLine('bezierLine_' + (i + 1) + '_1', wrapper, canvas, segment_1.points[0], !_primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].isEmptyPoint(segment_1.point1) ? segment_1.point1 : segment_1.bezierPoint1, transform); + } + } + bezierPoint = !_primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2; + if (controlPointsVisibility != null && (i === segmentCount && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowControlPoints"])(controlPointsVisibility, 'Target')) + || (i !== segmentCount && Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowControlPoints"])(controlPointsVisibility, 'Intermediate'))) { + this.renderCircularHandle('bezierPoint_' + (i + 1) + '_2', wrapper, bezierPoint.x, bezierPoint.y, canvas, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorTargetThumb'), constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ThumbsConstraints"].ConnectorTarget, transform, undefined, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-target', handleSize); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["canShowCorner"])(selectorConstraints, 'ConnectorTargetThumb')) { + this.renderBezierLine('bezierLine_' + (i + 1) + '_2', wrapper, canvas, segment_1.points[1], !_primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2, transform); + } + } + } + } + }; + /** + * Method used to render the orthogonal thumb \ + * + * @returns {void } Method used to render the orthogonal thumb .\ + * + * @param {string} id - Provide the id for the element. + * @param {DiagramElement } selector - Provide the selector element. + * @param { OrthogonalSegment } segment - Provide the segment value . + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { boolean } visibility - Provide the visibility value . + * @param { Transforms } t - Provide the Transforms value. + * @param { ConnectorModel } connector - Provide the connector value. + * @private + */ + DiagramRenderer.prototype.renderOrthogonalThumbs = function (id, selector, segment, canvas, visibility, t, connector) { + var orientation; + var visible; + var length; + var j = 0; + // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not + if (!connector.maxSegmentThumb) { + for (j = 0; j < segment.points.length - 1; j++) { + length = _primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]); + orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical'; + visible = (length >= 50 && segment.allowDrag) ? true : false; + this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t); + } + } + else { + // (EJ2-57115) - Added below code to check if maxSegmentThumb greater then 3 means then we have ignore the rendering of + // first and last segment thumb + // Set the start value as 1 if segment points is greater than 3 + var start = segment.points.length < 3 ? 0 : 1; + // set the end value as segment.points.length - 2 if segment points is greater then 3 + var end = segment.points.length < 3 ? segment.points.length - 1 : segment.points.length - 2; + start = connector.segments.length === 1 ? start : 0; + end = connector.segments.length === 1 ? end : segment.points.length - 1; + for (j = start; j < end; j++) { + length = _primitives_point__WEBPACK_IMPORTED_MODULE_15__["Point"].distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]); + orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical'; + visible = (length >= 50 && segment.allowDrag) ? true : false; + this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t); + } + } + }; + /** + * Method used to render the orthogonal thumb \ + * + * @returns {void } Method used to render the orthogonal thumb .\ + * + * @param {string} id - Provide the id for the element. + * @param {DiagramElement } selector - Provide the selector element. + * @param { Transforms } x - Provide the x value . + * @param { Transforms } y - Provide the y value. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element. + * @param { boolean } visible - Provide the visible boolean value. + * @param { string } orientation - Provide the orientation value. + * @param { Transforms } t - Provide the Transforms value. + * @private + */ + DiagramRenderer.prototype.renderOrthogonalThumb = function (id, selector, x, y, canvas, visible, orientation, t) { + var path; + var h; + var v; + var diagramElement = document.getElementById(this.diagramId); + var instance = 'ej2_instances'; + var diagram; + if (diagramElement) { + diagram = diagramElement["" + instance][0]; + } + if (orientation === 'horizontal') { + path = Object(_objects_dictionary_common__WEBPACK_IMPORTED_MODULE_18__["getSegmentThumbShapeHorizontal"])(diagram.segmentThumbShape); + switch (diagram.segmentThumbShape) { + case 'Arrow': + case 'OpenArrow': + case 'DoubleArrow': + h = -15; + v = -15; + break; + case 'Square': + case 'Rectangle': + case 'Ellipse': + h = -5; + v = -5; + break; + case 'Rhombus': + case 'Circle': + case 'Diamond': + h = -10; + v = -5; + break; + case 'IndentedArrow': + case 'OutdentedArrow': + h = -5; + v = -4; + break; + case 'Fletch': + case 'OpenFetch': + h = -5; + v = -4.5; + break; + } + } + else { + path = Object(_objects_dictionary_common__WEBPACK_IMPORTED_MODULE_18__["getSegmentThumbShapeVertical"])(diagram.segmentThumbShape); + switch (diagram.segmentThumbShape) { + case 'Arrow': + case 'OpenArrow': + case 'DoubleArrow': + h = -15; + v = -15; + break; + case 'Square': + case 'IndentedArrow': + case 'OutdentedArrow': + case 'Fletch': + case 'OpenFetch': + h = -5; + v = -5; + break; + case 'Rhombus': + case 'Diamond': + h = -5; + v = -15; + break; + case 'Rectangle': + h = -7; + v = -5; + break; + case 'Circle': + h = -5; + v = -7; + break; + case 'Ellipse': + h = -7; + v = -7; + break; + } + } + var options = { + x: ((x + t.tx) * t.scale) + h, y: ((y + t.ty) * t.scale) + v, angle: 0, + fill: '#e2e2e2', stroke: 'black', strokeWidth: 1, dashArray: '', data: path, + width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: id, + class: 'e-diagram-ortho-segment-handle' + }; + this.svgRenderer.drawPath(canvas, options, this.diagramId); + }; + /** + * Method used to render the pivot line line\ + * + * @returns {void } Method used to render the pivot line line .\ + * + * @param {DiagramElement} element - Provide the diagram element value. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element. + * @param { Transforms } transform - Provide the transform value . + * @param { SelectorConstraints } selectorConstraints - Provide the selector constraints value. + * @param { boolean } canMask - Provide the canMask boolean value. + * @private + */ + DiagramRenderer.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) { + var wrapper = element; + var dashArray = '2,3'; + var visible = (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].Rotate) ? true : false; + if (canMask) { + visible = false; + } + var options = this.getBaseAttributes(wrapper, transform); + options.fill = 'None'; + options.stroke = 'black'; + options.strokeWidth = 1; + options.dashArray = dashArray; + options.visible = visible; + var scale = transform.scale; + options.x *= scale; + options.y *= scale; + options.width *= scale; + options.height *= scale; + options.id = 'pivotLine'; + options.class = 'e-diagram-pivot-line'; + var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 }; + var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 }; + options.startPoint = startPoint; + options.endPoint = endPoint; + this.svgRenderer.drawLine(canvas, options); + }; + /** + * Method used to render the bezier line for the connector \ + * + * @returns {void } Method used to render the bezier line for the connector .\ + * + * @param {string} id - Provide the id value for the bezier line. + * @param { DiagramElement } wrapper - Provide the wrapper for the element. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element . + * @param { PointModel } start - Provide the pointmodel value. + * @param { PointModel } end - Provide the pointmodel value. + * @param { Transforms } transform - Provide the itransform value . + * @private + */ + DiagramRenderer.prototype.renderBezierLine = function (id, wrapper, canvas, start, end, transform) { + var dashArray = '3,3'; + var options = this.getBaseAttributes(wrapper, transform); + options.id = id; + options.stroke = 'black'; + options.strokeWidth = 1; + options.dashArray = dashArray; + options.fill = 'None'; + options.class = 'e-diagram-bezier-control-line'; + options.x = 0; + options.y = 0; + var scale = transform.scale; + var x1 = (start.x + transform.tx) * scale; + var y1 = (start.y + transform.ty) * scale; + var x2 = (end.x + transform.tx) * scale; + var y2 = (end.y + transform.ty) * scale; + var startPoint = { x: x1, y: y1 }; + var endPoint = { x: x2, y: y2 }; + options.startPoint = startPoint; + options.endPoint = endPoint; + this.svgRenderer.drawLine(canvas, options); + }; + /** + * Method used to render the circular handle for the node element \ + * + * @returns {void } Method used to render the circular handle for the node element .\ + * + * @param {string} id - Provide the id value. + * @param { DiagramElement } selector - Provide the selector element value. + * @param { number } cx - Provide cx value . + * @param { number } cy - Provide cx value. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element. + * @param { boolean } visible - Provide the visible property for the handle . + * @param { number } enableSelector - Provide the value for the enableSelector . + * @param { Transforms } t - Provide the transform value . + * @param { boolean } connected - Provide the connected boolean value . + * @param { boolean } canMask - Provide the canMask boolean value . + * @param { Object } ariaLabel - Provide the label properties . + * @param { number } count - Provide the count value . + * @param { string } className - Provide the class name for this element . + * @param { number } handleSize - Provide the handle size value . + * + * @private + */ + // Feature (EJ2-44346) Provide support to increase the size of the resize thumb + DiagramRenderer.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, handleSize) { + var wrapper = selector; + var newPoint = { x: cx, y: cy }; + if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["rotateMatrix"])(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY); + newPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["transformPointByMatrix"])(matrix, newPoint); + } + var options = this.getBaseAttributes(wrapper); + options.stroke = 'black'; + options.strokeWidth = 1; + if (count !== undefined) { + options.id = 'segmentEnd_' + count; + options.fill = '#e2e2e2'; + } + else { + options.fill = connected ? '#8CC63F' : 'white'; + } + options.cornerRadius = handleSize / 2; + options.angle = selector.rotateAngle; + options.id = id; + options.visible = visible; + options.class = className; + options.width = handleSize; + options.height = handleSize; + // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5 + options.x = (newPoint.x + t.tx) * t.scale; + options.y = (newPoint.y + t.ty) * t.scale; + options.x = options.x - options.width / 2; + options.y = options.y - options.height / 2; + if (connected) { + options.class += ' e-connected'; + } + if (canMask) { + options.visible = false; + } + var parentSvg = this.getParentSvg(selector, 'selector'); + this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector); + }; + /** + * Method used to render border for the node element \ + * + * @returns {void } Method used to render border for the node element .\ + * + * @param {SelectorModel} selector - Provide the selector model instance. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { Transforms } transform - Provide the transform value . + * @param { number } enableNode - Provide enableNode boolean value. + * @param { boolean } isBorderTickness - Provide the thickness value for the node. + * @param { boolean } isSwimlane - Provide the isSwimlane boolean value . + * @private + */ + DiagramRenderer.prototype.renderBorder = function (selector, canvas, transform, enableNode, isBorderTickness, isSwimlane) { + var wrapper = selector; + var options = this.getBaseAttributes(wrapper, transform); + options.x *= transform.scale; + options.y *= transform.scale; + options.width *= transform.scale; + options.height *= transform.scale; + options.fill = 'transparent'; + options.stroke = '#097F7F'; + options.strokeWidth = 1.2; + options.gradient = null; + options.dashArray = '6,3'; + options.class = 'e-diagram-selector'; + if (isSwimlane) { + options.class += ' e-diagram-lane'; + } + options.id = 'borderRect'; + options.id = (this.rendererActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["RendererAction"].DrawSelectorBorder) ? 'borderRect_symbol' : 'borderRect'; + if (!enableNode) { + options.class += ' e-disabled'; + } + if (isBorderTickness) { + options.class += ' e-thick-border'; + } + options.cornerRadius = 0; + var parentSvg = this.getParentSvg(selector, 'selector'); + this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, true, parentSvg); + }; + /** + * Method used to render user handle for the node element \ + * + * @returns {void } Method used to render user handle for the node element .\ + * + * @param {SelectorModel} selectorItem - Provide the selector model instance. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { Transforms } transform - Provide the transform value . + * @param { HTMLElement } diagramUserHandlelayer - Provide the HTMLElement value. + * @private + */ + DiagramRenderer.prototype.renderUserHandler = function (selectorItem, canvas, transform, diagramUserHandlelayer) { + var wrapper = selectorItem.wrapper; + var canDraw; + for (var _i = 0, _a = selectorItem.userHandles; _i < _a.length; _i++) { + var obj = _a[_i]; + canDraw = true; + if ((obj.disableConnectors && selectorItem.connectors.length > 0) || + (obj.disableNodes && selectorItem.nodes.length > 0)) { + canDraw = false; + } + var div = document.getElementById(obj.name + '_template_hiddenUserHandle'); + if (div) { + obj.template = (div.childNodes[0]).cloneNode(true); + } + //const newPoint: PointModel; + var newPoint = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getUserHandlePosition"])(selectorItem, obj, transform); + newPoint.x = (newPoint.x + transform.tx) * transform.scale; + newPoint.y = (newPoint.y + transform.ty) * transform.scale; + if (obj.visible) { + obj.visible = (selectorItem.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].UserHandle) ? true : false; + } + if (canDraw) { + if (obj.pathData) { + var data = obj.pathData ? obj.pathData : obj.content; + var option = this.getBaseAttributes(wrapper); + option.id = obj.name + '_userhandle'; + option.fill = obj.backgroundColor; + option.stroke = obj.borderColor; + option.strokeWidth = obj.borderWidth; + option.centerX = newPoint.x; + option.centerY = newPoint.y; + option.radius = obj.size * 0.5; + option.class = 'e-diagram-userhandle-circle'; + option.angle = 0; + option.visible = obj.visible; + option.opacity = 1; + this.svgRenderer.drawCircle(canvas, option, 1, { 'aria-label': obj.name + 'user handle' }); + var pathPading = 5; + var arrayCollection = []; + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["processPathData"])(data); + arrayCollection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["splitArrayCollection"])(arrayCollection); + var pathSize = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["measurePath"])(data); + //requiredSize/contentSize + var scaleX = (obj.size - 0.45 * obj.size) / pathSize.width; + var scaleY = (obj.size - 0.45 * obj.size) / pathSize.height; + var newData = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_12__["transformPath"])(arrayCollection, scaleX, scaleY, true, pathSize.x, pathSize.y, 0, 0); + pathSize = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["measurePath"])(newData); + var options = { + x: newPoint.x - pathSize.width / 2, + y: newPoint.y - pathSize.height / 2, angle: 0, id: '', + class: 'e-diagram-userhandle-path', fill: obj.pathColor, + stroke: obj.backgroundColor, strokeWidth: 0.5, dashArray: '', data: newData, + width: obj.size - pathPading, height: obj.size - pathPading, pivotX: 0, pivotY: 0, opacity: 1, visible: obj.visible + }; + this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, undefined, { 'aria-label': obj.name + 'user handle' }); + } + else if (obj.content) { + //const handleContent: DiagramNativeElement; + var handleContent = new _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"](obj.name, this.diagramId); + handleContent.content = obj.content; + handleContent.offsetX = newPoint.x; + handleContent.offsetY = newPoint.y; + handleContent.id = obj.name + '_shape'; + handleContent.horizontalAlignment = 'Center'; + handleContent.verticalAlignment = 'Center'; + handleContent.visible = obj.visible; + handleContent.setOffsetWithRespectToBounds(newPoint.x, newPoint.y, 'Fraction'); + handleContent.relativeMode = 'Object'; + handleContent.description = obj.name || 'User handle'; + handleContent.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_5__["Size"](obj.size, obj.size)); + handleContent.arrange(handleContent.desiredSize); + this.svgRenderer.drawNativeContent(handleContent, canvas, obj.size, obj.size, this.adornerSvgLayer); + } + else if (obj.source) { + var element = new _core_elements_image_element__WEBPACK_IMPORTED_MODULE_1__["ImageElement"](); + var options = this.getBaseAttributes(element, transform); + options.width = obj.size; + options.height = obj.size; + options.x = newPoint.x - (obj.size / 2); + options.y = newPoint.y - (obj.size / 2); + options.sourceWidth = obj.size; + options.sourceHeight = obj.size; + options.alignment = element.imageAlign; + options.source = obj.source; + options.scale = element.imageScale; + options.visible = obj.visible; + options.description = obj.name || 'User handle'; + options.id = obj.name + '_'; + this.renderer.drawImage(canvas, options, this.adornerSvgLayer, false); + } + else { + //const templateContent: DiagramHtmlElement; + var templateContent = new _core_elements_html_element__WEBPACK_IMPORTED_MODULE_14__["DiagramHtmlElement"](obj.name, this.diagramId); + templateContent.offsetX = newPoint.x; + templateContent.offsetY = newPoint.y; + templateContent.id = obj.name + '_shape'; + templateContent.visible = obj.visible; + templateContent.relativeMode = 'Object'; + templateContent.template = obj.template; + templateContent.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_5__["Size"](obj.size, obj.size)); + templateContent.arrange(templateContent.desiredSize); + this.svgRenderer.drawHTMLContent(templateContent, diagramUserHandlelayer, undefined, true, undefined); + } + } + } + }; + /** + * Method used to render rotate thumb of the diagramnode element \ + * + * @returns {void } Method used to render rotate thumb of the diagramnode element .\ + * + * @param {DiagramElement} wrapper - Provide the wrapper element value. + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { Transforms } transform - Provide the transform value . + * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value. + * @param { boolean } canMask - Provide the boolean value . + * @private + */ + DiagramRenderer.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var element = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_0__["PathElement"](); + var newPoint; + var size = new _primitives_size__WEBPACK_IMPORTED_MODULE_5__["Size"](); + size.width = 18; + size.height = 16; + var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y; + var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x; + var visible = (selectorConstraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SelectorConstraints"].Rotate) ? true : false; + if (canMask) { + visible = false; + } + var data = 'M 16.856144362449648 10.238890446662904 L 18.000144362449646 3.437890446662903' + + 'L 15.811144362449646 4.254890446662903 C 14.837144362449646 2.5608904466629028 13.329144362449647 ' + + ' 1.2598904466629026 11.485144362449645 0.5588904466629026 C 9.375144362449646 - 0.24510955333709716 7.071144362449646 ' + + ' - 0.18010955333709716 5.010144362449646 0.7438904466629028 C 2.942144362449646 1.6678904466629028 1.365144362449646' + + ' 3.341890446662903 0.558144362449646 5.452890446662903 C - 0.244855637550354 7.567890446662903 - 0.17985563755035394' + + ' 9.866890446662904 0.7431443624496461 11.930890446662904 C 1.6681443624496461 13.994890446662904 3.343144362449646' + + ' 15.575890446662903 5.457144362449647 16.380890446662903 C 6.426144362449647 16.7518904466629 7.450144362449647' + + ' 16.9348904466629 8.470144362449647 16.9348904466629 C 9.815144362449647 16.9348904466629 11.155144362449647 ' + + '16.6178904466629 12.367144362449647 15.986890446662901 L 11.351144362449647 14.024890446662901 C 9.767144362449647' + + ' 14.8468904466629 7.906144362449647 14.953890446662902 6.237144362449647 14.3178904466629 C 4.677144362449647' + + ' 13.7218904466629 3.444144362449647 12.5558904466629 2.758144362449647 11.028890446662901 C 2.078144362449646 ' + + '9.501890446662903 2.031144362449646 7.802890446662903 2.622144362449646 6.243890446662903 C 3.216144362449646' + + ' 4.6798904466629025 4.387144362449646 3.442890446662903 5.914144362449646 2.760890446662903 C 7.437144362449646 ' + + '2.078890446662903 9.137144362449646 2.0298904466629026 10.700144362449645 2.6258904466629027 C 11.946144362449646 ' + + '3.100890446662903 12.971144362449646 3.9538904466629026 13.686144362449646 5.049890446662903 L 11.540144362449645 ' + + '5.850890446662903 L 16.856144362449648 10.238890446662904 Z'; + var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width; + var pivotY = top; + pivotX = (pivotX + transform.tx) * transform.scale; + pivotY = (pivotY + transform.ty) * transform.scale; + newPoint = { x: pivotX - size.width * 0.5, y: pivotY - 30 - size.height * 0.5 }; + if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["rotateMatrix"])(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale); + newPoint = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["transformPointByMatrix"])(matrix, newPoint); + } + var options = { + x: newPoint.x, + y: newPoint.y, + angle: wrapper.rotateAngle + wrapper.parentTransform, + fill: '#231f20', stroke: 'black', strokeWidth: 0.5, dashArray: '', data: data, + width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: wrapper.id, class: 'e-diagram-rotate-handle' + }; + options.id = 'rotateThumb'; + this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' }); + }; + /** + * Method used to render the path element for the diagram \ + * + * @returns {void } Method used to render the path element for the diagram .\ + * + * @param {PathElement} element - Provide the path element of the diagram . + * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value. + * @param { Transforms } transform - Provide the transform value . + * @param { SVGSVGElement } parentSvg - Provide the parent SVG element . + * @param { boolean } fromPalette - Provide the boolean value . + * @param { boolean } isPreviewNode - Provide the boolean value . + * @private + */ + DiagramRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette, isPreviewNode) { + var options = this.getBaseAttributes(element, transform, isPreviewNode); + options.data = element.absolutePath; + options.data = element.absolutePath; + var ariaLabel = element.description ? element.description : element.id; + if (!this.isSvgMode) { + options.x = element.flipOffset.x ? element.flipOffset.x : options.x; + options.y = element.flipOffset.y ? element.flipOffset.y : options.y; + } + if (element.isExport) { + var pathBounds = element.absoluteBounds; + options.data = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["updatePath"])(element, pathBounds, undefined, options); + } + this.renderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel); + }; + /** + * Method used to update the grid line for the diagram \ + * + * @returns {void } Method used to update the grid line for the diagram .\ + * + * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram . + * @param { SVGSVGElement } gridSvg - Provide the SVG grid element value. + * @param { Transforms } t - Provide the transform value . + * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property . + * @param { RulerModel } hRuler - Provide the horizontal ruler property value . + * @param { RulerModel } vRuler - Provide the vertical ruler property value . + * @private + */ + DiagramRenderer.prototype.renderSvgGridlines = function (snapSettings, gridSvg, t, rulerSettings, hRuler, vRuler) { + var pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern'); + var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); + defs.setAttribute('id', this.diagramId + '_grid_pattern_defn'); + if (snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SnapConstraints"].ShowHorizontalLines || + snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SnapConstraints"].ShowVerticalLines) { + pattern.setAttribute('id', this.diagramId + '_pattern'); + } + var hWidth = 0; + var hHeight = 0; + var hSegmentwidth = 0; + var vSegmentwidth = 0; + var scale = 1; + var isRulerGrid = false; + var isLine = snapSettings.gridType === 'Lines'; + var verticalLineIntervals = isLine ? + snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals; + var horizontalLineIntervals = isLine ? + snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals; + if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler && vRuler) { + hSegmentwidth = vRuler.updateSegmentWidth(t.scale); + vSegmentwidth = hRuler.updateSegmentWidth(t.scale); + snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval]; + snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval]; + isRulerGrid = true; + } + else { + for (var i = 0; i < verticalLineIntervals.length; i = i + 1) { + hWidth += verticalLineIntervals[parseInt(i.toString(), 10)]; + } + for (var i = 0; i < horizontalLineIntervals.length; i = i + 1) { + hHeight += horizontalLineIntervals[parseInt(i.toString(), 10)]; + } + scale = this.scaleSnapInterval(snapSettings, t.scale); + } + hWidth = isRulerGrid ? vSegmentwidth : hWidth * scale; + hHeight = isRulerGrid ? hSegmentwidth : hHeight * scale; + var attr = { + id: this.diagramId + '_pattern', x: 0, y: 0, width: hWidth, + height: hHeight, patternUnits: 'userSpaceOnUse' + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(pattern, attr); + this.horizontalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals); + this.verticalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals); + defs.appendChild(pattern); + gridSvg.appendChild(defs); + }; + DiagramRenderer.prototype.horizontalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, intervals) { + var space = 0; + var dashArray = []; + var hLine; + if (snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SnapConstraints"].ShowHorizontalLines) { + if (snapSettings.horizontalGridlines.lineDashArray) { + dashArray = this.renderer.parseDashArray(snapSettings.horizontalGridlines.lineDashArray); + } + if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler) { + intervals = this.updateLineIntervals(intervals, rulerSettings, vRuler, hHeight, isLine); + } + intervals = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getInterval"])(intervals, isLine); + for (var i = 0; i < intervals.length; i = i + 2) { + space = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getSpaceValue"])(intervals, isLine, i, space); + var spaceY = 0; + hLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle'); + var attr = void 0; + var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space; + d = isRulerGrid ? d : d * scale; + if (isLine) { + if (dashArray.toString() === '') { + attr = { + 'stroke-width': intervals[parseInt(i.toString(), 10)], + 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z', + 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid', + 'stroke': snapSettings.horizontalGridlines.lineColor + }; + } + else { + attr = { + 'stroke-width': intervals[parseInt(i.toString(), 10)], 'stroke': snapSettings.horizontalGridlines.lineColor, + 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z', + 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid', + 'dashArray': dashArray.toString() + }; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(hLine, attr); + pattern.appendChild(hLine); + space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)]; + } + else { + this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, true); + space += intervals[parseInt(i.toString(), 10)]; + } + } + } + }; + DiagramRenderer.prototype.renderDotGrid = function (i, pattern, snapSettings, spacey, d, scale, isHorizontal) { + var intervals = !isHorizontal ? + snapSettings.horizontalGridlines.dotIntervals : snapSettings.verticalGridlines.dotIntervals; + intervals = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getInterval"])(intervals, false); + var r; + var hLine; + //const doubleRadius: boolean; + var dy; + var attr; + for (var j = 1; j < intervals.length; j = j + 2) { + r = j === intervals.length - 1 ? intervals[0] : intervals[j - 1]; + hLine = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + dy = spacey; + dy = dy * scale; + attr = { + 'cx': isHorizontal ? dy : d, 'cy': isHorizontal ? d : dy, 'fill': snapSettings.horizontalGridlines.lineColor, 'r': r + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(hLine, attr); + pattern.appendChild(hLine); + spacey += intervals[parseInt(j.toString(), 10)] + intervals[j - 1]; + } + }; + DiagramRenderer.prototype.verticalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, intervals) { + var space = 0; + var dashArray = []; + var vLine; + if (snapSettings.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["SnapConstraints"].ShowVerticalLines) { + if (snapSettings.verticalGridlines.lineDashArray) { + dashArray = this.renderer.parseDashArray(snapSettings.verticalGridlines.lineDashArray); + } + if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler) { + intervals = this.updateLineIntervals(intervals, rulerSettings, hRuler, hWidth, isLine); + } + var spaceY = 0; + intervals = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getInterval"])(intervals, isLine); + for (var i = 0; i < intervals.length; i = i + 2) { + space = Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getSpaceValue"])(intervals, isLine, i, space); + var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space; + d = isRulerGrid ? d : d * scale; + vLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle'); + var attr = void 0; + if (isLine) { + if (dashArray.toString() === '') { + attr = { + 'stroke-width': intervals[parseInt(i.toString(), 10)], + 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z', + 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid', + 'stroke': snapSettings.verticalGridlines.lineColor + }; + } + else { + attr = { + 'stroke-width': intervals[parseInt(i.toString(), 10)], + 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid', + 'stroke': snapSettings.verticalGridlines.lineColor, + 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z', + 'dashArray': dashArray.toString() + }; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(vLine, attr); + pattern.appendChild(vLine); + space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)]; + } + else { + this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, false); + space += intervals[parseInt(i.toString(), 10)]; + } + } + } + }; + /** + * Method used to update the grid line for the diagram \ + * + * @returns {void } Method used to update the grid line for the diagram .\ + * + * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram . + * @param { SVGSVGElement } svgGrid - Provide the SVG grid element value. + * @param { Transforms } transform - Provide the transform value . + * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property . + * @param { RulerModel } hRuler - Provide the horizontal ruler property value . + * @param { RulerModel } vRuler - Provide the vertical ruler property value . + * @private + */ + DiagramRenderer.prototype.updateGrid = function (snapSettings, svgGrid, transform, rulerSettings, hRuler, vRuler) { + var grid = svgGrid.getElementById(this.diagramId + '_grid_rect'); + //let i: number; + var isRulerGrid = false; + if (grid) { + var pattern = svgGrid.getElementById(this.diagramId + '_pattern'); + if (pattern) { + pattern.parentNode.removeChild(pattern); + } + var hSegmentwidth = 0; + var vSegmentwidth = 0; + var scale = 1; + var isLine = snapSettings.gridType === 'Lines'; + var verticalLineIntervals = isLine ? + snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals; + var horizontalLineIntervals = isLine ? + snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals; + if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler && hRuler) { + hSegmentwidth = vRuler.updateSegmentWidth(transform.scale); + vSegmentwidth = hRuler.updateSegmentWidth(transform.scale); + isRulerGrid = true; + snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval]; + snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval]; + } + else { + scale = this.scaleSnapInterval(snapSettings, transform.scale); + } + var height = 0; + for (var j = 0; j < horizontalLineIntervals.length; j = j + 1) { + height += horizontalLineIntervals[parseInt(j.toString(), 10)]; + } + var width = 0; + for (var j = 0; j < verticalLineIntervals.length; j = j + 1) { + width += verticalLineIntervals[parseInt(j.toString(), 10)]; + } + var attr = { + x: -transform.tx * transform.scale, + y: -transform.ty * transform.scale + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(grid, attr); + width = isRulerGrid ? vSegmentwidth : width * scale; + height = isRulerGrid ? hSegmentwidth : height * scale; + attr = { + id: this.diagramId + '_pattern', x: 0, y: 0, width: width, + height: height, patternUnits: 'userSpaceOnUse' + }; + pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(pattern, attr); + this.horizontalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals); + this.verticalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals); + var defs = svgGrid.getElementById(this.diagramId + '_grid_pattern_defn'); + if (defs) { + defs.appendChild(pattern); + } + } + }; + DiagramRenderer.prototype.updateLineIntervals = function (intervals, rulerSettings, ruler, segmentWidth, isLine) { + var newInterval = []; + var tickInterval = segmentWidth / ruler.interval; + var interval = isLine ? ruler.interval : ruler.interval + 1; + for (var i = 0; i < interval * 2; i++) { + if (i % 2 === 0) { + newInterval[parseInt(i.toString(), 10)] = isLine ? ((i === 0) ? 1.25 : 0.25) : 0; + } + else { + newInterval[parseInt(i.toString(), 10)] = isLine ? (tickInterval - newInterval[i - 1]) : tickInterval; + } + } + return newInterval; + }; + DiagramRenderer.prototype.scaleSnapInterval = function (snapSettings, scale) { + if (scale >= 2) { + while (scale >= 2) { + scale /= 2; + } + } + else if (scale <= 0.5) { + while (scale <= 0.5) { + scale *= 2; + } + } + var i; + snapSettings.horizontalGridlines.scaledIntervals = snapSettings.horizontalGridlines.snapIntervals; + snapSettings.verticalGridlines.scaledIntervals = snapSettings.verticalGridlines.snapIntervals; + if (scale !== 1) { + var gridlines = snapSettings.horizontalGridlines; + gridlines.scaledIntervals = []; + for (i = 0; i < gridlines.snapIntervals.length; i++) { + gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale; + } + gridlines = snapSettings.verticalGridlines; + gridlines.scaledIntervals = []; + for (i = 0; i < gridlines.snapIntervals.length; i++) { + gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale; + } + } + return scale; + }; + /** + * Method used to render the text element \ + * + * @returns {void }Method used to render the text element .\ + * + * @param {TextElement} element - Provide the text element . + * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element . + * @param { Transforms } transform - Provide the transform value . + * @param { SVGSVGElement } parentSvg - Provide the SVG layer element . + * @param { boolean } fromPalette - Provide the boolean value . + * @param { object } centerPoint - Provide the center point value . + * @private + */ + DiagramRenderer.prototype.renderTextElement = function (element, canvas, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + transform, parentSvg, fromPalette, centerPoint) { + var options = this.getBaseAttributes(element, transform); + if (centerPoint) { + //Bug 827039: Bezier annotation content alignment is not working properly. + // Removed -2 cx-2 and cy-2 from the below two line to resolve the alignment issue. + options.x = centerPoint.cx; + options.y = centerPoint.cy; + // (EJ2-56874) - Set the calculated x and y position to the bezier connector annotation's(text element) bounds x,y position + element.bounds.x = options.x; + element.bounds.y = options.y; + // (EJ2-58802) - Calculate the center point x and y with the element export scale value if element is in export mode + if (element.isExport) { + options.x = options.x * Math.min(element.exportScaleValue.x || element.exportScaleValue.y); + options.y = options.y * Math.min(element.exportScaleValue.x || element.exportScaleValue.y); + } + } + options.cornerRadius = 0; + options.whiteSpace = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["whiteSpaceToString"])(element.style.whiteSpace, element.style.textWrapping); + options.content = element.content; + options.breakWord = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["wordBreakToString"])(element.style.textWrapping); + options.textAlign = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["textAlignToString"])(element.style.textAlign); + options.color = element.style.color; + options.italic = element.style.italic; + options.bold = element.style.bold; + options.fontSize = element.style.fontSize; + options.fontFamily = element.style.fontFamily; + options.textOverflow = element.style.textOverflow; + options.textWrapping = element.style.textWrapping; + options.textDecoration = element.style.textDecoration; + options.doWrap = element.doWrap; + options.wrapBounds = element.wrapBounds; + options.childNodes = element.childNodes; + options.isHorizontalLane = element.isLaneOrientation; + options.id = element.id ? element.id : Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["randomId"])(); + if (element.isLaneOrientation) { + options.parentOffsetX = this.groupElement.offsetX; + options.parentOffsetY = this.groupElement.offsetY; + options.parentWidth = this.groupElement.actualSize.width; + options.parentHeight = this.groupElement.actualSize.height; + } + options.dashArray = ''; + options.strokeWidth = 0; + options.fill = element.style.fill; + var ariaLabel = element.description ? element.description : element.content ? element.content : element.id; + if ((element.style.textWrapping === 'Wrap' || element.style.textWrapping === 'WrapWithOverflow') && + this.groupElement && options.height > this.groupElement.actualSize.height && + (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis')) { + options.y = options.y + (options.height - this.groupElement.actualSize.height) / 2; + } + this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg); + this.renderer.drawText(canvas, options, parentSvg, ariaLabel, this.diagramId, (element.isExport && Math.min(element.exportScaleValue.x || element.exportScaleValue.y)), this.groupElement); + if (this.isSvgMode) { + element.doWrap = false; + } + }; + DiagramRenderer.prototype.renderNativeElement = function (element, canvas, + // eslint-disable-next-line @typescript-eslint/no-unused-vars + transform, parentSvg, fromPalette) { + var templateWidth; + var templateHeight; + var nativeSvg = this.getParentSvg(element, undefined, canvas) || parentSvg; + var nativeLayer = this.getParentElement(element, canvas, nativeSvg).g || canvas; + var options = this.getBaseAttributes(element, transform); + options.fill = 'transparent'; + options.cornerRadius = element.cornerRadius; + options.stroke = 'transparent'; + this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg); + switch (element.scale) { + case 'None': + templateWidth = element.contentSize.width; + templateHeight = element.contentSize.height; + break; + case 'Stretch': + templateWidth = element.actualSize.width; + templateHeight = element.actualSize.height; + break; + case 'Meet': + if (element.actualSize.width <= element.actualSize.height) { + templateWidth = templateHeight = element.actualSize.width; + } + else { + templateWidth = templateHeight = element.actualSize.height; + } + break; + case 'Slice': + if (element.actualSize.width >= element.actualSize.height) { + templateWidth = templateHeight = element.actualSize.width; + } + else { + templateWidth = templateHeight = element.actualSize.height; + } + break; + } + if (this.svgRenderer) { + this.svgRenderer.drawNativeContent(element, nativeLayer, templateHeight, templateWidth, nativeSvg); + } + }; + DiagramRenderer.prototype.renderHTMLElement = function (element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue) { + var options = this.getBaseAttributes(element, transform); + options.fill = 'transparent'; + options.cornerRadius = element.cornerRadius; + options.stroke = 'transparent'; + this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg); + if (this.svgRenderer) { + this.svgRenderer.drawHTMLContent(element, htmlLayer.children[0], transform, Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["isDiagramChild"])(htmlLayer), indexValue); + } + }; + /** + * Method used to render the image element \ + * + * @returns {void }Method used to render the image element .\ + * + * @param {ImageElement} element - Provide the image element . + * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element . + * @param { Transforms } transform - Provide the transform value . + * @param { SVGSVGElement } parentSvg - Provide the SVG layer element . + * @param { boolean } fromPalette - Provide the boolean value . + * @private + */ + DiagramRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) { + var options = this.getBaseAttributes(element, transform); + options.cornerRadius = 0; + this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg); + // let sx: number; let sy: number; + var imageWidth; + var imageHeight; + var sourceWidth; + var sourceHeight; + if (element.stretch === 'Stretch') { + imageWidth = element.actualSize.width; + imageHeight = element.actualSize.height; + } + else { + var contentWidth = element.contentSize.width; + var contentHeight = element.contentSize.height; + var widthRatio = options.width / contentWidth; + var heightRatio = options.height / contentHeight; + var ratio = void 0; + switch (element.stretch) { + case 'Meet': + ratio = Math.min(widthRatio, heightRatio); + imageWidth = contentWidth * ratio; + imageHeight = contentHeight * ratio; + options.x += Math.abs(options.width - imageWidth) / 2; + options.y += Math.abs(options.height - imageHeight) / 2; + break; + case 'Slice': + widthRatio = options.width / contentWidth; + heightRatio = options.height / contentHeight; + ratio = Math.max(widthRatio, heightRatio); + imageWidth = contentWidth * ratio; + imageHeight = contentHeight * ratio; + sourceWidth = options.width / imageWidth * contentWidth; + sourceHeight = options.height / imageHeight * contentHeight; + break; + case 'None': + imageWidth = contentWidth; + imageHeight = contentHeight; + break; + } + } + options.width = imageWidth; + options.height = imageHeight; + //Commented for code coverage + //(options as ImageAttributes).sourceX = sx; + //(options as ImageAttributes).sourceY = sy; + options.sourceWidth = sourceWidth; + options.sourceHeight = sourceHeight; + options.source = element.source; + options.alignment = element.imageAlign; + options.scale = element.imageScale; + options.description = element.description ? element.description : element.id; + this.renderer.drawImage(canvas, options, parentSvg, fromPalette); + }; + /** + * Method used to render the container \ + * + * @returns {void} Method used to render the container .\ + * + * @param {Container} group - Provide the container . + * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element . + * @param { HTMLElement } htmlLayer - Provide the html layer element . + * @param { Transforms } transform - Provide the transform value . + * @param { SVGSVGElement } parentSvg - Provide the SVG layer element . + * @param { boolean } createParent - Provide the boolean value . + * @param { boolean } fromPalette - Provide the boolean value . + * @param { number } indexValue - Provide the indexValue value . + * @param { boolean } isPreviewNode - Provide the boolean value . + * @param { object } centerPoint - Provide the centerPoint value . + * @private + */ + DiagramRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint) { + var svgParent = { svg: parentSvg, g: canvas }; + var diagramElement = document.getElementById(this.diagramId); + var instance = 'ej2_instances'; + var diagram; + if (diagramElement) { + diagram = diagramElement["" + instance][0]; + } + if (this.diagramId) { + parentSvg = this.getParentSvg(group) || parentSvg; + if (this.isSvgMode) { + //const groupElement: HTMLCanvasElement | SVGElement; + // eslint-disable-next-line max-len + var groupElement = this.getParentElement(group, canvas, parentSvg, indexValue).g || canvas; + parentSvg = this.getParentSvg(this.hasNativeParent(group.children)) || parentSvg; + var svgNativeParent = this.getParentElement(this.hasNativeParent(group.children), groupElement, parentSvg, indexValue); + svgParent.svg = svgNativeParent.svg || parentSvg; + svgParent.g = svgNativeParent.g || groupElement; + if (createParent) { + if (parentSvg) { + if (!parentSvg.getElementById(svgParent.g.id)) { + canvas.appendChild(svgParent.g); + } + } + canvas = svgParent.g; + } + else { + canvas = svgParent.g; + } + } + } + this.renderRect(group, canvas, transform, parentSvg); + this.groupElement = group; + if (group.hasChildren()) { + var parentG = void 0; + var svgParent_1; + for (var _i = 0, _a = group.children; _i < _a.length; _i++) { + var child = _a[_i]; + parentSvg = this.getParentSvg(this.hasNativeParent(group.children) || child) || parentSvg; + if (this.isSvgMode) { + svgParent_1 = this.getParentElement(this.hasNativeParent(group.children) || child, canvas, parentSvg); + parentG = svgParent_1.g || canvas; + if (svgParent_1.svg) { + parentSvg = svgParent_1.svg; + } + } + if (!this.isSvgMode) { + child.flip = group.flip; + } + this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue, isPreviewNode, centerPoint); + if (child instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"] && parentG && !(group.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsGroup)) { + this.renderFlipElement(child, parentG, child.flip); + } + //EJ2-826617 - for BPMN node label + if (child instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"] && parentG && (group.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsGroup)) { + this.renderFlipElement(child, parentG, child.flip); + } + if ((child.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsPort) && parentG) { + //EJ2-826617 - for BPMN node port + if (parentG.id.includes("bpmn")) { + this.renderFlipElement(group, parentG, child.flip); + child.flip = 'None'; + } + else { + this.renderFlipElement(group, parentG, child.flip); + } + } + //EJ2-826617 - for BPMN node child rendering + if (!(child instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) && group.flip !== 'None' && + (group.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsGroup) && !(child.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsPort) && parentG) { + this.renderFlipElement(child, parentG || canvas, group.flip); + } + } + var selectedNode = void 0; + if (diagram && diagram.selectedItems && diagram.selectedItems.nodes && diagram.selectedItems.nodes.length > 0) { + selectedNode = diagram.selectedItems.nodes[0]; + } + var innerNodeContent = void 0; + var innerLabelContent = void 0; + var isNodeSelected = false; + var Node_1; + if (diagram && diagram.selectedItems) { + Node_1 = diagram.getObject(group.id); + } + if (group.flip !== 'None') { + selectedNode = Node_1; + } + // EJ2-71981 - Flip mode "Port" is not working properly while dragging multiselected node + // Below code to set selected node value + if (group.flip == 'None') { + selectedNode = Node_1; + } + if (selectedNode && selectedNode.flipMode) { + isNodeSelected = true; + } + if (!(group.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsGroup) && diagram instanceof _diagram__WEBPACK_IMPORTED_MODULE_17__["Diagram"] && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') { + if (isNodeSelected && selectedNode) { + if (group.children && group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element'); + } + else { + innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement'); + } + //Below code to check and flip the node. + if (!(group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' || (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && selectedNode.flipMode === 'Port')) { + this.renderFlipElement(group, innerNodeContent, selectedNode.flip); + return; + } + //Below code to check and flip the node except for flip mode Port. + else if (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + if (group.flip !== 'None' && selectedNode.flipMode === 'None') { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + //Below code to check and flip the text element in the node. + else if (group.flip !== 'None' && selectedNode.flipMode === 'Label' || (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) { + for (var i_1 = 0; i_1 < selectedNode.wrapper.children.length; i_1++) { + if (selectedNode.wrapper.children[parseInt(i_1.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) { + innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i_1.toString(), 10)].id + '_groupElement'); + this.renderFlipElement(group, innerLabelContent, group.flip); + return; + } + } + } + //Below code to check and flip for flip mode all in the node. + else if (group.flip !== 'None' && selectedNode.flipMode === 'All') { + for (var i = 0; i < selectedNode.wrapper.children.length; i++) { + if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) { + innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement'); + this.renderFlipElement(group, innerLabelContent, group.flip); + } + } + this.renderFlipElement(group, innerNodeContent, group.flip); + } + //Below code to check and flip the element for None in the node. + else { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + } + } + //EJ2-826617 - Flip and flip mode option for BPMN node + if ((group.elementActions & _enum_enum__WEBPACK_IMPORTED_MODULE_9__["ElementAction"].ElementIsGroup) && diagram instanceof _diagram__WEBPACK_IMPORTED_MODULE_17__["Diagram"] && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') { + if (isNodeSelected && selectedNode) { + if (group.children && group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element'); + } + else { + innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement'); + } + //Below code to check and flip the node. + if (!(group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' || (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && selectedNode.flipMode === 'Port')) { + this.renderFlipElement(group, innerNodeContent, selectedNode.flip); + return; + } + //Below code to check and flip the node except for flip mode Port. + else if (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + if (group.flip !== 'None' && selectedNode.flipMode === 'None') { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + //Below code to check and flip the text element in the node. + else if (group.flip !== 'None' && selectedNode.flipMode === 'Label' || (group.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"] && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) { + for (var i_2 = 0; i_2 < selectedNode.wrapper.children.length; i_2++) { + if (selectedNode.wrapper.children[parseInt(i_2.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) { + innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i_2.toString(), 10)].id + '_groupElement'); + this.renderFlipElement(group, innerLabelContent, group.flip); + return; + } + } + } + //Below code to check and flip for flip mode all in the node. + else if (group.flip !== 'None' && selectedNode.flipMode === 'All') { + for (var i = 0; i < selectedNode.wrapper.children.length; i++) { + if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_2__["TextElement"]) { + innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement'); + this.renderFlipElement(group, innerLabelContent, group.flip); + } + } + this.renderFlipElement(group, innerNodeContent, group.flip); + } + //Below code to check and flip the element for None in the node. + else { + this.renderFlipElement(group, innerNodeContent, group.flip); + } + } + } + } + }; + DiagramRenderer.prototype.renderFlipElement = function (element, canvas, flip) { + var attr = {}; + var scaleX = 1; + var scaleY = 1; + var posX = 0; + var posY = 0; + var offsetX = 0; + var offsetY = 0; + if (flip !== 'None') { + if (flip === 'Horizontal' || flip === 'Both') { + posX = element.bounds.center.x; + offsetX = -element.bounds.center.x; + scaleX = -1; + } + if (flip === 'Vertical' || flip === 'Both') { + posY = element.bounds.center.y; + offsetY = -element.bounds.center.y; + scaleY = -1; + } + attr = { + 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ',' + + scaleY + ') translate(' + offsetX + ',' + offsetY + ')' + }; + } + else { + attr = { + 'transform': 'translate(' + 0 + ',' + 0 + ')' + }; + } + if (attr) { + if (element && element.children && + element.children.length && (element.children[0] instanceof _core_elements_html_element__WEBPACK_IMPORTED_MODULE_14__["DiagramHtmlElement"])) { + var id = canvas.id.split('_preview'); + var layer = document.getElementById(id[0] + '_html_div') || + (Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getHTMLLayer"])(this.diagramId).children[0]); + canvas = layer.querySelector(('#' + element.id + '_content_html_element')); + if (canvas) { + canvas.style.transform = + 'scale(' + scaleX + ',' + scaleY + ')' + 'rotate(' + (element.rotateAngle + element.parentTransform) + 'deg)'; + } + } + else { + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(canvas, attr); + } + } + }; + /** + * Method used to check the native parent \ + * + * @returns {void} Method used to check the native parent .\ + * + * @param { DiagramElement[]} children - Provide the diagram element . + * @param { number} count - Provide the count value . + * @private + */ + DiagramRenderer.prototype.hasNativeParent = function (children, count) { + if (children && children.length > 0 && (count || 0 < 3)) { + var child = children[0]; + if (child instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_13__["DiagramNativeElement"]) { + return child; + } + else if (child.children && child.children.length) { + this.hasNativeParent(child.children, count++ || 0); + } + } + return undefined; + }; + /** + * Method used the draw the reactangle for the diagram \ + * + * @returns {void} Method used the draw the reactangle for the diagram .\ + * + * @param { SVGElement} element - Provide the SVG elements . + * @param { RectAttributes} canvas - Provide the Canvas element . + * @param { RectAttributes} transform - Provide transform value for the node . + * @param { RectAttributes} parentSvg -provide the parent SVG . + * @param { RectAttributes} isPreviewNode - Provide the preview boolean value . + * @private + */ + DiagramRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg, isPreviewNode) { + var options = this.getBaseAttributes(element, transform, isPreviewNode); + options.cornerRadius = element.cornerRadius || 0; + if (element.isExport) { + options.cornerRadius *= element.exportScaleValue.x; + } + var ariaLabel = element.description ? element.description : element.id; + this.renderer.drawRectangle(canvas, options, this.diagramId, element.isExport, undefined, parentSvg, ariaLabel); + }; + /** + * Method used the draw the reactangle for the diagram \ + * + * @returns {void} Method used the draw the reactangle for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG elements . + * @param { RectAttributes} options - Provide the attributes to draw the rectangle . + * @private + */ + DiagramRenderer.prototype.drawRect = function (canvas, options) { + options.cornerRadius = 0; + this.svgRenderer.drawRectangle(canvas, options, this.diagramId); + }; + /** + * Will get the base attributes for all the elements \ + * + * @returns {BaseAttributes} Will get the base attributes for all the elements .\ + * + * @param { DiagramElement} element - Provide the diagram elements . + * @param { Transforms} transform - Provide the transform value for the elements . + * @param { boolean} isPreviewNode - Provide the preview boolean value. + * @private + */ + DiagramRenderer.prototype.getBaseAttributes = function (element, transform, isPreviewNode) { + var options = { + width: element.actualSize.width, height: element.actualSize.height, + x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5, + y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5, + fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform, + pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth, + dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity, shadow: element.shadow, + gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description, + canApplyStyle: element.canApplyStyle, shapeType: element.shapeType + }; + if (isPreviewNode) { + options.x = options.x - .5; + options.y = options.y - .5; + } + if (element.isExport) { + options.width *= element.exportScaleValue.x; + options.height *= element.exportScaleValue.y; + options.x *= element.exportScaleValue.x; + options.y *= element.exportScaleValue.y; + options.strokeWidth *= element.exportScaleValue.x; + } + if (element.flip) { + options.flip = element.flip; + } + if (transform) { + options.x += transform.tx; + options.y += transform.ty; + } + return options; + }; + /** + * Will render the SVG background image \ + * + * @returns {void} Will render the SVG background image .\ + * + * @param { Transforms} background - Provide the transforms values . + * @param { boolean} diagramElement - Provide element for the daigram. + * @param { boolean} x - Provide the rendering mode of the daigram. + * @param { boolean} y - Provide the rendering mode of the daigram. + * @param { boolean} width - Provide the rendering mode of the daigram. + * @param { boolean} height - Provide the rendering mode of the daigram. + * @private + */ + DiagramRenderer.renderSvgBackGroundImage = function (background, diagramElement, x, y, width, height) { + if (background.source) { + var backgroundLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getBackgroundLayerSvg"])(diagramElement.id); + var target = backgroundLayer.getElementById(diagramElement.id + '_image'); + if (!target) { + var bgimageLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getBackgroundImageLayer"])(diagramElement.id); + target = document.createElementNS('http://www.w3.org/2000/svg', 'image'); + target.setAttribute('id', diagramElement.id + '_image'); + bgimageLayer.appendChild(target); + } + var imageObj = new Image(); + imageObj.src = background.source; + target.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString()); + var scale = background.scale !== 'None' ? background.scale : ''; + var imgAlign = background.align; + var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1); + if (scale) { + aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1); + } + var attr = { + 'id': diagramElement.id + '_image', 'x': x, 'y': y, + 'width': width, 'height': height, + 'preserveAspectRatio': aspectRatio + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["setAttributeSvg"])(target, attr); + } + }; + /** + * Method used to transform the layer \ + * + * @returns {boolean} Method used to transform the layer .\ + * @param { Transforms} transform - Provide the transforms values . + * @param { boolean} svgMode - Provide the rendering mode of the daigram. + * @private + */ + DiagramRenderer.prototype.transformLayers = function (transform, svgMode) { + var tx = transform.tx * transform.scale; + var ty = transform.ty * transform.scale; + var domTable = 'domTable'; + if (tx !== this.transform.x || ty !== this.transform.y || (tx === 0 || ty === 0)) { + //diagram layer + if (svgMode) { + if (!window["" + domTable][this.diagramId + '_diagramLayer']) { + window["" + domTable][this.diagramId + '_diagramLayer'] = + this.diagramSvgLayer.getElementById(this.diagramId + '_diagramLayer'); + } + var diagramLayer = window["" + domTable][this.diagramId + '_diagramLayer']; + diagramLayer.setAttribute('transform', 'translate(' + + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale(' + + transform.scale + ')'); + } + //background + //gridline + var gridLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getGridLayer"])(this.diagramId); + gridLayer.setAttribute('transform', 'translate(' + (transform.tx * transform.scale) + ',' + + (transform.ty * transform.scale) + ')'); + //portslayer + if (!window["" + domTable][this.diagramId + '_diagramPorts']) { + window["" + domTable][this.diagramId + '_diagramPorts'] = this.iconSvgLayer.getElementById(this.diagramId + '_diagramPorts'); + } + var portsLayer = window["" + domTable][this.diagramId + '_diagramPorts']; + portsLayer.setAttribute('transform', 'translate(' + + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale(' + + transform.scale + ')'); + //expandlayer + if (!window["" + domTable][this.diagramId + '_diagramExpander']) { + window["" + domTable][this.diagramId + '_diagramExpander'] = + this.iconSvgLayer.getElementById(this.diagramId + '_diagramExpander'); + } + var expandLayer = window["" + domTable][this.diagramId + '_diagramExpander']; + expandLayer.setAttribute('transform', 'translate(' + + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale(' + + transform.scale + ')'); + //nativelayer + if (!window["" + domTable][this.diagramId + '_nativeLayer']) { + window["" + domTable][this.diagramId + '_nativeLayer'] = this.nativeSvgLayer.getElementById(this.diagramId + '_nativeLayer'); + } + var nativeLayer = window["" + domTable][this.diagramId + '_nativeLayer']; + nativeLayer.setAttribute('transform', 'translate(' + + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale(' + + transform.scale + ')'); + //htmlLayer + var htmlLayer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_8__["getHTMLLayer"])(this.diagramId).children[0]; + htmlLayer.style.transform = 'translate(' + + (transform.tx * transform.scale) + 'px,' + (transform.ty * transform.scale) + 'px)scale(' + + transform.scale + ')'; + this.transform = { x: transform.tx * transform.scale, y: transform.ty * transform.scale }; + return true; + } + return false; + }; + /** + * Method used to update the nodes in the diagram \ + * + * @returns {void} Method used to update the nodes in the diagram .\ + * @param { HTMLCanvasElement} element - Provide the diagram element . + * @param { HTMLCanvasElement} diagramElementsLayer - Provide the diagram layer element . + * @param { HTMLCanvasElement} htmlLayer -Provide the html element . + * @param { HTMLCanvasElement} transform - Provide the transform value . + * @param { HTMLCanvasElement} insertIndex - Provide the index value. + * @param { object} centerPoint - Provide the center point value. + * @private + */ + DiagramRenderer.prototype.updateNode = function (element, diagramElementsLayer, htmlLayer, transform, insertIndex, centerPoint) { + this.renderElement(element, diagramElementsLayer, htmlLayer, transform, this.getParentSvg(element), undefined, undefined, insertIndex, null, centerPoint); + }; + return DiagramRenderer; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js": +/*!**************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js ***! + \**************************************************************************************/ +/*! exports provided: SvgRenderer */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgRenderer", function() { return SvgRenderer; }); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + + + + + + + + + + +/** + * SVG Renderer + */ +/** @private */ +var SvgRenderer = /** @__PURE__ @class */ (function () { + function SvgRenderer() { + } + /** + * Draw the shawdow for the rectangle shape in diagram \ + * + * @returns {void} Draw the shawdow for the rectangle shape in diagram .\ + * + * @param { SVGElement} options - Provide the base attributes . + * @param { RectAttributes} canvas - Provide the canvas values . + * @param { string} collection - Provide the collection value. + * @param { boolean} parentSvg - Provide the parent SVG values . + * @private + */ + SvgRenderer.prototype.renderShadow = function (options, canvas, collection, parentSvg) { + if (collection === void 0) { collection = null; } + var pointModel = { x: 0, y: 0 }; + var point = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform(pointModel, options.shadow.angle, options.shadow.distance); + //const tX: number = options.x + point.x; const tY: number = options.y + point.y; + //let pivotX: number = tX + options.width * options.pivotX; + //let pivotY: number = tY + options.height * options.pivotY; + var type; + var shadowElement; + if (parentSvg) { + shadowElement = parentSvg.getElementById(canvas.id + '_shadow'); + } + if (!shadowElement) { + type = collection ? 'path' : 'rect'; + shadowElement = document.createElementNS('http://www.w3.org/2000/svg', type); + canvas.appendChild(shadowElement); + } + var attr = { + 'id': canvas.id + '_shadow', 'fill': options.shadow.color, 'stroke': options.shadow.color, + 'opacity': options.shadow.opacity.toString(), + 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ',' + + (options.y + options.height * options.pivotY) + ')' + + 'translate(' + (options.x + point.x) + ',' + (options.y + point.y) + ')' + }; + if (parentSvg) { + var svgContainer = parentSvg.getElementById(canvas.id); + if (svgContainer) { + svgContainer.insertBefore(shadowElement, svgContainer.firstChild); + } + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(shadowElement, attr); + if (!collection) { + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(shadowElement, { 'width': options.width, 'height': options.height }); + } + else if (collection) { + this.renderPath(shadowElement, options, collection); + } + }; + /** + * Return the dashed array values \ + * + * @returns {number[]} Return the dashed array values .\ + * @param { SVGElement} dashArray - Return the dashed array values . + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + SvgRenderer.prototype.parseDashArray = function (dashArray) { + var dashes = []; + return dashes; + }; + /** + * Draw the Rectangle for the diagram \ + * + * @returns {void} Draw the Rectangle for the diagram .\ + * + * @param { SVGElement} svg - Provide the SVG . + * @param { RectAttributes} options - Provide the Rect attributes . + * @param { string} diagramId - Provide the diagram id . + * @param { boolean} onlyRect - Provide the boolean attribute for the shawdow rendering . + * @param { boolean} isSelector - Provide the selector possobilities . + * @param { SVGSVGElement} parentSvg - Provide the parent svg element . + * @param { Object} ariaLabel - Provide the Arial label attributes . + * @param { boolean} isCircularHandle - Provide the boolean attribute for the circular handle . + * @param { number} enableSelector - Provide the selector possobilities . + * @private + */ + SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel, isCircularHandle, enableSelector) { + if (options.shadow && !onlyRect) { + this.renderShadow(options, svg, undefined, parentSvg); + } + var id; + if (options.id === svg.id) { + id = options.id + '_container'; + } + else { + id = options.id; + } + var rect; + if (parentSvg) { + rect = parentSvg.getElementById(id); + } + if (!rect || isSelector) { + rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + svg.appendChild(rect); + } + var shadowElement; + if (parentSvg && !options.shadow) { + shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow'); + if (shadowElement) { + shadowElement.parentNode.removeChild(shadowElement); + } + } + var attr; + // EJ2-65895 - Added below code to calculate the transform to render the circular handle + if (isCircularHandle) { + attr = { + 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(), + 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden', + 'transform': 'rotate(' + options.angle + ',' + + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')', + 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity + }; + } + else { + attr = { + 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(), + 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden', + 'transform': 'rotate(' + options.angle + ',' + + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')', + 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity + }; + } + if (ariaLabel) { + // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test + attr['role'] = 'img'; + attr['aria-label'] = ariaLabel; + } + var classval = options.class || ''; + if (!enableSelector) { + if (classval.includes('e-diagram-resize-handle') || classval.includes('e-diagram-endpoint-handle') || classval.includes('e-diagram-bezier-control-handle')) { + classval += ' e-disabled'; + } + } + if (options.class) { + attr['class'] = classval; + } + var poiterEvents = 'pointer-events'; + if (!ariaLabel) { + attr["" + poiterEvents] = 'none'; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(rect, attr); + this.setSvgStyle(rect, options, diagramId); + }; + /** + * Update the diagram selection region \ + * + * @returns {void} Update the diagram selection region .\ + * + * @param { SVGElement} gElement - Provide the element type. + * @param { RectAttributes} options - Provide the Rect attributes . + * @private + */ + SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) { + var rect; + rect = gElement.parentNode.getElementById(options.id); + var attr = { + 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(), + 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ',' + + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')', + class: 'e-diagram-selected-region' + }; + if (!rect) { + rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + gElement.appendChild(rect); + } + this.setSvgStyle(rect, options); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(rect, attr); + }; + /** + * Create the g element for the diagram \ + * + * @returns {SVGGElement} Create the g element for the diagram .\ + * + * @param { SVGElement} elementType - Provide the element type. + * @param { Object} attribute - Provide the attributes for the g element. + * @private + */ + SvgRenderer.prototype.createGElement = function (elementType, attribute) { + var gElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["createSvgElement"])(elementType, attribute); + return gElement; + }; + /** + * Draw the line for the diagram\ + * + * @returns {void} Draw the line for the diagram .\ + * + * @param { SVGElement} gElement - Provide the g element . + * @param { LineAttributes} options - Provide the line element attributes . + * @private + */ + SvgRenderer.prototype.drawLine = function (gElement, options) { + var line = document.createElementNS('http://www.w3.org/2000/svg', 'line'); + this.setSvgStyle(line, options); + var pivotX = options.x + options.width * options.pivotX; + var pivotY = options.y + options.height * options.pivotY; + //const kk: string = ''; + var attr = { + 'id': options.id, + 'x1': options.startPoint.x + options.x, + 'y1': options.startPoint.y + options.y, + 'x2': options.endPoint.x + options.x, + 'y2': options.endPoint.y + options.y, + 'stroke': options.stroke, + 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(), + 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')', + 'visibility': options.visible ? 'visible' : 'hidden' + }; + if (options.class) { + attr['class'] = options.class; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(line, attr); + gElement.appendChild(line); + }; + /** + * Draw the circle for the diagram\ + * + * @returns {void} Draw the circle for the diagram .\ + * + * @param { SVGElement} gElement - Provide the g element . + * @param { CircleAttributes} options - Provide the circle element attributes . + * @param {string} enableSelector - Provide the selector constraints string . + * @param {Object} ariaLabel - Provide arial label value . + * @private + */ + SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) { + var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + this.setSvgStyle(circle, options); + var classval = options.class || ''; + if (!enableSelector) { + classval += ' e-disabled'; + } + var attr = { + 'id': options.id, + 'cx': options.centerX, + 'cy': options.centerY, + 'r': options.radius, + 'visibility': options.visible ? 'visible' : 'hidden', + 'class': classval + }; + if (ariaLabel) { + // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test + attr['role'] = 'img'; + attr['aria-label'] = ariaLabel; + } + circle.style.display = options.visible ? 'block' : 'none'; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(circle, attr); + gElement.appendChild(circle); + }; + /** + * Draw the path element for the diagram\ + * + * @returns {void} Draw the path element for the diagram .\ + * + * @param { SVGElement} svg - Provide the SVG element . + * @param { PathAttributes} options - Provide the path element attributes . + * @param {string} diagramId - Provide the diagram id . + * @param {boolean} isSelector - Provide selector boolean value . + * @param {SVGSVGElement} parentSvg - Provide the parent SVG element . + * @param {Object} ariaLabel - Provide arial label value . + * @param {number} scale - Provide the scale value . + * @private + */ + SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel, scale) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var x = Math.floor((Math.random() * 10) + 1); + //const id: string = svg.id + '_shape' + x.toString(); + var collection = []; + collection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_2__["processPathData"])(options.data); + collection = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_2__["pathSegmentCollection"])(collection); + if (options.shadow) { + this.renderShadow(options, svg, collection, parentSvg); + } + var shadowElement; + if (parentSvg && !options.shadow) { + shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow'); + if (shadowElement) { + shadowElement.parentNode.removeChild(shadowElement); + } + } + var path; + if (parentSvg) { + path = parentSvg.getElementById(options.id); + } + if (!path || isSelector) { + path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + svg.appendChild(path); + } + this.renderPath(path, options, collection); + var attr = {}; + if (scale) { + attr = { + 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ',' + + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + '),scale(' + scale + ')', + 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity + }; + } + else { + attr = { + 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ',' + + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')', + 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity + }; + } + if (ariaLabel) { + // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test + attr['role'] = 'img'; + attr['aria-label'] = ariaLabel; + } + if (options.class) { + attr['class'] = options.class; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(path, attr); + this.setSvgStyle(path, options, diagramId); + }; + /** + * Draw the path element for the diagram\ + * + * @returns {void} Draw the path element for the diagram .\ + * + * @param { SVGElement} svg - Provide the SVG element . + * @param {PathAttributes} options - Provide the path element attributes . + * @param {Object[]} collection - Provide the parent SVG element . + * @private + */ + SvgRenderer.prototype.renderPath = function (svg, options, collection) { + var x1; + var y1; + var x2; + var y2; + var x; + var y; + var length; + var i; + var segments = collection; + var d = ''; + for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) { + var obj = segments[parseInt(i.toString(), 10)]; + var segment = obj; + var char = segment.command; + if ('x1' in segment) { + x1 = segment.x1; + } + if ('x2' in segment) { + x2 = segment.x2; + } + if ('y1' in segment) { + y1 = segment.y1; + } + if ('y2' in segment) { + y2 = segment.y2; + } + if ('x' in segment) { + x = segment.x; + } + if ('y' in segment) { + y = segment.y; + } + switch (char) { + case 'M': + d = d + 'M' + x.toString() + ',' + y.toString() + ' '; + break; + case 'L': + d = d + 'L' + x.toString() + ',' + y.toString() + ' '; + break; + case 'C': + d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ','; + d += x.toString() + ',' + y.toString() + ' '; + break; + case 'Q': + d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' '; + break; + case 'A': + d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ','; + d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' '; + break; + case 'Z': + case 'z': + d = d + 'Z' + ' '; + break; + } + } + svg.setAttribute('d', d); + }; + SvgRenderer.prototype.setSvgFontStyle = function (text, options) { + text.style.fontStyle = options.italic ? 'italic' : 'normal'; + text.style.fontWeight = options.bold ? 'bold' : 'normal'; + text.style.fontSize = options.fontSize.toString() + 'px'; + text.style.fontFamily = options.fontFamily; + }; + /** + * Draw the text element for the diagram\ + * + * @returns {void} Draw the text element for the diagram .\ + * + * @param { SVGElement} canvas - Provide the SVG element . + * @param {TextAttributes} options - Provide the text element attributes . + * @param {SVGSVGElement} parentSvg - Provide the parent SVG element . + * @param {Object} ariaLabel - Provide the label properties . + * @param {string} diagramId - Provide the diagram id . + * @param {number} scaleValue - Provide the scale value . + * @param {Container} parentNode - Provide the parent node . + * @private + */ + SvgRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) { + if (options.content !== undefined) { + var textNode = void 0; + var childNodes = void 0; + var wrapBounds = void 0; + var position = void 0; + var child = void 0; + var tspanElement = void 0; + var offsetX = 0; + var offsetY = 0; + var i = 0; + var text = void 0; + var nodeContent = void 0; + if (parentSvg) { + text = parentSvg.getElementById(options.id + '_text'); + } + if (text) { + if (options.doWrap) { + while (text.firstChild) { + text.removeChild(text.firstChild); + } + } + } + else { + options.doWrap = true; + text = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + if (options.whiteSpace === 'pre-wrap') { + text.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'); + } + if (parentNode) { + nodeContent = document.getElementById(parentNode.id + '_content_groupElement'); + } + if (nodeContent && parentNode && parentNode.children && parentNode.children[0] instanceof _core_elements_native_element__WEBPACK_IMPORTED_MODULE_6__["DiagramNativeElement"]) { + var textTag = this.createGElement('g', { id: ariaLabel + '_groupElement' }); + nodeContent.appendChild(textTag); + textTag.appendChild(text); + } + else { + canvas.appendChild(text); + } + } + var pivotX = options.x + options.width * options.pivotX; + var pivotY = options.y + options.height * options.pivotY; + var childNodesHeight = 0; + if (options.doWrap || options.textOverflow !== 'Wrap') { + //(EJ2-70658)- Node annotation disappear, while giving same id for annotation in two different diagrams + //Added the below code for removing the extra span element that added when we double click the text annotation node + while (text.firstChild) { + text.removeChild(text.firstChild); + } + this.setSvgStyle(text, options, diagramId); + this.setSvgFontStyle(text, options); + textNode = document.createTextNode(options.content); + childNodes = options.childNodes; + wrapBounds = options.wrapBounds; + position = this.svgLabelAlign(options, wrapBounds, childNodes); + if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') { + childNodes[0].text = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["overFlow"])(options.content, options); + } + for (i = 0; i < childNodes.length; i++) { + tspanElement = document.createElementNS('http://www.w3.org/2000/svg', 'tspan'); + textNode = document.createTextNode(childNodes[parseInt(i.toString(), 10)].text); + child = childNodes[parseInt(i.toString(), 10)]; + child.x = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setChildPosition"])(child, childNodes, i, options); + offsetX = position.x + child.x - wrapBounds.x; + offsetY = position.y + child.dy * (i) + ((options.fontSize) * 0.8); + if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && + (options.textWrapping === 'WrapWithOverflow' || options.textWrapping === 'Wrap') && parentNode) { + var size = (options.isHorizontalLane) ? parentNode.actualSize.width : parentNode.actualSize.height; + if (offsetY < size) { + if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) { + var temp = childNodes[i + 1]; + var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8); + if (y > size) { + child.text = child.text.slice(0, child.text.length - 3); + child.text = child.text.concat('...'); + textNode.data = child.text; + } + } + this.setText(text, tspanElement, child, textNode, offsetX, offsetY); + childNodesHeight += child.dy; + } + else { + break; + } + } + else { + this.setText(text, tspanElement, child, textNode, offsetX, offsetY); + } + } + } + if (childNodesHeight && options.isHorizontalLane) { + pivotX = options.parentOffsetX + options.pivotX; + pivotY = options.parentOffsetY + options.pivotY; + options.y = options.parentOffsetY - childNodesHeight * options.pivotY + 0.5; + } + if (options.textDecoration && options.textDecoration === 'LineThrough') { + options.textDecoration = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["wordBreakToString"])(options.textDecoration); + } + var attr = { + 'id': options.id + '_text', 'fill': options.color, 'visibility': options.visible ? 'visible' : 'hidden', + 'text-decoration': options.textDecoration, 'transform': 'rotate(' + options.angle + ',' + + (pivotX) + ',' + (pivotY) + ')' + + 'translate(' + (options.x) + ',' + (options.y) + ')', 'opacity': options.opacity + }; + if (ariaLabel) { + // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test + attr['role'] = 'img'; + attr['aria-label'] = ariaLabel; + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(text, attr); + } + }; + SvgRenderer.prototype.setText = function (text, tspanElement, child, textNode, offsetX, offsetY) { + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString() }); + text.setAttribute('fill', child.text); + tspanElement.appendChild(textNode); + text.appendChild(tspanElement); + }; + /** + * Draw the image element for the diagram\ + * + * @returns {void} Draw the image element for the diagram . + * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element . + * @param {ImageAttributes} obj - Provide the image attributes . + * @param {SVGSVGElement} parentSvg - Provide the parent SVG element . + * @param {boolean} fromPalette - Provide the pointer event value . + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + SvgRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) { + ///const id: string = obj.id + '_image'; + var image; + if (parentSvg) { + image = parentSvg.getElementById(obj.id + 'image'); + } + if (!image) { + image = document.createElementNS('http://www.w3.org/2000/svg', 'image'); + canvas.appendChild(image); + } + var imageObj = new Image(); + imageObj.src = obj.source; + var scale = obj.scale !== 'None' ? obj.scale : ''; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_8__["isBlazor"])() && obj.alignment === 'None' && scale === 'Stretch') { + scale = ''; + } + var imgAlign = obj.alignment; + var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1); + if (scale !== 'Stretch') { + aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1); + } + var attr = { + 'id': obj.id + 'image', 'x': obj.x.toString(), 'y': obj.y.toString(), 'transform': 'rotate(' + obj.angle + ',' + + (obj.x + obj.width * obj.pivotX) + ',' + (obj.y + obj.height * obj.pivotY) + ')', + 'width': obj.width.toString(), 'visibility': obj.visible ? 'visible' : 'hidden', + 'height': obj.height.toString(), 'preserveAspectRatio': aspectRatio, + //832073 - Opacity when set to Zero for image node is not working + //opacity value is already set as '1' by default + 'opacity': obj.opacity.toString() + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(image, attr); + image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString()); + }; + /** + * Draw the HTML element for the diagram\ + * + * @returns {void} Draw the native element for the diagram. + * @param {DiagramHtmlElement} element - Provide the element . + * @param {HTMLElement} canvas - Provide the canvas element . + * @param {Transforms} transform - Provide the transform value . + * @param {boolean} value - Provide the pointer event value . + * @param {number} indexValue - Provide the index value . + * @private + */ + SvgRenderer.prototype.drawHTMLContent = function (element, canvas, transform, value, indexValue) { + var htmlElement; + var parentHtmlElement; + if (canvas) { + var i = void 0; + var j = void 0; + var parentElement = void 0; + for (i = 0; i < canvas.childNodes.length; i++) { + parentElement = canvas.childNodes[parseInt(i.toString(), 10)]; + for (j = 0; j < parentElement.childNodes.length; j++) { + if (parentElement.childNodes[parseInt(j.toString(), 10)].id === element.id + '_html_element') { + htmlElement = parentElement.childNodes[parseInt(j.toString(), 10)]; + break; + } + } + } + } + if (!htmlElement) { + parentHtmlElement = canvas.querySelector(('#' + element.id + '_html_element')) || + canvas.querySelector(('#' + element.nodeId + '_html_element')); + if (!parentHtmlElement) { + var attr_1 = { + 'id': element.nodeId + '_html_element', + 'class': 'foreign-object' + }; + parentHtmlElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["createHtmlElement"])('div', attr_1); + } + var attr = { + 'id': element.id + '_html_element', + 'class': 'foreign-object' + }; + htmlElement = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["createHtmlElement"])('div', attr); + var isOverviewLayer = false; + if (canvas.parentNode && canvas.parentNode.parentNode && canvas.parentNode.parentNode.parentNode && canvas.parentNode.parentNode.parentNode.classList.contains('e-overview')) { + isOverviewLayer = true; + } + if (isOverviewLayer) { + htmlElement.appendChild(element.template.cloneNode(true)); + } + else { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + element.isTemplate ? htmlElement.appendChild(element.template) : htmlElement.appendChild(element.template.cloneNode(true)); + } + if (indexValue !== undefined && canvas.childNodes.length > indexValue) { + canvas.insertBefore(htmlElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]); + } + parentHtmlElement.appendChild(htmlElement); + canvas.appendChild(parentHtmlElement); + } + var point = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_4__["cornersPointsBeforeRotation"])(element).topLeft; + htmlElement.setAttribute('style', 'height:' + (element.actualSize.height) + 'px; width:' + (element.actualSize.width) + + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' + + 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' + + 'pointer-events:' + (value ? 'all' : 'none') + + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';'); + }; + /** + * Draw the native element for the diagram\ + * + * @returns {void} Draw the native element for the diagram. + * @param {DiagramNativeElement} element - Provide the node element . + * @param {HTMLCanvasElement} canvas - Provide the SVG element . + * @param {number} height - Provide the height for the shape . + * @param {number} width - Provide the width for the shape . + * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape . + * @private + */ + SvgRenderer.prototype.drawNativeContent = function (element, canvas, height, width, parentSvg) { + var nativeElement; + var clipPath; + if (parentSvg) { + nativeElement = parentSvg.getElementById(element.id + '_native_element'); + clipPath = parentSvg.getElementById(element.id + '_clip'); + } + if (!nativeElement) { + nativeElement = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + nativeElement.setAttribute('id', element.id + '_native_element'); + nativeElement.appendChild(element.template.cloneNode(true)); + var svgContentTag = this.createGElement('g', { id: element.id + '_inner_native_element' }); + svgContentTag.appendChild(nativeElement); + canvas.appendChild(svgContentTag); + } + if (clipPath) { + nativeElement.removeChild(clipPath); + } + nativeElement.setAttribute('style', 'visibility:' + + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';'); + this.setNativTransform(element, nativeElement, height, width); + if (element.scale === 'Slice') { + this.drawClipPath(element, nativeElement, height, width, parentSvg); + } + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(nativeElement, element.description ? { 'role': 'img', 'aria-label': element.description } : {}); + }; + SvgRenderer.prototype.setNativTransform = function (element, nativeElement, height, width) { + //let angle: number; + var contentWidth = element.contentSize.width !== 0 ? element.contentSize.width : 1; + var contentHeight = element.contentSize.height !== 0 ? element.contentSize.height : 1; + var x = element.templatePosition.x * width / contentWidth; + var y = element.templatePosition.y * height / contentHeight; + nativeElement.setAttribute('transform', 'rotate(' + element.parentTransform + ',' + element.offsetX + ',' + element.offsetY + + ') translate(' + (element.offsetX - x - width * element.pivot.x) + ',' + (element.offsetY - y - height * element.pivot.y) + + ') scale(' + (width / contentWidth) + ',' + (height / contentHeight) + ')'); + }; + /** + *used to crop the given native element into a rectangle of the given size .\ + * + * @returns {SVGElement} used to crop the given native element into a rectangle of the given size. + * @param {DiagramNativeElement} node - Provide the node element . + * @param {SVGElement} group - Provide the SVG element . + * @param {number} height - Provide the height for the shape . + * @param {number} width - Provide the width for the shape . + * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape . + * @private + */ + SvgRenderer.prototype.drawClipPath = function (node, group, height, width, parentSvg) { + var contentWidth = node.contentSize.width; + var contentHeight = node.contentSize.height; + //let actualWidth: number = node.actualSize.width; + //let actualHeight: number = node.actualSize.height; + var clipWidth = node.width / (width / contentWidth); + var clipHeight = node.height / (height / contentHeight); + var x = node.templatePosition.x + (node.width >= node.height ? 0 : (contentWidth - clipWidth) / 2); + var y = node.templatePosition.y + (node.height >= node.width ? 0 : (contentHeight - clipHeight) / 2); + var clipPath = parentSvg.getElementById(node.id + '_clip'); + clipPath = document.createElementNS('http://www.w3.org/2000/svg', 'clipPath'); + clipPath.setAttribute('id', node.id + '_clip'); + group.appendChild(clipPath); + var rect = parentSvg.getElementById(node.id + '_clip_rect'); + rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); + clipPath.appendChild(rect); + var attr = { + 'id': node.id + '_clip_rect', 'width': clipWidth.toString(), 'height': clipHeight.toString(), + 'x': x.toString(), 'y': y.toString() + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(rect, attr); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["checkBrowserInfo"])()) { + group.setAttribute('clip-path', 'url(' + location.protocol + '//' + location.host + location.pathname + + '#' + node.id + '_clip)'); + } + else { + group.setAttribute('clip-path', 'url(#' + node.id + '_clip)'); + } + return group; + }; + /** + * Draw the gradient for the diagram shapes .\ + * + * @returns {SVGElement} Draw the gradient for the diagram shapes. + * @param {StyleAttributes} options - Provide the options for the gradient element . + * @param {SVGElement} svg - Provide the SVG element . + * @param {string} diagramId - Provide the diagram id . + * @private + */ + SvgRenderer.prototype.renderGradient = function (options, svg, diagramId) { + var max; + var min; + var grd; + var svgContainer = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["getBackgroundLayerSvg"])(diagramId); + var defs = svgContainer.getElementById(diagramId + 'gradient_pattern'); + if (!defs) { + defs = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["createSvgElement"])('defs', { id: diagramId + 'gradient_pattern' }); + svgContainer.insertBefore(defs, svgContainer.firstChild); + } + var radial; + var linear; //let stop: StopModel; let offset: number; + Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["removeGradient"])(svg.id); + if (options.gradient.type !== 'None') { + for (var i = 0; i < options.gradient.stops.length; i++) { + max = !max ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset); + min = !min ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset); + } + if (options.gradient.type === 'Linear') { + linear = options.gradient; + linear.id = svg.id + '_linear'; + grd = this.createLinearGradient(linear); + defs.appendChild(grd); + } + else { + radial = options.gradient; + radial.id = svg.id + '_radial'; + grd = this.createRadialGradient(radial); + defs.appendChild(grd); + } + for (var i = 0; i < options.gradient.stops.length; i++) { + var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)]; + var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max; + var stopElement = document.createElementNS('http://www.w3.org/2000/svg', 'stop'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(stopElement, { 'offset': offset.toString(), 'style': 'stop-color:' + stop_1.color }); + grd.appendChild(stopElement); + } + } + return grd; + }; + /** + * Draw the Linear gradient for the diagram .\ + * + * @returns {SVGElement} Draw the Linear gradient for the diagram. + * @param {LinearGradientModel} linear - Provide the objects for the gradient element . + * @private + */ + SvgRenderer.prototype.createLinearGradient = function (linear) { + var lineargradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient'); + var attr = { + 'id': linear.id, 'x1': linear.x1 + '%', 'y1': linear.y1 + '%', 'x2': linear.x2 + '%', 'y2': linear.y2 + '%' + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(lineargradient, attr); + return lineargradient; + }; + /** + * Draw the radial gradient for the diagram .\ + * + * @returns {SVGElement} Draw the radial gradient for the diagram. + * @param {RadialGradientModel} radial - Provide the objects for the gradient element . + * @private + */ + SvgRenderer.prototype.createRadialGradient = function (radial) { + var radialgradient = document.createElementNS('http://www.w3.org/2000/svg', 'radialGradient'); + var attr = { + 'id': radial.id, 'cx': radial.cx + '%', 'cy': radial.cy + '%', 'r': radial.r + '%', 'fx': radial.fx + '%', 'fy': radial.fy + '%' + }; + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_3__["setAttributeSvg"])(radialgradient, attr); + return radialgradient; + }; + /** + * Set the SVG style for the SVG elements in the diagram.\ + * + * @returns {void} + * @param {SVGElement} svg - Provide the canvas element . + * @param {StyleAttributes} style - Provide the canvas element . + * @param {string} diagramId - Provide the canvas element . + * @private + */ + SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) { + if (style.canApplyStyle || style.canApplyStyle === undefined) { + if (style.fill === 'none') { + style.fill = 'transparent'; + } + if (style.stroke === 'none') { + style.stroke = 'transparent'; + } + var dashArray = []; + var fill = void 0; + if (style.dashArray) { + var canvasRenderer = new _rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_5__["CanvasRenderer"](); + dashArray = canvasRenderer.parseDashArray(style.dashArray); + } + if (style.gradient && style.gradient.type !== 'None' && diagramId) { + var grd = this.renderGradient(style, svg, diagramId); + if (Object(_utility_diagram_util__WEBPACK_IMPORTED_MODULE_7__["checkBrowserInfo"])()) { + fill = 'url(' + location.protocol + '//' + location.host + location.pathname + '#' + grd.id + ')'; + } + else { + fill = 'url(#' + grd.id + ')'; + } + } + else { + fill = style.fill; + } + if (style.stroke) { + svg.setAttribute('stroke', style.stroke); + } + if (style.strokeWidth !== undefined && style.strokeWidth !== null) { + svg.setAttribute('stroke-width', style.strokeWidth.toString()); + } + if (dashArray) { + svg.setAttribute('stroke-dasharray', dashArray.toString() || 'none'); + } + if (fill) { + svg.setAttribute('fill', fill); + } + } + }; + //end region + // text utility + /** + * Draw the SVG label.\ + * + * @returns {PointModel} Draw the SVG label . + * @param {TextAttributes} text - Provide the canvas element . + * @param {Object} wrapBound - Provide the canvas element . + * @param {SubTextElement []} childNodes - Provide the canvas element . + * @private + */ + SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) { + var bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](wrapBound.width, childNodes.length * (text.fontSize * 1.2)); + var pos = { x: 0, y: 0 }; + var x = 0; + var y = 1.2; + var offsetX = text.width * 0.5; + var offsety = text.height * 0.5; + var pointX = offsetX; + var pointY = offsety; + if (text.textAlign === 'left') { + pointX = 0; + } + else if (text.textAlign === 'center') { + if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) { + if (text.textWrapping === 'NoWrap') { + pointX = 0; + } + else { + pointX = text.width * 0.5; + } + } + else { + pointX = text.width * 0.5; + } + } + else if (text.textAlign === 'right') { + pointX = (text.width * 1); + } + pos.x = x + pointX + (wrapBound ? wrapBound.x : 0); + pos.y = y + pointY - bounds.height / 2; + return pos; + }; + return SvgRenderer; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js": +/*!***************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js ***! + \***************************************************************************/ +/*! exports provided: renderOverlapElement, renderRuler, updateRuler, removeRulerElements, getRulerSize, getRulerGeometry, removeRulerMarkers, drawRulerMarkers */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderOverlapElement", function() { return renderOverlapElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "renderRuler", function() { return renderRuler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateRuler", function() { return updateRuler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRulerElements", function() { return removeRulerElements; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRulerSize", function() { return getRulerSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRulerGeometry", function() { return getRulerGeometry; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRulerMarkers", function() { return removeRulerMarkers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawRulerMarkers", function() { return drawRulerMarkers; }); +/* harmony import */ var _utility_dom_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _ruler_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ruler/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/index.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); + + + + +/** + * defines the helper methods for the ruler + */ +/** + * renderOverlapElement method \ + * + * @returns {void} renderOverlapElement method .\ + * @param { Diagram} diagram - provide the content value. + * @private + */ +function renderOverlapElement(diagram) { + var rulerSize = getRulerSize(diagram); + var attributes = { + 'id': diagram.element.id + '_overlapRuler', + style: 'height:' + rulerSize.height + 'px;width:' + rulerSize.width + 'px;position:absolute;left:0;top:0', + class: 'e-ruler-overlap' + }; + var overlap = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_0__["createHtmlElement"])('div', attributes); + diagram.element.insertBefore(overlap, diagram.element.firstChild); +} +/** + * renderRuler method \ + * + * @returns {void} renderRuler method .\ + * @param { Diagram} diagram - provide the content value. + * @param { boolean} isHorizontal - provide the content value. + * @private + */ +function renderRuler(diagram, isHorizontal) { + var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler')); + var rulerSize = getRulerSize(diagram); + var rulerGeometry = getRulerGeometry(diagram); + var margin = isHorizontal ? ('margin-left:' + rulerSize.width + 'px;') : ('margin-top:' + rulerSize.height + 'px;'); + if (!div) { + var style = 'height:' + (isHorizontal ? rulerSize.height : (rulerGeometry.height + 100)) + 'px;overflow:hidden;width:' + + (isHorizontal ? (rulerGeometry.width + 100) : rulerSize.width) + 'px;position:absolute;font-size:11px;' + margin; + var attributes = { + 'id': diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'), + style: style + }; + div = Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_0__["createHtmlElement"])('div', attributes); + } + diagram.element.insertBefore(div, diagram.element.firstChild); + var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler; + var ruler = new _ruler_index__WEBPACK_IMPORTED_MODULE_1__["Ruler"](diagramRuler); + ruler.orientation = isHorizontal ? 'Horizontal' : 'Vertical'; + ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + diagramRuler.segmentWidth; + ruler.appendTo('#' + diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler')); + // eslint-disable-next-line + isHorizontal ? diagram.hRuler = ruler : diagram.vRuler = ruler; + var rulerObj = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler')); + // eslint-disable-next-line + isHorizontal ? diagram.hRuler.element = rulerObj : diagram.vRuler.element = rulerObj; +} +/** + * updateRuler method \ + * + * @returns {void} updateRuler method .\ + * @param { Diagram} diagram - provide the diagram value. + * @private + */ +function updateRuler(diagram) { + var hOffset = -diagram.scroller.horizontalOffset; + var vOffset = -diagram.scroller.verticalOffset; + if (diagram && diagram.rulerSettings.showRulers) { + diagram.hRuler.length = 0; + diagram.vRuler.length = 0; + if (hOffset !== undefined && diagram.hRuler.element) { + updateRulerDimension(diagram, diagram.hRuler, hOffset, true); + } + if (vOffset !== undefined && diagram.vRuler.element) { + updateRulerDimension(diagram, diagram.vRuler, vOffset, false); + } + } + else { + removeRulerElements(diagram); + } +} +/** + * removeRulerElements method \ + * + * @returns {void} removeRulerElements method .\ + * @param { Diagram} diagram - provide the diagram value. + * @private + */ +function removeRulerElements(diagram) { + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_0__["removeElement"])(diagram.element.id + '_hRuler'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_0__["removeElement"])(diagram.element.id + '_vRuler'); + Object(_utility_dom_util__WEBPACK_IMPORTED_MODULE_0__["removeElement"])(diagram.element.id + '_overlapRuler'); +} +/** + * getRulerSize method \ + * + * @returns {void} getRulerSize method .\ + * @param { Diagram} diagram - provide the diagram value. + * @private + */ +function getRulerSize(diagram) { + var top = 0; + var left = 0; + if (diagram.rulerSettings.showRulers) { + top = diagram.rulerSettings.horizontalRuler.thickness; + left = diagram.rulerSettings.verticalRuler.thickness; + } + return new _primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"](left, top); +} +/** + * getRulerGeometry method \ + * + * @returns {void} getRulerGeometry method .\ + * @param { Diagram} diagram - provide the diagram value. + * @private + */ +function getRulerGeometry(diagram) { + var rulerSize = getRulerSize(diagram); + var height = diagram.scroller.viewPortHeight; + var width = diagram.scroller.viewPortWidth; + if (width < diagram.element.clientWidth - rulerSize.width) { + width = diagram.element.clientWidth - rulerSize.width; + } + if (height < diagram.element.clientHeight - rulerSize.height) { + height = diagram.element.clientHeight - rulerSize.height; + } + if (diagram.hRuler && diagram.hRuler.length) { + width = diagram.hRuler.length; + } + if (diagram.vRuler && diagram.vRuler.length) { + height = diagram.vRuler.length; + } + return new _primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"](width, height); +} +/** + * removeRulerMarkers method \ + * + * @returns {void} removeRulerMarkers method .\ + * @private + */ +function removeRulerMarkers() { + var markers = document.getElementsByClassName('e-d-ruler-marker'); + var marker; + var i; + if (markers && markers.length > 0) { + for (i = markers.length - 1; i >= 0; i--) { + marker = markers[parseInt(i.toString(), 10)]; + if (marker) { + marker.parentNode.removeChild(marker); + } + } + } +} +/** + * drawRulerMarkers method \ + * + * @returns {void} drawRulerMarkers method .\ + * @param { Diagram} diagram - provide the content value. + * @param { PointModel} currentPoint - provide the content value. + * @private + */ +function drawRulerMarkers(diagram, currentPoint) { + if (diagram.rulerSettings.showRulers) { + diagram.hRuler.drawRulerMarker(diagram.hRuler.element, currentPoint, diagram.scroller.horizontalOffset); + diagram.vRuler.drawRulerMarker(diagram.vRuler.element, currentPoint, diagram.scroller.verticalOffset); + } +} +/** + * updateRulerDimension method \ + * + * @returns {void} updateRulerDimension method .\ + * @param { Diagram} diagram - provide the content value. + * @param { Ruler} ruler - provide the content value. + * @param { number} offset - provide the content value. + * @param { boolean} isHorizontal - provide the content value. + * @private + */ +function updateRulerDimension(diagram, ruler, offset, isHorizontal) { + var rulerSize = getRulerSize(diagram); + var rulerGeometry = getRulerGeometry(diagram); + var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler; + updateRulerDiv(diagram, rulerGeometry, isHorizontal); + updateRulerSpace(diagram, rulerGeometry, isHorizontal); + ruler.offset = offset; + ruler.scale = diagram.scroller.currentZoom; + ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + 100; + ruler.arrangeTick = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(diagramRuler.arrangeTick); + ruler.dataBind(); + var rulerObj = isHorizontal ? diagram.hRuler.element : diagram.vRuler.element; + if (isHorizontal) { + rulerObj.style.marginLeft = (rulerSize.width - ruler.hRulerOffset) + 'px'; + } + else { + rulerObj.style.marginTop = (rulerSize.height - ruler.vRulerOffset) + 'px'; + } +} +/** + * updateRulerSpace method \ + * + * @returns {void} updateRulerSpace method .\ + * @param { Diagram} diagram - provide the content value. + * @param { Size} rulerGeometry - provide the content value. + * @param { boolean} isHorizontal - provide the content value. + * @private + */ +function updateRulerSpace(diagram, rulerGeometry, isHorizontal) { + var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler_ruler_space' : '_vRuler_ruler_space')); + var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler; + if (div && diagram && rulerGeometry) { + div.style.width = (isHorizontal ? (rulerGeometry.width + (ruler.segmentWidth * 2)) : ruler.thickness) + 'px'; + div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + (ruler.segmentWidth * 2))) + 'px'; + } +} +/** + * updateRulerDiv method \ + * + * @returns {void} updateRulerDiv method .\ + * @param { Diagram} diagram - provide the content value. + * @param { Size} rulerGeometry - provide the content value. + * @param { boolean} isHorizontal - provide the content value. + * @private + */ +function updateRulerDiv(diagram, rulerGeometry, isHorizontal) { + var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler')); + var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler; + if (div && diagram && rulerGeometry) { + div.style.width = (isHorizontal ? (rulerGeometry.width + ruler.segmentWidth) : ruler.thickness) + 'px'; + div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + ruler.segmentWidth)) + 'px'; + // eslint-disable-next-line + div = document.getElementById(diagram.element.id + '_overlapRuler'); + if (div) { + // eslint-disable-next-line + isHorizontal ? (div.style.height = ruler.thickness + 'px') : (div.style.width = ruler.thickness + 'px'); + } + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js ***! + \*********************************************************************************/ +/*! exports provided: randomId, getIndex, templateCompiler, cornersPointsBeforeRotation, getBounds, cloneObject, getInternalProperties, cloneArray, extendObject, extendArray, textAlignToString, wordBreakToString, bBoxText, middleElement, overFlow, whiteSpaceToString, rotateSize, rotatePoint, getOffset, getFunction */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "randomId", function() { return randomId; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIndex", function() { return getIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "templateCompiler", function() { return templateCompiler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cornersPointsBeforeRotation", function() { return cornersPointsBeforeRotation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBounds", function() { return getBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return cloneObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInternalProperties", function() { return getInternalProperties; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneArray", function() { return cloneArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extendObject", function() { return extendObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extendArray", function() { return extendArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "textAlignToString", function() { return textAlignToString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wordBreakToString", function() { return wordBreakToString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bBoxText", function() { return bBoxText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "middleElement", function() { return middleElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "overFlow", function() { return overFlow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "whiteSpaceToString", function() { return whiteSpaceToString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotateSize", function() { return rotateSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rotatePoint", function() { return rotatePoint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOffset", function() { return getOffset; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunction", function() { return getFunction; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _dom_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _objects_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../objects/icon */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/icon.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); + + + + + + + + + + + + +/** + * Implements the basic functionalities + */ +/** + * Used to generate the random id \ + * + * @returns { boolean } Used to generate the random id .\ + * + * @private + */ +function randomId() { + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; + var id = ''; + var num; + for (var i = 0; i < 5; i++) { + if ('crypto' in window && 'getRandomValues' in crypto) { + var count = new Uint16Array(1); + // tslint:disable-next-line:no-any + var intCrypto = window.msCrypto || window.crypto; + num = intCrypto.getRandomValues(count)[0] % (chars.length - 1); + } + else { + num = Math.floor(Math.random() * chars.length); + } + if (i === 0 && num < 10) { + i--; + continue; + } + id += chars.substring(num, num + 1); + } + return id; +} +/** + * Used to get the index value \ + * + * @returns { boolean } Used to get the index value .\ + * @param {Diagram} comp - provide the Diagram value. + * @param {string} id - provide the id value. + * + * @private + */ +function getIndex(comp, id) { + if (comp.nodes && comp.nodes.length > 0) { + for (var i = 0; i < comp.nodes.length; i++) { + if (comp.nodes[parseInt(i.toString(), 10)].id === id) { + return i; + } + } + } + if (comp.connectors && comp.connectors.length > 0) { + for (var i = 0; i < comp.connectors.length; i++) { + if (comp.connectors[parseInt(i.toString(), 10)].id === id) { + return i; + } + } + } + return null; +} +/** + * templateCompiler method\ + * + * @returns { Function } templateCompiler method .\ + * @param {string} template - provide the template value. + * + * @private + */ +function templateCompiler(template) { + if (template) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var e = void 0; + try { + if (typeof template !== 'function' && document.querySelectorAll(template).length) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(document.querySelector(template).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + catch (e) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + return undefined; +} +/** + * cornersPointsBeforeRotation method\ + * + * @returns { Rect } templateCompiler method .\ + * @param {DiagramElement} ele - provide the template value. + * + * @private + */ +function cornersPointsBeforeRotation(ele) { + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](); + var top = ele.offsetY - ele.actualSize.height * ele.pivot.y; + var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y); + var left = ele.offsetX - ele.actualSize.width * ele.pivot.x; + var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x); + var topLeft = { x: left, y: top }; + //const topCenter: PointModel = { x: (left + right) / 2, y: top }; + var topRight = { x: right, y: top }; + //const middleLeft: PointModel = { x: left, y: (top + bottom) / 2 }; + //const middleRight: PointModel = { x: right, y: (top + bottom) / 2 }; + var bottomLeft = { x: left, y: bottom }; + //const bottomCenter: PointModel = { x: (left + right) / 2, y: bottom }; + var bottomRight = { x: right, y: bottom }; + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds([topLeft, topRight, bottomLeft, bottomRight]); + return bounds; +} +/** + * getBounds method\ + * + * @returns { Rect } getBounds method .\ + * @param {DiagramElement} element - provide the template value. + * + * @private + */ +function getBounds(element) { + var bounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](); + //let corners: Rect; + var corners = cornersPointsBeforeRotation(element); + var middleLeft = corners.middleLeft; + var topCenter = corners.topCenter; + var bottomCenter = corners.bottomCenter; + var middleRight = corners.middleRight; + var topLeft = corners.topLeft; + var topRight = corners.topRight; + var bottomLeft = corners.bottomLeft; + var bottomRight = corners.bottomRight; + element.corners = { + topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft, + middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight + }; + if (element.rotateAngle !== 0 || element.parentTransform !== 0) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["rotateMatrix"])(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY); + element.corners.topLeft = topLeft = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, topLeft); + element.corners.topCenter = topCenter = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, topCenter); + element.corners.topRight = topRight = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, topRight); + element.corners.middleLeft = middleLeft = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, middleLeft); + element.corners.middleRight = middleRight = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, middleRight); + element.corners.bottomLeft = bottomLeft = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, bottomLeft); + element.corners.bottomCenter = bottomCenter = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, bottomCenter); + element.corners.bottomRight = bottomRight = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, bottomRight); + //Set corners based on rotate angle + } + bounds = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds([topLeft, topRight, bottomLeft, bottomRight]); + element.corners.left = bounds.left; + element.corners.right = bounds.right; + element.corners.top = bounds.top; + element.corners.bottom = bounds.bottom; + element.corners.center = bounds.center; + element.corners.width = bounds.width; + element.corners.height = bounds.height; + return bounds; +} +/** + * updateCloneProp method\ + * + * @returns { Rect } updateCloneProp method .\ + * @param {DiagramElement} properties - provide the template value. + * @param {DiagramElement} obj - provide the template value. + * + * @private + */ +function updateCloneProp(properties, obj) { + var prop = []; + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Node"]) { + prop = ['width', 'height', 'offsetX', 'offsetY', 'container', 'visible', 'horizontalAlignment', 'verticalAlignment', + 'backgroundColor', 'borderColor', 'borderWidth', 'rotateAngle', 'minHeight', 'minWidth', 'maxHeight', + 'maxWidth', 'pivot', 'margin', 'flip', 'wrapper', 'constraints', 'style', 'annotations', 'ports', 'isExpanded', 'expandIcon']; + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_10__["Connector"]) { + prop = ['constraints', 'sourcePadding', 'targetPadding', 'cornerRadius', 'flip', 'type', 'targetDecorator', 'sourceDecorator', + 'sourceID', 'shape', 'bridgeSpace', 'annotations', 'segments', 'hitPadding', 'tooltip', 'previewSize', 'dragSize', 'style', + 'sourcePortID', 'targetID', 'targetPortID', 'visible']; + } + else if (obj instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_10__["Decorator"]) { + prop = ['height', 'width', 'shape', 'style', 'pivot', 'pathData']; + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Shape"] || obj instanceof _objects_icon__WEBPACK_IMPORTED_MODULE_6__["IconShape"]) { + prop.push('shape'); + if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["BasicShape"]) { + prop.push('cornerRadius'); + } + else if (obj instanceof Text) { + prop.push('margin'); + } + else if (obj instanceof Image) { + prop.push('align'); + prop.push('scale'); + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["Native"]) { + prop.push('scale'); + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["BpmnShape"]) { + prop.push('activity'); + prop.push('annotations'); + } + else if (obj instanceof _objects_icon__WEBPACK_IMPORTED_MODULE_6__["IconShape"]) { + prop.push('borderColor'); + prop.push('borderWidth'); + prop.push('cornerRadius'); + prop.push('fill'); + } + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["BpmnActivity"]) { + prop.push('subProcess'); + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["BpmnTask"]) { + prop.push('call'); + prop.push('compensation'); + prop.push('loop'); + } + else if (obj instanceof _objects_node__WEBPACK_IMPORTED_MODULE_5__["BpmnSubProcess"]) { + prop.push('adhoc'); + prop.push('boundary'); + prop.push('compensation'); + prop.push('loop'); + prop.push('processes'); + } + else if (obj instanceof _objects_port__WEBPACK_IMPORTED_MODULE_8__["Port"]) { + prop.push('height'); + prop.push('width'); + prop.push('visibility'); + prop.push('horizontalAlignment'); + prop.push('verticalAlignment'); + prop.push('shape'); + } + else if (obj instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_9__["Annotation"]) { + prop.push('constraints'); + prop.push('height'); + prop.push('horizontalAlignment'); + prop.push('rotateAngle'); + prop.push('template'); + prop.push('verticalAlignment'); + prop.push('visibility'); + prop.push('width'); + prop.push('margin'); + } + else if (obj instanceof _core_appearance__WEBPACK_IMPORTED_MODULE_7__["Margin"]) { + prop.push('left'); + prop.push('right'); + prop.push('top'); + prop.push('bottom'); + } + else if (obj instanceof _core_appearance__WEBPACK_IMPORTED_MODULE_7__["TextStyle"]) { + prop = ['strokeWidth', 'strokeDashArray', 'opacity', 'gradient', 'fontSize', 'fontFamily', 'textOverflow', + 'textDecoration', 'whiteSpace', 'textWrapping', 'textAlign', 'italic', 'bold']; + } + if (obj instanceof _core_appearance__WEBPACK_IMPORTED_MODULE_7__["ShapeStyle"]) { + prop.push('strokeColor'); + prop.push('color'); + } + properties = properties.concat(prop); + return properties; +} +/** + * cloneObject method\ + * + * @returns { Rect } cloneObject method .\ + * @param {DiagramElement} obj - provide the obj value. + * @param {DiagramElement} additionalProp - provide the additionalProp value. + * @param {DiagramElement} key - provide the key value. + * @param {DiagramElement} cloneBlazorProp - provide the cloneBlazorProp value. + * + * @private + */ +function cloneObject(obj, additionalProp, key, cloneBlazorProp) { + var newObject = {}; + var keys = 'properties'; + var prop = 'propName'; + if (obj) { + key = obj["" + prop]; + var sourceObject = obj["" + keys] || obj; + var properties = []; + properties = properties.concat(Object.keys(sourceObject)); + var customProperties = []; + properties.push('version'); + if (key) { + var propAdditional = getFunction(additionalProp); + if (propAdditional) { + customProperties = propAdditional(key); + } + else { + customProperties = []; + } + properties = properties.concat(customProperties); + } + var internalProp = getInternalProperties(key); + properties = properties.concat(internalProp); + if (cloneBlazorProp) { + properties = updateCloneProp(properties, obj); + } + for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) { + var property = properties_1[_i]; + if (property !== 'historyManager') { + if (property !== 'wrapper') { + //const constructorId: string = 'constructor'; + //const name: string = 'name'; + // eslint-disable-next-line no-prototype-builtins + var isEventEmmitter = obj["" + property] && obj.hasOwnProperty('observers') ? true : false; + if (!isEventEmmitter) { + if (obj["" + property] instanceof Array) { + newObject["" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj["" + keys]) ? obj["" + keys]["" + property] : obj["" + property], additionalProp, property, cloneBlazorProp); + } + else if (obj["" + property] instanceof Array === false && obj["" + property] instanceof HTMLElement) { + newObject["" + property] = obj["" + property].cloneNode(true).innerHtml; + } + else if (obj["" + property] instanceof Array === false && obj["" + property] instanceof Object) { + newObject["" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj["" + keys]) ? obj["" + keys]["" + property] : obj["" + property], undefined, undefined, cloneBlazorProp); + } + else { + newObject["" + property] = obj["" + property]; + } + } + } + else { + if (obj["" + property]) { + newObject["" + property] = { + actualSize: { + width: obj["" + property].actualSize.width, height: obj["" + property].actualSize.height + }, offsetX: obj["" + property].offsetX, offsetY: obj["" + property].offsetY + }; + } + } + } + } + } + return newObject; +} +/** + * getInternalProperties method\ + * + * @returns { string[] } getInternalProperties method .\ + * @param {string} propName - provide the propName value. + * + * @private + */ +function getInternalProperties(propName) { + switch (propName) { + case 'nodes': + case 'children': + return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane']; + case 'connectors': + return ['parentId']; + case 'annotation': + return ['nodeId']; + case 'annotations': + return ['nodeId']; + case 'shape': + return ['hasHeader']; + case 'layers': + return ['objectZIndex']; + } + return []; +} +/** + * cloneArray method\ + * + * @returns { Object[] } getInternalProperties method .\ + * @param {string} sourceArray - provide the sourceArray value. + * @param {string} additionalProp - provide the additionalProp value. + * @param {string} key - provide the key value. + * @param {string} cloneBlazorProp - provide the cloneBlazorProp value. + * + * @private + */ +function cloneArray(sourceArray, additionalProp, key, cloneBlazorProp) { + var clonedArray; + if (sourceArray) { + clonedArray = []; + for (var i = 0; i < sourceArray.length; i++) { + if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) { + clonedArray.push(sourceArray[parseInt(i.toString(), 10)]); + } + else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) { + clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key, cloneBlazorProp)); + } + else { + clonedArray.push(sourceArray[parseInt(i.toString(), 10)]); + } + } + } + return clonedArray; +} +/** + * extendObject method\ + * + * @returns { Object} getInternalProperties method .\ + * @param {string} options - provide the options value. + * @param {string} childObject - provide the childObject value. + * + * @private + */ +function extendObject(options, childObject) { + var properties = 'properties'; + if (options) { + if (!childObject) { + childObject = { properties: {} }; + } + //const target: Object = childObject; + for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) { + var property = _a[_i]; + if (options["" + property] instanceof Array) { + var extendeArray = extendArray(options["" + property], childObject["" + properties]["" + property]); + if (!childObject["" + properties]["" + property] || !childObject["" + properties]["" + property].length) { + childObject["" + property] = extendeArray; + } + } + else if (options["" + property] instanceof Array === false && options["" + property] instanceof HTMLElement) { + childObject["" + property] = options["" + property].cloneNode(true).innerHtml; + } + else if (options["" + property] instanceof Array === false && options["" + property] instanceof Object) { + var extendedObject = extendObject(options["" + property], childObject["" + properties]["" + property]); + if (extendedObject["" + properties] && !Object.keys(extendedObject["" + properties]).length) { + delete extendedObject["" + properties]; + } + childObject["" + property] = extendedObject; + } + else { + childObject["" + property] = childObject["" + properties]["" + property] !== undefined ? + childObject["" + property] : options["" + property]; + } + } + } + return childObject; +} +/** + * extendObject method\ + * + * @returns { Object} getInternalProperties method .\ + * @param {string} sourceArray - provide the sourceArray value. + * @param {string} childArray - provide the childArray value. + * + * @private + */ +function extendArray(sourceArray, childArray) { + var clonedArray = []; + var reset = false; + if (!childArray) { + childArray = []; + } + if (!childArray.length) { + reset = true; + } + for (var i = 0; i < sourceArray.length; i++) { + if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var extendedArray = extendArray(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]); + if (reset) { + clonedArray.push(extendArray); + } + } + else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) { + var extendedObject = extendObject(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]); + if (reset) { + clonedArray.push(extendedObject); + } + } + else { + clonedArray.push(sourceArray[parseInt(i.toString(), 10)]); + } + } + return clonedArray; +} +/** + * textAlignToString method\ + * + * @returns { Object} textAlignToString method .\ + * @param {string} value - provide the sourceArray value. + * + * @private + */ +function textAlignToString(value) { + var state = ''; + switch (value) { + case 'Center': + state = 'center'; + break; + case 'Left': + state = 'left'; + break; + case 'Right': + state = 'right'; + break; + } + return state; +} +/** + * wordBreakToString method\ + * + * @returns { string } wordBreakToString method .\ + * @param {TextWrap | TextDecoration} value - provide the value value. + * + * @private + */ +function wordBreakToString(value) { + var state = ''; + switch (value) { + case 'Wrap': + state = 'breakall'; + break; + case 'NoWrap': + state = 'keepall'; + break; + case 'WrapWithOverflow': + state = 'normal'; + break; + case 'LineThrough': + state = 'line-through'; + break; + } + return state; +} +/** + * bBoxText method\ + * + * @returns { number } bBoxText method .\ + * @param {string} textContent - provide the textContent value. + * @param {string} options - provide the options value. + * + * @private + */ +function bBoxText(textContent, options) { + var measureWindowElement = 'measureElement'; + window["" + measureWindowElement].style.visibility = 'visible'; + var svg = window["" + measureWindowElement].children[2]; + var text = Object(_dom_util__WEBPACK_IMPORTED_MODULE_4__["getChildNode"])(svg)[1]; + text.textContent = textContent; + Object(_dom_util__WEBPACK_IMPORTED_MODULE_4__["applyStyleAgainstCsp"])(text, 'font-size:' + options.fontSize + 'px; font-family:' + + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal')); + var bBox = text.getBBox().width; + window["" + measureWindowElement].style.visibility = 'hidden'; + return bBox; +} +/** + * middleElement method\ + * + * @returns { number} middleElement method .\ + * @param {number} i - provide the textContent value. + * @param {number} j - provide the options value. + * + * @private + */ +function middleElement(i, j) { + var m = 0; + m = (i + j) / 2; + return m; +} +/** + * overFlow method\ + * + * @returns { number} overFlow method .\ + * @param {number} text - provide the text value. + * @param {number} options - provide the options value. + * + * @private + */ +function overFlow(text, options) { + var i = 0; + var j = 0; + var middle = 0; + var bounds = 0; + var temp = ''; + j = text.length; + var t = 0; + do { + if (bounds > 0) { + i = middle; + } + middle = Math.floor(middleElement(i, j)); + temp += text.substr(i, middle); + bounds = bBoxText(temp, options); + } while (bounds <= options.width); + temp = temp.substr(0, i); + for (t = i; t < j; t++) { + temp += text[parseInt(t.toString(), 10)]; + bounds = bBoxText(temp, options); + if (bounds >= options.width) { + text = text.substr(0, temp.length - 1); + break; + } + } + if (options.textOverflow === 'Ellipsis') { + text = text.substr(0, text.length - 3); + text += '...'; + } + else { + text = text.substr(0, text.length); + } + return text; +} +/** + * whiteSpaceToString method\ + * + * @returns { number} whiteSpaceToString method .\ + * @param {number} value - provide the value value. + * @param {number} wrap - provide the wrap value. + * + * @private + */ +function whiteSpaceToString(value, wrap) { + if (wrap === 'NoWrap' && value === 'PreserveAll') { + return 'pre'; + } + var state = ''; + switch (value) { + case 'CollapseAll': + state = 'nowrap'; + break; + case 'CollapseSpace': + state = 'pre-line'; + break; + case 'PreserveAll': + state = 'pre-wrap'; + break; + } + return state; +} +/** + * rotateSize method\ + * + * @returns { number} rotateSize method .\ + * @param {number} size - provide the size value. + * @param {number} angle - provide the angle value. + * + * @private + */ +function rotateSize(size, angle) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["rotateMatrix"])(matrix, angle, 0, 0); + var topLeft = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: 0, y: 0 }); + var topRight = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: size.width, y: 0 }); + var bottomLeft = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: 0, y: size.height }); + var bottomRight = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, { x: size.width, y: size.height }); + var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x); + var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x); + var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y); + return new _primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"](maxX - minX, maxY - minY); +} +/** + * rotatePoint method\ + * + * @returns { number} rotateSize method .\ + * @param {number} angle - provide the angle value. + * @param {number} pivotX - provide the pivotX value. + * @param {number} pivotY - provide the pivotY value. + * @param {PointModel} point - provide the point value. + * @private + */ +function rotatePoint(angle, pivotX, pivotY, point) { + if (angle !== 0) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["rotateMatrix"])(matrix, angle, pivotX, pivotY); + return Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_3__["transformPointByMatrix"])(matrix, point); + } + return point; +} +/** + * getOffset method\ + * + * @returns { number} getOffset method .\ + * @param {PointModel} topLeft - provide the angle value. + * @param {DiagramElement} obj - provide the pivotX value. + * @private + */ +function getOffset(topLeft, obj) { + var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x; + var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y; + return { + x: offX, y: offY + }; +} +/** + * getFunction method\ + * + * @returns { Function } getFunction method .\ + * @param {PointModel} value - provide the angle value. + * @private + */ +function getFunction(value) { + if (value !== undefined) { + if (typeof value === 'string') { + value = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(value, window); + } + } + return value; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js ***! + \*********************************************************************************/ +/*! exports provided: findConnectorPoints, swapBounds, findMargin, findAngle, findPoint, getIntersection, getIntersectionPoints, orthoConnection2Segment, getPortDirection, getOuterBounds, getOppositeDirection */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findConnectorPoints", function() { return findConnectorPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "swapBounds", function() { return swapBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findMargin", function() { return findMargin; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findAngle", function() { return findAngle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findPoint", function() { return findPoint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIntersection", function() { return getIntersection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIntersectionPoints", function() { return getIntersectionPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "orthoConnection2Segment", function() { return orthoConnection2Segment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPortDirection", function() { return getPortDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOuterBounds", function() { return getOuterBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOppositeDirection", function() { return getOppositeDirection; }); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _diagram_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _base_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* eslint-disable jsdoc/require-returns-check */ + + + + + + + +/** + * Connector modules are used to dock and update the connectors + */ +/** + * intermeditatePoints method\ + * + * @returns { Function } getFunction method .\ + * @param {PointModel} element - provide the angle value. + * @param {PointModel} layoutOrientation - provide the angle value. + * @param {PointModel} lineDistribution - provide the angle value. + * @private + */ +function findConnectorPoints(element, layoutOrientation, lineDistribution) { + //const intermeditatePoints: PointModel[]; + var sourcePoint; + if (element.type === 'Straight' || !element.sourceWrapper) { + sourcePoint = getSourcePoint(element); + } + else { + sourcePoint = element.sourceWrapper.corners.center; + } + // eslint-disable-next-line + var intermeditatePoints = terminateConnection(element, sourcePoint, element.targetPoint, layoutOrientation, lineDistribution); + setLineEndPoint(element, intermeditatePoints[0], false); + setLineEndPoint(element, intermeditatePoints[intermeditatePoints.length - 1], true); + return intermeditatePoints; +} +/** + * getSourcePoint method\ + * + * @returns { PointModel } getFunction method .\ + * @param {PointModel} element - provide the angle value. + * @private + */ +function getSourcePoint(element) { + var srcPoint; + if (element.sourcePortWrapper) { + var srcPort = element.sourcePortWrapper; + //const srcNode: DiagramElement = element.sourceWrapper; + var pt = { x: srcPort.offsetX, y: srcPort.offsetY }; + //const direction: string = getPortDirection(pt, cornersPointsBeforeRotation(srcNode), srcNode.bounds, false); + srcPoint = pt; + } + else if (element.sourceID && element.sourceWrapper) { + if (element.targetWrapper) { + var sPoint = element.sourceWrapper.corners.center; + var tPoint = element.targetWrapper.corners.center; + srcPoint = getIntersection(element, element.sourceWrapper, sPoint, tPoint, false); + } + else { + srcPoint = element.sourcePoint; + } + } + else { + srcPoint = element.sourcePoint; + } + return srcPoint; +} +/** + * getDirection method \ + * + * @returns { void } getDirection method .\ + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value. + * + * @private + */ +function getDirection(source, target, layoutOrientation) { + if (layoutOrientation === 'LeftToRight') { + source.direction = source.direction ? source.direction : 'Right'; + target.direction = target.direction ? target.direction : 'Left'; + } + else if (layoutOrientation === 'RightToLeft') { + source.direction = source.direction ? source.direction : 'Left'; + target.direction = target.direction ? target.direction : 'Right'; + } + else if (layoutOrientation === 'TopToBottom') { + source.direction = source.direction ? source.direction : 'Bottom'; + target.direction = target.direction ? target.direction : 'Top'; + } + else if (layoutOrientation === 'BottomToTop') { + source.direction = source.direction ? source.direction : 'Top'; + target.direction = target.direction ? target.direction : 'Bottom'; + } +} +/** + * terminateConnection method \ + * + * @returns { PointModel[] } terminateConnection method .\ + * @param {Connector} element - provide the element value. + * @param {PointModel} srcPoint - provide the srcPoint value. + * @param {PointModel} tarPoint - provide the tarPoint value. + * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value. + * @param {boolean} lineDistribution - provide the lineDistribution value. + * + * @private + */ +function terminateConnection(element, srcPoint, tarPoint, layoutOrientation, lineDistribution) { + var sourceNode = element.sourceWrapper; + var targetNode = element.targetWrapper; + var sourcePort = element.sourcePortWrapper; + var targetPort = element.targetPortWrapper; + var srcCorner; + var tarCorner; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var intermeditatePoints = []; + var segPoint; + var srcDir; + var tarDir; + var minSpace = findMargin(element); + var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 }; + var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 }; + var source = { corners: srcCorner, point: srcPoint, direction: srcDir, margin: sourceMargin }; + var target = { corners: tarCorner, point: tarPoint, direction: tarDir, margin: targetMargin }; + var sourceCorners; + var targetCorners; + if (sourceNode !== undefined && targetNode !== undefined) { + sourceCorners = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(sourceNode); + targetCorners = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(targetNode); + source.corners = sourceNode.corners; + target.corners = targetNode.corners; + } + if (sourcePort !== undefined) { + var port = { x: sourcePort.offsetX, y: sourcePort.offsetY }; + source.direction = getPortDirection(port, sourceCorners, sourceNode.bounds, false); + } + if (targetPort !== undefined) { + var tarPortPt = { x: targetPort.offsetX, y: targetPort.offsetY }; + target.direction = getPortDirection(tarPortPt, targetCorners, targetNode.bounds, false); + } + if (element.type === 'Bezier') { + if (!element.isBezierEditing) { + if (element.segments.length > 0) { + var i = element.segments.length - 1; + while (i >= 0) { + var seg = element.segments[parseInt(i.toString(), 10)]; + if (seg.isInternalSegment) { + element.segments.pop(); + } + i--; + } + } + } + } + if (sourceNode !== undefined && targetNode !== undefined) { + if (source.direction === undefined || target.direction === undefined) { + if (layoutOrientation) { + getDirection(source, target, layoutOrientation); + } + else { + if (source.corners.top > target.corners.bottom && + Math.abs(source.corners.top - target.corners.bottom) > minSpace) { + source.direction = source.direction ? source.direction : 'Top'; + target.direction = target.direction ? target.direction : 'Bottom'; + } + else if (source.corners.bottom < target.corners.top && + Math.abs(source.corners.bottom - target.corners.top) > minSpace) { + source.direction = source.direction ? source.direction : 'Bottom'; + target.direction = target.direction ? target.direction : 'Top'; + } + else if ((source.corners.right < target.corners.left && + Math.abs(source.corners.right - target.corners.left) > minSpace) || + ((source.corners.right + minSpace < target.corners.left) || + (target.corners.right >= source.corners.left - minSpace && source.corners.left > target.corners.left))) { + source.direction = source.direction ? source.direction : 'Right'; + target.direction = target.direction ? target.direction : 'Left'; + } + else if ((source.corners.left > target.corners.right && + Math.abs(source.corners.left - target.corners.right) > (source.margin.left + source.margin.right)) || + ((target.corners.right + minSpace < source.corners.left || + (source.corners.right >= target.corners.left - minSpace + && source.corners.left < target.corners.left)))) { + source.direction = source.direction ? source.direction : 'Left'; + target.direction = target.direction ? target.direction : 'Right'; + } + else { + if (sourceNode.id !== targetNode.id && (!sourceCorners.equals(sourceCorners, targetCorners)) && + targetCorners.containsPoint(sourceCorners.topCenter, source.margin.top)) { + source.direction = source.direction ? source.direction : 'Bottom'; + target.direction = target.direction ? target.direction : 'Top'; + } + else { + source.direction = source.direction ? source.direction : 'Top'; + target.direction = target.direction ? target.direction : 'Bottom'; + } + } + } + } + return defaultOrthoConnection(element, source.direction, target.direction, source.point, target.point, lineDistribution); + } + //It will be called only when there is only one end node + checkLastSegmentasTerminal(element); + if (element.sourceWrapper || element.targetWrapper) { + connectToOneEnd(element, source, target); + } + if (element.type === 'Straight' || element.type === 'Bezier') { + intermeditatePoints = intermeditatePointsForStraight(element, source, target); + } + else { + if (element.type === 'Orthogonal' && element.segments && element.segments.length > 0 && + element.segments[0].length !== null && + element.segments[0].direction !== null) { + intermeditatePoints = findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort); + } + else { + var extra = void 0; + if (!source.direction) { + source.direction = (target.direction) ? ((element.targetPortWrapper !== undefined) ? target.direction : getOppositeDirection(target.direction)) : + _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(source.point, target.point); + } + else { + extra = adjustSegmentLength(sourceNode.bounds, source, 20); + } + element.segments[0].points = intermeditatePoints = orthoConnection3Segment(element, source, target, extra); + } + } + return intermeditatePoints; +} +/** + * updateSegmentPoints method \ + * + * @returns { PointModel[] } updateSegmentPoints method .\ + * @param {End} source - provide the source value. + * @param {OrthogonalSegment} segment - provide the segment value. + * + * @private + */ +function updateSegmentPoints(source, segment) { + //let segPoint: PointModel; //let angle: number; //let extra: number; + source.direction = segment.direction; + segment.points = []; + segment.points.push(source.point); + var extra = (segment.direction === 'Left' || segment.direction === 'Top') ? -(segment.length) : segment.length; + var angle = (segment.direction === 'Left' || segment.direction === 'Right') ? 0 : 90; + var segPoint = addLineSegment(source.point, extra, angle); + segment.points.push(segPoint); + return segPoint; +} +/** + * pointToPoint method \ + * + * @returns { void } pointToPoint method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * + * @private + */ +function pointToPoint(element, source, target) { + var point; + var direction; + var portdirection; + source.corners = (element.sourceWrapper) ? element.sourceWrapper.corners : undefined; + if (element.sourcePortWrapper) { + var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY }; + portdirection = getPortDirection(port, Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.sourceWrapper), element.sourceWrapper.bounds, false); + if (source.corners && (source.direction === 'Bottom' || source.direction === 'Top')) { + if (target.point.x > source.corners.left && target.point.x < source.corners.right) { + direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom'; + } + } + else if (source.corners && (source.direction === 'Left' || source.direction === 'Right')) { + if (target.point.y > source.corners.top && target.point.y < source.corners.bottom) { + direction = (source.point.x > target.point.x) ? 'Left' : 'Right'; + } + } + } + if (element.sourcePortWrapper && portdirection === getOppositeDirection(direction)) { + var length_1; + if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top + && source.point.y <= source.corners.center.y) && + (target.point.y >= source.corners.top && target.point.y <= source.corners.center.y)) { + source.direction = 'Top'; + length_1 = source.point.y - source.corners.top + 20; + } + else if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y > source.corners.center.y + && source.point.y <= source.corners.bottom) && + (target.point.y > source.corners.center.y && target.point.y <= source.corners.bottom)) { + source.direction = 'Bottom'; + length_1 = source.corners.bottom - source.point.y + 20; + } + else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left + && source.point.x <= source.corners.center.x) && + (target.point.x >= source.corners.left && target.point.x <= source.corners.center.x)) { + source.direction = 'Left'; + length_1 = source.point.x - source.corners.left + 20; + } + else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x <= source.corners.right + && source.point.x > source.corners.center.x) && + (target.point.x <= source.corners.right && target.point.x < source.corners.center.x)) { + source.direction = 'Right'; + length_1 = source.corners.right - source.point.x + 20; + } + if (source.direction && length_1) { + point = orthoConnection3Segment(element, source, target, length_1, true); + } + } + else { + source.direction = (direction) ? direction : findSourceDirection(source.direction, source.point, target.point); + point = orthoConnection2Segment(source, target); + } + return point; +} +/** + * pointToNode method \ + * + * @returns { void } pointToNode method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * + * @private + */ +function pointToNode(element, source, target) { + var point; + target.corners = element.targetWrapper.corners; + findDirection(element.targetWrapper, source, target, element); + var direction = findSourceDirection(target.direction, source.point, target.point); + if (source.direction === target.direction && (source.direction === 'Left' || source.direction === 'Right')) { + source.direction = direction; + point = orthoConnection3Segment(element, source, target, element.targetWrapper.width / 2 + 20); + var source1 = source; + source1.point = point[1]; + findDirection(element.targetWrapper, source, target, element); + point = orthoConnection3Segment(element, source, target); + } + else { + source.direction = direction; + point = orthoConnection2Segment(source, target); + } + return point; +} +/** + * addPoints method \ + * + * @returns { void } addPoints method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * + * @private + */ +function addPoints(element, source, target) { + target.corners = element.targetWrapper.corners; + var direction; + var length; + if (source.direction !== 'Left' && source.direction !== 'Right') { + if (target.corners.center.y === source.point.y && + (!(target.corners.left <= source.point.x && source.point.x <= target.corners.right))) { + direction = 'Top'; + length = target.corners.height / 2 + 20; + } + else if ((target.corners.center.y === source.point.y && + element.segments[element.segments.length - 2].direction === 'Bottom') || + (target.corners.center.y > source.point.y && source.point.y >= target.corners.top)) { + direction = 'Top'; + length = (source.point.y - target.corners.top) + 20; + } + else if ((target.corners.center.y === source.point.y && + element.segments[element.segments.length - 2].direction === 'Top') || + (target.corners.center.y < source.point.y && source.point.y <= target.corners.bottom)) { + direction = 'Bottom'; + length = (target.corners.bottom - source.point.y) + 20; + } + else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + source.corners.top <= source.point.y && source.point.y <= source.corners.bottom) { + direction = source.direction; + length = (source.point.y > target.point.y) ? (source.point.y - source.corners.top + 20) : + (source.corners.bottom - source.point.y + 20); + } + } + else { + if (target.corners.center.x === source.point.x && + (!(target.corners.top < source.point.y && source.point.y <= target.corners.bottom))) { + direction = 'Left'; + length = target.corners.width / 2 + 20; + } + else if ((target.corners.center.x === source.point.x && + element.segments[element.segments.length - 2].direction === 'Right') + || (target.corners.center.x > source.point.x && source.point.x >= target.corners.left)) { + direction = 'Left'; + length = (source.point.x - target.corners.left) + 20; + } + else if ((target.corners.center.x === source.point.x && + element.segments[element.segments.length - 2].direction === 'Left') || + (target.corners.center.x <= source.point.x && source.point.x <= target.corners.right)) { + direction = 'Right'; + length = (target.corners.right - source.point.x) + 20; + } + else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + source.corners.left <= source.point.x && source.point.x <= source.corners.right) { + direction = source.direction; + length = (source.point.x > target.point.x) ? (source.point.x - source.corners.left + 20) : + (source.corners.right - source.point.x + 20); + } + } + var extra = (direction === 'Left' || direction === 'Top') ? -(length) : length; + var angle = (direction === 'Left' || direction === 'Right') ? 0 : 90; + var refPoint = source.point; + source.point = addLineSegment(source.point, extra, angle); + source.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(source.point, target.point); + if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + (source.corners.center.x === target.corners.center.x || source.corners.center.y === target.corners.center.y)) { + source.direction = target.direction; + } + var point = orthoConnection3Segment(element, source, target); + point.splice(0, 0, refPoint); + return point; +} +/** + * findSegmentDirection method \ + * + * @returns { void } findSegmentDirection method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {Direction} portDir - provide the target value. + * + * @private + */ +function findSegmentDirection(element, source, target, portDir) { + var update = false; + switch (target.direction) { + case 'Left': + if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Right' && + source.point.x > target.point.x && source.point.y >= source.corners.top && + source.point.y <= source.corners.bottom) + || (((portDir === 'Bottom' && source.point.y > target.point.y) || + (portDir === 'Top' && source.point.y < target.point.y)) && + source.point.x >= source.corners.left && source.point.x <= source.corners.right)) { + source.direction = (portDir === 'Right') ? ((source.point.y > target.point.y) ? 'Top' : 'Bottom') : + (source.point.x < target.point.x ? 'Right' : 'Left'); + update = true; + } + else if (source.point.x > target.point.x && (source.point.y > target.point.y || source.point.y < target.point.y) + && (!(target.corners.top > source.point.y && target.corners.bottom < source.point.y))) { + source.direction = 'Left'; + } + else if ((source.point.x < target.point.x && source.point.y > target.point.y) || + (source.point.x > target.point.x && (source.point.y <= target.point.y) + && ((target.corners.top < source.point.y && target.corners.center.y >= source.point.y)))) { + source.direction = 'Top'; + } + else if ((source.point.x < target.point.x && source.point.y < target.point.y) || + (source.point.x > target.point.x && (source.point.y > target.point.y) + && ((target.corners.bottom < source.point.y && target.corners.center.y > source.point.y)))) { + source.direction = 'Bottom'; + } + else if (source.point.y === target.point.y && source.point.x < target.point.x) { + source.direction = 'Right'; + } + break; + case 'Right': + if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + ((portDir === 'Bottom' && source.point.y > target.point.y) || + (portDir === 'Top' && source.point.y < target.point.y)) && source.point.x > target.point.x && + (source.point.x >= source.corners.left && source.point.x <= source.corners.right)) { + source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right'; + update = true; + } + else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + portDir === 'Left' && source.point.x < target.point.x && (source.point.y >= source.corners.top && + source.point.y <= source.corners.bottom)) { + source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom'; + update = true; + } + else if (source.point.x < target.point.x && target.corners.top <= source.point.y + && target.corners.bottom >= source.point.y && source.point.y === target.point.y) { + source.direction = 'Top'; + } + else if (source.point.y > target.point.y && source.point.x > target.point.x) { + source.direction = 'Top'; + } + else if (source.point.y < target.point.y && source.point.x > target.point.x) { + source.direction = 'Bottom'; + } + else if (source.point.x < target.point.x && (source.point.y > target.point.y || + source.point.y < target.point.y)) { + source.direction = 'Right'; + } + else if (source.point.y === target.point.y && source.point.x > target.point.x) { + source.direction = 'Left'; + } + break; + case 'Top': + if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Bottom' && + source.point.y > target.point.y && source.point.x >= source.corners.left && + source.point.x <= source.corners.right) || (((portDir === 'Right' && source.point.x > target.point.x) || + (portDir === 'Left' && target.point.y > source.point.y && target.point.x > source.point.x)) && + (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom))) { + source.direction = (portDir === 'Bottom') ? ((source.point.x > target.point.x) ? 'Left' : 'Right') : + (source.point.y < target.point.y) ? 'Bottom' : 'Top'; + update = true; + } + else if (source.point.x === target.point.x && source.point.y < target.point.y) { + source.direction = 'Bottom'; + } + else if (source.point.y > target.point.y && source.point.x > target.corners.left && + source.point.x < target.corners.right) { + source.direction = 'Left'; + } + else if (source.point.y >= target.point.y) { + source.direction = 'Top'; + } + else if (source.point.y < target.point.y && source.point.x > target.point.x) { + source.direction = 'Left'; + } + else if (source.point.y < target.point.y && source.point.x < target.point.x) { + source.direction = 'Right'; + } + break; + case 'Bottom': + if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && ((((portDir === 'Right') || + (portDir === 'Left' && target.point.x > source.point.x)) && (source.point.y > target.point.y) && + source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) || + (((portDir === 'Top' && source.point.y < target.point.y)) && + (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) { + if (portDir === 'Right' || portDir === 'Left') { + source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom'; + } + else { + source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right'; + } + update = true; + } + else if (source.point.y < target.point.y && source.point.x > target.corners.left && + target.corners.right > source.point.x) { + if (source.point.y < target.point.y && source.point.x > target.corners.left && + target.corners.center.x >= source.point.x) { + source.direction = 'Left'; + } + else if (source.point.y < target.point.y && source.point.x < target.corners.right && + target.corners.center.x < source.point.x) { + source.direction = 'Right'; + } + } + else if (source.point.y > target.point.y && source.point.x > target.point.x) { + source.direction = 'Left'; + } + else if (source.point.y > target.point.y && source.point.x < target.point.x) { + source.direction = 'Right'; + } + else if (source.point.y <= target.point.y && (source.point.x > target.point.x || target.point.x > source.point.x)) { + source.direction = 'Bottom'; + } + break; + } + return update; +} +/** + * pointToPort method \ + * + * @returns { void } pointToPort method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * + * @private + */ +function pointToPort(element, source, target) { + var point; + target.corners = element.targetWrapper.corners; + var portdirection; + var length; + if (element.sourcePortWrapper !== undefined) { + var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY }; + portdirection = getPortDirection(port, Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.sourceWrapper), element.sourceWrapper.bounds, false); + } + var update = findSegmentDirection(element, source, target, portdirection); + // EJ2-65063 - Added below condition !selectedSegmentIndex to prevent the connector segment to split from two points into four points + if ((!element.selectedSegmentIndex) && element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && + target.direction === getOppositeDirection(portdirection) && + ((((target.direction === 'Left' && source.point.x > target.point.x) || (target.direction === 'Right' && + source.point.x < target.point.x)) && source.point.y >= source.corners.top && + source.point.y <= source.corners.bottom) || (target.direction === 'Bottom' && source.point.y < target.point.y && + (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) { + point = addPoints(element, source, target); + } + else if ((!element.selectedSegmentIndex) && source.direction === target.direction) { + point = orthoConnection3Segment(element, source, target); + } + else if ((!element.selectedSegmentIndex) && (((target.direction === 'Left' && source.point.x > target.point.x) || + (target.direction === 'Right' && source.point.x < target.point.x)) && (source.direction === 'Top' || source.direction === 'Bottom') + && ((source.point.y <= target.point.y) && + ((target.corners.top <= source.point.y && target.corners.bottom >= source.point.y)))) || + ((target.direction === 'Top' && source.point.y > target.point.y) || + (target.direction === 'Bottom' && source.point.y < target.point.y) && + ((target.corners.left <= source.point.x && target.corners.right >= source.point.x)))) { + // EJ2-69304 - Return the 2 segment points if allowNodeOverlap is set as true. + if (!element.selectedSegmentIndex) { + point = addPoints(element, source, target); + } + else { + point = orthoConnection2Segment(source, target); + } + } + else { + if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined && element.targetPortWrapper !== undefined && + ((source.direction === 'Left' || source.direction === 'Right') && + (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) + && (target.direction === 'Top' || target.direction === 'Bottom') && + (target.corners.center.x === source.corners.center.x))) { + source.direction = (target.direction === 'Top') ? 'Bottom' : 'Top'; + length = (target.direction === 'Top') ? (source.corners.bottom - source.point.y + 20) : + (source.point.y - source.corners.top + 20); + point = orthoConnection3Segment(element, source, target, length); + } + else if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined && element.targetPortWrapper !== undefined && + ((source.direction === 'Top' || source.direction === 'Bottom') && + (source.point.x >= source.corners.left && source.point.x <= source.corners.right) && + (target.direction === 'Left' || target.direction === 'Right') && (target.corners.center.y === source.corners.center.y))) { + source.direction = (target.direction === 'Left') ? 'Right' : 'Left'; + length = (target.direction === 'Left') ? (source.corners.right - source.point.x + 20) : + (source.point.x - source.corners.left + 20); + point = orthoConnection3Segment(element, source, target, length); + } + else if (update) { + if (source.direction === 'Left' || source.direction === 'Right') { + length = (source.direction === 'Left') ? (source.point.x - source.corners.left + 20) : + (source.corners.right - source.point.x + 20); + } + else { + length = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) : + (source.corners.bottom - source.point.y + 20); + } + point = orthoConnection3Segment(element, source, target, length); + } + else { + point = orthoConnection2Segment(source, target); + } + } + return point; +} +/** + * findPointToPointOrtho method \ + * + * @returns { void } findPointToPointOrtho method .\ + * @param {Connector} element - provide the element value. + * @param {DiagramElement} source - provide the source value. + * @param {DiagramElement} target - provide the target value. + * @param {DiagramElement} sourceNode - provide the target value. + * @param {DiagramElement} targetNode - provide the target value. + * @param {DiagramElement} sourcePort - provide the sourcePort value. + * @param {DiagramElement} targetPort - provide the targetPort value. + * + * @private + */ +function findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort) { + var j; + var point; + var intermeditatePoints = []; + var direction; + var port; //let seg: OrthogonalSegment; + checkLastSegmentasTerminal(element); + var removeSegment; + if (element.segments.length > 0) { + for (var i = 0; i < element.segments.length; i++) { + var seg = element.segments[parseInt(i.toString(), 10)]; + if (i === 0 && element.sourcePortWrapper !== undefined) { + port = { x: sourcePort.offsetX, y: sourcePort.offsetY }; + direction = getPortDirection(port, Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(sourceNode), sourceNode.bounds, false); + if (seg.direction === getOppositeDirection(direction)) { + seg.direction = direction; + } + } + if (i > 0 && element.segments[i - 1].direction === seg.direction) { + i = checkConsectiveSegmentAsSame(element, i, source); + } + else { + var lastSegment = element.segments[i - 1]; + source.point = (seg.direction) ? updateSegmentPoints(source, seg) : + lastSegment.points[lastSegment.points.length - 1]; + } + if (i === element.segments.length - 1) { + if (!targetPort && !targetNode) { + point = pointToPoint(element, source, target); + } + else if (element.targetWrapper && element.targetPortWrapper === undefined) { + checkSourcePointInTarget(element, source); + point = pointToNode(element, source, target); + } + else { + point = pointToPort(element, source, target); + } + if (point) { + checkPreviousSegment(point, element, source); + seg.points = []; + if (point.length >= 2) { + for (j = 0; j < point.length; j++) { + seg.points.push(point[parseInt(j.toString(), 10)]); + } + } + else { + removeSegment = i; + } + } + } + if (sourcePort && i === 0) { + var sourcePoint = checkPortdirection(element, sourcePort, sourceNode); + if (sourcePoint) { + source.point = sourcePoint; + } + } + } + if (removeSegment !== undefined) { + if (removeSegment === element.segments.length - 1) { + element.segments[removeSegment - 1].direction = null; + element.segments[removeSegment - 1].length = null; + } + element.segments.splice(removeSegment, 1); + } + intermeditatePoints = returnIntermeditatePoints(element, intermeditatePoints); + } + return intermeditatePoints; +} +/** + * checkPortdirection method \ + * + * @returns { PointModel } checkPortdirection method .\ + * @param {Connector} element - provide the element value. + * @param {DiagramElement} sourcePort - provide the target value. + * @param {DiagramElement} sourceNode - provide the target value. + * + * @private + */ +function checkPortdirection(element, sourcePort, sourceNode) { + var port = { x: sourcePort.offsetX, y: sourcePort.offsetY }; + var point; + var bounds = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(sourceNode); + var direction = getPortDirection(port, bounds, sourceNode.bounds, false); + var seg = element.segments[0]; + if (seg.direction !== direction) { + pointsFromNodeToPoint(seg, direction, bounds, seg.points[0], seg.points[seg.points.length - 1], false); + point = seg.points[seg.points.length - 1]; + seg.direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(seg.points[seg.points.length - 2], seg.points[seg.points.length - 1]); + } + return point; +} +/** + * checkPreviousSegment method \ + * + * @returns { PointModel } checkPreviousSegment method .\ + * @param {Connector} tPoints - provide the element value. + * @param {DiagramElement} connector - provide the target value. + * @param {DiagramElement} source - provide the target value. + * + * @private + */ +function checkPreviousSegment(tPoints, connector, source) { + var actualSegment = connector.segments[connector.segments.length - 2]; + var actualLastPoint = actualSegment.points[actualSegment.points.length - 1]; + var direction; + if (((actualSegment.direction === 'Top' || actualSegment.direction === 'Bottom') && (actualLastPoint.x === tPoints[1].x)) || + ((actualSegment.direction === 'Left' || actualSegment.direction === 'Right') && (actualLastPoint.y === tPoints[1].y))) { + actualSegment.points[actualSegment.points.length - 1] = tPoints[1]; + direction = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]); + if (connector.sourceWrapper !== undefined && connector.sourcePortWrapper === undefined && + direction === getOppositeDirection(actualSegment.direction)) { + if (actualSegment.direction === 'Left' || actualSegment.direction === 'Right') { + actualSegment.points[0].x = (actualSegment.direction === 'Right') ? + actualSegment.points[0].x - connector.sourceWrapper.corners.width : + actualSegment.points[0].x + connector.sourceWrapper.corners.width; + } + else { + actualSegment.points[0].y = (actualSegment.direction === 'Bottom') ? + actualSegment.points[0].y - connector.sourceWrapper.corners.height : + actualSegment.points[0].y + connector.sourceWrapper.corners.height; + } + } + actualSegment.direction = direction; + actualSegment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]); + tPoints.splice(0, 1); + } +} +/** + * connectToOneEnd method \ + * + * @returns { void } connectToOneEnd method .\ + * @param {Connector} element - provide the element value. + * @param {DiagramElement} source - provide the target value. + * @param {DiagramElement} target - provide the target value. + * + * @private + */ +function connectToOneEnd(element, source, target) { + var sourcePort = element.sourcePortWrapper; + var targetPort = element.targetPortWrapper; + var node = element.sourceWrapper; + var fixedPoint = source.point; + var nodeMargin = { left: 0, right: 0, top: 0, bottom: 0 }; + var nodeConnectingPoint = { x: 0, y: 0 }; + var refPoint; + var nodeDirection = 'Top'; + if (!node) { + node = element.targetWrapper; + nodeMargin = target.margin; + } + else { + fixedPoint = target.point; + nodeMargin = source.margin; + } + if (element.type === 'Orthogonal') { + if ((element.segments && element.segments.length > 0) && element.sourceWrapper && + element.segments[0].direction) { + source.direction = element.segments[0].direction; + nodeConnectingPoint = findPoint(node.corners, source.direction); + refPoint = findPoint(node.corners, getOppositeDirection(source.direction)); + nodeConnectingPoint = getIntersection(element, node, nodeConnectingPoint, refPoint, false); + } + else { + var source_1 = { corners: null, direction: null, point: fixedPoint, margin: nodeMargin }; + var target_1 = { corners: null, direction: null, point: null, margin: null }; + findDirection(node, source_1, target_1, element); + nodeConnectingPoint = target_1.point; + nodeDirection = target_1.direction; + } + } + else { + var segmentPoint = void 0; + if (element.segments && element.segments.length > 1) { + if (node === element.sourceWrapper) { + segmentPoint = element.segments[0].point; + } + else { + segmentPoint = element.segments[element.segments.length - 2].point; + } + } + nodeConnectingPoint = getIntersection(element, node, node.bounds.center, (element.segments && element.segments.length > 1) ? segmentPoint : fixedPoint, node === element.targetWrapper); + } + if (node === element.sourceWrapper) { + source.direction = source.direction || nodeDirection; + source.point = nodeConnectingPoint; + if (element.sourcePortWrapper) { + source.point = { x: sourcePort.offsetX, y: sourcePort.offsetY }; + if (element.sourcePadding) { + source.point = addPaddingToConnector(element, source, target, false); + } + } + } + else { + target.direction = target.direction || nodeDirection; + target.point = nodeConnectingPoint; + if (element.targetPortWrapper) { + target.point = { x: targetPort.offsetX, y: targetPort.offsetY }; + if (element.targetPadding) { + target.point = addPaddingToConnector(element, source, target, true); + } + } + } +} +/** + * addPaddingToConnector method \ + * + * @returns { void } addPaddingToConnector method .\ + * @param {Connector} element - provide the element value. + * @param {DiagramElement} source - provide the target value. + * @param {DiagramElement} target - provide the target value. + * @param {DiagramElement} isTarget - provide the target value. + * + * @private + */ +function addPaddingToConnector(element, source, target, isTarget) { + var sourcePort = element.sourcePortWrapper; + var targetPort = element.targetPortWrapper; + var padding = (isTarget) ? element.targetPadding : element.sourcePadding; + var paddingPort = (isTarget) ? targetPort : sourcePort; + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](paddingPort.bounds.x - padding, paddingPort.bounds.y - padding, paddingPort.actualSize.width + 2 * padding, paddingPort.actualSize.height + 2 * padding); + var segmentPoints = [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft]; + segmentPoints[segmentPoints.length] = segmentPoints[0]; + //const length: number = segmentPoints.length; + var thisSegment = { x1: source.point.x, y1: source.point.y, x2: target.point.x, y2: target.point.y }; + var point = (isTarget) ? target.point : source.point; + return getIntersectionPoints(thisSegment, segmentPoints, true, point) || point; +} +/** + * checkSourceAndTargetIntersect method \ + * + * @returns { void } checkSourceAndTargetIntersect method .\ + * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value. + * @param {DiagramElement} targetWrapper - provide the targetWrapper value. + * @param {Connector} connector - provide the Connector value. + * + * @private + */ +function checkSourceAndTargetIntersect(sourceWrapper, targetWrapper, connector) { + var sourceSegment = createSegmentsCollection(sourceWrapper, connector.sourcePadding); + var targetSegment = createSegmentsCollection(targetWrapper, connector.targetPadding); + for (var i = 0; i < sourceSegment.length - 1; i++) { + var srcSegment = sourceSegment[parseInt(i.toString(), 10)]; + for (var j = 0; j < targetSegment.length - 1; j++) { + var tarSegmet = targetSegment[parseInt(j.toString(), 10)]; + if (Object(_diagram_util__WEBPACK_IMPORTED_MODULE_2__["intersect3"])(srcSegment, tarSegmet).enabled) { + return true; + } + } + } + return false; +} +/** + * createSegmentsCollection method \ + * + * @returns { Segment[] } createSegmentsCollection method .\ + * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value. + * @param {number} padding - provide the padding value. + * + * @private + */ +function createSegmentsCollection(sourceWrapper, padding) { + var segments = []; + var points = Object(_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getPoints"])(sourceWrapper, sourceWrapper.corners, padding); + points.push(points[0]); + for (var i = 0; i < points.length - 1; i++) { + segments.push(createLineSegment(points[parseInt(i.toString(), 10)], points[i + 1])); + } + return segments; +} +/** + * createLineSegment method \ + * + * @returns { Segment } createLineSegment method .\ + * @param {PointModel} sPt - provide the sourceWrapper value. + * @param {PointModel} tPt - provide the padding value. + * + * @private + */ +function createLineSegment(sPt, tPt) { + var line = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y }; + return line; +} +/** + * swapBounds method \ + * + * @returns { Corners } swapBounds method .\ + * @param {PointModel} object - provide the sourceWrapper value. + * @param {PointModel} bounds - provide the padding value. + * @param {Rect} outerBounds - provide the padding value. + * + * @private + */ +function swapBounds(object, bounds, outerBounds) { + var rectBounds; + var rotateAngle = object.rotateAngle + object.parentTransform; + if (rotateAngle) { + if (rotateAngle < 45) { + return bounds; + } + else if (rotateAngle <= 135) { + rectBounds = { + width: bounds.width, height: bounds.height, + topLeft: bounds.bottomLeft, topCenter: bounds.middleLeft, topRight: bounds.topLeft, + middleLeft: bounds.bottomCenter, center: outerBounds.center, middleRight: bounds.topCenter, + bottomLeft: bounds.bottomRight, bottomCenter: bounds.middleRight, bottomRight: bounds.topRight, + left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom + }; + } + else if (rotateAngle <= 225) { + rectBounds = { + width: bounds.width, height: bounds.height, + topLeft: bounds.bottomLeft, topCenter: bounds.bottomCenter, topRight: bounds.bottomRight, + middleLeft: bounds.middleRight, center: outerBounds.center, middleRight: bounds.middleLeft, + bottomLeft: bounds.topLeft, bottomCenter: bounds.topCenter, bottomRight: bounds.topRight, + left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, + bottom: outerBounds.bottom + }; + } + else if (rotateAngle <= 315) { + rectBounds = { + width: bounds.width, height: bounds.height, + topLeft: bounds.topRight, topCenter: bounds.middleRight, topRight: bounds.bottomRight, + middleLeft: bounds.topCenter, center: outerBounds.center, middleRight: bounds.bottomCenter, + bottomLeft: bounds.topLeft, bottomCenter: bounds.middleLeft, bottomRight: bounds.bottomLeft, + left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom + }; + } + else { + return bounds; + } + return rectBounds; + } + return bounds; +} +/** + * defaultOrthoConnection method \ + * + * @returns { PointModel[] } defaultOrthoConnection method .\ + * @param {Connector} ele - provide the Connector value. + * @param {Direction} srcDir - provide the srcDir value. + * @param {Direction} tarDir - provide the srcDir value. + * @param {PointModel} sPt - provide the sPt value. + * @param {PointModel} tPt - provide the tPt value. + * @param {Rect} lineDistribution - provide the padding value. + * + * @private + */ +/* tslint:disable */ +// eslint-disable-next-line +function defaultOrthoConnection(ele, srcDir, tarDir, sPt, tPt, lineDistribution) { + var sourceEle = ele.sourceWrapper; + var targetEle = ele.targetWrapper; + var srcPort = ele.sourcePortWrapper; + var tarPort = ele.targetPortWrapper; + var intermeditatePoints = []; + var refPoint; + var srcCor = sourceEle.corners; + // eslint-disable-next-line + var tarCor = targetEle.corners; + var point = tarCor.center; //const i: number; + var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 }; + var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 }; + var source = { corners: srcCor, point: sPt, direction: srcDir, margin: sourceMargin }; + // eslint-disable-next-line + var target = { corners: tarCor, point: tPt, direction: tarDir, margin: targetMargin }; + var srcBounds = swapBounds(sourceEle, srcCor, ele.sourceWrapper.bounds); + var tarBounds = swapBounds(targetEle, tarCor, ele.targetWrapper.bounds); + var isInterSect = false; + if (ele.sourceWrapper && ele.targetWrapper) { + isInterSect = checkSourceAndTargetIntersect(ele.sourceWrapper, ele.targetWrapper, ele); + } + if (srcPort !== undefined) { + source.point = { x: srcPort.offsetX, y: srcPort.offsetY }; + switch (source.direction) { + case 'Bottom': + case 'Top': + // eslint-disable-next-line + source.point.y = source.point.y; + break; + case 'Left': + case 'Right': + // eslint-disable-next-line + source.point.x = source.point.x; + break; + } + if (ele.sourcePadding && !isInterSect) { + if (tarPort) { + target.point = { + x: tarPort.offsetX, + y: tarPort.offsetY + }; + } + source.point = addPaddingToConnector(ele, source, target, false); + } + } + else { + if (ele.type === 'Orthogonal' || ele.type === 'Bezier') { + if (ele.segments && ele.segments.length > 0 && ele.segments[0].direction) { + source.direction = ele.segments[0].direction; + } + source.point = findPoint(srcBounds, source.direction); + refPoint = findPoint(srcBounds, getOppositeDirection(source.direction)); + source.point = getIntersection(ele, sourceEle, source.point, refPoint, false); + } + else { + source.point = sourceEle.corners.center; + } + } + if (tarPort !== undefined) { + target.point = { + x: tarPort.offsetX, + y: tarPort.offsetY + }; + switch (target.direction) { + case 'Bottom': + case 'Top': + // eslint-disable-next-line + target.point.y = target.point.y; + break; + case 'Left': + case 'Right': + // eslint-disable-next-line + target.point.x = target.point.x; + break; + } + if (ele.targetPadding && !isInterSect) { + target.point = addPaddingToConnector(ele, source, target, true); + } + } + else { + if (ele.type === 'Orthogonal' || ele.type === 'Bezier') { + target.point = findPoint(tarBounds, target.direction); + refPoint = findPoint(tarBounds, getOppositeDirection(target.direction)); + target.point = getIntersection(ele, targetEle, target.point, refPoint, true); + } + else { + target.point = targetEle.corners.center; + } + } + if (ele.type !== 'Orthogonal') { + var segment = void 0; + var first = void 0; + if (ele.type === 'Bezier') { + //EJ2-67651 - Bezier segment points are static when we move the connector's source or target node. + if ((ele.bezierSettings.allowSegmentsReset || (ele.segments.length === 0 || + (!_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) { + intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution); + intermeditatePoints = intermeditatePointsForStraight(ele, source, target); + return intermeditatePoints; + } + else { + checkLastSegmentasTerminal(ele); + } + } + else { + checkLastSegmentasTerminal(ele); + } + if (ele.sourcePortWrapper === undefined) { + source.point = source.corners.center; + if (ele.segments && ele.segments.length > 0) { + first = ele.segments[0]; + segment = (!_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].isEmptyPoint(first.point)) ? first : undefined; + } + var tarPoint = (segment !== undefined) ? segment.point : target.point; + if (ele.type === 'Bezier' && ele.segments.length > 0 && + ele.segments[0].vector1.angle && ele.segments[0].vector1.distance) { + var value = Math.max(source.corners.width, source.corners.height); + tarPoint = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform(source.point, ele.segments[0].vector1.angle, value / 2); + } + source.point = isInterSect ? ele.sourceWrapper.bounds.center : getIntersection(ele, sourceEle, source.point, tarPoint, false); + } + if (ele.targetPortWrapper === undefined) { + target.point = target.corners.center; + if (ele.segments && ele.segments.length > 1) { + first = ele.segments[ele.segments.length - 2]; + segment = (!_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].isEmptyPoint(first.point)) ? first : undefined; + } + var srcPoint = (segment) ? segment.point : source.point; + if (ele.type === 'Bezier' && ele.segments.length > 0 && + ele.segments[ele.segments.length - 1].vector2.angle && + ele.segments[ele.segments.length - 1].vector2.distance) { + var value = Math.max(source.corners.width, source.corners.height); + srcPoint = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform(target.point, ele.segments[0].vector2.angle, value / 2); + } + target.point = isInterSect ? ele.targetWrapper.bounds.center : getIntersection(ele, targetEle, srcPoint, target.point, true); + } + intermeditatePoints = intermeditatePointsForStraight(ele, source, target); + } + else { + if (ele.type === 'Orthogonal' && (ele.segments && ele.segments.length > 0) && + ele.segments[0].direction !== null) { + intermeditatePoints = findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle); + } + else { + if (!ele.segments[0]) { + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["OrthogonalSegment"](ele, 'segments', { type: 'Orthogonal' }, true); + ele.segments.push(segment); + } + // eslint-disable-next-line + ele.segments[0].points = intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution); + } + } + return intermeditatePoints; +} +/** + * intermeditatePointsForStraight method \ + * + * @returns { PointModel[] } intermeditatePointsForStraight method .\ + * @param {Connector} element - provide the Connector value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * + * @private + */ +function intermeditatePointsForStraight(element, source, target) { + var intermeditatePoints = []; + if (element.segments && element.segments.length > 0) { + var i = void 0; + var segPoint = []; + var srcPoint = source.point; + for (i = 0; i < element.segments.length; i++) { + var seg = element.segments[parseInt(i.toString(), 10)]; + segPoint = []; + segPoint.push(srcPoint); + if (i !== element.segments.length - 1) { + segPoint.push(seg.point); + srcPoint = seg.point; + } + else { + segPoint.push(target.point); + } + element.segments[parseInt(i.toString(), 10)].points = segPoint; + if (element.segments.length > 1 && _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(seg.points[0], seg.points[1])) { + (element.segments).splice(i, 1); + } + if (seg) { + for (var j = 0; j < seg.points.length; j++) { + if (j > 0 || i === 0) { + intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]); + } + } + } + } + } + return intermeditatePoints; +} +/** + * findSourceDirection method \ + * + * @returns { PointModel[] } findSourceDirection method .\ + * @param {Direction} dir - provide the dir value. + * @param {PointModel} srcPoint - provide the srcPoint value. + * @param {PointModel} tarPoint - provide the tarPoint value. + * + * @private + */ +function findSourceDirection(dir, srcPoint, tarPoint) { + var direction = (dir === 'Top' || dir === 'Bottom') ? + ((tarPoint.x > srcPoint.x) ? 'Right' : 'Left') : + ((tarPoint.y > srcPoint.y) ? 'Bottom' : 'Top'); + return direction; +} +/** + * checkLastSegmentasTerminal method \ + * + * @returns { void } checkLastSegmentasTerminal method .\ + * @param {Connector} ele - provide the Connector value. + * + * @private + */ +function checkLastSegmentasTerminal(ele) { + if (ele.type === 'Straight' || ele.type === 'Bezier') { + if ((ele.segments.length === 0 || (ele.segments.length > 0 && + (!_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) { + //let segment: BezierSegmentModel | StraightSegmentModel; + if (ele.type === 'Bezier') { + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](ele, 'segments', { type: 'Bezier', isInternalSegment: true }, true); + (ele.segments).push(segment); + } + else { + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["StraightSegment"](ele, 'segments', { type: 'Straight' }, true); + (ele.segments).push(segment); + } + } + } + else { + if (ele.segments.length === 0 || ele.segments[ele.segments.length - 1].direction) { + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["OrthogonalSegment"](ele, 'segments', { type: 'Orthogonal' }, true); + ele.segments.push(segment); + } + } +} +/** + * checkConsectiveSegmentAsSame method \ + * + * @returns { number } checkConsectiveSegmentAsSame method .\ + * @param {Connector} ele - provide the Connector value. + * @param {Connector} i - provide the Connector value. + * @param {Connector} source - provide the Connector value. + * + * @private + */ +function checkConsectiveSegmentAsSame(ele, i, source) { + var seg = ele.segments[parseInt(i.toString(), 10)]; + var extra = (seg.direction === 'Left' || seg.direction === 'Top') ? -(seg.length) : seg.length; + var angle = (seg.direction === 'Left' || seg.direction === 'Right') ? 0 : 90; + var segPoint = addLineSegment(source.point, extra, angle); + ele.segments[i - 1].length += seg.length; + ele.segments[i - 1].points[1] = source.point = segPoint; + ele.segments.splice(i, 1); + i--; + return i; +} +/** + * nodeOrPortToNode method \ + * + * @returns { PointModel[] } nodeOrPortToNode method .\ + * @param {Connector} ele - provide the Connector value. + * @param {End} source - provide the Connector value. + * @param {End} target - provide the Connector value. + * + * @private + */ +function nodeOrPortToNode(ele, source, target) { + var point; + var portdirection; + if (ele.sourcePortWrapper) { + var port = { x: ele.sourcePortWrapper.offsetX, y: ele.sourcePortWrapper.offsetY }; + portdirection = getPortDirection(port, Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(ele.sourceWrapper), ele.sourceWrapper.bounds, false); + } + findDirection(ele.targetWrapper, source, target, ele); + var direction = findSourceDirection(target.direction, source.point, target.point); + if (ele.sourcePortWrapper !== undefined && source.direction === target.direction && + ((source.direction === 'Top' || source.direction === 'Bottom') && (source.corners.center.x === target.corners.center.x) + || (source.direction === 'Left' || source.direction === 'Right') && (source.corners.center.y === target.corners.center.y))) { + source.direction = direction; + point = (direction === 'Top' || direction === 'Bottom') ? + orthoConnection3Segment(ele, source, target, ele.sourceWrapper.height / 2 + 20) : + orthoConnection3Segment(ele, source, target, ele.sourceWrapper.width / 2 + 20); + var source1 = source; + source1.point = point[1]; + if (direction === 'Left' || direction === 'Right') { + target.direction = direction; + target.point = (direction === 'Left') ? target.corners.middleLeft : target.corners.middleRight; + } + else { + findDirection(ele.targetWrapper, source, target, ele); + } + point = orthoConnection3Segment(ele, source, target); + } + else if (target.point.x >= source.corners.left && target.point.x <= source.corners.right && + source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) { + source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top'; + var length_2 = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) : + (source.corners.bottom - source.point.y + 20); + point = orthoConnection3Segment(ele, source, target, length_2); + } + else if (ele.sourcePortWrapper && portdirection === getOppositeDirection(direction)) { + var length_3; + if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top + && source.point.y <= source.corners.bottom)) { + source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top'; + length_3 = source.corners.height / 2 + 20; + } + else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left + && source.point.x <= source.corners.right)) { + source.direction = (target.point.x > source.point.x) ? 'Right' : 'Left'; + length_3 = source.corners.width / 2 + 20; + } + if (source.direction && length_3) { + point = orthoConnection3Segment(ele, source, target, length_3, true); + } + else { + source.direction = direction; + point = orthoConnection2Segment(source, target); + } + } + else if (ele.sourcePortWrapper && portdirection === target.direction && (portdirection === 'Top' || portdirection === 'Bottom') && + (source.corners.center.x === target.corners.center.x)) { + source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top'; + var len = (source.direction === 'Bottom') ? (source.corners.bottom - source.point.y + 20) : + (source.point.y - source.corners.top + 20); + point = orthoConnection3Segment(ele, source, target, len); + } + else { + source.direction = direction; + point = orthoConnection2Segment(source, target); + } + return point; +} +/** + * checkSourcePointInTarget method \ + * + * @returns { void } checkSourcePointInTarget method .\ + * @param {Connector} ele - provide the Connector value. + * @param {End} source - provide the Connector value. + * + * @private + */ +function checkSourcePointInTarget(ele, source) { + if (ele.targetWrapper !== undefined && ele.targetPortWrapper === undefined) { + var padding = 1; + if (Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(ele.targetWrapper).containsPoint(source.point, padding)) { + var target = ele.targetWrapper; + var segment = ele.segments[ele.segments.length - 2]; + var lastPoint = segment.points[segment.points.length - 1]; + var direction = getOppositeDirection(segment.direction); + if (direction === 'Bottom') { + if (lastPoint.y < target.corners.bottom + padding) { + segment.points[segment.points.length - 1].y = target.corners.bottom + 20; + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[segment.points.length - 1]); + } + } + else if (direction === 'Top') { + if (lastPoint.y > target.corners.top - padding) { + segment.points[segment.points.length - 1].y = target.corners.top - 20; + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[segment.points.length - 1]); + } + } + else if (direction === 'Left') { + if (lastPoint.x > target.corners.left - padding) { + segment.points[segment.points.length - 1].x = target.corners.left - 20; + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[segment.points.length - 1]); + } + } + else if (direction === 'Right') { + if (lastPoint.x < target.corners.right + padding) { + segment.points[segment.points.length - 1].x = target.corners.right + 20; + segment.length = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(segment.points[0], segment.points[segment.points.length - 1]); + } + } + source.point = segment.points[segment.points.length - 1]; + } + } +} +/** + * findIntermeditatePoints method \ + * + * @returns { void } findIntermeditatePoints method .\ + * @param {Connector} ele - provide the ele value. + * @param {End} source - provide the source value. + * @param {End} target - provide the source value. + * @param {DiagramElement} srcPort - provide the srcPort value. + * @param {DiagramElement} tarPort - provide the tarPort value. + * @param {DiagramElement} sourceEle - provide the sourceEle value. + * @param {DiagramElement} targetEle - provide the targetEle value. + * @private + */ +function findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle) { + var point; + var intermeditatePoints = []; + var seg; + var j; + var removeSegment; + checkLastSegmentasTerminal(ele); + for (var i = 0; i < ele.segments.length; i++) { + seg = ele.segments[parseInt(i.toString(), 10)]; + if (srcPort && source.direction === getOppositeDirection(seg.direction)) { + seg.direction = source.direction; + } + if (i > 0 && ele.segments[i - 1].direction === seg.direction) { + i = checkConsectiveSegmentAsSame(ele, i, source); + } + else { + if (seg.direction) { + source.point = updateSegmentPoints(source, ele.segments[parseInt(i.toString(), 10)]); + } + else { + var segment = ele.segments[i - 1]; + source.point = segment.points[segment.points.length - 1]; + } + } + if (i === ele.segments.length - 1) { + checkSourcePointInTarget(ele, source); + if (tarPort === undefined) { + point = nodeOrPortToNode(ele, source, target); + } + else { + point = pointToPort(ele, source, target); + } + checkPreviousSegment(point, ele, source); + seg.points = []; + if (point.length >= 2) { + for (j = 0; j < point.length; j++) { + if (!ele.selectedSegmentIndex) { + seg.points.push(point[parseInt(j.toString(), 10)]); + } + else { + // EJ2-65063 - If point length is greater then 2 means then empty the last segment points and set it as two points instead of four points + if (j === point.length - 1 && point.length > 2 && ele.segments.length > 2) { + var point2 = void 0; + // EJ2-69304 - Change the point calculation to work for all port combination + point2 = { x: point[parseInt(j.toString(), 10)].x, y: source.point.y }; + // EJ2 - 65063 - Empty the segment points + seg.points = []; + // EJ2-69304 - Calculate the point for segment and manually push the point in segment point calculation + seg.points.push(point[parseInt(j.toString(), 10)]); + seg.points.push(point2); + var segment = ele.segments[i - 1]; + // EJ2-69304 - Assign the newly calculated point to the previous segment target point + segment.points[1] = seg.points[1]; + } + else { + seg.points.push(point[parseInt(j.toString(), 10)]); + } + } + } + } + else { + removeSegment = i; + } + } + // EJ2-65063 - Added below condition !selectedSegmentIndex to restrict the connector segment to remove from its collection. + if (removeSegment !== undefined && !ele.selectedSegmentIndex) { + if (removeSegment === ele.segments.length - 1) { + ele.segments[removeSegment - 1].direction = null; + ele.segments[removeSegment - 1].length = null; + } + ele.segments.splice(removeSegment, 1); + } + if (srcPort && i === 0) { + var sourcePoint = checkPortdirection(ele, srcPort, sourceEle); + if (sourcePoint) { + source.point = sourcePoint; + } + } + } + return returnIntermeditatePoints(ele, intermeditatePoints); +} +/** + * returnIntermeditatePoints method \ + * + * @returns { PointModel[] } returnIntermeditatePoints method .\ + * @param {Connector} element - provide the ele value. + * @param {PointModel[]} intermeditatePoints - provide the source value. + * @private + */ +function returnIntermeditatePoints(element, intermeditatePoints) { + for (var i = 0; i < element.segments.length; i++) { + var seg = element.segments[parseInt(i.toString(), 10)]; + for (var j = 0; j < seg.points.length; j++) { + if (j > 0 || i === 0) { + intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]); + } + } + } + return intermeditatePoints; +} +/** + * findDirection method \ + * + * @returns { void } findDirection method .\ + * @param {DiagramElement} node - provide the ele value. + * @param {End} source - provide the source value. + * @param {End} target - provide the source value. + * @param {Connector} ele - provide the source value. + * @private + */ +function findDirection(node, source, target, ele) { + var nodeDirection; + var nodeConnectingPoint = { x: 0, y: 0 }; + var nodeCorners = swapBounds(node, node.corners, node.bounds); + var nodeMargin = source.margin; + var fixedPoint = source.point; + if (nodeCorners.bottomCenter.y + nodeMargin.bottom < fixedPoint.y) { + nodeDirection = 'Bottom'; + nodeConnectingPoint = nodeCorners.bottomCenter; + } + else if (nodeCorners.topCenter.y - nodeMargin.top > fixedPoint.y) { + nodeDirection = 'Top'; + nodeConnectingPoint = nodeCorners.topCenter; + } + else if (nodeCorners.middleLeft.x - nodeMargin.left > fixedPoint.x) { + nodeDirection = 'Left'; + nodeConnectingPoint = nodeCorners.middleLeft; + } + else if (nodeCorners.middleRight.x + nodeMargin.right < fixedPoint.x) { + nodeDirection = 'Right'; + nodeConnectingPoint = nodeCorners.middleRight; + } + else { + var top_1 = Math.abs(fixedPoint.y - nodeCorners.topCenter.y); + var right = Math.abs(fixedPoint.x - nodeCorners.middleRight.x); + var bottom = Math.abs(fixedPoint.y - nodeCorners.bottomCenter.y); + var left = Math.abs(fixedPoint.x - nodeCorners.middleLeft.x); + var shortes = Number.MAX_VALUE; + shortes = top_1; + nodeDirection = 'Top'; + nodeConnectingPoint = nodeCorners.topCenter; + if (shortes > right) { + shortes = right; + nodeDirection = 'Right'; + nodeConnectingPoint = nodeCorners.middleRight; + } + if (shortes > bottom) { + shortes = bottom; + nodeDirection = 'Bottom'; + nodeConnectingPoint = nodeCorners.bottomCenter; + } + if (shortes > left) { + //shortes = left; + nodeDirection = 'Left'; + nodeConnectingPoint = nodeCorners.middleLeft; + } + } + target.point = nodeConnectingPoint; + target.direction = nodeDirection; + var refPoint = findPoint(nodeCorners, getOppositeDirection(target.direction)); + target.point = getIntersection(ele, node, target.point, refPoint, node === ele.targetWrapper); +} +/** + * findOrthoSegments method \ + * + * @returns { PointModel[] } findOrthoSegments method .\ + * @param {DiagramElement} ele - provide the ele value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {Connector} extra - provide the extra value. + * @param {boolean} lineDistribution - provide the lineDistribution value. + * @private + */ +function findOrthoSegments(ele, source, target, extra, lineDistribution) { + var swap = false; + var intermeditatePoints = []; + var seg; + swap = getSwapping(source.direction, target.direction); + if (swap) { + swapPoints(source, target); + } + if (source.direction === 'Right' && target.direction === 'Left') { + seg = getRightToLeftSegmentCount(ele, source, target, swap); + } + else if (source.direction === 'Right' && target.direction === 'Right') { + seg = getRightToRightSegmentCount(ele, source, target); + } + else if (source.direction === 'Right' && target.direction === 'Top') { + seg = getRightToTopSegmentCount(ele, source, target, swap); + } + else if (source.direction === 'Right' && target.direction === 'Bottom') { + seg = getRightToBottomSegmentCount(ele, source, target, swap); + } + else if (source.direction === 'Bottom' && target.direction === 'Top') { + seg = getBottomToTopSegmentCount(ele, source, target); + } + else if (source.direction === 'Bottom' && target.direction === 'Bottom') { + /** + * EJ2-56920-Option to adjust the distance between source node and target node. + */ + var margin = findMargin(ele); + source.margin = { left: margin, right: margin, top: margin, bottom: margin }; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + seg = getBottomToBottomSegmentCount(ele, source, target); + } + else if (source.direction === 'Bottom' && target.direction === 'Left') { + seg = getBottomToLeftSegmentCount(ele, source, target, swap); + } + else if (source.direction === 'Left' && target.direction === 'Left') { + seg = getLeftToLeftSegmentCount(ele, source, target); + } + else if (source.direction === 'Left' && target.direction === 'Top') { + seg = getLeftToTopSegmentCount(ele, source, target, swap); + } + else if (source.direction === 'Top' && target.direction === 'Top') { + seg = getTopToTopSegmentCount(ele, source, target); + } + if (swap) { + swapPoints(source, target); + } + intermeditatePoints = addOrthoSegments(ele, seg, source, target, extra, lineDistribution); + if (ele.type === 'Bezier') { + convertPointToBezierSegment(ele, seg, intermeditatePoints); + } + return intermeditatePoints; +} +/** + * Returns the margin of source node and the target node + * + * @returns { number } - findMargin method .\ + * @param { Connector } element - provide the element value + * @private + */ +function findMargin(element) { + var margin; + if (element.connectorSpacing >= 13) { + margin = 13; + } + else if (element.connectorSpacing <= 1) { + margin = 1; + } + else { + margin = element.connectorSpacing; + } + return margin; +} +/** + * findAngle method \ + * + * @returns { number } findAngle method .\ + * @param {DiagramElement} s - provide the s value. + * @param {End} e - provide the e value. + * @private + */ +function findAngle(s, e) { + var r = { x: e.x, y: s.y }; + //const sr: number = Point.findLength(s, r); + var re = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(r, e); + var es = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(e, s); + var ang = Math.asin(re / es); + ang = ang * 180 / Math.PI; + if (s.x < e.x) { + if (s.y > e.y) { + ang = 360 - ang; + } + } + else { + if (s.y < e.y) { + ang = 180 - ang; + } + else { + ang = 180 + ang; + } + } + return ang; +} +/** + * findPoint method \ + * + * @returns { number } findPoint method .\ + * @param {Corners} cor - provide the cor value. + * @param {string} direction - provide the direction value. + * @private + */ +function findPoint(cor, direction) { + var point; + switch (direction) { + case 'Left': + point = cor.middleLeft; + break; + case 'Top': + point = cor.topCenter; + break; + case 'Right': + point = cor.middleRight; + break; + case 'Bottom': + point = cor.bottomCenter; + break; + } + return point; +} +/** + * pointsFromNodeToPoint method \ + * + * @returns { number } pointsFromNodeToPoint method .\ + * @param {OrthogonalSegment} seg - provide the seg value. + * @param {string} direction - provide the direction value. + * @param {Rect} bounds - provide the bounds value. + * @param {PointModel} point - provide the point value. + * @param {PointModel} endPoint - provide the endPoint value. + * @param {boolean} isTarget - provide the isTarget value. + * @private + */ +function pointsFromNodeToPoint(seg, direction, bounds, point, endPoint, isTarget) { + var minSpace = 13; + var x; + var points = []; + var y; + points.push(point); + //let straight: boolean; + var straight = (point.y === endPoint.y && (direction === 'Left' && endPoint.x < point.x || + direction === 'Right' && endPoint.x > point.x)) || + (point.x === endPoint.x && (direction === 'Top' && endPoint.y < point.y || + direction === 'Bottom' && endPoint.y > point.y)); + if (!straight) { + if (direction === 'Top' || direction === 'Bottom') { + if (direction === 'Top' && endPoint.y < point.y && endPoint.y > point.y - minSpace || + direction === 'Bottom' && endPoint.y > point.y && endPoint.y < point.y + minSpace) { + y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace; + points.push({ x: point.x, y: y }); + points.push({ x: point.x + (endPoint.x - point.x) / 2, y: y }); + points.push({ x: point.x + (endPoint.x - point.x) / 2, y: endPoint.y }); + } + else if (Math.abs(point.x - endPoint.x) > minSpace && + (direction === 'Top' && endPoint.y < point.y || direction === 'Bottom' && endPoint.y > point.y)) { + //twosegments + points.push({ x: point.x, y: endPoint.y }); + } + else { + y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace; + x = (endPoint.x < point.x) ? bounds.left - minSpace : bounds.right + minSpace; + points.push({ x: point.x, y: y }); + points.push({ x: endPoint.x, y: y }); + } + } + else { + if (direction === 'Left' && endPoint.x < point.x && endPoint.x > point.x - minSpace || direction === 'right' && + endPoint.x > point.x && endPoint.x < point.x + minSpace) { + x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace; + points.push({ x: x, y: point.y }); + points.push({ x: x, y: point.y + (endPoint.y - point.y) / 2 }); + points.push({ x: endPoint.x, y: point.y + (endPoint.y - point.y) / 2 }); + } + else if (Math.abs(point.y - endPoint.y) > minSpace && + (direction === 'Left' && endPoint.x < point.x || direction === 'Right' && endPoint.x > point.x)) { + points.push({ x: endPoint.x, y: point.y }); + //twosegments + } + else { + x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace; + points.push({ x: x, y: point.y }); + points.push({ x: x, y: endPoint.y }); + } + } + if (isTarget) { + points.push(seg.points[0]); + points.reverse(); + } + seg.points = points; + } +} +/** + * addLineSegment method \ + * + * @returns { PointModel } addLineSegment method .\ + * @param {PointModel} point - provide the seg value. + * @param {number} extra - provide the direction value. + * @param {number} angle - provide the bounds value. + * @private + */ +function addLineSegment(point, extra, angle) { + var segEnd = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform(point, angle, extra); + return segEnd; +} +/** + * getIntersection method \ + * + * @returns { PointModel } getIntersection method .\ + * @param {PointModel} ele - provide the ele value. + * @param {number} bounds - provide the bounds value. + * @param {number} sPt - provide the sPt value. + * @param {number} tPt - provide the tPt value. + * @param {number} isTar - provide the isTar value. + * @private + */ +function getIntersection(ele, bounds, sPt, tPt, isTar) { + sPt = { x: sPt.x, y: sPt.y }; + tPt = { x: tPt.x, y: tPt.y }; + //const angle: number = Point.findAngle(tPt, sPt); ///let child: PathElement;// let intersection: PointModel; + var wrapper = isTar ? ele.targetWrapper : ele.sourceWrapper; + var padding = (isTar ? ele.targetPadding : ele.sourcePadding); + var rect; + var segmentPoints; + var point = isTar || (ele.type === 'Orthogonal' || ele.type === 'Bezier') ? sPt : tPt; + //const sourcePoint: PointModel = Point.transform(sPt, angle, Math.max(wrapper.actualSize.height / 2, wrapper.actualSize.width / 2)); + var child = wrapper; + var sPt1 = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["rotatePoint"])(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt); + var tPt1 = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["rotatePoint"])(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, tPt); + if (ele.type === 'Orthogonal' || ele.type === 'Bezier') { + var constValue = 5; + if (sPt1.x === tPt1.x) { + if (sPt1.y < tPt1.y) { + sPt1.y -= constValue; + } + else { + sPt1.y += constValue; + } + } + if (sPt1.y === tPt1.y) { + if (sPt1.x < tPt1.x) { + sPt1.x -= constValue; + } + else { + sPt1.x += constValue; + } + } + sPt = Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["rotatePoint"])(wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt1); + } + else { + //const angle: number = isTar ? Point.findAngle(sPt, tPt) : Point.findAngle(tPt, sPt); + if (isTar) { + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findAngle(sPt, tPt); + tPt = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform({ x: tPt.x, y: tPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height)); + } + else { + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findAngle(tPt, sPt); + sPt = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].transform({ x: sPt.x, y: sPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height)); + } + } + if ((ele.sourcePadding || ele.targetPadding)) { + rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"](wrapper.bounds.x - padding, wrapper.bounds.y - padding, wrapper.actualSize.width + 2 * padding, wrapper.actualSize.height + 2 * padding); + } + if (wrapper instanceof _core_elements_path_element__WEBPACK_IMPORTED_MODULE_5__["PathElement"] && wrapper.data) { + segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : child.getPoints(); + if (((child.data.split('m').length - 1) + (child.data.split('M').length - 1)) === 1) { + segmentPoints[segmentPoints.length] = segmentPoints[0]; + } + } + else { + segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : Object(_diagram_util__WEBPACK_IMPORTED_MODULE_2__["getPoints"])(wrapper, wrapper.corners); + segmentPoints[segmentPoints.length] = segmentPoints[0]; + } + //const length: number = segmentPoints.length; + var thisSegment = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y }; + return getIntersectionPoints(thisSegment, segmentPoints, true, point) || sPt; +} +/** + * setLineEndPoint method \ + * + * @returns { PointModel } setLineEndPoint method .\ + * @param {PointModel} element - provide the ele value. + * @param {number} point - provide the bounds value. + * @param {number} isTarget - provide the sPt value. + * @private + */ +function setLineEndPoint(element, point, isTarget) { + point.x = Math.round(point.x * 100) / 100; + point.y = Math.round(point.y * 100) / 100; + if (isTarget) { + element.targetPoint = point; + } + else { + element.sourcePoint = point; + } + return point; +} +/** + * getIntersectionPoints method \ + * + * @returns { PointModel } getIntersectionPoints method .\ + * @param {Segment} thisSegment - provide the ele value. + * @param {Object[]} pts - provide the bounds value. + * @param {boolean} minimal - provide the sPt value. + * @param {PointModel} point - provide the sPt value. + * @private + */ +function getIntersectionPoints(thisSegment, pts, minimal, point) { + var length = pts.length; + var min; + var segment = { + x1: pts[0].x, y1: pts[0].y, x2: pts[1].x, + y2: pts[1].y + }; + var intersection = intersectSegment(thisSegment, segment); + if (intersection) { + // if (!minimal) { return intersection; } //commented because minimal is always true + min = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(intersection, point); + } + if (isNaN(min) || min > 0) { + for (var i = 1; i < length - 1; i++) { + segment = { + x1: pts[parseInt(i.toString(), 10)].x, y1: pts[parseInt(i.toString(), 10)].y, + x2: pts[i + 1].x, y2: pts[i + 1].y + }; + var intersect = intersectSegment(thisSegment, segment); + if (intersect) { + // if (!minimal) { return intersect; }//commented because minimal is always true + var dist = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].distancePoints(intersect, point); + if (isNaN(min) || min > dist) { + min = dist; + intersection = intersect; + } + if (min >= 0 && min <= 1) { + break; + } + } + } + } + return intersection; +} +/** + * intersectSegment method \ + * + * @returns { PointModel } intersectSegment method .\ + * @param {Segment} segment1 - provide the ele value. + * @param {Segment} segment2 - provide the bounds value. + * @private + */ +function intersectSegment(segment1, segment2) { + var x1 = segment1.x1; + var y1 = segment1.y1; + var x2 = segment1.x2; + var y2 = segment1.y2; + var x3 = segment2.x1; + var y3 = segment2.y1; + var x4 = segment2.x2; + var y4 = segment2.y2; + var a1; + var a2; + var b1; + var b2; + var c1; + var c2; + var x; + var y; + var r1; + var r2; + var r3; + var r4; + var offset; + var num; + // eslint-disable-next-line + a1 = y2 - y1; + b1 = x1 - x2; + c1 = (x2 * y1) - (x1 * y2); + // eslint-disable-next-line + r3 = ((a1 * x3) + (b1 * y3) + c1); + r4 = ((a1 * x4) + (b1 * y4) + c1); + if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) { + return null; + } + // eslint-disable-next-line + a2 = y4 - y3; + b2 = x3 - x4; + c2 = (x4 * y3) - (x3 * y4); + // eslint-disable-next-line + r1 = (a2 * x1) + (b2 * y1) + c2; + r2 = (a2 * x2) + (b2 * y2) + c2; + if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) { + return null; + } + var denom = (a1 * b2) - (a2 * b1); + if (denom === 0) { + return null; + } + if (denom < 0) { + offset = -denom / 2; + } + else { + offset = denom / 2; + } + offset = 0; + num = (b1 * c2) - (b2 * c1); + if (num < 0) { + x = (num - offset) / denom; + } + else { + x = (num + offset) / denom; + } + num = (a2 * c1) - (a1 * c2); + if (num < 0) { + y = (num - offset) / denom; + } + else { + y = (num + offset) / denom; + } + return { x: x, y: y }; +} +/** + * sameSign method \ + * + * @returns { boolean } sameSign method .\ + * @param {Connector} a - provide the Connector value. + * @param {End} b - provide the source End value. + * @private + */ +function sameSign(a, b) { + return ((a * b) >= 0); +} +/** + * getRightToLeftSegmentCount method \ + * + * @returns { NoOfSegments } getRightToLeftSegmentCount method .\ + * @param {Connector} element - provide the Connector value. + * @param {End} source - provide the source End value. + * @param {End} target - provide the target End value. + * @param {boolean} swap - provide the swap value. + * @private + */ +function getRightToLeftSegmentCount(element, source, target, swap) { + var srcPort = element.sourcePortWrapper; + //let targetPort: DiagramElement = element.targetPortWrapper; + var pts; + var diffY = Math.round(Math.abs(source.point.y - target.point.y)); + //let diffX: number = Math.round(Math.abs(source.point.x - target.point.x)); + var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y }; + var left = { x: Math.min(target.point.x, target.corners.left), y: target.point.y }; + var margin = findMargin(element); + if (swap) { + //let point: PointModel; + var point = left; + left = right; + right = point; + } + if (!(source.corners.bottom + margin < target.corners.top - margin || + source.corners.top - margin > target.corners.bottom + margin)) { + if (element.type !== 'Bezier') { + margin = 0; + } + else if (target.corners.left - source.corners.right <= margin * 2 && target.corners.left - source.corners.right >= 5) { + margin = 0; + } + } + source.margin = { left: margin, right: margin, top: margin, bottom: margin }; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + if (diffY === 0 && (source.corners.right < target.corners.left + || (swap && source.corners.right < target.corners.left))) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else if (source.point.x + source.margin.right < target.point.x - target.margin.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (element.sourceWrapper !== element.targetWrapper && + (Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.sourceWrapper).containsPoint(left) || + Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.targetWrapper).containsPoint(right))) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.bottom <= target.corners.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (source.corners.top >= target.corners.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if ((srcPort !== undefined && srcPort.offsetY <= target.corners.top) || + (srcPort === undefined && source.corners.right <= target.corners.top)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if ((srcPort !== undefined && srcPort.offsetY >= target.corners.bottom) || + (srcPort === undefined && source.corners.right >= target.corners.bottom)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + return pts; +} +/** + * getRightToRightSegmentCount method \ + * + * @returns { NoOfSegments } getRightToRightSegmentCount method .\ + * @param {Connector} element - provide the Connector value. + * @param {End} sourceObj - provide the source End value. + * @param {End} targetObj - provide the target End value. + * @private + */ +function getRightToRightSegmentCount(element, sourceObj, targetObj) { + var sourcePort = element.sourcePortWrapper; + var tarPort = element.targetPortWrapper; + var pts; + var diffX = sourceObj.point.x - targetObj.point.x; + var diffY = sourceObj.point.y - targetObj.point.y; + var margin = findMargin(element); + targetObj.margin = { left: margin, right: margin, top: margin, bottom: margin }; + sourceObj.margin = { left: margin, right: margin, top: margin, bottom: margin }; + if (sourceObj.corners.right >= targetObj.corners.right) { + if ((sourcePort !== undefined && (sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top || + sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom)) || + (sourcePort === undefined && sourceObj.corners.middleRight.y < targetObj.corners.top)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((sourcePort !== undefined && sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom + && sourceObj.corners.top > targetObj.corners.bottom) || + (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((sourcePort !== undefined && sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top + && sourceObj.corners.bottom > targetObj.corners.top) || + (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (sourceObj.corners.right < targetObj.corners.left || + targetObj.corners.right < sourceObj.corners.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + } + else if ((tarPort !== undefined && sourceObj.corners.bottom < tarPort.offsetY - targetObj.margin.top) || + (tarPort === undefined && sourceObj.corners.bottom < targetObj.corners.middleRight.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((tarPort !== undefined && sourceObj.corners.top > tarPort.offsetY + targetObj.margin.right) || + (tarPort === undefined && sourceObj.corners.top > targetObj.corners.middleRight.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((tarPort !== undefined && ((sourcePort !== undefined && sourcePort.offsetX < targetObj.corners.left && + sourcePort.offsetX !== tarPort.offsetX && (Math.abs(sourceObj.corners.right - targetObj.corners.left) <= 20)) || + (sourcePort === undefined && sourceObj.corners.right < targetObj.corners.left && + sourceObj.corners.center.x !== targetObj.corners.center.x && sourceObj.corners.center.y !== targetObj.corners.center.y)))) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (sourceObj.corners.right < targetObj.corners.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + return pts; +} +/** + * getRightToTopSegmentCount method \ + * + * @returns { NoOfSegments } getRightToTopSegmentCount method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the target value. + * @param {End} target - provide the target value. + * @param {End} swap - provide the swap value. + * @private + */ +function getRightToTopSegmentCount(element, source, target, swap) { + var tarPort = element.targetPortWrapper; + var srcPort = element.sourcePortWrapper; + var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y }; + var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) }; + var margin = findMargin(element); + var pts; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + source.margin = { top: margin, bottom: margin, left: margin, right: margin }; + if (swap) { + //let port: DiagramElement; + var port = srcPort; + srcPort = tarPort; + tarPort = port; + var point = right; + right = top; + top = point; + } + if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) || + (srcPort === undefined && source.corners.bottom < target.corners.top - target.margin.top)) { + if (source.corners.bottom < target.corners.top) { + if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) || + (tarPort === undefined && source.corners.right + source.margin.right < target.corners.topCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + } + else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) || + (tarPort === undefined && source.corners.left > target.corners.topCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + } + else if (srcPort !== undefined && Math.abs(source.corners.right - target.corners.left) <= 5 && + Math.abs(srcPort.offsetY - target.corners.top) <= 5) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else if (tarPort !== undefined && source.corners.right < target.corners.left && Math.abs(tarPort.offsetX - source.corners.topCenter.x) >= 25 && + source.corners.middleRight.y + source.margin.right < tarPort.offsetY) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else if (source.corners.right < target.corners.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else if (element.sourceWrapper !== element.targetWrapper && + (Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.sourceWrapper).containsPoint(top) || + Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.targetWrapper).containsPoint(right))) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + return pts; +} +/** + * getRightToTopSegmentCount method \ + * + * @returns { NoOfSegments } getRightToTopSegmentCount method .\ + * @param {Connector} element - provide the element value. + * @param {End} source - provide the target value. + * @param {End} target - provide the target value. + * @param {End} swap - provide the swap value. + * @private + */ +function getRightToBottomSegmentCount(element, source, target, swap) { + var margin = findMargin(element); + source.margin = { left: margin, right: margin, top: margin, bottom: margin }; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + var pts; + var srcPort = element.sourcePortWrapper; + var tarPort = element.targetPortWrapper; + //let right: PointModel = { x: Math.max(source.point.x, source.corners.right), y: source.point.y }; + //let bottom: PointModel = { x: target.point.x, y: Math.max(target.point.y, target.corners.bottom) }; + if (swap) { + //let port: DiagramElement; + var port = srcPort; + srcPort = tarPort; + tarPort = port; + } + if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) || + (srcPort === undefined && source.corners.middleRight.y > target.corners.bottom + target.margin.bottom)) { + if (source.corners.top > target.corners.bottom) { + if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) || + (tarPort === undefined && source.corners.right + source.margin.right < target.corners.bottomCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + } + else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) || + (tarPort === undefined && source.corners.left > target.corners.bottomCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + } + else if (srcPort !== undefined && + Math.abs(source.corners.right - target.corners.left) <= 25 && + Math.abs(srcPort.offsetY - target.corners.bottom) <= 25) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else if (source.corners.right < target.corners.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + return pts; +} +/** + * getBottomToTopSegmentCount method \ + * + * @returns { NoOfSegments } getBottomToTopSegmentCount method .\ + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function getBottomToTopSegmentCount(element, source, target) { + var pts; + var diffX = source.point.x - target.point.x; + //const diffY: number = source.point.y - target.point.y; + //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) }; + //let top: PointModel = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) }; + var margin = findMargin(element); + if (!(source.corners.right + margin < target.corners.left - margin || + source.corners.left - margin > target.corners.right + margin)) { + if (element.type !== 'Bezier') { + margin = 0; + } + else if (target.corners.top - source.corners.bottom <= margin * 2 && target.corners.top - source.corners.bottom >= 5) { + margin = 0; + } + } + source.margin = { left: margin, right: margin, top: margin, bottom: margin }; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + if (diffX === 0 && source.corners.bottom < target.corners.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else if (source.corners.bottom + source.margin.bottom < target.corners.top - target.margin.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.right + source.margin.right < target.corners.left - target.margin.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (source.corners.left - source.margin.left > target.corners.right + target.margin.right) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + return pts; +} +/** + * getBottomToLeftSegmentCount method \ + * + * @returns { NoOfSegments } getBottomToLeftSegmentCount method .\ + * @param {End} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {End} swap - provide the swap value. + * @private + */ +function getBottomToLeftSegmentCount(element, source, target, swap) { + var srcPort = element.sourcePortWrapper; + var tarPort = element.targetPortWrapper; + //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) }; + //let left: PointModel = { x: Math.min(target.point.x, target.corners.left), y: target.point.y }; + var margin = findMargin(element); + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + source.margin = { top: margin, bottom: margin, left: margin, right: margin }; + var pts; + if (swap) { + //let port: DiagramElement; + var port = srcPort; + srcPort = tarPort; + tarPort = port; + } + if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) || + (srcPort === undefined && source.corners.bottomCenter.x < target.corners.bottomLeft.x - target.margin.left)) { + if (source.corners.right < target.corners.left) { + if ((tarPort !== undefined && source.corners.bottom + source.margin.bottom < tarPort.offsetY) || + (tarPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + } + else if ((tarPort !== undefined && source.corners.top > tarPort.offsetY) || + (tarPort === undefined && source.corners.top > target.corners.middleLeft.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + } + else if (tarPort !== undefined && + Math.abs(source.corners.right - target.corners.left) <= 25 && + Math.abs(tarPort.offsetY - source.corners.bottom) <= 25) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + return pts; +} +/** + * getBottomToBottomSegmentCount method \ + * + * @returns { NoOfSegments } getBottomToBottomSegmentCount method .\ + * @param {End} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function getBottomToBottomSegmentCount(element, source, target) { + var srcPort = element.sourcePortWrapper; + var tarPort = element.targetPortWrapper; + var difX = Math.round(Math.abs(source.point.x - target.point.x)); + var diffY = Math.round(Math.abs(target.point.y - target.point.y)); + var pts; + if (source.corners.bottom < target.corners.bottom) { + if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) || + (srcPort === undefined && source.corners.bottomCenter.x < target.corners.left - target.margin.left)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) || + (srcPort === undefined && source.corners.bottomCenter.x > target.corners.right + target.margin.right)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.bottom < target.corners.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (difX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + } + else if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) || + (tarPort === undefined && source.corners.left > target.corners.left)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) || + (tarPort === undefined && + source.corners.right < target.corners.right)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.top > target.corners.bottom) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (difX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + return pts; +} +/** + * getLeftToTopSegmentCount method \ + * + * @returns { NoOfSegments } getLeftToTopSegmentCount method .\ + * @param {End} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {End} swap - provide the swap value. + * @private + */ +function getLeftToTopSegmentCount(element, source, target, swap) { + var pts; + var sourcePort = element.sourcePortWrapper; + var margin = findMargin(element); + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + source.margin = { top: margin, bottom: margin, left: margin, right: margin }; + var tarPort = element.targetPortWrapper; + var left = { x: Math.min(source.point.x, source.corners.left), y: source.point.y }; + var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) }; + if (swap) { + //let port: DiagramElement; + var port = sourcePort; + sourcePort = tarPort; + tarPort = port; + var point = left; + left = top; + top = point; + } + if ((sourcePort !== undefined && sourcePort.offsetY < target.corners.top - target.margin.top) || + (sourcePort === undefined && (source.corners.bottom < target.corners.top - target.margin.top || + source.corners.middleLeft.y < target.corners.top - target.margin.top))) { + if (source.corners.bottom < target.corners.top) { + if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) || + (tarPort === undefined && source.corners.left - source.margin.left > target.corners.topCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + } + else if ((tarPort !== undefined && source.corners.right < tarPort.offsetX) || + (tarPort === undefined && source.corners.right < target.corners.topCenter.x)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + } + else if (sourcePort !== undefined && + Math.abs(source.corners.left - target.corners.right) <= 25 && + Math.abs(sourcePort.offsetY - target.corners.top) <= 25) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else if (element.sourceWrapper !== element.targetWrapper && + (Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.sourceWrapper).containsPoint(top) || + Object(_base_util__WEBPACK_IMPORTED_MODULE_6__["cornersPointsBeforeRotation"])(element.targetWrapper).containsPoint(left))) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two; + } + else if (source.corners.left > target.corners.right) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four; + } + return pts; +} +/** + * getLeftToLeftSegmentCount method \ + * + * @returns { NoOfSegments } getLeftToLeftSegmentCount method .\ + * @param {End} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function getLeftToLeftSegmentCount(element, source, target) { + var srcPort = element.sourcePortWrapper; + var targetPort = element.targetPortWrapper; + var margin = findMargin(element); + source.margin = { left: margin, right: margin, top: margin, bottom: margin }; + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + var diffX = Math.round(Math.abs(source.point.x - target.point.x)); + var diffY = Math.round(Math.abs(source.point.y - target.point.y)); + var pts; + if (source.corners.left < target.corners.left) { + if ((targetPort !== undefined && source.corners.bottom + source.margin.bottom < targetPort.offsetY) || + (targetPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((targetPort !== undefined && source.corners.top - source.margin.top > targetPort.offsetY) || + (targetPort === undefined && source.corners.top - source.margin.top > target.corners.middleLeft.y)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.right < target.corners.left || + target.corners.right < source.corners.left) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + } + else if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) || + (srcPort === undefined && source.corners.middleLeft.y < target.corners.top)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) || + (srcPort === undefined && source.corners.middleLeft.y > target.corners.bottom + target.margin.bottom)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.left > target.corners.right) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + return pts; +} +/** + * getTopToTopSegmentCount method \ + * + * @returns { NoOfSegments } getTopToTopSegmentCount method .\ + * @param {End} element - provide the element value. + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function getTopToTopSegmentCount(element, source, target) { + var srcPort = element.sourcePortWrapper; + var targetPort = element.targetPortWrapper; + var diffX = Math.round(Math.abs(source.point.x - target.point.x)); + var diffY = Math.round(Math.abs(source.point.y - target.point.y)); + var margin = findMargin(element); + target.margin = { left: margin, right: margin, top: margin, bottom: margin }; + source.margin = { top: margin, bottom: margin, left: margin, right: margin }; + var pts; + if (source.corners.top < target.corners.top) { + if ((targetPort !== undefined && source.corners.left - source.margin.left > targetPort.offsetX) || + (targetPort === undefined && source.corners.left > target.corners.left)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((targetPort !== undefined && source.corners.right + source.margin.right < targetPort.offsetX) || + (targetPort === undefined && source.corners.right < target.corners.right)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.bottom < target.corners.top) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + } + else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) || + (srcPort === undefined && source.corners.left > target.corners.right)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) || + (srcPort === undefined && source.corners.bottomRight.x < target.corners.left)) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + else if (source.corners.top > target.corners.bottom) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five; + } + else if (diffX === 0 || diffY === 0) { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One; + } + else { + pts = _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three; + } + return pts; +} +/** + * addOrthoSegments method \ + * + * @returns { PointModel[] } addOrthoSegments method .\ + * @param {Connector} element - provide the element value. + * @param {NoOfSegments} seg - provide the seg value. + * @param {End} sourceEnd - provide the source value. + * @param {End} targetEnd - provide the target value. + * @param {number} segLength - provide the segLength value. + * @param {boolean} lineDistribution - provide the lineDistribution value. + * @private + */ +function addOrthoSegments(element, seg, sourceEnd, targetEnd, segLength, lineDistribution) { + var src = element.sourceWrapper; + var tar = element.targetWrapper; + //let tarPort: DiagramElement = element.targetPortWrapper; + var intermeditatePoints; + var srcCorner = src.corners; + var tarCorner = tar.corners; + var value; + var extra = 20; + var source = { corners: sourceEnd.corners, point: sourceEnd.point, direction: sourceEnd.direction, margin: sourceEnd.margin }; + var target = { corners: targetEnd.corners, point: targetEnd.point, direction: targetEnd.direction, margin: targetEnd.margin }; + if (source.direction !== target.direction || seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five) { + if (source.direction === getOppositeDirection(target.direction) || seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three) { + switch (source.direction) { + case 'Left': + if (srcCorner.middleLeft.x > tarCorner.middleRight.x) { + value = (srcCorner.middleLeft.x - tarCorner.middleRight.x) / 2; + extra = !lineDistribution ? Math.min(extra, value) : value; + } + break; + case 'Right': + if (srcCorner.middleRight.x < tarCorner.middleLeft.x) { + value = (tarCorner.middleLeft.x - srcCorner.middleRight.x) / 2; + extra = !lineDistribution ? Math.min(extra, value) : value; + } + break; + case 'Top': + if (srcCorner.topCenter.y > tarCorner.bottomCenter.y) { + value = (srcCorner.topCenter.y - tarCorner.bottomCenter.y) / 2; + extra = !lineDistribution ? Math.min(extra, value) : value; + } + break; + case 'Bottom': + if (srcCorner.bottomCenter.y < tarCorner.topCenter.y) { + value = (tarCorner.topCenter.y - srcCorner.bottomCenter.y) / 2; + extra = !lineDistribution ? Math.min(extra, value) : value; + } + break; + } + } + } + extra = adjustSegmentLength(srcCorner, source, extra); + var isBezier = element.type === 'Bezier'; + if (segLength) { + extra = Math.max(extra, segLength); + } + if (seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One) { + intermeditatePoints = [source.point, target.point]; + } + if (seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two) { + intermeditatePoints = orthoConnection2Segment(source, target); + } + if (seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three) { + intermeditatePoints = orthoConnection3Segment(element, source, target, extra, undefined, isBezier); + } + if (seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four) { + var prevDir = undefined; + intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, extra, isBezier); + } + if (seg === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five) { + intermeditatePoints = orthoConnection5Segment(source, target, extra, isBezier); + } + return intermeditatePoints; +} +/** + * adjustSegmentLength method \ + * + * @returns { PointModel[] } adjustSegmentLength method .\ + * @param {Rect | Corners} bounds - provide the element value. + * @param {End} source - provide the seg value. + * @param {number} extra - provide the source value. + * @private + */ +function adjustSegmentLength(bounds, source, extra) { + switch (source.direction) { + case 'Left': + if (source.point.x > bounds.left) { + extra = (source.point.x - bounds.left) > extra ? ((source.point.x - bounds.left) + extra) : extra; + } + break; + case 'Right': + if (source.point.x < bounds.right) { + extra = (bounds.right - source.point.x) > extra ? ((bounds.right - source.point.x) + extra) : extra; + } + break; + case 'Top': + if (source.point.y > bounds.top) { + extra = (source.point.y - bounds.top) > extra ? ((source.point.y - bounds.top) + extra) : extra; + } + break; + case 'Bottom': + if (source.point.y < bounds.bottom) { + extra = (bounds.bottom - source.point.y) > extra ? ((bounds.bottom - source.point.y) + extra) : extra; + } + break; + } + return extra; +} +/** + * orthoConnection2Segment method \ + * + * @returns { PointModel[] } orthoConnection2Segment method .\ + * @param {Rect | Corners} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function orthoConnection2Segment(source, target) { + var intermeditatePoints; + switch (source.direction) { + case 'Left': + case 'Right': + // eslint-disable-next-line + var point1 = { x: target.point.x, y: source.point.y }; + intermeditatePoints = (_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(source.point, point1) || _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(target.point, point1)) ? + [source.point, target.point] : [source.point, point1, target.point]; + break; + case 'Top': + case 'Bottom': + // eslint-disable-next-line no-case-declarations + var point2 = { x: source.point.x, y: target.point.y }; + intermeditatePoints = (_primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(source.point, point2) || _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].equals(target.point, point2)) ? + [source.point, target.point] : [source.point, point2, target.point]; + break; + } + return intermeditatePoints; +} +/** + * orthoConnection3Segment method \ + * + * @returns { PointModel[] } orthoConnection2Segment method .\ + * @param {Connector} element - provide the source value. + * @param {End} source - provide the target value. + * @param {End} target - provide the target value. + * @param {number} extra - provide the target value. + * @param {boolean} allow - provide the target value. + * @param {boolean} isBezier - provide the isBezier boolean value. + * @private + */ +function orthoConnection3Segment(element, source, target, extra, allow, isBezier) { + if (isBezier === void 0) { isBezier = false; } + if (!extra) { + extra = 20; + } + if (isBezier) { + if (source.direction !== target.direction) { + if (source.direction === 'Left' || source.direction === 'Right') { + extra = Math.floor(Math.abs(source.point.x - target.point.x) * 0.5); + } + else { + extra = Math.floor(Math.abs(source.point.y - target.point.y) * 0.5); + } + } + } + var srcPort = element.sourcePortWrapper; + var intermeditatePoints; + var segmentValue; + var next; + var diffx = target.point.x - source.point.x; + var diffy = target.point.y - source.point.y; + var temp; + if (!allow && (Math.abs(diffx) < 0.001 || Math.abs(diffy) < 0.001)) { + if (target.direction === undefined) { + intermeditatePoints = [source.point, target.point]; + return intermeditatePoints; + } + } + if (element.targetWrapper === undefined && Math.abs(diffx) <= 31 && Math.abs(diffy) <= 31) { + if ((source.direction === 'Left' || source.direction === 'Right')) { + if (Math.abs(diffy) < 12) { + source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom'; + } + } + else { + if (Math.abs(diffx) < 12) { + source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right'; + } + } + if (Math.abs(diffx) > 12 || Math.abs(diffy) > 12) { + return orthoConnection2Segment(source, target); + } + else { + extra += 5; + } + } + if (source.direction === 'Left' || source.direction === 'Right') { + if (source.direction === 'Right') { + if (target.direction !== undefined && target.direction === 'Right') { + extra = Math.max(source.point.x, target.point.x) - source.point.x + extra; + } + if (source.point.x > target.point.x && srcPort === undefined) { + extra = -extra; + } + } + else { + if (target.direction !== undefined && target.direction === 'Left') { + extra = source.point.x - Math.min(source.point.x, target.point.x) + extra; + } + if (source.point.x > target.point.x || srcPort !== undefined || source.direction === 'Left') { + extra = -extra; + } + } + temp = target.point.y - source.point.y; + segmentValue = addLineSegment(source.point, extra, 0); + temp = target.point.y - segmentValue.y; + if (temp !== 0) { + next = addLineSegment(segmentValue, target.point.y - segmentValue.y, 90); + } + } + else if (source.direction === 'Top' || source.direction === 'Bottom') { + if (source.direction === 'Bottom') { + if (target.direction !== undefined && target.direction === 'Bottom') { + extra = Math.max(source.point.y, target.point.y) - source.point.y + extra; + } + } + else { + if (target.direction !== undefined && target.direction === 'Top') { + extra = source.point.y - Math.min(source.point.y, target.point.y) + extra; + } + if (source.point.y > target.point.y || (srcPort !== undefined) || source.direction === 'Top') { + extra = -extra; + } + } + temp = target.point.x - source.point.x; + if (source.direction === 'Top') { + segmentValue = addLineSegment(source.point, extra, 90); + } + else { + segmentValue = addLineSegment(source.point, extra, 90); + } + temp = target.point.x - segmentValue.x; + if (temp !== 0) { + next = addLineSegment(segmentValue, target.point.x - segmentValue.x, 0); + } + } + if (temp === 0) { + return intermeditatePoints = [ + source.point, + target.point + ]; + } + intermeditatePoints = [ + source.point, + segmentValue, + next, + target.point + ]; + return intermeditatePoints; +} +/** + * orthoConnection5Segment method \ + * + * @returns { PointModel[] } orthoConnection5Segment method .\ + * @param {Connector} source - provide the source value. + * @param {End} target - provide the target value. + * @param {End} extra - provide the extra value. + * @param {boolean} isBezier - provide the isBezier value. + * @private + */ +function orthoConnection5Segment(source, target, extra, isBezier) { + if (extra === void 0) { extra = 20; } + if (isBezier === void 0) { isBezier = false; } + if (isBezier) { + extra = 20; + } + var intermeditatePoints; + var length = extra; + var sLeft = source.corners.left - source.margin.left; + var sRight = source.corners.right + source.margin.right; + var sBottom = source.corners.bottom + source.margin.bottom; + var sTop = source.corners.top - source.margin.top; + var tLeft = target.corners.left - target.margin.left; + var tRight = target.corners.right + target.margin.right; + var tBottom = target.corners.bottom + target.margin.bottom; + var tTop = target.corners.top - target.margin.top; + var segmentValue; + switch (source.direction) { + case 'Left': + if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) && + sLeft > tLeft && sLeft <= tRight && extra >= 20) { + length = source.point.x - target.corners.left + length; + } + if (isBezier && source.direction === target.direction) { + if (source.corners.left > target.corners.left && source.corners.left - target.corners.right >= 20) { + length = (source.corners.left - target.corners.right) / 2; + } + } + segmentValue = addLineSegment(source.point, length, 180); + break; + case 'Top': + if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) && + sTop > tTop && sTop <= tBottom && extra >= 20) { + length = source.point.y - target.corners.top + length; + } + if (isBezier && source.direction === target.direction) { + if (source.corners.top > target.corners.top && source.corners.top - target.corners.bottom >= 20) { + length = (source.corners.top - target.corners.bottom) / 2; + } + } + segmentValue = addLineSegment(source.point, length, 270); + break; + case 'Right': + if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) && + sRight < tRight && sRight >= tLeft && extra >= 20) { + length = target.corners.right - source.point.x + length; + } + if (isBezier && source.direction === target.direction) { + if (source.corners.right < target.corners.right && target.corners.left - source.corners.right >= 20) { + length = (target.corners.left - source.corners.right) / 2; + } + } + segmentValue = addLineSegment(source.point, length, 0); + break; + case 'Bottom': + if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) && + sBottom < tBottom && sBottom >= tTop && extra >= 20) { + length = target.corners.bottom - source.point.y + length; + } + if (isBezier && source.direction === target.direction) { + if (source.corners.bottom < target.corners.bottom && target.corners.top - source.corners.bottom >= 20) { + length = (target.corners.top - source.corners.bottom) / 2; + } + } + segmentValue = addLineSegment(source.point, length, 90); + break; + } + intermeditatePoints = [ + source.point, + segmentValue + ]; + var newExtra = undefined; + if (source.direction === 'Top' || source.direction === 'Bottom') { + var prevDir = source.direction; + source.direction = segmentValue.x > target.point.x ? 'Left' : 'Right'; + source.point = segmentValue; + newExtra = isBezier ? Math.abs(segmentValue.x - target.point.x) * 0.5 : newExtra; + intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier); + } + else { + var prevDir = source.direction; + source.direction = segmentValue.y > target.point.y ? 'Top' : 'Bottom'; + source.point = segmentValue; + newExtra = isBezier ? Math.abs(segmentValue.y - target.point.y) * 0.5 : newExtra; + intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier); + } + return intermeditatePoints; +} +/** + * orthoConnection4Segment method \ + * + * @returns { PointModel[] } orthoConnection4Segment method .\ + * @param {End} source - provide the target value. + * @param {End} target - provide the target value. + * @param {string} prevDir - provide the target value. + * @param {PointModel[]} interPt - provide the target value. + * @param {number} e - provide the target value. + * @param {boolean} isBezier - provide the target value. + * @private + */ +function orthoConnection4Segment(source, target, prevDir, interPt, e, isBezier) { + if (e === void 0) { e = 20; } + if (isBezier === void 0) { isBezier = false; } + var segmentValue; + if (prevDir === undefined) { + source.margin = { left: 2, right: 2, top: 2, bottom: 2 }; + target.margin = { left: 0, right: 5, top: 0, bottom: 5 }; + if (isBezier) { + source.margin = { left: 10, right: 10, top: 10, bottom: 10 }; + target.margin = { left: 10, right: 10, top: 10, bottom: 10 }; + if (source.direction === 'Left') { + e = getLeftLength(source, target, prevDir, e); + if (source.corners.left - target.corners.right >= 5) { + e = Math.abs(source.point.x - source.corners.left) + Math.floor(source.corners.left - target.corners.right) * 0.5; + } + } + else if (source.direction === 'Right') { + e = getRightLength(source, target, e, prevDir); + if (target.corners.left - source.corners.right >= 5) { + e = Math.abs(source.point.x - source.corners.right) + Math.floor(target.corners.left - source.corners.right) * 0.5; + } + } + else if (source.direction === 'Top') { + e = getTopLength(source, target, prevDir, e); + if (source.corners.top - target.corners.bottom >= 5) { + e = Math.abs(source.point.y - source.corners.top) + Math.floor(source.corners.top - target.corners.bottom) * 0.5; + } + } + else if (source.direction === 'Bottom') { + e = getBottomLength(source, target, e, prevDir); + if (target.corners.top - source.corners.bottom >= 5) { + e = Math.abs(source.point.y - source.corners.bottom) + Math.floor(target.corners.top - source.corners.bottom) * 0.5; + } + } + } + } + else { + if (source.direction === 'Bottom') { + if (isBezier) { + if (target.corners.top - source.corners.bottom < 20) { + e = (target.corners.bottom - source.point.y) + 25; + } + } + else { + if (target.corners.top > source.corners.bottom && target.corners.top - source.corners.bottom < 20) { + e = (target.corners.top - source.corners.bottom) / 2; + } + } + } + else if (source.direction === 'Top') { + if (isBezier) { + if (source.corners.top - target.corners.bottom < 20) { + e = (source.point.y - target.corners.top) + 25; + } + } + else { + if (target.corners.bottom < source.corners.top && source.corners.top - target.corners.bottom < 20) { + e = (source.corners.top - target.corners.bottom) / 2; + } + } + } + else if (source.direction === 'Right') { + if (isBezier) { + if (target.corners.left - source.corners.right < 20) { + e = (target.corners.right - source.point.x) + 25; + } + } + else { + if (target.corners.left > source.corners.right && target.corners.left - source.corners.right < 20) { + e = (target.corners.left - source.corners.right) / 2; + } + } + } + else if (source.direction === 'Left') { + if (isBezier) { + if (source.corners.left - target.corners.right < 20) { + e = (source.point.x - target.corners.left) + 25; + } + } + else { + if (target.corners.right < source.corners.left && source.corners.left - target.corners.right < 20) { + e = (source.corners.left - target.corners.right) / 2; + } + } + } + if (prevDir === target.direction && isBezier) { + if ((target.direction === 'Bottom' && source.point.y > target.point.y) || + (target.direction === 'Top' && source.point.y < target.point.y)) { + if (source.direction === 'Left') { + e = getLeftLength(source, target, prevDir, 20); + } + else if (source.direction === 'Right') { + e = getRightLength(source, target, 20, prevDir); + } + } + else if ((target.direction === 'Right' && source.point.x > target.point.x) || + (target.direction === 'Left' && source.point.x < target.point.x)) { + if (source.direction === 'Top') { + e = getTopLength(source, target, prevDir, 20); + } + else if (source.direction === 'Bottom') { + e = getBottomLength(source, target, 20, prevDir); + } + } + } + } + switch (source.direction) { + case 'Left': + e = isBezier ? e : getLeftLength(source, target, prevDir, e); + segmentValue = addLineSegment(source.point, e, 180); + break; + case 'Right': + e = isBezier ? e : getRightLength(source, target, e, prevDir); + segmentValue = addLineSegment(source.point, e, 0); + break; + case 'Top': + e = isBezier ? e : getTopLength(source, target, prevDir, e); + segmentValue = addLineSegment(source.point, e, 270); + break; + case 'Bottom': + e = isBezier ? e : getBottomLength(source, target, e, prevDir); + segmentValue = addLineSegment(source.point, e, 90); + } + if (interPt !== undefined) { + interPt.push(segmentValue); + } + else { + interPt = [ + source.point, + segmentValue + ]; + } + if (source.direction === 'Top' || source.direction === 'Bottom') { + getOrtho3Seg(segmentValue, 'horizontal', source, target, interPt, isBezier); + } + else if (source.direction === 'Right' || source.direction === 'Left') { + getOrtho3Seg(segmentValue, 'vertical', source, target, interPt, isBezier); + } + return interPt; +} +/** + * getOrtho3Seg method \ + * + * @returns { void } getOrtho3Seg method .\ + * @param {PointModel} sPt - provide the sPt value. + * @param {string} orientation - provide the orientation value. + * @param {End} src - provide the src value. + * @param {End} tar - provide the tar value. + * @param {PointModel[]} points - provide the points value. + * @param {boolean} isBezier - provide the isBezier value. + * @private + */ +function getOrtho3Seg(sPt, orientation, src, tar, points, isBezier) { + var point1; + var point2; + var point3; + if (orientation === 'horizontal') { + src.margin = { left: 0, right: 10, top: 0, bottom: 10 }; + tar.margin = { left: 0, right: 10, top: 0, bottom: 10 }; + } + else if (orientation === 'vertical') { + src.margin = { left: 10, right: 0, top: 10, bottom: 0 }; + tar.margin = { left: 10, right: 0, top: 10, bottom: 0 }; + } + var extra = 20; + if (orientation === 'horizontal') { + switch (tar.direction) { + case 'Left': + if (src.corners.right + src.margin.right < tar.corners.left - tar.margin.left && + (tar.corners.left - src.margin.right - src.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y && + src.corners.bottom + src.margin.bottom >= tar.point.y))) { + if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) { + var gap = Math.abs(tar.corners.left - src.corners.right) / 2; + extra = src.corners.right - sPt.x + gap; + } + else { + var gap = Math.min(Math.abs(tar.corners.left - src.corners.right) / 2, 20); + extra = src.corners.right - sPt.x + gap; + } + } + else { + if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) { + extra = Math.min(tar.corners.left, sPt.x) - sPt.x - 20; + } + else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) { + extra = Math.min(tar.corners.left, src.corners.left) - sPt.x - 20; + } + else { + extra = tar.corners.left - sPt.x - 20; + } + } + break; + case 'Right': + if (src.corners.left - src.margin.left > tar.corners.right + tar.margin.right && + (src.corners.left - src.margin.right - tar.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y && + src.corners.bottom + src.margin.bottom >= tar.point.y))) { + if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) { + var gap = Math.abs(src.corners.left - tar.corners.right) / 2; + extra = src.corners.left - sPt.x - gap; + } + else { + var gap = Math.min(Math.abs(src.corners.left - tar.corners.right) / 2, 20); + extra = src.corners.left - sPt.x - gap; + } + } + else { + if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) { + extra = Math.max(tar.corners.right, sPt.x) - sPt.x + 20; + } + else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) { + extra = Math.max(tar.corners.right, src.corners.right) - sPt.x + 20; + } + else { + extra = tar.corners.right - sPt.x + 20; + } + } + break; + } + point1 = addLineSegment(sPt, extra, 0); + point2 = addLineSegment(point1, tar.point.y - sPt.y, 90); + point3 = tar.point; + } + else if (orientation === 'vertical') { + switch (tar.direction) { + case 'Top': + if (src.corners.bottom + src.margin.bottom < tar.corners.top - tar.margin.top && + (tar.corners.top - src.margin.top - src.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x && + src.corners.right + src.margin.right >= tar.point.x))) { + if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) { + var gap = Math.abs(tar.corners.top - src.corners.bottom) / 2; + extra = src.corners.bottom - sPt.y + gap; + } + else { + var gap = Math.min(Math.abs(tar.corners.top - src.corners.bottom) / 2, 20); + extra = src.corners.bottom - sPt.y + gap; + } + } + else { + if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) { + extra = Math.min(tar.corners.top, sPt.y) - sPt.y - 20; + } + else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) { + extra = Math.min(tar.corners.top, src.corners.top) - sPt.y - 20; + } + else { + extra = tar.corners.top - sPt.y - 20; + } + } + break; + case 'Bottom': + if (src.corners.top - src.margin.top > tar.corners.bottom + tar.margin.bottom && + (src.corners.top - src.margin.top - tar.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x && + src.corners.right + src.margin.right >= tar.point.x))) { + if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) { + var gap = Math.abs(src.corners.top - tar.corners.bottom) / 2; + extra = src.corners.top - sPt.y - gap; + } + else { + var gap = Math.min(Math.abs(src.corners.top - tar.corners.bottom) / 2, 20); + extra = src.corners.top - sPt.y - gap; + } + } + else { + if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) { + extra = Math.max(tar.corners.bottom, sPt.y) - sPt.y + 20; + } + else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) { + extra = Math.max(tar.corners.bottom, src.corners.bottom) - sPt.y + 20; + } + else { + extra = tar.corners.bottom - sPt.y + 20; + } + } + break; + } + point1 = addLineSegment(sPt, extra, 90); + point2 = addLineSegment(point1, tar.point.x - sPt.x, 0); + point3 = tar.point; + } + points.push(point1); + points.push(point2); + points.push(point3); +} +/** + * getTopLength method \ + * + * @returns { number } getTopLength method .\ + * @param {End} source - provide the sPt value. + * @param {End} target - provide the sPt value. + * @param {string} preDir - provide the orientation value. + * @param {number} length - provide the src value. + * @private + */ +function getTopLength(source, target, preDir, length) { + if (source.corners.top - source.margin.top > target.corners.top + target.margin.top && + source.corners.top - source.margin.top <= target.corners.bottom + target.margin.bottom) { + if (target.direction === 'Right' && source.point.x < target.point.x) { + length += source.corners.top - target.corners.top; + } + else if (target.direction === 'Left' && source.point.x > target.point.x) { + length += source.corners.top - target.corners.top; + } + length += source.point.y - source.corners.top; + } + else { + if ((preDir !== undefined && preDir !== 'Left') && target.direction === 'Right' && source.point.x < target.point.x) { + length += Math.abs(source.point.y - target.corners.bottom); + } + else if ((preDir !== undefined && preDir !== 'Right') && target.direction === 'Left' + && target.point.x < source.point.x) { + length += Math.abs(source.point.y - target.corners.bottom); + } + else { + length += source.point.y - source.corners.top; + } + } + return length; +} +/** + * getLeftLength method \ + * + * @returns { number } getLeftLength method .\ + * @param {End} source - provide the sPt value. + * @param {End} target - provide the sPt value. + * @param {string} prevDir - provide the orientation value. + * @param {number} segLength - provide the src value. + * @private + */ +function getLeftLength(source, target, prevDir, segLength) { + if (source.corners.left - source.margin.left > target.corners.left - target.margin.left && + source.corners.left - source.margin.left <= target.corners.right + target.margin.right) { + if (target.direction === 'Bottom' && source.point.y < target.point.y) { + segLength += source.corners.left - target.corners.left; + } + else if (target.direction === 'Top' && source.point.y > target.point.y) { + segLength += source.corners.left - target.corners.left; + } + segLength += source.point.x - source.corners.left; + } + else { + if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) { + segLength += Math.abs(source.point.x - target.corners.right); + } + else if ((prevDir !== undefined && prevDir !== 'Bottom') && + target.direction === 'Top' && target.point.y < source.point.y) { + segLength += Math.abs(source.point.x - target.corners.right); + } + else { + segLength += source.point.x - source.corners.left; + } + } + return segLength; +} +/** + * getRightLength method \ + * + * @returns { number } getRightLength method .\ + * @param {End} source - provide the sPt value. + * @param {End} target - provide the orientation value. + * @param {number} length - provide the src value. + * @param {string} prevDir - provide the src value. + * @private + */ +function getRightLength(source, target, length, prevDir) { + if (source.corners.right + source.margin.right < target.corners.right + target.margin.right && + source.corners.right + source.margin.right >= target.corners.left - target.margin.left) { + if (target.direction === 'Bottom' && source.point.y < target.point.y) { + length += target.corners.right - source.corners.right; + } + else if (target.direction === 'Top' && source.point.y > target.point.y) { + length += target.corners.right - source.corners.right; + } + length += source.corners.right - source.point.x; + } + else { + if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) { + length += Math.abs(source.point.x - target.corners.right); + } + else if ((prevDir !== undefined && prevDir !== 'Bottom') && target.direction === 'Top' && target.point.y < source.point.y) { + length += Math.abs(source.point.x - target.corners.right); + } + else { + length += source.corners.right - source.point.x; + } + } + return length; +} +/** + * getBottomLength method \ + * + * @returns { number } getBottomLength method .\ + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @param {number} segLength - provide the segLength value. + * @param {string} prevDir - provide the src value. + * @private + */ +function getBottomLength(source, target, segLength, prevDir) { + if (source.corners.bottom + source.margin.bottom < target.corners.bottom + target.margin.bottom && + source.corners.bottom + source.margin.bottom >= target.corners.top - target.margin.top) { + if (target.direction === 'Right' && source.point.x < target.point.x) { + segLength += target.corners.bottom - source.corners.bottom; + } + else if (target.direction === 'Left' && source.point.x > target.point.x) { + segLength += target.corners.bottom - source.corners.bottom; + } + segLength += source.corners.bottom - source.point.y; + } + else { + if ((prevDir !== undefined && prevDir !== 'Left') && + target.direction === 'Right' && source.point.x < target.point.x) { + segLength += Math.abs(source.point.y - target.corners.bottom); + } + else if ((prevDir !== undefined && prevDir !== 'Right') && + target.direction === 'Left' && target.point.x < source.point.x) { + segLength += Math.abs(source.point.y - target.corners.bottom); + } + else { + segLength += source.corners.bottom - source.point.y; + } + } + return segLength; +} +function convertPointToBezierSegment(element, segCount, pts) { + if (element.type === 'Bezier') { + if (element.segments.length === 0) { + var start = pts[0]; + var end = pts[pts.length - 1]; + if (segCount === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].One) { + var distance = Math.min(20, _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(start, end) * 0.5); + var vector1 = { angle: findAngle(start, end), distance: distance }; + var vector2 = { angle: findAngle(end, start), distance: distance }; + var dir = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(start, end); + var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical'; + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true); + (element.segments).push(segment); + } + else if (segCount === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Two) { + var mid = pts[1]; + var vector1 = { angle: findAngle(start, mid), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(start, mid) * 0.5 }; + var vector2 = { angle: findAngle(end, mid), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(end, mid) * 0.5 }; + var dir = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(start, mid); + var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical'; + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true); + (element.segments).push(segment); + } + else if (segCount === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Three) { + var mid1 = pts[1]; + var mid2 = pts[pts.length - 2]; + var mid = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 }; + var vector1 = { angle: findAngle(start, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(start, mid1) * 0.5 }; + var vector2 = { angle: findAngle(mid, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(mid, mid1) * 0.5 }; + var dir1 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(start, mid1); + var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment1 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: mid, orientation: ori1 }, true); + (element.segments).push(segment1); + var vector3 = { angle: findAngle(mid, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(mid, mid2) * 0.5 }; + var vector4 = { angle: findAngle(end, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(end, mid2) * 0.5 }; + var dir2 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(mid, mid2); + var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment2 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, orientation: ori2 }, true); + (element.segments).push(segment2); + } + else if (segCount === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Four) { + var mid1 = pts[1]; + var mid2 = pts[2]; + var mid3 = pts[3]; + var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 }; + var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 }; + var vector1 = { angle: findAngle(start, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(start, mid1) * 0.5 }; + var vector2 = { angle: findAngle(center1, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center1, mid1) * 0.5 }; + var dir1 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(start, mid1); + var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment1 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true); + (element.segments).push(segment1); + var vector3 = { angle: findAngle(center1, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center1, mid2) * 0.5 }; + var vector4 = { angle: findAngle(center2, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center2, mid2) * 0.5 }; + var dir2 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(center1, mid2); + var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment2 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true); + (element.segments).push(segment2); + var vector5 = { angle: findAngle(center2, mid3), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center2, mid3) * 0.5 }; + var vector6 = { angle: findAngle(end, mid3), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(end, mid3) * 0.5 }; + var dir3 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(center2, mid3); + var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment3 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, orientation: ori3 }, true); + (element.segments).push(segment3); + } + else if (segCount === _enum_enum__WEBPACK_IMPORTED_MODULE_3__["NoOfSegments"].Five) { + var mid1 = pts[1]; + var mid2 = pts[2]; + var mid3 = pts[3]; + var mid4 = pts[4]; + var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 }; + var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 }; + var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 }; + var vector1 = { angle: findAngle(start, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(start, mid1) * 0.5 }; + var vector2 = { angle: findAngle(center1, mid1), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center1, mid1) * 0.5 }; + var dir1 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(start, mid1); + var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment1 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true); + (element.segments).push(segment1); + var vector3 = { angle: findAngle(center1, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center1, mid2) * 0.5 }; + var vector4 = { angle: findAngle(center2, mid2), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center2, mid2) * 0.5 }; + var dir2 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(center1, mid2); + var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment2 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true); + (element.segments).push(segment2); + var vector5 = { angle: findAngle(center2, mid3), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center2, mid3) * 0.5 }; + var vector6 = { angle: findAngle(center3, mid3), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center3, mid3) * 0.5 }; + var dir3 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(center2, mid3); + var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment3 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, point: center3, orientation: ori3 }, true); + (element.segments).push(segment3); + var vector7 = { angle: findAngle(center3, mid4), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(center3, mid4) * 0.5 }; + var vector8 = { angle: findAngle(end, mid4), distance: _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].findLength(end, mid4) * 0.5 }; + var dir4 = _primitives_point__WEBPACK_IMPORTED_MODULE_0__["Point"].direction(center3, mid4); + var ori4 = dir4 === 'Left' || dir4 === 'Right' ? 'Horizontal' : 'Vertical'; + var segment4 = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector7, vector2: vector8, orientation: ori4 }, true); + (element.segments).push(segment4); + } + else { + var segment = new _objects_connector__WEBPACK_IMPORTED_MODULE_4__["BezierSegment"](element, 'segments', { type: 'Bezier' }, true); + (element.segments).push(segment); + } + } + else { + for (var i = 0; i < element.segments.length; i++) { + if (element.bezierSettings.allowSegmentsReset) { + element.segments[parseInt(i.toString(), 10)].isInternalSegment = true; + } + } + } + } +} +/** + * getSwapping method \ + * + * @returns { boolean } getSwapping method .\ + * @param {string} srcDir - provide the source value. + * @param {string} tarDir - provide the target value. + * @private + */ +function getSwapping(srcDir, tarDir) { + var swap = false; + switch (srcDir) { + case 'Left': + switch (tarDir) { + case 'Right': + case 'Bottom': + swap = true; + break; + } + break; + case 'Top': + switch (tarDir) { + case 'Left': + case 'Right': + case 'Bottom': + swap = true; + break; + } + break; + case 'Bottom': + switch (tarDir) { + case 'Right': + swap = true; + break; + } + break; + } + return swap; +} +/** + * swapPoints method \ + * + * @returns { void } swapPoints method .\ + * @param {End} source - provide the source value. + * @param {End} target - provide the target value. + * @private + */ +function swapPoints(source, target) { + var direction = source.direction; + source.direction = target.direction; + target.direction = direction; + var point = source.point; + source.point = target.point; + target.point = point; + var corner = source.corners; + source.corners = target.corners; + target.corners = corner; +} +/** + * getPortDirection method \ + * + * @returns { boolean } getPortDirection method .\ + * @param {PointModel} point - provide the point value. + * @param {Corners} corner - provide the corner value. + * @param {Rect} bounds - provide the bounds value. + * @param {boolean} closeEdge - provide the closeEdge value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getPortDirection(point, corner, bounds, closeEdge) { + var direction; + var boundsValue = corner === undefined ? bounds : corner; + var one = boundsValue.topLeft; + var two = boundsValue.topRight; + var three = boundsValue.bottomRight; + var four = boundsValue.bottomLeft; + var center = boundsValue.center; + var angle = findAngle(center, point); + var fourty5 = findAngle(center, three); + var one35 = findAngle(center, four); + var two25 = findAngle(center, one); + var three15 = findAngle(center, two); + if (angle > two25 && angle < three15) { + direction = 'Top'; + // if (bounds.width < bounds.height && closeEdge) { + // let height: number = (bounds.height - bounds.width) / 2; + // let width: number = bounds.width; + // if (Math.abs(point.x - one.x) < Math.abs(point.x - two.x)) { + // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Left'); + // } else { + // direction = checkCloseEdge(direction, new Rect(two.x - bounds.width, two.y, width, height), point, 'Right'); + // } + // } + } + else if (angle >= fourty5 && angle < one35) { + direction = 'Bottom'; + // if (bounds.width < bounds.height && closeEdge) { + // let height: number = (bounds.height - bounds.width) / 2; + // let width: number = bounds.width; + // if (Math.abs(point.x - four.x) < Math.abs(point.x - three.x)) { + // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Left'); + // } else { + // let value: Rect = new Rect(three.x - bounds.width, three.y - bounds.height / 4, bounds.width, bounds.height / 4); + // direction = checkCloseEdge(direction, value, point, 'Right'); + // } + // } + } + else if (angle >= one35 && angle <= two25) { + direction = 'Left'; + // if (bounds.width > bounds.height && closeEdge) { + // let width: number = (bounds.width - bounds.height) / 2; + // let height: number = bounds.height; + // if (Math.abs(point.y - one.y) < Math.abs(point.y - four.y)) { + // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Top'); + // } else { + // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Bottom'); + // } + // } + } + else if (angle >= three15 || angle < fourty5) { + direction = 'Right'; + // if (bounds.width > bounds.height && closeEdge) { + // let width: number = (bounds.width - bounds.height) / 2; + // let height: number = bounds.height; + // if (Math.abs(point.y - two.y) < Math.abs(point.y - three.y)) { + // direction = checkCloseEdge(direction, new Rect(two.x - width, two.y, width, height), point, 'Top'); + // } else { + // direction = checkCloseEdge(direction, + //new Rect(three.x - width, three.y - height, width, height), point, 'Bottom'); + // } + // } + } + else { + direction = 'Right'; + } + return direction; +} +// function checkCloseEdge(direction: string, threshold: Rect, port: PointModel, nearest: string): string { +// if (threshold) { +// switch (direction) { +// case 'Bottom': +// case 'Top': +// let left: number = Math.abs(threshold.left - port.x); +// let right: number = Math.abs(threshold.right - port.x); +// let ver: number = direction === 'Top' ? Math.abs(threshold.top - port.y) : Math.abs(threshold.bottom - port.y); +// if (left < right) { +// if (left < ver) { +// return 'Left'; +// } +// } else { +// if (right < ver) { +// return 'Right'; +// } +// } +// break; +// case 'Left': +// case 'Right': +// let top: number = Math.abs(threshold.top - port.y); +// let bottom: number = Math.abs(threshold.bottom - port.y); +// let hor: number = direction === 'Left' ? Math.abs(threshold.left - port.x) : Math.abs(threshold.right - port.x); +// if (top < bottom) { +// if (top < hor) { +// return 'Top'; +// } +// } else { +// if (bottom < hor) { +// return 'Bottom'; +// } +// } +// break; +// } +// } +//Meant for dock port +// return direction; +// } +/** + * getOuterBounds method \ + * + * @returns { Rect } getOuterBounds method .\ + * @param {Connector} obj - provide the point value. + * @private + */ +function getOuterBounds(obj) { + //let outerBounds: Rect; + var outerBounds = obj.wrapper.children[0].bounds; + if (obj.sourceDecorator.shape !== 'None') { + outerBounds.uniteRect(obj.wrapper.children[1].bounds); + } + if (obj.targetDecorator.shape !== 'None') { + outerBounds.uniteRect(obj.wrapper.children[2].bounds); + } + return outerBounds; +} +/** + * getOppositeDirection method \ + * + * @returns { string } getOppositeDirection method .\ + * @param {string} direction - provide the direction value. + * @private + */ +function getOppositeDirection(direction) { + switch (direction) { + case 'Top': + return 'Bottom'; + case 'Bottom': + return 'Top'; + case 'Left': + return 'Right'; + case 'Right': + return 'Left'; + } + return 'auto'; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js": +/*!****************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js ***! + \****************************************************************************************/ +/*! exports provided: canSelect, canMove, canEnablePointerEvents, canDelete, canBridge, canEnableRouting, canDragSourceEnd, canDragTargetEnd, canDragSegmentThumb, canRotate, canShadow, canInConnect, canPortInConnect, canOutConnect, canPortOutConnect, canResize, canAllowDrop, canVitualize, canEnableToolTip, canSingleSelect, canMultiSelect, canZoomPan, canContinuousDraw, canDrawOnce, defaultTool, canZoom, canPan, canUserInteract, canApiInteract, canPanX, canPanY, canZoomTextEdit, canPageEditable, enableReadOnly, canDraw, canDrag, canPreventClearSelection, canDrawThumbs, avoidDrawSelector */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canSelect", function() { return canSelect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canMove", function() { return canMove; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canEnablePointerEvents", function() { return canEnablePointerEvents; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDelete", function() { return canDelete; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canBridge", function() { return canBridge; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canEnableRouting", function() { return canEnableRouting; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDragSourceEnd", function() { return canDragSourceEnd; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDragTargetEnd", function() { return canDragTargetEnd; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDragSegmentThumb", function() { return canDragSegmentThumb; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canRotate", function() { return canRotate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canShadow", function() { return canShadow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canInConnect", function() { return canInConnect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPortInConnect", function() { return canPortInConnect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canOutConnect", function() { return canOutConnect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPortOutConnect", function() { return canPortOutConnect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canResize", function() { return canResize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canAllowDrop", function() { return canAllowDrop; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canVitualize", function() { return canVitualize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canEnableToolTip", function() { return canEnableToolTip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canSingleSelect", function() { return canSingleSelect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canMultiSelect", function() { return canMultiSelect; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canZoomPan", function() { return canZoomPan; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canContinuousDraw", function() { return canContinuousDraw; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDrawOnce", function() { return canDrawOnce; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultTool", function() { return defaultTool; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canZoom", function() { return canZoom; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPan", function() { return canPan; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canUserInteract", function() { return canUserInteract; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canApiInteract", function() { return canApiInteract; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPanX", function() { return canPanX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPanY", function() { return canPanY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canZoomTextEdit", function() { return canZoomTextEdit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPageEditable", function() { return canPageEditable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enableReadOnly", function() { return enableReadOnly; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDraw", function() { return canDraw; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDrag", function() { return canDrag; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canPreventClearSelection", function() { return canPreventClearSelection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canDrawThumbs", function() { return canDrawThumbs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "avoidDrawSelector", function() { return avoidDrawSelector; }); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); + + + + + + + +/** + * constraints-util module contains the common constraints \ + * + * @returns { number } constraints-util module contains the common constraints .\ + * + * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Provide the DiagramElement value. + * @private + */ +function canSelect(node) { + if (node) { + var state = 0; + if ((node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["ShapeAnnotation"]) || (node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["PathAnnotation"])) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].Select; + } + else if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Select; + } + else { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Select; + } + return state; + } + return 1; +} +/** + * Used to check whether we can move the objects ot not\ + * + * @returns { number } Used to check whether we can move the objects ot not .\ + * + * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Used to check whether we can move the objects ot not. + * @private + */ +function canMove(node) { + if (node) { + var state = 0; + if ((node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["ShapeAnnotation"]) || (node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["PathAnnotation"])) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].Drag; + } + else if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Drag; + } + else if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Selector"]) { + state = 1; + } + else { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Drag; + } + return state; + } + return 1; +} +/** + * Used to check the canEnablePointerEvents\ + * + * @returns { number } Used to check whether we can move the objects ot not .\ + * + * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not. + * @param {Diagram} diagram - Used to check whether we can move the objects ot not. + * @private + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function canEnablePointerEvents(node, diagram) { + var state = 0; + if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].PointerEvents; + } + else { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].PointerEvents; + } + return state; +} +/** + * Used to check the canDelete of the element \ + * + * @returns { number } Used to check the canDelete of the element .\ + * + * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not. + * @private + */ +function canDelete(node) { + var state = 0; + if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Delete; + } + else { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Delete; + } + return state; +} +/** + * Used to check the bridging of the element \ + * + * @returns { number } Used to check the bridging of the element .\ + * + * @param {ConnectorModel | NodeModel} connector - provide the connector value. + * @param {ConnectorModel | NodeModel} diagram - provide the diagram value. + * @private + */ +function canBridge(connector, diagram) { + var state = 0; + if (connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Bridging) { + state = connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Bridging; + } + else if (connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].InheritBridging) { + state = diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Bridging; + } + else { + state = 0; + } + return state; +} +/** + * Used to check the routing of the element \ + * + * @returns { number } Used to check the routing of the element .\ + * + * @param {ConnectorModel | NodeModel} connector - provide the connector value. + * @param {ConnectorModel | NodeModel} diagram - provide the diagram value. + * @private + */ +function canEnableRouting(connector, diagram) { + var state = 0; + if (connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].LineRouting) { + state = connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].LineRouting; + } + else if (connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].InheritLineRouting) { + state = diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].LineRouting; + } + return state; +} +/** + * Used to check the source end dragof the element \ + * + * @returns { number } Used to check the source end dragof the element. \ + * + * @param {ConnectorModel | NodeModel} connector - provide the connector value. + * @private + */ +function canDragSourceEnd(connector) { + return connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].DragSourceEnd; +} +/** + * Used to check the target end drag of the element \ + * + * @returns { number } Used to check the target end drag of the element .\ + * + * @param {ConnectorModel | NodeModel} connector - provide the connector value. + * @private + */ +function canDragTargetEnd(connector) { + return connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].DragTargetEnd; +} +/** + * Used to check the segment drag of the element \ + * + * @returns { number } Used to check the segment drag of the element .\ + * + * @param {ConnectorModel | NodeModel} connector - provide the connector value. + * @private + */ +function canDragSegmentThumb(connector) { + return connector.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].DragSegmentThumb; +} +/** + * Used to check the routing drag of the element \ + * + * @returns { number } Used to check the segment drag of the element .\ + * + * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the connector value. + * @private + */ +function canRotate(node) { + if ((node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["ShapeAnnotation"]) || (node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["PathAnnotation"])) { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].Rotate; + } + else { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Rotate; + } +} +/** + * Used to check shadown constraints of the element \ + * + * @returns { number } Used to check shadown constraints of the element .\ + * + * @param {NodeModel} node - provide the connector value. + * @private + */ +function canShadow(node) { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Shadow; +} +/** + * Used to check canInConnect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {NodeModel} node - provide the node value. + * @private + */ +function canInConnect(node) { + if ((node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) && (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].InConnect)) { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].InConnect; + } + return 0; +} +/** + * Used to check canPortInConnect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {PointPortModel} port - provide the PointPortModel value. + * @private + */ +function canPortInConnect(port) { + if (port && port.constraints) { + if (!(port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].None) && (port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].InConnect)) { + return port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].InConnect; + } + } + return 0; +} +/** + * Used to check canOutConnect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {NodeModel} node - provide the node value. + * @private + */ +function canOutConnect(node) { + if ((node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"]) && (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].OutConnect)) { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].OutConnect; + } + return 0; +} +/** + * Used to check canPortOutConnect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {PointPortModel} port - provide the node value. + * @private + */ +function canPortOutConnect(port) { + if (port && port.constraints) { + if (!(port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].None) && (port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].OutConnect)) { + return port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].OutConnect; + } + } + return 0; +} +/** + * Used to check canResize constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the node value. + * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} direction - provide the node value. + * @private + */ +function canResize(node, direction) { + var returnValue = 0; + if (node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["ShapeAnnotation"] || node instanceof _objects_annotation__WEBPACK_IMPORTED_MODULE_3__["PathAnnotation"]) { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].Resize; + } + else if (node) { + if (direction === 'SouthEast') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeSouthEast; + } + else if (direction === 'East') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeEast; + } + else if (direction === 'NorthEast') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeNorthEast; + } + else if (direction === 'South') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeSouth; + } + else if (direction === 'North') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeNorth; + } + else if (direction === 'SouthWest') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeSouthWest; + } + else if (direction === 'West') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeWest; + } + else if (direction === 'NorthWest') { + returnValue = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ResizeNorthWest; + } + } + return returnValue; +} +/** + * Used to check canAllowDrop constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {ConnectorModel | NodeModel} node - provide the node value. + * @private + */ +function canAllowDrop(node) { + var state = 0; + if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].AllowDrop; + } + else { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].AllowDrop; + } + return state; +} +/** + * Used to check canVitualize constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} diagram - provide the Diagram value. + * @private + */ +function canVitualize(diagram) { + return diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Virtualization; +} +/** + * Used to check canEnableToolTip constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {ConnectorModel | NodeModel} node - provide the node value. + * @param {Diagram} diagram - provide the Diagram value. + * @private + */ +function canEnableToolTip(node, diagram) { + var state = 0; + if (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Tooltip) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].Tooltip; + } + else if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].InheritTooltip) { + state = diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Tooltip; + } + } + else if (node instanceof _objects_port__WEBPACK_IMPORTED_MODULE_4__["PointPort"]) { + if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].ToolTip) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].ToolTip; + } + else if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].InheritTooltip) { + state = diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Tooltip; + } + } + else { + if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Tooltip) { + state = node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].Tooltip; + } + else if (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].InheritTooltip) { + state = diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Tooltip; + } + } + return state; +} +/** + * Used to check canSingleSelect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canSingleSelect(model) { + return model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].SingleSelect; +} +/** + * Used to check canMultiSelect constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canMultiSelect(model) { + return model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].MultipleSelect; +} +/** + * Used to check canZoomPan constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canZoomPan(model) { + return model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].ZoomPan; +} +/** + * Used to check canContinuousDraw constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canContinuousDraw(model) { + return model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].ContinuousDraw; +} +/** + * Used to check canDrawOnce constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canDrawOnce(model) { + return model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].DrawOnce; +} +/** + * Used to check defaultTool constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function defaultTool(model) { + return (model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].SingleSelect) || (model.tool & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramTools"].MultipleSelect); +} +/** + * Used to check canZoom constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canZoom(model) { + return model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Zoom; +} +/** + * Used to check canPan constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canPan(model) { + return model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].Pan; +} +/** + * Used to check canUserInteract constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canUserInteract(model) { + return model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].UserInteraction; +} +/** + * Used to check canApiInteract constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canApiInteract(model) { + return model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].ApiUpdate; +} +/** + * Used to check canPanX constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canPanX(model) { + return ((model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].PanX)); +} +/** + * Used to check canPanY constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canPanY(model) { + return ((model.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].PanY)); +} +/** + * Used to check canZoomTextEdit constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} diagram - provide the Diagram value. + * @private + */ +function canZoomTextEdit(diagram) { + return ((diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramConstraints"].ZoomTextEdit)); +} +/** + * Used to check canPageEditable constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} model - provide the Diagram value. + * @private + */ +function canPageEditable(model) { + return canApiInteract(model) || (model.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].ToolAction); +} +/** + * Used to check enableReadOnly constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {Diagram} annotation - provide the annotation value. + * @param {Diagram} node - provide the node value. + * @private + */ +function enableReadOnly(annotation, node) { + var enumValue = 0; + enumValue = (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_2__["Connector"]) ? _enum_enum__WEBPACK_IMPORTED_MODULE_1__["ConnectorConstraints"].ReadOnly : _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ReadOnly; + if (node.shape.type === 'Text') { + return node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["NodeConstraints"].ReadOnly; + } + else if (node.constraints & enumValue) { + if (annotation.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].InheritReadOnly) { + return 1; + } + else { + return 0; + } + } + else if (annotation.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["AnnotationConstraints"].ReadOnly) { + return 1; + } + return 0; +} +/** + * Used to check canDraw constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {PointPortModel | NodeModel} port - provide the Diagram value. + * @param {Diagram} diagram - provide the Diagram value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function canDraw(port, diagram) { + return port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].Draw; +} +/** + * Used to check canDrag constraints of the element \ + * + * @returns { number } Used to check canInConnect constraints of the element .\ + * + * @param {PointPortModel | NodeModel} port - provide the Diagram value. + * @param {Diagram} diagram - provide the Diagram value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function canDrag(port, diagram) { + return port.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["PortConstraints"].Drag; +} +/** + * Used to check canPreventClearSelection constraints of the element \ + * + * @returns { boolean } Used to check canInConnect constraints of the element .\ + * + * @param {PointPortModel | NodeModel} diagramActions - provide the diagramActions value. + * @private + */ +function canPreventClearSelection(diagramActions) { + if (diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["DiagramAction"].PreventClearSelection) { + return true; + } + else { + return false; + } +} +/** + * Used to check canDrawThumbs \ + * + * @returns { boolean } Used to check canInConnect constraints of the element .\ + * + * @param {RendererAction} rendererActions - provide the RendererAction value. + * @private + */ +function canDrawThumbs(rendererActions) { + if (!(rendererActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["RendererAction"].DrawSelectorBorder)) { + return true; + } + else { + return false; + } +} +/** + * Used to check avoidDrawSelector \ + * + * @returns { boolean } Used to check canInConnect constraints of the element .\ + * + * @param {RendererAction} rendererActions - provide the RendererAction value. + * @private + */ +function avoidDrawSelector(rendererActions) { + if ((rendererActions & _enum_enum__WEBPACK_IMPORTED_MODULE_1__["RendererAction"].PreventRenderSelector)) { + return true; + } + else { + return false; + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js ***! + \************************************************************************************/ +/*! exports provided: completeRegion, findNodeByName, findObjectType, setSwimLaneDefaults, getSpaceValue, getInterval, setPortsEdges, setUMLActivityDefaults, setConnectorDefaults, findNearestPoint, isDiagramChild, groupHasType, updateDefaultValues, updateLayoutValue, isPointOverConnector, intersect3, intersect2, getLineSegment, getPoints, getTooltipOffset, initfixedUserHandlesSymbol, sort, getAnnotationPosition, getOffsetOfConnector, getAlignedPosition, alignLabelOnSegments, getBezierDirection, removeChildNodes, getChild, serialize, deserialize, upgrade, updateStyle, updateHyperlink, updateShapeContent, updateShape, updateContent, updateUmlActivityNode, getUMLFinalNode, getUMLActivityShapes, removeGradient, removeItem, updateConnector, getUserHandlePosition, canResizeCorner, canShowCorner, canShowControlPoints, checkPortRestriction, findAnnotation, findPort, getInOutConnectPorts, findObjectIndex, getObjectFromCollection, scaleElement, arrangeChild, insertObject, getElement, getCollectionChangeEventArguements, getDropEventArguements, getPoint, getObjectType, flipConnector, updatePortEdges, alignElement, cloneSelectedObjects, updatePathElement, checkPort, findPath, getConnectorDirection, findDistance, cloneBlazorObject, checkBrowserInfo, canMeasureDecoratorPath, getPreviewSize, getSymbolSize, findParentInSwimlane, selectionHasConnector */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "completeRegion", function() { return completeRegion; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNodeByName", function() { return findNodeByName; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findObjectType", function() { return findObjectType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSwimLaneDefaults", function() { return setSwimLaneDefaults; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSpaceValue", function() { return getSpaceValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInterval", function() { return getInterval; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setPortsEdges", function() { return setPortsEdges; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setUMLActivityDefaults", function() { return setUMLActivityDefaults; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setConnectorDefaults", function() { return setConnectorDefaults; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findNearestPoint", function() { return findNearestPoint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDiagramChild", function() { return isDiagramChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupHasType", function() { return groupHasType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateDefaultValues", function() { return updateDefaultValues; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateLayoutValue", function() { return updateLayoutValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPointOverConnector", function() { return isPointOverConnector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "intersect3", function() { return intersect3; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "intersect2", function() { return intersect2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLineSegment", function() { return getLineSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPoints", function() { return getPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltipOffset", function() { return getTooltipOffset; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initfixedUserHandlesSymbol", function() { return initfixedUserHandlesSymbol; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sort", function() { return sort; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAnnotationPosition", function() { return getAnnotationPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOffsetOfConnector", function() { return getOffsetOfConnector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAlignedPosition", function() { return getAlignedPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "alignLabelOnSegments", function() { return alignLabelOnSegments; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBezierDirection", function() { return getBezierDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeChildNodes", function() { return removeChildNodes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getChild", function() { return getChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serialize", function() { return serialize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserialize", function() { return deserialize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "upgrade", function() { return upgrade; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateStyle", function() { return updateStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateHyperlink", function() { return updateHyperlink; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateShapeContent", function() { return updateShapeContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateShape", function() { return updateShape; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateContent", function() { return updateContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateUmlActivityNode", function() { return updateUmlActivityNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUMLFinalNode", function() { return getUMLFinalNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUMLActivityShapes", function() { return getUMLActivityShapes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeGradient", function() { return removeGradient; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeItem", function() { return removeItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateConnector", function() { return updateConnector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUserHandlePosition", function() { return getUserHandlePosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canResizeCorner", function() { return canResizeCorner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canShowCorner", function() { return canShowCorner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canShowControlPoints", function() { return canShowControlPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkPortRestriction", function() { return checkPortRestriction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findAnnotation", function() { return findAnnotation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findPort", function() { return findPort; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInOutConnectPorts", function() { return getInOutConnectPorts; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findObjectIndex", function() { return findObjectIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getObjectFromCollection", function() { return getObjectFromCollection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scaleElement", function() { return scaleElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrangeChild", function() { return arrangeChild; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertObject", function() { return insertObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return getElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCollectionChangeEventArguements", function() { return getCollectionChangeEventArguements; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDropEventArguements", function() { return getDropEventArguements; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPoint", function() { return getPoint; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getObjectType", function() { return getObjectType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flipConnector", function() { return flipConnector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updatePortEdges", function() { return updatePortEdges; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "alignElement", function() { return alignElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneSelectedObjects", function() { return cloneSelectedObjects; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updatePathElement", function() { return updatePathElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkPort", function() { return checkPort; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findPath", function() { return findPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConnectorDirection", function() { return getConnectorDirection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findDistance", function() { return findDistance; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneBlazorObject", function() { return cloneBlazorObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkBrowserInfo", function() { return checkBrowserInfo; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canMeasureDecoratorPath", function() { return canMeasureDecoratorPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPreviewSize", function() { return getPreviewSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSymbolSize", function() { return getSymbolSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentInSwimlane", function() { return findParentInSwimlane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectionHasConnector", function() { return selectionHasConnector; }); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _core_containers_container__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../core/containers/container */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/container.js"); +/* harmony import */ var _core_appearance__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../core/appearance */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/appearance.js"); +/* harmony import */ var _primitives_point__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./../core/elements/path-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/path-element.js"); +/* harmony import */ var _core_elements_native_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./../core/elements/native-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/native-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _core_elements_image_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../core/elements/image-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/image-element.js"); +/* harmony import */ var _objects_annotation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./../objects/annotation */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/annotation.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _objects_connector__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./../objects/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/connector.js"); +/* harmony import */ var _objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./../objects/dictionary/basic-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/basic-shapes.js"); +/* harmony import */ var _objects_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./../objects/dictionary/flow-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/flow-shapes.js"); +/* harmony import */ var _diagram__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./../diagram */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram.js"); +/* harmony import */ var _connector__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _dom_util__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _base_util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _utility_path_util__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./../utility/path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _core_elements_html_element__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../core/elements/html-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/html-element.js"); +/* harmony import */ var _ruler_ruler__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../ruler/ruler */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/ruler/ruler.js"); +/* harmony import */ var _constraints_util__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); +/* harmony import */ var _interaction_selector__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../interaction/selector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/selector.js"); +/* harmony import */ var _objects_dictionary_umlactivity_shapes__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../objects/dictionary/umlactivity-shapes */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/dictionary/umlactivity-shapes.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _objects_port__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../objects/port */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/port.js"); +/* harmony import */ var _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../diagram/keyboard-commands */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/diagram/keyboard-commands.js"); +/* harmony import */ var _swim_lane_util__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./swim-lane-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../objects/fixed-user-handle */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/fixed-user-handle.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/** + * completeRegion method\ + * + * @returns { void } completeRegion method .\ + * @param {Rect} region - provide the region value. + * @param {(NodeModel | ConnectorModel)[]} selectedObjects - provide the selectedObjects value. + * @private + */ +function completeRegion(region, selectedObjects) { + var collection = []; + for (var i = 0; i < selectedObjects.length; i++) { + var obj = selectedObjects[parseInt(i.toString(), 10)]; + if (region.containsRect(obj.wrapper.bounds)) { + collection.push(obj); + } + } + return collection; +} +/** + * findNodeByName method \ + * + * @returns { boolean } findNodeByName method .\ + * @param {(NodeModel | ConnectorModel)[]} nodes - provide the nodes value. + * @param {string} name - provide the orientation value. + * @private + */ +function findNodeByName(nodes, name) { + for (var i = 0; i < nodes.length; i++) { + if (nodes[parseInt(i.toString(), 10)].id === name) { + return true; + } + } + return false; +} +/** + * findNodeByName method \ + * + * @returns { string } findNodeByName method .\ + * @param {(NodeModel | ConnectorModel)[]} drawingObject - provide the drawingObject value. + * @private + */ +function findObjectType(drawingObject) { + var type; + if (drawingObject) { + if (drawingObject.type) { + type = 'Connector'; + } + else if (drawingObject.shape && !drawingObject.type) { + type = 'Node'; + } + } + return type; +} +/** + * setSwimLaneDefaults method \ + * + * @returns { void } setSwimLaneDefaults method .\ + * @param {NodeModel | ConnectorModel} child - provide the child value. + * @param {NodeModel | ConnectorModel} node - provide the node value. + * @private + */ +function setSwimLaneDefaults(child, node) { + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + if (!child.shape.header) { + node.shape.hasHeader = false; + } + } +} +/** + * getSpaceValue method \ + * + * @returns { number } getSpaceValue method .\ + * @param {number[]} intervals - provide the intervals value. + * @param {boolean} isLine - provide the isLine value. + * @param {number} i - provide the i value. + * @param {number} space - provide the space value. + * @private + */ +function getSpaceValue(intervals, isLine, i, space) { + space = !isLine ? ((intervals[i - 1] !== undefined) ? intervals[i - 1] + space : 0) : space; + return space; +} +/** + * getInterval method \ + * + * @returns { number[] } getInterval method .\ + * @param {number[]} intervals - provide the intervals value. + * @param {boolean} isLine - provide the isLine value. + * @private + */ +function getInterval(intervals, isLine) { + var newInterval = []; + if (!isLine) { + for (var k = 0; k < intervals.length; k++) { + newInterval.push(intervals[parseInt(k.toString(), 10)]); + } + newInterval.push(intervals[newInterval.length - 2]); + newInterval.push(intervals[newInterval.length - 2]); + } + else { + newInterval = intervals; + } + return newInterval; +} +/** + * setPortsEdges method \ + * + * @returns { Node } setPortsEdges method .\ + * @param {Node} node - provide the node value. + * @private + */ +function setPortsEdges(node) { + for (var k = 0; k < node.ports.length; k++) { + node.ports[parseInt(k.toString(), 10)].inEdges = []; + node.ports[parseInt(k.toString(), 10)].outEdges = []; + } + return node; +} +/** + * setUMLActivityDefaults method \ + * + * @returns { void } setUMLActivityDefaults method .\ + * @param {NodeModel | ConnectorModel} child - provide the child value. + * @param {NodeModel | ConnectorModel} node - provide the node value. + * @private + */ +function setUMLActivityDefaults(child, node) { + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + var shape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? child.shape.umlActivityShape : + child.shape.shape); + switch (shape) { + case 'JoinNode': + if (!child.width) { + node.width = 20; + } + if (!child.height) { + node.height = 90; + } + if (!child.style || !child.style.fill) { + node.style.fill = 'black'; + } + break; + case 'ForkNode': + if (!child.width) { + node.width = 90; + } + if (!child.height) { + node.height = 20; + } + if (!child.style || !child.style.fill) { + node.style.fill = 'black'; + } + break; + case 'InitialNode': + if (!child.style || !child.style.fill) { + node.style.fill = 'black'; + } + break; + case 'FinalNode': + if (!child.style || !child.style.fill) { + node.style.fill = 'black'; + } + break; + } + } + else { + var flow = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? + child.shape.umlActivityFlow : child.shape.flow); + switch (flow) { + case 'Object': + if (!child.style || !child.style.strokeDashArray) { + node.style.strokeDashArray = '8 4'; + } + if (!child.style || !child.style.strokeWidth) { + node.style.strokeWidth = 2; + } + if (!child.targetDecorator || !child.targetDecorator.shape) { + node.targetDecorator.shape = 'OpenArrow'; + } + break; + case 'Control': + if (!child.style || !child.style.strokeWidth) { + node.style.strokeWidth = 2; + } + if (!child.targetDecorator || !child.targetDecorator.shape) { + node.targetDecorator.shape = 'OpenArrow'; + } + if (!child.sourceDecorator || !child.sourceDecorator.shape) { + node.sourceDecorator.shape = 'None'; + } + break; + } + } +} +/* eslint-disable */ +/** + * setConnectorDefaults method \ + * + * @returns { void } setConnectorDefaults method .\ + * @param {ConnectorModel} child - provide the child value. + * @param {ConnectorModel} node - provide the node value. + * @private + */ +function setConnectorDefaults(child, node) { + switch ((child.shape).type) { + case 'Bpmn': + var bpmnFlow = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? child.shape.bpmnFlow : child.shape.flow); + switch (bpmnFlow) { + case 'Sequence': + if ((((child.shape.sequence) === 'Normal' && child.type !== 'Bezier')) || + ((child.shape.sequence) === 'Default') || ((child.shape.sequence) === 'Conditional')) { + if (node.targetDecorator && node.targetDecorator.style) { + node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style + && child.targetDecorator.style.fill) || 'black'; + } + if ((child.shape.sequence) === 'Conditional' && node.sourceDecorator) { + if (node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'white'; + } + node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 20; + node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.width) || 10; + } + } + break; + case 'Association': + if (((child.shape.association) === 'Default') || + ((child.shape.association) === 'Directional') || + ((child.shape.association) === 'BiDirectional')) { + if (node.targetDecorator && node.targetDecorator.style) { + node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style && + child.targetDecorator.style.fill) || 'black'; + } + if ((child.shape.association) === 'BiDirectional') { + if (node.sourceDecorator && node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'white'; + node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 5; + node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.height) || 10; + } + } + } + break; + case 'Message': + if (node.style && !node.style.strokeDashArray) { + node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4'; + } + break; + } + break; + case 'UmlActivity': + var flow = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? + child.shape.umlActivityFlow : child.shape.flow); + switch (flow) { + case 'Exception': + if (((child.shape.association) === 'Directional') || + ((child.shape.association) === 'BiDirectional')) { + node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '2 2'; + } + break; + } + break; + case 'UmlClassifier': + var hasRelation = false; + if (child.shape.relationship === 'Association') { + hasRelation = true; + } + else if (child.shape.relationship === 'Inheritance') { + if (node.targetDecorator && node.targetDecorator.style) { + node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style && + child.targetDecorator.style.fill) || 'white'; + } + if (node.style) { + hasRelation = true; + node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4'; + } + } + else if (child.shape.relationship === 'Composition') { + if (node.sourceDecorator && node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'black'; + } + hasRelation = true; + } + else if (child.shape.relationship === 'Aggregation' || + child.shape.relationship === undefined) { + if (node.sourceDecorator && node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'white'; + } + hasRelation = true; + } + else if (child.shape.relationship === 'Dependency') { + if (node.sourceDecorator && node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'white'; + } + hasRelation = true; + node.style.strokeDashArray = '4 4'; + } + else if (child.shape.relationship === 'Realization') { + if (node.sourceDecorator && node.sourceDecorator.style) { + node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style && + child.sourceDecorator.style.fill) || 'white'; + } + hasRelation = true; + } + if (hasRelation) { + node.style.strokeWidth = (child.style && child.style.strokeWidth) || 2; + } + break; + } +} +/* eslint-enable */ +/** + * findNearestPoint method \ + * + * @returns { PointModel } findNearestPoint method .\ + * @param {PointModel} reference - provide the reference value. + * @param {PointModel} start - provide the start value. + * @param {PointModel} end - provide the end value. + * @private + */ +function findNearestPoint(reference, start, end) { + var shortestPoint; + var shortest = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findLength(start, reference); + var shortest1 = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findLength(end, reference); + if (shortest > shortest1) { + shortestPoint = end; + } + else { + shortestPoint = start; + } + var angleBWStAndEnd = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findAngle(start, end); + var angleBWStAndRef = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findAngle(shortestPoint, reference); + var r = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findLength(shortestPoint, reference); + var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2); + return { + x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)), + y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180)) + }; +} +/** + * pointsForBezier method \ + * + * @returns { PointModel[] } pointsForBezier method .\ + * @param {ConnectorModel} connector - provide the connector value. + * @private + */ +function pointsForBezier(connector) { + var points = []; + if (connector.type === 'Bezier') { + var k = 0; + for (var i = 0; i < connector.segments.length; i++) { + var tolerance = 1.5; + var segment = connector.segments[parseInt(i.toString(), 10)]; + //const pt: PointModel = { x: 0, y: 0 }; + var point1 = !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1; + var point2 = !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2; + var max = Number((connector.distance(point1, segment.points[0]) + + connector.distance(point2, point1) + + connector.distance(segment.points[1], point2)) / tolerance); + for (var j = 0; j < max - 1; j = j + 10) { + points[parseInt(k.toString(), 10)] = + Object(_objects_connector__WEBPACK_IMPORTED_MODULE_14__["bezierPoints"])(connector, segment.points[0], !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, segment.points[1], j, max); + k++; + } + } + } + return points; +} +/** + * isDiagramChild method \ + * + * @returns { boolean } isDiagramChild method .\ + * @param {HTMLElement} htmlLayer - provide the htmlLayer value. + * @private + */ +function isDiagramChild(htmlLayer) { + var element = htmlLayer.parentElement; + do { + if (Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["hasClass"])(element, 'e-diagram')) { + return true; + } + element = element.parentElement; + } while (element); + return false; +} +/** + * groupHasType method \ + * + * @returns { boolean } groupHasType method .\ + * @param {NodeModel} node - provide the node value. + * @param {Shapes} type - provide the type value. + * @param {{}} nameTable - provide the nameTable value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/ban-types +function groupHasType(node, type, nameTable) { + var contains = false; + if (node && node.children && node.children.length > 0) { + var child = void 0; + var i = 0; + for (; i < node.children.length; i++) { + child = nameTable[node.children[parseInt(i.toString(), 10)]]; + if (child.shape.type === type) { + return true; + } + return groupHasType(child, type, nameTable); + } + } + return contains; +} +/** + * groupHasType method \ + * + * @returns { void } groupHasType method .\ + * @param {NodeModel | ConnectorModel} actualNode - provide the actualNode value. + * @param { NodeModel | ConnectorModel} plainValue - provide the plainValue value. + * @param {object} defaultValue - provide the defaultValue value. + * @param {NodeModel | ConnectorModel} property - provide the property value. + * @param {string} oldKey - provide the oldKey value. + * @private + */ +function updateDefaultValues(actualNode, plainValue, +// eslint-disable-next-line @typescript-eslint/ban-types +defaultValue, property, oldKey) { + if (defaultValue && ((actualNode instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]) || actualNode + && ((actualNode.shape && actualNode.shape.type !== 'SwimLane') || actualNode.shape === undefined))) { + // eslint-disable-next-line @typescript-eslint/ban-types + var keyObj = void 0; + for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) { + var key = _a[_i]; + keyObj = defaultValue["" + key]; + if (key === 'shape' && keyObj.type) { + actualNode.shape = { type: keyObj.type }; + } + if (keyObj) { + if (Array.isArray(keyObj) && keyObj.length && keyObj.length > 0 && (oldKey !== 'annotations' && oldKey !== 'ports')) { + if (actualNode["" + key].length > 0) { + for (var i = 0; i <= actualNode["" + key].length; i++) { + updateDefaultValues(actualNode["" + key], plainValue ? plainValue["" + key] : undefined, defaultValue["" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key); + } + } + else { + updateDefaultValues(actualNode["" + key], plainValue ? plainValue["" + key] : undefined, defaultValue["" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key); + } + } + else if (keyObj instanceof Object && plainValue && (oldKey !== 'annotations' && oldKey !== 'ports')) { + updateDefaultValues(actualNode["" + key], plainValue["" + key], defaultValue["" + key]); + } + else if ((oldKey !== 'annotations' && oldKey !== 'ports') + && (plainValue && !plainValue["" + key]) || (!plainValue && actualNode + && (actualNode["" + key] || actualNode["" + key] !== undefined))) { + actualNode["" + key] = defaultValue["" + key]; + } + else { + var createObject = void 0; + if (oldKey === 'annotations' || oldKey === 'ports') { + if (oldKey === 'annotations') { + if (actualNode["" + key]) { + updateDefaultValues(actualNode["" + key], plainValue["" + key], defaultValue["" + key]); + } + if (!actualNode["" + key]) { + if (getObjectType(property) === _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]) { + createObject = new _objects_annotation__WEBPACK_IMPORTED_MODULE_12__["PathAnnotation"](property, 'annotations', defaultValue["" + key]); + property.annotations.push(createObject); + } + else { + createObject = new _objects_annotation__WEBPACK_IMPORTED_MODULE_12__["ShapeAnnotation"](property, 'annotations', defaultValue["" + key]); + property.annotations.push(createObject); + } + } + } + else { + if (actualNode["" + key]) { + updateDefaultValues(actualNode["" + key], plainValue["" + key], defaultValue["" + key]); + } + else { + createObject = new _objects_port__WEBPACK_IMPORTED_MODULE_28__["PointPort"](property, 'ports', defaultValue["" + key]); + property.ports.push(createObject); + } + } + } + } + } + } + } +} +/* tslint:disable:no-string-literal */ +/** + * updateLayoutValue method \ + * + * @returns { void } updateLayoutValue method .\ + * @param {TreeInfo} actualNode - provide the actualNode value. + * @param { object} defaultValue - provide the defaultValue value. + * @param {INode[]} nodes - provide the nodes value. + * @param {INode} node - provide the node value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/ban-types +function updateLayoutValue(actualNode, defaultValue, nodes, node) { + // eslint-disable-next-line @typescript-eslint/ban-types + var keyObj; + var assistantKey = 'Role'; + if (defaultValue) { + for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) { + var key = _a[_i]; + keyObj = defaultValue["" + key]; + if (key === 'getAssistantDetails') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) { + // Iterate the node data and get the assistant. + for (var _b = 0, _c = Object.keys(node.data); _b < _c.length; _b++) { + var dataValue = _c[_b]; + assistantKey = dataValue; + if (node.data["" + assistantKey] === defaultValue["" + key]['root']) { + break; + } + } + } + if (node.data["" + assistantKey] === defaultValue["" + key]['root']) { + var assitants = defaultValue["" + key]['assistants']; + for (var i = 0; i < assitants.length; i++) { + for (var j = 0; j < nodes.length; j++) { + if (nodes[parseInt(j.toString(), 10)].data["" + assistantKey] === assitants[parseInt(i.toString(), 10)]) { + actualNode.assistants.push(nodes[parseInt(j.toString(), 10)].id); + actualNode.children.splice(0, 1); + } + } + } + } + } + else if (keyObj) { + actualNode["" + key] = defaultValue["" + key]; + } + } + } + if (!actualNode.hasSubTree && defaultValue.canEnableSubTree) { + actualNode.orientation = node.layoutInfo.orientation; + actualNode.type = node.layoutInfo.type; + if (node.layoutInfo.offset !== actualNode.offset && (node.layoutInfo.offset) !== undefined) { + actualNode.offset = node.layoutInfo.offset; + } + } + node.layoutInfo.hasSubTree = actualNode.hasSubTree; +} +/* tslint:enable:no-string-literal */ +/** + * isPointOverConnector method \ + * + * @returns { boolean } isPointOverConnector method .\ + * @param {ConnectorModel} connector - provide the connector value. + * @param { PointModel} reference - provide the reference value. + * @private + */ +function isPointOverConnector(connector, reference) { + //let intermediatePoints: PointModel[]; + var intermediatePoints = connector.type === 'Bezier' ? pointsForBezier(connector) : + connector.intermediatePoints; + for (var i = 0; i < intermediatePoints.length - 1; i++) { + var start = intermediatePoints[parseInt(i.toString(), 10)]; + var end = intermediatePoints[i + 1]; + var rect = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds([start, end]); + rect.Inflate(connector.hitPadding); + if (rect.containsPoint(reference)) { + var intersectinPt = findNearestPoint(reference, start, end); + var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y }; + var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y }; + var intersectDetails = intersect3(segment1, segment2); + if (intersectDetails.enabled) { + var distance = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findLength(reference, intersectDetails.intersectPt); + if (Math.abs(distance) < connector.hitPadding) { + return true; + } + } + else { + var rect_1 = _primitives_rect__WEBPACK_IMPORTED_MODULE_1__["Rect"].toBounds([reference, reference]); + rect_1.Inflate(3); + if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) { + return true; + } + } + if (_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].equals(reference, intersectinPt)) { + return true; + } + } + } + if (connector.annotations.length > 0) { + var container = connector.wrapper.children; + for (var i = 3; i < container.length; i++) { + var textElement = container[parseInt(i.toString(), 10)]; + if (textElement.bounds.containsPoint(reference)) { + return true; + } + } + } + return false; +} +/** + * intersect3 method \ + * + * @returns { Intersection } intersect3 method .\ + * @param {ConnectorModel} lineUtil1 - provide the lineUtil1 value. + * @param { PointModel} lineUtil2 - provide the lineUtil2 value. + * @private + */ +function intersect3(lineUtil1, lineUtil2) { + var point = { x: 0, y: 0 }; + var l1 = lineUtil1; + var l2 = lineUtil2; + var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1); + var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1); + var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1); + /*( EJ2-42102 - Connector segments not update properly ) by sivakumar sekar - condition added to avoid bridging for + overlapping segments in the connectors and to validate whether the connector is intersecting over the other */ + if (d === 0 || ((lineUtil1.x1 === lineUtil2.x1 || lineUtil1.y1 === lineUtil2.y1) && + (lineUtil1.x2 === lineUtil2.x2 || lineUtil1.y2 === lineUtil2.y2) && ((na === 0 || nb === 0) && d > 0))) { + return { enabled: false, intersectPt: point }; + } + var ua = na / d; + var ub = nb / d; + if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) { + point.x = l1.x1 + (ua * (l1.x2 - l1.x1)); + point.y = l1.y1 + (ua * (l1.y2 - l1.y1)); + return { enabled: true, intersectPt: point }; + } + return { enabled: false, intersectPt: point }; +} +/** + * intersect2 method \ + * + * @returns { PointModel } intersect2 method .\ + * @param {PointModel} start1 - provide the start1 value. + * @param { PointModel} end1 - provide the end1 value. + * @param { PointModel} start2 - provide the start2 value. + * @param { PointModel} end2 - provide the end2 value. + * @private + */ +function intersect2(start1, end1, start2, end2) { + var point = { x: 0, y: 0 }; + var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y); + var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y); + var line3 = intersect3(lineUtil1, lineUtil2); + if (line3.enabled) { + return line3.intersectPt; + } + else { + return point; + } +} +/** + * getLineSegment method \ + * + * @returns { Segment } getLineSegment method .\ + * @param {number} x1 - provide the x1 value. + * @param { number} y1 - provide the y1 value. + * @param { number} x2 - provide the x2 value. + * @param { number} y2 - provide the y2 value. + * @private + */ +function getLineSegment(x1, y1, x2, y2) { + return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 }; +} +/** + * getPoints method \ + * + * @returns { PointModel[] } getPoints method .\ + * @param {number} element - provide the element value. + * @param { number} corners - provide the corners value. + * @param { number} padding - provide the padding value. + * @private + */ +function getPoints(element, corners, padding) { + var line = []; + padding = padding || 0; + var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y }; + var right = { x: corners.topRight.x + padding, y: corners.topRight.y }; + var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding }; + var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding }; + line.push(left); + line.push(right); + line.push(top); + line.push(bottom); + return line; +} +/** + * getTooltipOffset method \ + * + * @returns { PointModel[] } getTooltipOffset method .\ + * @param {number} diagram - provide the diagram value. + * @param { number} mousePosition - provide the mousePosition value. + * @param { NodeModel | ConnectorModel | PointPortModel} node - provide the node value. + * @param { string} type - provide the type value. + * @private + */ +function getTooltipOffset(diagram, mousePosition, node, type) { + //let offset: PointModel; + var inheritTooltip = (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) ? (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["NodeConstraints"].InheritTooltip) + : (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]) ? (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["ConnectorConstraints"].InheritTooltip) + : (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].InheritTooltip); + var objectTooltip = (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) ? (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["NodeConstraints"].Tooltip) + : (node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]) ? (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["ConnectorConstraints"].Tooltip) + : (node.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].ToolTip); + var isMouseBased = ((!inheritTooltip && objectTooltip ? node.tooltip.relativeMode + : diagram.tooltip.relativeMode) === 'Mouse') ? true : false; + if (type === 'Mouse') { + isMouseBased = true; + } + else if (type === 'Object') { + isMouseBased = false; + } + var offset = tooltipOffset(node, mousePosition, diagram, isMouseBased); + var rulerSize = Object(_ruler_ruler__WEBPACK_IMPORTED_MODULE_23__["getRulerSize"])(diagram); + return { x: offset.x + rulerSize.width, y: offset.y + rulerSize.height }; +} +/** + * tooltipOffset method \ + * + * @returns { PointModel } tooltipOffset method .\ + * @param {NodeModel | ConnectorModel | PointPortModel} node - provide the node value. + * @param { PointModel} mousePosition - provide the mousePosition value. + * @param { Diagram } diagram - provide the diagram value. + * @param { boolean} isMouseBased - provide the isMouseBased value. + * @private + */ +function tooltipOffset(node, mousePosition, diagram, isMouseBased) { + var point = {}; + //let scale: number = diagram.scroller.transform.scale; + var element = document.getElementById(diagram.element.id); + var bounds; + //EJ2-62120-Tooltip support for ports + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"] || node instanceof _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]) { + bounds = node.wrapper.bounds; + } + else { + var objects = diagram.findObjectsUnderMouse(mousePosition); + var obj = diagram.findObjectUnderMouse(objects, 'Select', false); + var portElement = diagram.findElementUnderMouse(obj, mousePosition); + bounds = portElement.bounds; + } + var rect = element.getBoundingClientRect(); + /* eslint-enable */ + //let horizontalOffset: number = diagram.scroller.horizontalOffset; + //let verticalOffset: number = diagram.scroller.verticalOffset; + switch (diagram.tooltipObject.position) { + case 'BottomCenter': + point = offsetPoint(mousePosition, bounds.bottomCenter, diagram, isMouseBased, (rect.width / 2), rect.height); + break; + case 'BottomLeft': + case 'LeftBottom': + point = offsetPoint(mousePosition, bounds.bottomLeft, diagram, isMouseBased, 0, rect.height); + break; + case 'BottomRight': + case 'RightBottom': + point = offsetPoint(mousePosition, bounds.bottomRight, diagram, isMouseBased, rect.width, rect.height); + break; + case 'LeftCenter': + point = offsetPoint(mousePosition, bounds.middleLeft, diagram, isMouseBased, 0, (rect.height / 2)); + break; + case 'LeftTop': + case 'TopLeft': + point = offsetPoint(mousePosition, bounds.topLeft, diagram, isMouseBased, 0, 0); + break; + case 'RightCenter': + point = offsetPoint(mousePosition, bounds.middleRight, diagram, isMouseBased, rect.width, (rect.height / 2)); + break; + case 'RightTop': + case 'TopRight': + point = offsetPoint(mousePosition, bounds.topRight, diagram, isMouseBased, rect.width, 0); + break; + case 'TopCenter': + point = offsetPoint(mousePosition, bounds.topCenter, diagram, isMouseBased, (rect.width / 2), 0); + break; + } + return point; +} +/** + * offsetPoint method \ + * + * @returns { PointModel } offsetPoint method .\ + * @param { PointModel} mousePosition - provide the mousePosition value. + * @param { PointModel } bound - provide the diagram value. + * @param { Diagram} diagram - provide the isMouseBased value. + * @param { boolean} isMouseBased - provide the isMouseBased value. + * @param { number} x - provide the isMouseBased value. + * @param { number} y - provide the isMouseBased value. + * @private + */ +function offsetPoint(mousePosition, bound, diagram, isMouseBased, x, y) { + var point = {}; + var scale = diagram.scroller.transform.scale; + var horizontalOffset = diagram.scroller.horizontalOffset; + var verticalOffset = diagram.scroller.verticalOffset; + point.x = (isMouseBased ? mousePosition.x : bound.x) * scale + horizontalOffset - x; + point.y = (isMouseBased ? mousePosition.y : bound.y) * scale + verticalOffset - y; + return point; +} +/** + * Gets the fixed user handles symbol \ + * + * @returns { DiagramElement } Gets the fixed user handles symbol .\ + * @param {ConnectorFixedUserHandleModel | NodeFixedUserHandleModel} options - provide the options value. + * @param { Canvas} fixedUserHandleContainer - provide the fixedUserHandleContainer value. + * @private + */ +function initfixedUserHandlesSymbol(options, fixedUserHandleContainer) { + //let fixedUserHandleContent: PathElement | DiagramNativeElement; + var fixedUserHandleContent = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + fixedUserHandleContent.data = options.pathData; + fixedUserHandleContent.height = + options.height > 10 ? options.height - (options.padding.bottom + options.padding.top) : options.height; + fixedUserHandleContent.width = + options.width > 10 ? options.width - (options.padding.left + options.padding.right) : options.width; + fixedUserHandleContent.visible = fixedUserHandleContainer.visible; + fixedUserHandleContent.id = fixedUserHandleContainer.id + '_shape'; + fixedUserHandleContent.inversedAlignment = false; + fixedUserHandleContent.horizontalAlignment = 'Center'; + fixedUserHandleContent.verticalAlignment = 'Center'; + fixedUserHandleContent.style = { + fill: options.iconStrokeColor, strokeColor: options.iconStrokeColor, + strokeWidth: options.iconStrokeWidth + }; + fixedUserHandleContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction'); + fixedUserHandleContent.relativeMode = 'Object'; + fixedUserHandleContent.description = fixedUserHandleContainer.description || ''; + return fixedUserHandleContent; +} +/** + * sort method \ + * + * @returns { (NodeModel | ConnectorModel)[] } sort method .\ + * @param {(NodeModel | ConnectorModel)[]} objects - provide the options value. + * @param { DistributeOptions} option - provide the fixedUserHandleContainer value. + * @private + */ +function sort(objects, option) { + var i = 0; + var j = 0; + var temp; + for (i = 0; i < objects.length; i++) { + var b = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["getBounds"])(objects[parseInt(i.toString(), 10)].wrapper); + for (j = i + 1; j < objects.length; j++) { + var bounds = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["getBounds"])(objects[parseInt(j.toString(), 10)].wrapper); + if (option === 'Top' || option === 'Bottom' || option === 'BottomToTop' || option === 'Middle') { + if (b.center.y > bounds.center.y) { + temp = objects[parseInt(i.toString(), 10)]; + objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)]; + objects[parseInt(j.toString(), 10)] = temp; + } + } + else { + if (b.center.x > bounds.center.x) { + temp = objects[parseInt(i.toString(), 10)]; + objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)]; + objects[parseInt(j.toString(), 10)] = temp; + } + } + } + } + return objects; +} +/** + * getAnnotationPosition method \ + * + * @returns {SegmentInfo } getAnnotationPosition method .\ + * @param {PointModel[]} pts - provide the pts value. + * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value. + * @param { Rect } bound - provide the bound value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function getAnnotationPosition(pts, annotation, bound) { + //let angle: number; + //let getloop: SegmentInfo; + //let point: PointModel; + var getloop = getOffsetOfConnector(pts, annotation); + var angle = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findAngle(pts[getloop.index], pts[getloop.index + 1]); + var alignednumber = getAlignedPosition(annotation); + var point = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].transform(getloop.point, angle + 45, alignednumber); + getloop.point = point; + getloop.angle = angle; + return getloop; +} +/** + * getOffsetOfConnector method \ + * + * @returns {SegmentInfo } getOffsetOfConnector method .\ + * @param {PointModel[]} points - provide the pts value. + * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value. + * @private + */ +function getOffsetOfConnector(points, annotation) { + // eslint-disable-next-line + var length = 0; + var offset = annotation.offset; + var point; + var angle; + var lengths = []; + var prevLength; + var kCount; + for (var j = 0; j < points.length - 1; j++) { + length += _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]); + lengths.push(length); + } + var offsetLength = offset * length; + for (var k = 0; k < lengths.length; k++) { + if (lengths[parseInt(k.toString(), 10)] >= offsetLength) { + angle = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].findAngle(points[parseInt(k.toString(), 10)], points[k + 1]); + point = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0)); + kCount = k; + return { point: point, index: kCount }; + } + prevLength = lengths[parseInt(k.toString(), 10)]; + } + return { point: point, index: kCount }; +} +/** + * getAlignedPosition method \ + * + * @returns {number } getAlignedPosition method .\ + * @param {PointModel[]} annotation - provide the annotation value. + * @private + */ +function getAlignedPosition(annotation) { + var cnst; + if ((annotation instanceof _objects_fixed_user_handle__WEBPACK_IMPORTED_MODULE_32__["ConnectorFixedUserHandle"])) { + cnst = 0; + } + else { + cnst = annotation.content === undefined ? 10 : 0; + } + var state = 0; + switch (annotation.alignment) { + case 'Center': + state = 0; + break; + case 'Before': + state = -((0) / 2 + cnst); + break; + case 'After': + state = ((0) / 2 + cnst); + break; + } + return state; +} +/** + * alignLabelOnSegments method \ + * + * @returns {Alignment } alignLabelOnSegments method .\ + * @param {PathAnnotation | ConnectorFixedUserHandle} obj - provide the obj value. + * @param { number } ang - provide the ang value. + * @param { PointModel[] } pts - provide the pts value. + * @private + */ +function alignLabelOnSegments(obj, ang, pts) { + //let angle: number = ang % 360; + ang %= 360; + var fourty5 = 45; + var one35 = 135; + var two25 = 225; + var three15 = 315; + var vAlign; + var hAlign; + switch (obj.alignment) { + case 'Before': + if (ang >= fourty5 && ang <= one35) { + hAlign = 'right'; + vAlign = obj.offset === 0.5 ? 'center' : 'top'; + } + else if (ang >= two25 && ang <= three15) { + hAlign = 'left'; + vAlign = obj.offset === 0.5 ? 'center' : 'bottom'; + } + else if (ang > fourty5 && ang < two25) { + vAlign = 'top'; + hAlign = obj.offset === 0.5 ? 'center' : 'right'; + } + else { + vAlign = 'bottom'; + hAlign = (obj.offset === 0.5) ? 'center' : 'left'; + } + break; + case 'After': + if (ang >= fourty5 && ang <= one35) { + hAlign = 'left'; + vAlign = obj.offset === 0.5 ? 'center' : 'top'; + } + else if (ang >= two25 && ang <= three15) { + hAlign = 'right'; + vAlign = obj.offset === 0.5 ? 'center' : 'bottom'; + } + else if (ang > fourty5 && ang < two25) { + vAlign = 'bottom'; + hAlign = obj.offset === 0.5 ? 'center' : 'right'; + } + else { + vAlign = 'top'; + hAlign = obj.offset === 0.5 ? 'center' : 'left'; + } + break; + case 'Center': + hAlign = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isNullOrUndefined"])(obj.horizontalAlignment) ? obj.horizontalAlignment.toLowerCase() : 'center'; + vAlign = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isNullOrUndefined"])(obj.verticalAlignment) ? obj.verticalAlignment.toLowerCase() : 'center'; + break; + } + if (obj.offset === 0 || obj.offset === 1) { + //let direction: string; + var direction = getBezierDirection(pts[0], pts[1]); + switch (direction) { + case 'left': + hAlign = obj.offset === 0 ? 'right' : 'left'; + break; + case 'right': + hAlign = obj.offset === 0 ? 'left' : 'right'; + break; + case 'bottom': + vAlign = obj.offset === 0 ? 'top' : 'bottom'; + break; + case 'top': + vAlign = obj.offset === 0 ? 'bottom' : 'top'; + break; + } + } + return { hAlign: hAlign, vAlign: vAlign }; +} +/** + * getBezierDirection method \ + * + * @returns {string } getBezierDirection method .\ + * @param {PointModel} src - provide the src value. + * @param { PointModel } tar - provide the tar value. + * @private + */ +function getBezierDirection(src, tar) { + if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) { + return src.x < tar.x ? 'right' : 'left'; + } + else { + return src.y < tar.y ? 'bottom' : 'top'; + } +} +/** + * removeChildNodes method \ + * + * @returns {void } removeChildNodes method .\ + * @param {NodeModel} node - provide the node value. + * @param { Diagram } diagram - provide the diagram value. + * @private + */ +function removeChildNodes(node, diagram) { + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"] && node.children) { + for (var i = 0; i < node.children.length; i++) { + if (diagram.nameTable[node.children[parseInt(i.toString(), 10)]].children) { + removeChildNodes(node, diagram); + } + diagram.removeFromAQuad(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]); + diagram.removeObjectsFromLayer(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]); + delete diagram.nameTable[node.children[parseInt(i.toString(), 10)]]; + } + } +} +/** + * getChild method \ + * + * @returns {string[] } getChild method .\ + * @param {Canvas} child - provide the child value. + * @param { string[] } children - provide the children value. + * @private + */ +function getChild(child, children) { + if (child && child.children && child.children.length > 0) { + for (var j = 0; j < child.children.length; j++) { + var subChild = child.children[parseInt(j.toString(), 10)]; + if (subChild instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_27__["Canvas"]) { + getChild(subChild, children); + } + } + } + if (children.indexOf(child.id) === -1) { + children.push(child.id); + } + return children; +} +/** + * getSwimLaneChildren method \ + * + * @returns {string[] } getSwimLaneChildren method .\ + * @param {NodeModel[]} nodes - provide the nodes value. + * @private + */ +function getSwimLaneChildren(nodes) { + var children = []; + var node; + var grid; + var childTable; + var child; + var gridChild = 'childTable'; + for (var i = 0; i < nodes.length; i++) { + node = nodes[parseInt(i.toString(), 10)]; + if (node.shape.type === 'SwimLane') { + grid = node.wrapper.children[0]; + childTable = grid["" + gridChild]; + for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) { + var key = _a[_i]; + child = childTable["" + key]; + children = getChild(child, children); + } + } + } + return children; +} +/** + * removeUnnecessaryNodes method \ + * + * @returns {void } removeUnnecessaryNodes method .\ + * @param {string[]} children - provide the children value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function removeUnnecessaryNodes(children, diagram) { + var nodes = diagram.nodes; + if (nodes) { + for (var i = 0; i < nodes.length; i++) { + if (children.indexOf(nodes[parseInt(i.toString(), 10)].id) !== -1) { + nodes.splice(i, 1); + i--; + } + } + } +} +/** + * serialize method \ + * + * @returns {string } serialize method .\ + * @param {Diagram} model - provide the model value. + * @private + */ +function serialize(model) { + var removeNodes = getSwimLaneChildren(model.nodes); + var clonedObject = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["cloneObject"])(model, model.getCustomProperty); + clonedObject.selectedItems.nodes = []; + clonedObject.selectedItems.connectors = []; + clonedObject.selectedItems.wrapper = null; + if (model.serializationSettings.preventDefaults) { + clonedObject = preventDefaults(clonedObject, model); + } + removeUnnecessaryNodes(removeNodes, clonedObject); + return JSON.stringify(clonedObject); +} +/** + * preventDefaults method \ + * + * @returns {string } preventDefaults method .\ + * @param {Object} clonedObject - provide the clonedObject value. + * @param {object} model - provide the model value. + * @param {object} defaultObject - provide the defaultObject value. + * @param {boolean} isNodeShape - provide the isNodeShape value. + * @private + */ +// eslint-disable-next-line +function preventDefaults(clonedObject, model, defaultObject, isNodeShape) { + defaultObject = getConstructor(model, defaultObject); + var properties = []; + properties = properties.concat(Object.keys(clonedObject)); + for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) { + var property = properties_1[_i]; + if (model instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + isNodeShape = (property === 'shape') ? true : false; + } + if (clonedObject["" + property] instanceof Array) { + preventArrayDefaults(clonedObject, defaultObject, model, property); + } + else if ((clonedObject["" + property] instanceof Object) && defaultObject && defaultObject["" + property]) { + if (property !== 'wrapper') { + clonedObject["" + property] = preventDefaults(clonedObject["" + property], model["" + property], defaultObject["" + property], isNodeShape); + } + } + else if ((defaultObject && clonedObject["" + property] === defaultObject["" + property]) || clonedObject["" + property] === undefined) { + if (!(isNodeShape && property === 'type') && !(model instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["SwimLane"] && property === 'orientation')) { + delete clonedObject["" + property]; + } + } + if (JSON.stringify(clonedObject["" + property]) === '[]' || + JSON.stringify(clonedObject["" + property]) === '{}' || + clonedObject["" + property] === undefined) { + delete clonedObject["" + property]; + } + } + defaultObject = undefined; + properties = undefined; + return clonedObject; +} +/** + * preventArrayDefaults method \ + * + * @returns {void } preventArrayDefaults method .\ + * @param {object} clonedObject - provide the clonedObject value. + * @param {object} defaultObject - provide the defaultObject value. + * @param {object} model - provide the model value. + * @param {string} property - provide the property value. + * @private + */ +// eslint-disable-next-line +function preventArrayDefaults(clonedObject, defaultObject, model, property) { + if (clonedObject["" + property].length === 0) { + delete clonedObject["" + property]; + // eslint-disable-next-line + } + else if (clonedObject[property].every(function (element) { return typeof element === 'number'; })) { + var i = void 0; + var isSameArray = true; + for (i = 0; i < clonedObject["" + property].length; i++) { + if (isSameArray && clonedObject["" + property][parseInt(i.toString(), 10)] === defaultObject["" + property][parseInt(i.toString(), 10)]) { + isSameArray = true; + } + else { + isSameArray = false; + } + } + if (isSameArray) { + delete clonedObject["" + property]; + } + } + else { + var i = void 0; + // Bug 826717: Unable to select swimlane child nodes after serializing the diagram when we enable preventDefault property. + // Removed the codition to delete the layers from clonedObject. + if (clonedObject["" + property] && property !== 'layers') { + for (i = clonedObject["" + property].length - 1; i >= 0; i--) { + if (property === 'nodes' || property === 'connectors') { + clonedObject["" + property][parseInt(i.toString(), 10)].wrapper = null; + } + if (property !== 'dataManager') { + clonedObject["" + property][parseInt(i.toString(), 10)] = preventDefaults(clonedObject["" + property][parseInt(i.toString(), 10)], model["" + property][parseInt(i.toString(), 10)], (defaultObject["" + property] !== undefined ? defaultObject["" + property][parseInt(i.toString(), 10)] : [])); + if (JSON.stringify(clonedObject["" + property][parseInt(i.toString(), 10)]) === '[]' || + JSON.stringify(clonedObject["" + property][parseInt(i.toString(), 10)]) === '{}' || + clonedObject["" + property][parseInt(i.toString(), 10)] === undefined) { + clonedObject["" + property].splice(i, 1); + } + } + } + } + } + clonedObject = undefined; +} +/* eslint-disable */ +/** + * getConstructor method \ + * + * @returns {object } getConstructor method .\ + * @param {object} model - provide the model value. + * @param {object} defaultObject - provide the defaultObject value. + * @private + */ +/* tslint:disable */ +function getConstructor(model, defaultObject) { + var obj = []; + var constructor; + var getClassName = 'getClassName'; + if (model[getClassName]) { + //EJ2-59327 - Memory leak occurs in saveDiagram method + var parent_1 = new _diagram__WEBPACK_IMPORTED_MODULE_17__["Diagram"](); + switch (model[getClassName]()) { + case 'Diagram': + constructor = parent_1; + break; + case 'Node': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"](parent_1, '', obj); + break; + case 'Path': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Path"](parent_1, '', obj); + break; + case 'Native': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Native"](parent_1, '', obj); + break; + case 'Html': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Html"](parent_1, '', obj); + break; + case 'Image': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Image"](parent_1, '', obj); + break; + case 'Text': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Text"](parent_1, '', obj); + break; + case 'BasicShape': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BasicShape"](parent_1, '', obj); + break; + case 'FlowShape': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["FlowShape"](parent_1, '', obj); + break; + case 'BpmnShape': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnShape"](parent_1, '', obj); + break; + case 'UmlActivityShape': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlActivityShape"](parent_1, '', obj); + break; + case 'UmlClassifierShape': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlClassifierShape"](parent_1, '', obj); + break; + case 'SwimLane': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["SwimLane"](parent_1, '', obj); + if (model.header) { + constructor.header = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Header"](parent_1, '', obj); + constructor.header.style.fill = ''; + } + break; + case 'ShapeAnnotation': + constructor = new _objects_annotation__WEBPACK_IMPORTED_MODULE_12__["ShapeAnnotation"](parent_1, '', obj); + break; + case 'PointPort': + constructor = new _objects_port__WEBPACK_IMPORTED_MODULE_28__["PointPort"](parent_1, '', obj); + break; + case 'BpmnGateway': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnGateway"](parent_1, '', obj); + break; + case 'BpmnDataObject': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnDataObject"](parent_1, '', obj); + break; + case 'BpmnEvent': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnEvent"](parent_1, '', obj); + break; + case 'BpmnSubEvent': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnSubEvent"](parent_1, '', obj); + break; + case 'BpmnActivity': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnActivity"](parent_1, '', obj); + break; + case 'BpmnAnnotation': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["BpmnAnnotation"](parent_1, '', obj); + break; + case 'MethodArguments': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["MethodArguments"](parent_1, '', obj); + break; + case 'UmlClassAttribute': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlClassAttribute"](parent_1, '', obj); + break; + case 'UmlClassMethod': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlClassMethod"](parent_1, '', obj); + break; + case 'UmlClass': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlClass"](parent_1, '', obj); + break; + case 'UmlInterface': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlInterface"](parent_1, '', obj); + break; + case 'UmlEnumerationMember': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlEnumerationMember"](parent_1, '', obj); + break; + case 'UmlEnumeration': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["UmlEnumeration"](parent_1, '', obj); + break; + case 'Lane': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Lane"](parent_1, '', obj); + break; + case 'Phase': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["Phase"](parent_1, '', obj); + break; + case 'ChildContainer': + constructor = new _objects_node__WEBPACK_IMPORTED_MODULE_13__["ChildContainer"](); + break; + case 'Connector': + constructor = new _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"](parent_1, '', obj); + break; + case 'StraightSegment': + constructor = new _objects_connector__WEBPACK_IMPORTED_MODULE_14__["StraightSegment"](parent_1, '', obj); + break; + case 'BezierSegment': + constructor = new _objects_connector__WEBPACK_IMPORTED_MODULE_14__["BezierSegment"](parent_1, '', obj); + break; + case 'OrthogonalSegment': + constructor = new _objects_connector__WEBPACK_IMPORTED_MODULE_14__["OrthogonalSegment"](parent_1, '', obj); + break; + case 'PathAnnotation': + constructor = new _objects_annotation__WEBPACK_IMPORTED_MODULE_12__["PathAnnotation"](parent_1, '', obj); + break; + case 'Stop': + constructor = new _core_appearance__WEBPACK_IMPORTED_MODULE_5__["Stop"](parent_1, '', obj); + break; + case 'Point': + if (!defaultObject) { + constructor = new _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"](parent_1, '', obj); + } + else { + constructor = defaultObject; + } + break; + case 'UserHandle': + constructor = new _interaction_selector__WEBPACK_IMPORTED_MODULE_25__["UserHandle"](parent_1, '', obj); + break; + case 'Command': + constructor = new _diagram_keyboard_commands__WEBPACK_IMPORTED_MODULE_29__["Command"](parent_1, '', obj); + break; + } + } + else { + constructor = defaultObject; + } + parent = undefined; + defaultObject = undefined; + return constructor; +} +/* eslint-enable */ +/* eslint-disable */ +/** @private */ +function deserialize(model, diagram) { + diagram.enableServerDataBinding(false); + var blazorAction = diagram.blazorActions; + diagram.blazorActions = diagram.addConstraints(blazorAction, _enum_enum__WEBPACK_IMPORTED_MODULE_7__["BlazorAction"].ClearObject); + diagram.clear(); + diagram.blazorActions = diagram.removeConstraints(blazorAction, _enum_enum__WEBPACK_IMPORTED_MODULE_7__["BlazorAction"].ClearObject); + diagram.protectPropertyChange(true); + var map = diagram.dataSourceSettings.doBinding; + var nodeTemp = diagram.setNodeTemplate; + var getDescription = diagram.getDescription; + var getCustomProperty = diagram.getCustomProperty; + var commands = {}; + for (var _i = 0, _a = diagram.commandManager.commands; _i < _a.length; _i++) { + var command = _a[_i]; + commands[command.name] = { execute: command.execute, canExecute: command.canExecute }; + } + var arrangeTickHorizontal = diagram.rulerSettings.horizontalRuler.arrangeTick; + var arrangeTickVertical = diagram.rulerSettings.verticalRuler.arrangeTick; + var getLayoutInfo = diagram.layout.getLayoutInfo; + var getBranch = diagram.layout.getBranch; + var nodeDefaults = diagram.getNodeDefaults; + var connectorDefaults = diagram.getConnectorDefaults; + var dataObj; + if (!(model instanceof Object)) { + dataObj = JSON.parse(model); + } + else { + dataObj = model; + } + dataObj = upgrade(dataObj); + diagram.contextMenuSettings = dataObj.contextMenuSettings || {}; + diagram.constraints = dataObj.constraints || _enum_enum__WEBPACK_IMPORTED_MODULE_7__["DiagramConstraints"].Default; + diagram.tool = dataObj.tool || _enum_enum__WEBPACK_IMPORTED_MODULE_7__["DiagramTools"].Default; + diagram.bridgeDirection = dataObj.bridgeDirection || 'Top'; + diagram.pageSettings = dataObj.pageSettings || {}; + diagram.drawingObject = dataObj.drawingObject || undefined; + diagram.tooltip = dataObj.tooltip || {}; + diagram.addInfo = dataObj.addInfo || undefined; + diagram.getDescription = getDescription; + diagram.scrollSettings = dataObj.scrollSettings || {}; + diagram.commandManager = dataObj.commandManager || {}; + /** + * EJ2-62846-Exception occurs after save and load when layers are undefined. + */ + if (dataObj.layers && dataObj.layers.length > 0) { + sortLayerObjects(dataObj); + } + diagram.layers = dataObj.layers || []; + diagram.rulerSettings.horizontalRuler.arrangeTick = arrangeTickHorizontal; + diagram.rulerSettings.verticalRuler.arrangeTick = arrangeTickVertical; + for (var _b = 0, _c = diagram.commandManager.commands; _b < _c.length; _b++) { + var cmd = _c[_b]; + if (commands[cmd.name]) { + cmd.execute = commands[cmd.name].execute; + cmd.canExecute = commands[cmd.name].canExecute; + } + } + diagram.backgroundColor = dataObj.backgroundColor || 'transparent'; + diagram.basicElements = dataObj.basicElements || []; + // EJ2-66465 - Added below code to empty the segment collection if connector type is bezier + if (dataObj.connectors) { + for (var i = 0; i < dataObj.connectors.length; i++) { + // EJ2-69816 - Added below code to empty the segment collection if connector type is bezier and allowSegmentsReset is true + if (dataObj.connectors[i].type === 'Bezier' && dataObj.connectors[i].segments.length > 0 && dataObj.connectors[i].bezierSettings.allowSegmentsReset) { + dataObj.connectors[i].segments = []; + } + } + } + diagram.connectors = dataObj.connectors || []; + diagram.dataSourceSettings = dataObj.dataSourceSettings || {}; + diagram.dataSourceSettings.doBinding = map; + diagram.height = dataObj.height || '100%'; + diagram.setNodeTemplate = nodeTemp; + diagram.getConnectorDefaults = connectorDefaults; + diagram.getNodeDefaults = nodeDefaults; + diagram.getCustomProperty = getCustomProperty; + diagram.mode = dataObj.mode || 'SVG'; + if (dataObj.nodes) { + for (var i = 0; i < dataObj.nodes.length; i++) { + if (dataObj.nodes[i].shape && dataObj.nodes[i].shape.type === 'SwimLane') { + if (dataObj.nodes[i].wrapper == null) { + { + dataObj.nodes[i].wrapper = { + actualSize: { width: dataObj.nodes[i].width, height: dataObj.nodes[i].height }, + offsetX: dataObj.nodes[i].offsetX, offsetY: dataObj.nodes[i].offsetY + }; + } + } + Object(_swim_lane_util__WEBPACK_IMPORTED_MODULE_30__["pasteSwimLane"])(dataObj.nodes[i], undefined, undefined, undefined, undefined, true); + } + } + } + diagram.nodes = dataObj.nodes || []; + diagram.rulerSettings = dataObj.rulerSettings || {}; + diagram.snapSettings = dataObj.snapSettings || {}; + diagram.width = dataObj.width || '100%'; + diagram.layout = dataObj.layout || {}; + if (dataObj.layout && dataObj.layout.type !== "None") { + diagram.canLayout = false; + } + diagram.layout.getLayoutInfo = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["getFunction"])(getLayoutInfo); + diagram.layout.getBranch = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["getFunction"])(getBranch); + diagram.diagramActions = 0; + diagram.isLoading = true; + diagram.protectPropertyChange(false); + var key = 'refresh'; + var component; + for (var i = 0; i < diagram.views.length; i++) { + component = diagram.views[diagram.views[i]]; + diagram.blazorActions = diagram.addConstraints(blazorAction, _enum_enum__WEBPACK_IMPORTED_MODULE_7__["BlazorAction"].ClearObject); + // EJ2-69580 - When we load the diagram, we can refresh diagram component alone, does not need to refresh overview seperately. + // While refresh diagram, nodes added in both the diagram and overview. + if (component instanceof _diagram__WEBPACK_IMPORTED_MODULE_17__["Diagram"]) { + component.refresh(); + } + diagram.blazorActions = diagram.removeConstraints(blazorAction, _enum_enum__WEBPACK_IMPORTED_MODULE_7__["BlazorAction"].ClearObject); + if (component instanceof _diagram__WEBPACK_IMPORTED_MODULE_17__["Diagram"]) { + diagram.element.classList.add('e-diagram'); + } + } + if (dataObj.selectedItems) { + dataObj.selectedItems.nodes = []; + dataObj.selectedItems.connectors = []; + //EJ2-61674 Exception occurs when we move the node after save and load + dataObj.selectedItems.selectedObjects = []; + } + diagram.selectedItems = dataObj.selectedItems; + diagram.enableServerDataBinding(true); + diagram.canLayout = true; + diagram.swimlaneChildTable = {}; + diagram.swimlaneZIndexTable = {}; + return dataObj; +} +/** + * EJ2-61537 - Connectors not connected to the node after save and load + * when we add nodes and connectors at runtime. + * */ +/** +* Sort the nodes and connectors in the layers. +* +* @param {Diagram} dataObj - provide the model value. +* @private +* */ +function sortLayerObjects(dataObj) { + var i, j, k; + var layers = []; + for (i = 0; i < dataObj.layers.length; i++) { + for (j = 0; j < dataObj.layers[i].objects.length; j++) { + if (dataObj.nodes) { + for (k = 0; k < dataObj.nodes.length; k++) { + if (dataObj.layers[i].objects[j] === dataObj.nodes[k].id) { + layers.push(dataObj.layers[i].objects[j]); + } + } + } + } + for (j = 0; j < dataObj.layers[i].objects.length; j++) { + if (dataObj.connectors) { + for (k = 0; k < dataObj.connectors.length; k++) { + if (dataObj.layers[i].objects[j] === dataObj.connectors[k].id) { + layers.push(dataObj.layers[i].objects[j]); + } + } + } + } + dataObj.layers[i].objects = layers; + layers = []; + } +} +/* eslint-enable */ +/** + * upgrade method \ + * + * @returns {Diagram } upgrade method .\ + * @param {Diagram} dataObj - provide the model value. + * @private + */ +function upgrade(dataObj) { + if (dataObj && (dataObj.version === undefined || (dataObj.version < 17.1)) && dataObj.nodes) { + var nodes = dataObj.nodes; + for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) { + var node = nodes_1[_i]; + if (node && node.ports && node.ports.length > 0) { + for (var _a = 0, _b = node.ports; _a < _b.length; _a++) { + var port = _b[_a]; + if (port && port.constraints && port.constraints === _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].None) { + port.constraints = _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].Default; + } + } + } + } + } + return dataObj; +} +/** + * updateStyle method \ + * + * @returns {void } updateStyle method .\ + * @param {TextStyleModel} changedObject - provide the changedObject value. + * @param {DiagramElement} target - provide the target value. + * @private + */ +function updateStyle(changedObject, target) { + //since text style model is the super set of shape style model, we used text style model + var style = target.style; + var textElement = target; + target.canApplyStyle = true; + for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) { + var key = _a[_i]; + switch (key) { + case 'fill': + style.fill = changedObject.fill; + if (style instanceof _core_appearance__WEBPACK_IMPORTED_MODULE_5__["StrokeStyle"]) { + /* tslint:disable:no-string-literal */ + style['fill'] = 'transparent'; + } + break; + case 'textOverflow': + style.textOverflow = changedObject.textOverflow; + break; + case 'opacity': + style.opacity = changedObject.opacity; + break; + case 'strokeColor': + style.strokeColor = changedObject.strokeColor; + break; + case 'strokeDashArray': + style.strokeDashArray = changedObject.strokeDashArray; + break; + case 'strokeWidth': + style.strokeWidth = changedObject.strokeWidth; + break; + case 'bold': + style.bold = changedObject.bold; + break; + case 'color': + style.color = changedObject.color; + break; + case 'textWrapping': + style.textWrapping = changedObject.textWrapping; + break; + case 'fontFamily': + style.fontFamily = changedObject.fontFamily; + break; + case 'fontSize': + style.fontSize = changedObject.fontSize; + break; + case 'italic': + style.italic = changedObject.italic; + break; + case 'textAlign': + style.textAlign = changedObject.textAlign; + break; + case 'whiteSpace': + style.whiteSpace = changedObject.whiteSpace; + break; + case 'textDecoration': + style.textDecoration = changedObject.textDecoration; + break; + case 'gradient': + if (style.gradient) { + updateGradient(changedObject.gradient, style.gradient); + break; + } + } + } + if (target instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"]) { + textElement.refreshTextElement(); + } +} +/** + * updateGradient method \ + * + * @returns {void } updateGradient method .\ + * @param {GradientModel | LinearGradientModel | RadialGradientModel} changedGradient - provide the changedGradient value. + * @param {GradientModel | LinearGradientModel | RadialGradientModel} targetGradient - provide the targetGradient value. + * @private + */ +function updateGradient(changedGradient, targetGradient) { + for (var _i = 0, _a = Object.keys(changedGradient); _i < _a.length; _i++) { + var key = _a[_i]; + switch (key) { + case 'type': + targetGradient.type = changedGradient.type; + break; + case 'x1': + targetGradient.x1 = changedGradient.x1; + break; + case 'x2': + targetGradient.x2 = changedGradient.x2; + break; + case 'y1': + targetGradient.y1 = changedGradient.y1; + break; + case 'y2': + targetGradient.y2 = changedGradient.y2; + break; + case 'cx': + targetGradient.cx = changedGradient.cx; + break; + case 'cy': + targetGradient.cy = changedGradient.cy; + break; + case 'fx': + targetGradient.fx = changedGradient.fx; + break; + case 'fy': + targetGradient.fy = changedGradient.fy; + break; + case 'r': + targetGradient.r = changedGradient.r; + break; + case 'stops': + targetGradient.stops = changedGradient.stops; + break; + } + } +} +/* eslint-disable */ +/** + * updateHyperlink method \ + * + * @returns {void } updateHyperlink method .\ + * @param {HyperlinkModel} changedObject - provide the changedObject value. + * @param {DiagramElement} target - provide the target value. + * @param {AnnotationModel} actualAnnotation - provide the actualAnnotation value. + * @private + */ +function updateHyperlink(changedObject, target, actualAnnotation) { + var textElement = target; + var hyperlink = textElement.hyperlink; + for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) { + var key = _a[_i]; + switch (key) { + case 'color': + textElement.style.color = hyperlink.color = changedObject.color; + break; + case 'content': + textElement.content = hyperlink.content = changedObject.content || hyperlink.link; + break; + case 'link': + var labelStyle = actualAnnotation.style; + textElement.style.color = changedObject.link ? hyperlink.color : labelStyle.color; + textElement.style.textDecoration = changedObject.link ? hyperlink.textDecoration : actualAnnotation.style.textDecoration; + textElement.content = changedObject.link ? hyperlink.content || changedObject.link : actualAnnotation.content; + hyperlink.link = changedObject.link; + break; + case 'textDecoration': + textElement.style.textDecoration = hyperlink.textDecoration = changedObject.textDecoration; + break; + case 'hyperlinkOpenState': + hyperlink.hyperlinkOpenState = changedObject.hyperlinkOpenState; + break; + } + } +} +/* eslint-enable */ +/** + * updateShapeContent method \ + * + * @returns {void } updateShapeContent method .\ + * @param {DiagramElement} content - provide the content value. + * @param {Node} actualObject - provide the actualObject value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function updateShapeContent(content, actualObject, diagram) { + content.width = actualObject.width; + content.height = actualObject.height; + content.minHeight = actualObject.minHeight; + content.maxHeight = actualObject.maxHeight; + content.minWidth = actualObject.minWidth; + content.maxWidth = actualObject.maxWidth; + content.horizontalAlignment = actualObject.wrapper.children[0].horizontalAlignment; + content.verticalAlignment = actualObject.wrapper.children[0].verticalAlignment; + content.relativeMode = actualObject.wrapper.children[0].relativeMode; + content.visible = actualObject.wrapper.children[0].visible; + if (actualObject.shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Text"]) { + content.margin = actualObject.shape.margin; + } + content.id = actualObject.wrapper.children[0].id; + content.style = actualObject.style; + //let view: View; + for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) { + var elementId = _a[_i]; + Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["removeElement"])(actualObject.id + '_groupElement', elementId); + Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["removeElement"])(actualObject.id + '_content_groupElement', elementId); + Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["removeElement"])(actualObject.id + '_html_element', elementId); + } + actualObject.wrapper.children.splice(0, 1); + actualObject.wrapper.children.splice(0, 0, content); +} +/* eslint-disable */ +/** + * updateShape method \ + * + * @returns {void } updateShape method .\ + * @param {Node} node - provide the node value. + * @param {Node} actualObject - provide the actualObject value. + * @param {Node} oldObject - provide the oldObject value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function updateShape(node, actualObject, oldObject, diagram) { + var content = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_3__["DiagramElement"](); + var i; + //let textStyle: TextStyleModel; let nodeStyle: TextStyleModel; + switch (node.shape.type) { + case 'Path': + var pathContent = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + pathContent.data = actualObject.shape.data; + content = pathContent; + updateShapeContent(content, actualObject, diagram); + break; + case 'Image': + var imageContent = new _core_elements_image_element__WEBPACK_IMPORTED_MODULE_11__["ImageElement"](); + imageContent.source = actualObject.shape.source; + imageContent.imageAlign = actualObject.shape.align; + imageContent.imageScale = actualObject.shape.scale; + content = imageContent; + updateShapeContent(content, actualObject, diagram); + break; + case 'Text': + //issue + var textContent = new _core_elements_text_element__WEBPACK_IMPORTED_MODULE_10__["TextElement"](); + // (textContent as TextElement).content = (node.shape as TextModel).content; + content = textContent; + updateShapeContent(content, actualObject, diagram); + break; + case 'Basic': + var element = ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? actualObject.shape.basicShape === 'Rectangle' : + actualObject.shape.shape === 'Rectangle')) ? new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_3__["DiagramElement"]() : new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.shape === 'Polygon') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.basicShape === 'Polygon')) { + element.data = Object(_utility_path_util__WEBPACK_IMPORTED_MODULE_21__["getPolygonPath"])(actualObject.shape.points); + } + else { + element.data = Object(_objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_15__["getBasicShape"])((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? actualObject.shape.basicShape : + actualObject.shape.shape)); + } + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.shape === 'Rectangle') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.basicShape === 'Rectangle')) { + element.cornerRadius = actualObject.shape.cornerRadius; + } + //EJ2-70880 - Node disappeared after changing shape and type dynamically. + content = element; + updateShapeContent(content, actualObject, diagram); + break; + case 'Flow': + /* eslint-disable */ + var flowShapeElement = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + var shape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) ? actualObject.shape.flowShape : actualObject.shape.shape; + flowShapeElement.data = Object(_objects_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_16__["getFlowShape"])(shape); + content = flowShapeElement; + updateShapeContent(content, actualObject, diagram); + break; + case 'Native': + var nativeContent = new _core_elements_native_element__WEBPACK_IMPORTED_MODULE_9__["DiagramNativeElement"](node.id, diagram.element.id); + nativeContent.content = actualObject.shape.content; + nativeContent.scale = actualObject.shape.scale; + content = nativeContent; + updateShapeContent(content, actualObject, diagram); + break; + case 'HTML': + var htmlContent = new _core_elements_html_element__WEBPACK_IMPORTED_MODULE_22__["DiagramHtmlElement"](actualObject.id, diagram.element.id); + htmlContent.content = actualObject.shape.content; + content = htmlContent; + updateShapeContent(content, actualObject, diagram); + } + if (node.shape.type === undefined || node.shape.type === oldObject.shape.type || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && node.shape.type === 'UmlActivity')) { + updateContent(node, actualObject, diagram, oldObject); + } + else { + content.width = actualObject.wrapper.children[0].width; + content.height = actualObject.wrapper.children[0].height; + if (actualObject.shape instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Text"]) { + content.margin = actualObject.shape.margin; + } + content.style = actualObject.style; + actualObject.wrapper.children[0] = content; + } +} +/* eslint-enable */ +/** + * updateContent method \ + * + * @returns {void } updateContent method .\ + * @param {Node} newValues - provide the newValues value. + * @param {Node} actualObject - provide the actualObject value. + * @param {Diagram} diagram - provide the diagram value. + * @param {Node} oldObject - provide the oldObject value. + * @private + */ +function updateContent(newValues, actualObject, diagram, oldObject) { + if (Object.keys(newValues.shape).length > 0) { + if (actualObject.shape.type === 'Path' && newValues.shape.data !== undefined) { + actualObject.wrapper.children[0].data = newValues.shape.data; + } + else if (actualObject.shape.type === 'Text' && newValues.shape.content !== undefined) { + actualObject.wrapper.children[0].content = newValues.shape.content; + } + else if (actualObject.shape.type === 'Image' && newValues.shape.source !== undefined) { + actualObject.wrapper.children[0].source = newValues.shape.source; + } + else if (actualObject.shape.type === 'Native') { + var nativeElement = void 0; + for (var i = 0; i < diagram.views.length; i++) { + nativeElement = Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["getDiagramElement"])(actualObject.wrapper.children[0].id + '_native_element', diagram.views[parseInt(i.toString(), 10)]); + if (newValues.shape.content !== undefined && nativeElement) { + nativeElement.removeChild(nativeElement.children[0]); + actualObject.wrapper.children[0].content = newValues.shape.content; + nativeElement.appendChild(Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["getContent"])(actualObject.wrapper.children[0], false)); + } + } + actualObject.wrapper.children[0].scale = newValues.shape.scale ? + newValues.shape.scale : actualObject.wrapper.children[0].scale; + } + else if (actualObject.shape.type === 'HTML') { + var htmlElement = void 0; + for (var i = 0; i < diagram.views.length; i++) { + htmlElement = Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["getDiagramElement"])(actualObject.wrapper.children[0].id + '_html_element', diagram.views[parseInt(i.toString(), 10)]); + if (htmlElement) { + htmlElement.removeChild(htmlElement.children[0]); + actualObject.wrapper.children[0].content = newValues.shape.content; + htmlElement.appendChild(Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["getContent"])(actualObject.wrapper.children[0], true)); + } + } + } + else if (actualObject.shape.type === 'Flow' && ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && newValues.shape.flowShape !== undefined) || + newValues.shape.shape !== undefined)) { + actualObject.shape.shape = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? newValues.shape.flowShape : + newValues.shape.shape; + var shapes = actualObject.shape.shape; + var flowshapedata = Object(_objects_dictionary_flow_shapes__WEBPACK_IMPORTED_MODULE_16__["getFlowShape"])(shapes.toString()); + actualObject.wrapper.children[0].data = flowshapedata; + } + else if (actualObject.shape.type === 'UmlActivity' && + ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && newValues.shape.umlActivityShape !== undefined) || + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && newValues.shape.shape !== undefined))) { + updateUmlActivityNode(actualObject, newValues); + } + else if (newValues.shape.cornerRadius !== undefined) { + actualObject.wrapper.children[0].cornerRadius = newValues.shape.cornerRadius; + } + else if (actualObject.shape.type === 'Basic' && (oldObject && oldObject.shape.shape === 'Rectangle')) { + var basicshape = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + var basicshapedata = Object(_objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_15__["getBasicShape"])((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) ? actualObject.shape.basicShape : + actualObject.shape.shape); + basicshape.data = basicshapedata; + var content = basicshape; + updateShapeContent(content, actualObject, diagram); + } + else if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && newValues.shape.basicShape !== undefined) || + newValues.shape.shape !== undefined)) { + actualObject.shape.shape = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? newValues.shape.basicShape : + newValues.shape.shape; + var shapes = actualObject.shape.shape; + var basicShapeData = Object(_objects_dictionary_basic_shapes__WEBPACK_IMPORTED_MODULE_15__["getBasicShape"])(shapes.toString()); + actualObject.wrapper.children[0].data = basicShapeData; + } + } + actualObject.wrapper.children[0].canMeasurePath = true; +} +/** + * updateUmlActivityNode method \ + * + * @returns {void } updateUmlActivityNode method .\ + * @param {Node} actualObject - provide the newValues value. + * @param {Node} newValues - provide the actualObject value. + * @private + */ +function updateUmlActivityNode(actualObject, newValues) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) { + actualObject.shape.shape = newValues.shape.shape; + } + else { + actualObject.shape.umlActivityShape = newValues.shape.umlActivityShape; + } + var shapes = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? actualObject.shape.shape : + actualObject.shape.umlActivityShape; + var umlActivityShapeData = Object(_objects_dictionary_umlactivity_shapes__WEBPACK_IMPORTED_MODULE_26__["getUMLActivityShape"])(shapes.toString()); + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.umlActivityShape === 'InitialNode') || + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.shape === 'InitialNode')) { + actualObject.wrapper.children[0].style.fill = 'black'; + } + else if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && (actualObject.shape.shape === 'ForkNode' || + actualObject.shape.shape === 'JoinNode')) || + ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && (actualObject.shape.umlActivityShape === 'ForkNode' || + actualObject.shape.umlActivityShape === 'JoinNode')))) { + actualObject.wrapper.children[0].style.fill = 'black'; + } + else if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.shape === 'FinalNode') || + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() && actualObject.shape.umlActivityShape === 'FinalNode')) { + if (actualObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + actualObject.wrapper = getUMLFinalNode(actualObject); + } + } + if (umlActivityShapeData) { + actualObject.wrapper.children[0].data = umlActivityShapeData; + } +} +/** + * getUMLFinalNode method \ + * + * @returns {Canvas } getUMLFinalNode method .\ + * @param {Node} node - provide the newValues value. + * @private + */ +function getUMLFinalNode(node) { + var finalNodeShape = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_27__["Canvas"](); + finalNodeShape.style.fill = 'transparent'; + //childNode0 + var pathData = 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25' + + ' C 50 38.79 38.78 50 25 50'; + var innerFinalNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + innerFinalNode.data = pathData; + innerFinalNode.id = node.id + '_0_finalNode'; + innerFinalNode.horizontalAlignment = 'Center'; + innerFinalNode.verticalAlignment = 'Center'; + innerFinalNode.relativeMode = 'Object'; + innerFinalNode.style.strokeColor = node.style.strokeColor; + innerFinalNode.style.strokeWidth = node.style.strokeWidth; + //childNode1 + var outerFinalNode = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + outerFinalNode.data = pathData; + outerFinalNode.id = node.id + '_1_finalNode'; + outerFinalNode.horizontalAlignment = 'Center'; + outerFinalNode.verticalAlignment = 'Center'; + outerFinalNode.relativeMode = 'Object'; + outerFinalNode.style.fill = node.style.fill; + outerFinalNode.style.strokeColor = node.style.strokeColor; + outerFinalNode.style.strokeWidth = node.style.strokeWidth; + //append child and set style + finalNodeShape.children = [innerFinalNode, outerFinalNode]; + finalNodeShape.children[0].width = node.width; + finalNodeShape.children[0].height = node.height; + finalNodeShape.children[1].height = node.height / 1.5; + finalNodeShape.children[1].width = node.width / 1.5; + finalNodeShape.style.strokeWidth = 0; + finalNodeShape.style.strokeColor = 'transparent'; + return finalNodeShape; +} +/** + * getUMLActivityShapes method \ + * + * @returns {DiagramElement } getUMLActivityShapes method .\ + * @param {PathElement} umlActivityShape - provide the umlActivityShape value. + * @param {DiagramElement} content - provide the content value. + * @param {Node} node - provide the node value. + * @private + */ +function getUMLActivityShapes(umlActivityShape, content, node) { + var shape = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])() ? node.shape.umlActivityShape : node.shape.shape); + var umlActivityShapeData = Object(_objects_dictionary_umlactivity_shapes__WEBPACK_IMPORTED_MODULE_26__["getUMLActivityShape"])(shape); + umlActivityShape.data = umlActivityShapeData; + content = umlActivityShape; + switch (shape) { + case 'StructuredNode': + if (node.annotations) { + for (var i = 0; i < node.annotations.length; i++) { + node.annotations[parseInt(i.toString(), 10)].content = '<<' + node.annotations[parseInt(i.toString(), 10)].content + '>>'; + } + } + content = umlActivityShape; + break; + case 'FinalNode': + content = getUMLFinalNode(node); + break; + } + return content; +} +/** + * removeGradient method \ + * + * @returns {void } removeGradient method .\ + * @param {string} svgId - provide the umlActivityShape value. + * @private + */ +function removeGradient(svgId) { + Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["removeElement"])(svgId + '_linear'); + Object(_dom_util__WEBPACK_IMPORTED_MODULE_19__["removeElement"])(svgId + '_radial'); +} +/** + * removeItem method \ + * + * @returns {void } removeItem method .\ + * @param {string[]} array - provide the umlActivityShape value. + * @param {string} item - provide the umlActivityShape value. + * @private + */ +function removeItem(array, item) { + var index = array.indexOf(item); + if (index >= 0) { + array.splice(index, 1); + } +} +/** + * updateConnector method \ + * + * @returns {void } updateConnector method .\ + * @param {Connector} connector - provide the connector value. + * @param {PointModel[]} points - provide the points value. + * @param {DiagramAction} diagramActions - provide the diagramActions value. + * @private + */ +function updateConnector(connector, points, diagramActions) { + var anglePoint; //let srcDecorator: DecoratorModel; + //let targetPoint: PointModel; + connector.intermediatePoints = points; + connector.updateSegmentElement(connector, points, connector.wrapper.children[0], diagramActions); + var srcDecorator = connector.sourceDecorator; + if (connector.type === 'Bezier') { + var firstSegment = connector.segments[0]; + var lastSegment = connector.segments[connector.segments.length - 1]; + anglePoint = [!_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2, + !_primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1]; + } + else { + anglePoint = connector.intermediatePoints; + } + points = connector.clipDecorators(connector, points, diagramActions); + var element = connector.wrapper.children[0]; + element.canMeasurePath = true; + element = connector.wrapper.children[1]; + connector.updateDecoratorElement(element, points[0], anglePoint[1], srcDecorator); + //const targetPoint: PointModel = connector.targetPoint; + var tarDecorator = connector.targetDecorator; + element = connector.wrapper.children[2]; + connector.updateDecoratorElement(element, points[points.length - 1], anglePoint[anglePoint.length - 2], tarDecorator); + connector.updateShapeElement(connector); +} +/** + * getUserHandlePosition method \ + * + * @returns {PointModel } getUserHandlePosition method .\ + * @param {SelectorModel} selectorItem - provide the connector value. + * @param {UserHandleModel} handle - provide the handle value. + * @param {Transforms} transform - provide the transform value. + * @private + */ +function getUserHandlePosition(selectorItem, handle, transform) { + var wrapper = selectorItem.wrapper; + //let positionPoints: PointModel; + var bounds = wrapper.bounds; + var offset = handle.offset; + var size = handle.size / transform.scale; + var margin = handle.margin; + var point; + var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x; + var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y; + point = { x: 0, y: 0 }; + if (selectorItem.nodes.length > 0) { + switch (handle.side) { + case 'Top': + point.x += left + bounds.width * offset; + point.y += top - (size / 2 + 12.5); + break; + case 'Bottom': + point.x += left + offset * bounds.width; + point.y += top + wrapper.actualSize.height + (size / 2 + 12.5); + break; + case 'Left': + point.x += left - (size / 2 + 12.5); + point.y += top + offset * bounds.height; + break; + case 'Right': + point.x += left + wrapper.actualSize.width + (size / 2 + 12.5); + point.y += top + offset * bounds.height; + break; + } + point.x += ((margin.left - margin.right) / transform.scale) + + (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1)); + point.y += ((margin.top - margin.bottom) / transform.scale) + + (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1)); + } + else if (selectorItem.connectors.length > 0) { + var connector = selectorItem.connectors[0]; + var annotation = { offset: offset }; + var connectorOffset = getOffsetOfConnector(connector.intermediatePoints, annotation); + var index = connectorOffset.index; + point = connectorOffset.point; + var getPointloop = getAnnotationPosition(connector.intermediatePoints, annotation, bounds); + //const points: PointModel[] = connector.intermediatePoints; + //const offsetLength: number; + var angle = getPointloop.angle; + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(matrix, -angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y); + point = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, point); + point.x += (margin.left - margin.right) + + (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1)); + point.y += (margin.top - margin.bottom) + + (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1)); + matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(matrix, angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y); + point = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, point); + } + if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY); + point = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, point); + } + return point; +} +/** + * canResizeCorner method \ + * + * @returns {SelectorConstraints } canResizeCorner method .\ + * @param {string} selectorConstraints - provide the selectorConstraints value. + * @param {string} action - provide the selectorConstraints value. + * @param {ThumbsConstraints} thumbsConstraints - provide the thumbsConstraints value. + * @param {Selector} selectedItems - provide the selectedItems value. + * @private + */ +function canResizeCorner(selectorConstraints, action, thumbsConstraints, selectedItems) { + if (selectedItems.annotation) { + if (Object(_constraints_util__WEBPACK_IMPORTED_MODULE_24__["canResize"])(selectedItems.annotation)) { + return true; + } + } + else if ((_enum_enum__WEBPACK_IMPORTED_MODULE_7__["SelectorConstraints"]["" + action] & selectorConstraints) && (_enum_enum__WEBPACK_IMPORTED_MODULE_7__["ThumbsConstraints"]["" + action] & thumbsConstraints)) { + return true; + } + return false; +} +/** + * canShowCorner method \ + * + * @returns {boolean } canShowCorner method .\ + * @param {SelectorConstraints} selectorConstraints - provide the selectorConstraints value. + * @param {string} action - provide the thumbsConstraints value. + * @private + */ +function canShowCorner(selectorConstraints, action) { + if (_enum_enum__WEBPACK_IMPORTED_MODULE_7__["SelectorConstraints"]["" + action] & selectorConstraints) { + return true; + } + return false; +} +/** + * canShowControlPoints method \ + * + * @returns {boolean } canShowControlPoints method .\ + * @param {ControlPointsVisibility} bezierControlPoints - provide the bezierControlPoints value. + * @param {string} action - provide the value. + * @private + */ +function canShowControlPoints(bezierControlPoints, action) { + if (_enum_enum__WEBPACK_IMPORTED_MODULE_7__["ControlPointsVisibility"]["" + action] & bezierControlPoints) { + return true; + } + return false; +} +/** + * checkPortRestriction method \ + * + * @returns {number } checkPortRestriction method .\ + * @param {PointPortModel} port - provide the port value. + * @param {PortVisibility} portVisibility - provide the portVisibility value. + * @private + */ +function checkPortRestriction(port, portVisibility) { + return port.visibility & portVisibility; +} +/** + * findAnnotation method \ + * + * @returns {ShapeAnnotationModel | PathAnnotationModel | TextModel } findAnnotation method .\ + * @param { NodeModel | ConnectorModel} node - provide the port value. + * @param {string} id - provide the portVisibility value. + * @private + */ +function findAnnotation(node, id) { + var annotation; + if (node.shape.type === 'Text') { + annotation = (node.shape); + } + else { + var annotationId = id.split('_'); + id = annotationId[annotationId.length - 1]; + for (var i = 0; i < node.annotations.length; i++) { + if (id === node.annotations[parseInt(i.toString(), 10)].id) { + annotation = node.annotations[parseInt(i.toString(), 10)]; + } + } + } + return annotation; +} +/** + * findPort method \ + * + * @returns {PointPortModel} findPort method .\ + * @param { NodeModel | ConnectorModel} node - provide the port value. + * @param {string} id - provide the portVisibility value. + * @private + */ +function findPort(node, id) { + var port; + var portId = id.split('_'); + id = portId[portId.length - 1]; + if (node) { + node = node; + for (var i = 0; i < node.ports.length; i++) { + if (id === node.ports[parseInt(i.toString(), 10)].id) { + return node.ports[parseInt(i.toString(), 10)]; + } + } + } + return port; +} +/** + * getInOutConnectPorts method \ + * + * @returns {PointPortModel} getInOutConnectPorts method .\ + * @param { NodeModel} node - provide the port value. + * @param {boolean} isInConnect - provide the portVisibility value. + * @private + */ +function getInOutConnectPorts(node, isInConnect) { + var port = {}; + var i = 0; + if (node.ports) { + var ports = node.ports; + for (i = 0; i < ports.length; i++) { + if (isInConnect) { + if ((ports[parseInt(i.toString(), 10)].constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].InConnect)) { + port = ports[parseInt(i.toString(), 10)]; + } + } + else { + if ((ports[parseInt(i.toString(), 10)].constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_7__["PortConstraints"].OutConnect)) { + port = ports[parseInt(i.toString(), 10)]; + } + } + } + } + return port; +} +/** + * findObjectIndex method \ + * + * @returns {PointPortModel} findObjectIndex method .\ + * @param { NodeModel | ConnectorModel} node - provide the node value. + * @param {string} id - provide the string value. + * @param {boolean} annotation - provide the boolean value. + * @private + */ +function findObjectIndex(node, id, annotation) { + //let index: number; + var collection = (annotation) ? node.annotations : node.ports; + for (var i = 0; i < collection.length; i++) { + if (collection[parseInt(i.toString(), 10)].id === id) { + return (i).toString(); + } + } + return '-1'; +} +/** + * getObjectFromCollection method \ + * + * @returns {boolean} getObjectFromCollection method .\ + * @param { (NodeModel | ConnectorModel)[] } obj - provide the node value. + * @param {string} id - provide the string value. + * @private + */ +function getObjectFromCollection(obj, id) { + var i; + for (i = 0; i < obj.length; i++) { + if (id === obj[parseInt(i.toString(), 10)].id) { + return true; + } + } + return false; +} +/** + * scaleElement method \ + * + * @returns {void} scaleElement method .\ + * @param { DiagramElement } element - provide the element value. + * @param {number} sw - provide the string value. + * @param {number} sh - provide the string value. + * @param {DiagramElement} refObject - provide the refObject value. + * @private + */ +function scaleElement(element, sw, sh, refObject) { + if (element.width !== undefined && element.height !== undefined) { + element.width *= sw; + element.height *= sh; + } + if (element instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_4__["Container"]) { + var matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + var width = refObject.width || refObject.actualSize.width; + var height = refObject.height || refObject.actualSize.height; + if (width !== undefined && height !== undefined) { + var x = refObject.offsetX - width * refObject.pivot.x; + var y = refObject.offsetY - height * refObject.pivot.y; + var refPoint = { + x: x + width * refObject.pivot.x, + y: y + height * refObject.pivot.y + }; + refPoint = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["rotatePoint"])(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["scaleMatrix"])(matrix, sw, sh, refPoint.x, refPoint.y); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(matrix, refObject.rotateAngle, refPoint.x, refPoint.y); + for (var _i = 0, _a = element.children; _i < _a.length; _i++) { + var child = _a[_i]; + if (child.width !== undefined && child.height !== undefined) { + var newPosition = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(matrix, { x: child.offsetX, y: child.offsetY }); + child.offsetX = newPosition.x; + child.offsetY = newPosition.y; + scaleElement(child, sw, sh, refObject); + } + } + } + } +} +/** + * scaleElement method \ + * + * @returns {void} scaleElement method .\ + * @param { Node } obj - provide the obj value. + * @param {number} x - provide the x value. + * @param {number} y - provide the y value. + * @param {DiagramElement} nameTable - provide the refObject value. + * @param {DiagramElement} drop - provide the drop value. + * @param {DiagramElement} diagram - provide the diagram value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/ban-types +function arrangeChild(obj, x, y, nameTable, drop, diagram) { + var child = obj.children; + var node; + for (var i = 0; i < child.length; i++) { + node = nameTable[child[parseInt(i.toString(), 10)]]; + if (node) { + if (node.children) { + arrangeChild(node, x, y, nameTable, drop, diagram); + } + else { + node.offsetX -= x; + node.offsetY -= y; + if (!drop) { + //let content: DiagramElement; + //let container: Container; + nameTable[node.id] = node; + var container = node.initContainer(); + if (!container.children) { + container.children = []; + } + var content = node.init(diagram); + container.children.push(content); + container.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](node.width, node.height)); + container.arrange(container.desiredSize); + } + } + } + } +} +/** + * insertObject method \ + * + * @returns {void} insertObject method .\ + * @param { NodeModel | ConnectorModel } obj - provide the obj value. + * @param { string } key - provide the obj value. + * @param { Object[]} collection - provide the x value. + * @private + */ +function insertObject(obj, key, collection) { + if (collection.length === 0) { + collection.push(obj); + } + else if (collection.length === 1) { + if (collection[0]["" + key] > obj["" + key]) { + collection.splice(0, 0, obj); + } + else { + collection.push(obj); + } + } + else if (collection.length > 1) { + var low = 0; + var high = collection.length - 1; + var mid = Math.floor((low + high) / 2); + while (mid !== low) { + if (collection[parseInt(mid.toString(), 10)]["" + key] < obj["" + key]) { + low = mid; + mid = Math.floor((low + high) / 2); + } + else if (collection[parseInt(mid.toString(), 10)]["" + key] > obj["" + key]) { + high = mid; + mid = Math.floor((low + high) / 2); + } + else { + break; + } + } + if (collection[parseInt(high.toString(), 10)]["" + key] < obj["" + key]) { + collection.push(obj); + } + else if (collection[parseInt(low.toString(), 10)]["" + key] > obj["" + key]) { + collection.splice(low, 0, obj); + } + else if ((collection[parseInt(low.toString(), 10)]["" + key] < obj["" + key]) && collection[parseInt(high.toString(), 10)]["" + key] > obj["" + key]) { + collection.splice(high, 0, obj); + } + } +} +/** + * getElement method \ + * + * @returns {Object} getElement method .\ + * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value. + * @private + */ +function getElement(element) { + var diagramElement = document.getElementById(element.diagramId); + var instance = 'ej2_instances'; + // eslint-disable-next-line + var node = {}; + var nodes = diagramElement["" + instance][0].nodes; + if (nodes === undefined) { + nodes = getPaletteSymbols(diagramElement["" + instance][0]); + } + var length = 'length'; + for (var i = 0; nodes && i < nodes["" + length]; i++) { + if (nodes[parseInt(i.toString(), 10)].id === element.nodeId) { + return getAnnotation(nodes[parseInt(i.toString(), 10)], element); + } + } + var connectors = diagramElement["" + instance][0].connectors; + for (var i = 0; connectors && i < connectors["" + length]; i++) { + if (connectors[parseInt(i.toString(), 10)].id === element.nodeId) { + return getAnnotation(connectors[parseInt(i.toString(), 10)], element); + } + } + // eslint-disable-next-line + var enterObject = diagramElement[instance][0].enterObject; + if (enterObject && (enterObject['id'] === element.nodeId || enterObject['children'])) { + if (enterObject['children'] && groupHasType(enterObject, 'HTML', diagramElement["" + instance][0].enterTable)) { + return diagramElement["" + instance][0].enterTable[element.nodeId]; + } + else { + return enterObject; + } + } + return null; +} +/** + * getAnnotation method \ + * + * @returns {Object} getAnnotation method .\ + * @param { Object } obj - provide the obj value. + * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value. + * @private + */ +function getAnnotation(obj, element) { + var annotations = obj.annotations; + var length = 'length'; + var j; + for (j = 0; annotations && j < annotations["" + length]; j++) { + if (element.annotationId && annotations[parseInt(j.toString(), 10)].id === element.annotationId) { + return annotations[parseInt(j.toString(), 10)]; + } + } + return obj; +} +/** + * getPaletteSymbols method \ + * + * @returns {NodeModel[]} getPaletteSymbols method .\ + * @param { Object } symbolPalette - provide the symbolPalette value. + * @private + */ +function getPaletteSymbols(symbolPalette) { + var nodes = []; + for (var i = 0; i < symbolPalette.palettes.length; i++) { + var symbols = symbolPalette.palettes[parseInt(i.toString(), 10)].symbols; + for (var j = 0; j < symbols.length; j++) { + if (symbols[parseInt(j.toString(), 10)] instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + nodes.push(symbols[parseInt(j.toString(), 10)]); + } + } + } + return nodes; +} +/** + * getCollectionChangeEventArguements method \ + * + * @returns {IBlazorCollectionChangeEventArgs} getCollectionChangeEventArguements method .\ + * @param { IBlazorCollectionChangeEventArgs } args1 - provide the args1 value. + * @param { NodeModel | ConnectorModel } obj - provide the obj value. + * @param { EventState } state - provide the state value. + * @param { ChangeType } type - provide the type value. + * @private + */ +function getCollectionChangeEventArguements(args1, obj, state, type) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) { + args1 = { + cause: args1.cause, state: state, type: type, cancel: false, + element: getObjectType(obj) === _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"] ? + { connector: cloneBlazorObject(obj) } : { node: cloneBlazorObject(obj) } + }; + } + return args1; +} +/** + * getDropEventArguements method \ + * + * @returns {IBlazorDropEventArgs} getDropEventArguements method .\ + * @param { MouseEventArgs } args - provide the args1 value. + * @param { IBlazorDropEventArgs } arg - provide the obj value. + * @private + */ +function getDropEventArguements(args, arg) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) { + var isConnector = (getObjectType(args.source) === _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]); + var object = cloneBlazorObject(args.source); + var target = cloneBlazorObject(args.target); + // BLAZ-20491 - Added the below code to check whether selector has nodes or connectors in it. + // If it does not have means then we can directly access node. + var connector = void 0; + var node = void 0; + if (object.connectors && object.connectors.length > 0) { + connector = object.connectors[0]; + } + else { + connector = object; + } + if (object.nodes && object.nodes.length > 0) { + node = object.nodes[0]; + } + else { + node = object; + } + arg = { + element: isConnector ? { + connector: connector, + connectorId: connector.id + } + : { node: node, nodeId: node.id }, + target: isConnector ? { connector: target } : { node: target }, + position: arg.position, cancel: arg.cancel + }; + } + return arg; +} +/** + * getPoint method \ + * + * @returns {PointModel} getPoint method .\ + * @param { number } x - provide the x value. + * @param { number } y - provide the y value. + * @param { number } w - provide the w value. + * @param { number } h - provide the y value. + * @param { number } angle - provide the y value. + * @param { number } offsetX - provide the y value. + * @param { number } offsetY - provide the y value. + * @param { PointModel } cornerPoint - provide the y value. + * @private + */ +function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) { + var pivot = { x: 0, y: 0 }; + var trans = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["rotateMatrix"])(trans, angle, offsetX, offsetY); + switch (cornerPoint.x) { + case 0: + switch (cornerPoint.y) { + case 0: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x, y: y })); + break; + case 0.5: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x, y: y + h / 2 })); + break; + case 1: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x, y: y + h })); + break; + } + break; + case 0.5: + switch (cornerPoint.y) { + case 0: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w / 2, y: y })); + break; + case 0.5: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w / 2, y: y + h / 2 })); + break; + case 1: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w / 2, y: y + h })); + break; + } + break; + case 1: + switch (cornerPoint.y) { + case 0: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w, y: y })); + break; + case 0.5: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w, y: y + h / 2 })); + break; + case 1: + pivot = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_2__["transformPointByMatrix"])(trans, ({ x: x + w, y: y + h })); + break; + } + break; + } + return { x: pivot.x, y: pivot.y }; +} +/* eslint-disable */ +/** + * Get the object as Node | Connector \ + * + * @returns {Object} Get the object as Node | Connector .\ + * @param { number } obj - provide the x value. + * @private + */ +var getObjectType = function (obj) { + if (obj) { + if (obj.sourceID !== undefined || obj.sourcePoint !== undefined || + obj.targetID !== undefined || obj.targetPoint !== undefined || + obj.type !== undefined) { + obj = _objects_connector__WEBPACK_IMPORTED_MODULE_14__["Connector"]; + } + else { + obj = _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]; + } + } + return obj; +}; +/** @private */ +var flipConnector = function (connector) { + if (!connector.sourceID && !connector.targetID) { + var source = { x: connector.sourcePoint.x, y: connector.sourcePoint.y }; + var target = { x: connector.targetPoint.x, y: connector.targetPoint.y }; + if (connector.flip === 'Horizontal') { + connector.sourcePoint.x = target.x; + connector.targetPoint.x = source.x; + } + else if (connector.flip === 'Vertical') { + connector.sourcePoint.y = target.y; + connector.targetPoint.y = source.y; + } + else if (connector.flip === 'Both') { + connector.sourcePoint = target; + connector.targetPoint = source; + } + } +}; +/** @private */ +var updatePortEdges = function (portContent, flip, port) { + var offsetX = port.offset.x; + var offsetY = port.offset.y; + if (flip === 'Horizontal') { + offsetX = 1 - port.offset.x; + offsetY = port.offset.y; + } + else if (flip === 'Vertical') { + offsetX = port.offset.x; + offsetY = 1 - port.offset.y; + } + else if (flip === 'Both') { + offsetX = 1 - port.offset.x; + offsetY = 1 - port.offset.y; + } + portContent.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction'); + return portContent; +}; +/** @private */ +var alignElement = function (element, offsetX, offsetY, diagram, flip) { + if (element.hasChildren()) { + for (var _i = 0, _a = element.children; _i < _a.length; _i++) { + var child = _a[_i]; + var childX = ((offsetX - child.offsetX) + offsetX); + var childY = ((offsetY - child.offsetY) + offsetY); + if (flip === 'Horizontal' || flip === 'Both') { + child.offsetX = childX; + child.flipOffset.x = childX - child.desiredSize.width / 2; + } + if (flip === 'Vertical' || flip === 'Both') { + child.offsetY = childY; + child.flipOffset.y = childY - child.desiredSize.height / 2; + } + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_27__["Canvas"] || child instanceof _core_containers_container__WEBPACK_IMPORTED_MODULE_4__["Container"]) { + alignElement(child, offsetX, offsetY, diagram, flip); + } + child.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](child.bounds.width, child.bounds.height)); + child.arrange(child.desiredSize); + var node = diagram.nameTable[child.id]; + if (node) { + diagram.updateConnectorEdges(node); + } + } + } +}; +/** @private */ +var cloneSelectedObjects = function (diagram) { + var nodes = diagram.selectedItems.nodes; + var connectors = diagram.selectedItems.connectors; + var isProtectedOnChange = 'isProtectedOnChange'; + var isEnableServerDatabind = diagram.allowServerDataBinding; + var isProtectedOnChangeValue = diagram[isProtectedOnChange]; + diagram.protectPropertyChange(true); + diagram.allowServerDataBinding = false; + diagram.selectedItems.nodes = []; + diagram.selectedItems.connectors = []; + diagram.allowServerDataBinding = isEnableServerDatabind; + diagram.protectPropertyChange(isProtectedOnChangeValue); + var clonedSelectedItems = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["cloneObject"])(diagram.selectedItems); + for (var i = 0; i < nodes.length; i++) { + diagram.selectedItems.nodes.push(diagram.nameTable[nodes[i].id]); + } + for (var i = 0; i < connectors.length; i++) { + diagram.selectedItems.connectors.push(diagram.nameTable[connectors[i].id]); + } + return clonedSelectedItems; +}; +/** @private */ +var updatePathElement = function (anglePoints, connector) { + var pathElement = new _core_elements_path_element__WEBPACK_IMPORTED_MODULE_8__["PathElement"](); + var pathseqData; + for (var j = 0; j < anglePoints.length - 1; j++) { + pathseqData = findPath(anglePoints[j], anglePoints[j + 1]); + pathElement.data = pathseqData[0]; + pathElement.id = connector.id + '_' + (connector.shape.sequence); + pathElement.offsetX = pathseqData[1].x; + pathElement.offsetY = pathseqData[1].y; + pathElement.rotateAngle = 45; + pathElement.transform = _enum_enum__WEBPACK_IMPORTED_MODULE_7__["Transform"].Self; + } + return pathElement; +}; +/** @private */ +var checkPort = function (node, element) { + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_13__["Node"]) { + for (var i = 0; i < node.ports.length; i++) { + if (node.ports[i].id === element.id.split('_')[1]) { + return true; + } + } + } + return false; +}; +/** @private */ +var findPath = function (sourcePoint, targetPoint) { + var beginningpoint = { x: sourcePoint.x, y: sourcePoint.y }; + var distance = findDistance(sourcePoint, targetPoint); + distance = Math.min(30, distance / 2); + var angle = Object(_connector__WEBPACK_IMPORTED_MODULE_18__["findAngle"])(sourcePoint, targetPoint); + var transferpt = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].transform({ x: beginningpoint.x, y: beginningpoint.y }, angle, distance); + var startpoint = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].transform({ x: transferpt.x, y: transferpt.y }, angle, -12); + var endpoint = _primitives_point__WEBPACK_IMPORTED_MODULE_6__["Point"].transform({ x: startpoint.x, y: startpoint.y }, angle, 12 * 2); + var path = 'M' + startpoint.x + ' ' + startpoint.y + ' L' + endpoint.x + ' ' + endpoint.y; + return [path, transferpt]; +}; +/** @private */ +var getConnectorDirection = function (src, tar) { + if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) { + return src.x < tar.x ? 'Right' : 'Left'; + } + else { + return src.y < tar.y ? 'Bottom' : 'Top'; + } +}; +/** @private */ +var findDistance = function (point1, point2) { + return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); +}; +/* eslint-enable */ +/** + * cloneBlazorObject method \ + * + * @returns {Object} cloneBlazorObject method .\ + * @param { object } args - provide the args value. + * @private + */ +// eslint-disable-next-line @typescript-eslint/ban-types +function cloneBlazorObject(args) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_31__["isBlazor"])()) { + args = Object(_base_util__WEBPACK_IMPORTED_MODULE_20__["cloneObject"])(args); + } + return args; +} +/** + * checkBrowserInfo method \ + * + * @returns {Object} checkBrowserInfo method .\ + * @private + */ +function checkBrowserInfo() { + if ((navigator.platform.indexOf('Mac') >= 0 || navigator.platform.indexOf('iPad') >= 0 + || navigator.platform.indexOf('iPhone') >= 0 || navigator.platform.indexOf('MacIntel') >= 0) + && (_ej2_base__WEBPACK_IMPORTED_MODULE_31__["Browser"].info.name === 'safari' || _ej2_base__WEBPACK_IMPORTED_MODULE_31__["Browser"].info.name === 'webkit')) { + return true; + } + return false; +} +/** + * canMeasureDecoratorPath method \ + * + * @returns {boolean} canMeasureDecoratorPath method .\ + * @param { string[] } objects - provide the args value. + * @private + */ +function canMeasureDecoratorPath(objects) { + if (objects.indexOf('shape') !== -1 || objects.indexOf('pathData') !== -1 || + objects.indexOf('width') !== -1 || objects.indexOf('height') !== -1) { + return true; + } + return false; +} +/** + * getPreviewSize method \ + * + * @returns {Size} getPreviewSize method .\ + * @param { SymbolPaletteModel } sourceElement - provide the args value. + * @param { Node } clonedObject - provide the args value. + * @param { DiagramElement } wrapper - provide the args value. + * @private + */ +function getPreviewSize(sourceElement, clonedObject, wrapper) { + //let previewWidth: number; + //let previewHeight: number; + var previewWidth = getSymbolSize(sourceElement, clonedObject, wrapper, 'width'); + var previewHeight = getSymbolSize(sourceElement, clonedObject, wrapper, 'height'); + return new _primitives_size__WEBPACK_IMPORTED_MODULE_0__["Size"](previewWidth, previewHeight); +} +/** + * getSymbolSize method \ + * + * @returns {number} getSymbolSize method .\ + * @param { SymbolPaletteModel } sourceElement - provide the sourceElement value. + * @param { Node } clonedObject - provide the clonedObject value. + * @param { DiagramElement } wrapper - provide the wrapper value. + * @param { string } size - provide the size value. + * @private + */ +function getSymbolSize(sourceElement, clonedObject, wrapper, size) { + var previewSize = 0; + if (clonedObject.previewSize["" + size] !== undefined) { + previewSize = clonedObject.previewSize["" + size]; + } + else if (sourceElement.symbolPreview["" + size] !== undefined) { + previewSize = sourceElement.symbolPreview["" + size]; + } + else { + previewSize = clonedObject["" + size] || wrapper.actualSize["" + size]; + } + return previewSize; +} +/** + * findParent method \ + * + * @returns {string} findParent method .\ + * @param { Node } clonedObject - provide the clonedObject value. + * @param { Diagram } wrapper - provide the diagram element. + * @param { string } size - provide the parent id. + * @private + */ +function findParentInSwimlane(node, diagram, parent) { + if (node && node.parentId) { + node = diagram.nameTable[node.parentId]; + if (node.parentId) { + parent = findParentInSwimlane(node, diagram, parent); + } + else { + parent = node.id; + } + } + return parent; +} +/** + * selectionHasConnector method \ + * + * @returns {boolean} selectionHasConnector method .\ + * @param { Diagram } wrapper - provide the diagram element. + * @param { selector } size - provide the selector element. + * @private + */ +function selectionHasConnector(diagram, selector) { + if (diagram.selectedItems.connectors.length > 1 && diagram.selectedItems.nodes.length === 0 && selector.rotateAngle !== 0) { + return true; + } + return false; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diff-map.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diff-map.js ***! + \********************************************************************************/ +/*! exports provided: DeepDiffMapper */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeepDiffMapper", function() { return DeepDiffMapper; }); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _base_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + + + + +/** + * Defines the behavior of commands + */ +/* eslint-disable */ +var DeepDiffMapper = /** @__PURE__ @class */ (function () { + function DeepDiffMapper() { + this.valueCreated = 'created'; + this.valueUpdated = "updated"; + this.valueDeleted = "deleted"; + this.valueUnchanged = "unchanged"; + /** @private */ + this.newNodeObject = []; + /** @private */ + this.newConnectorObject = []; + /** @private */ + this.diagramObject = {}; + /* eslint-enable */ + } + /** @private */ + DeepDiffMapper.prototype.updateObjectCollection = function (layers, diagram) { + for (var i = 0; i < layers.length; i++) { + if (layers[i]['objects']) { + layers[i]['objects'] = (diagram.layers[i].objects); + } + else { + layers[i]['objects'] = []; + layers[i]['objects'] = diagram.layers[i].objects; + } + } + }; + /** @private */ + DeepDiffMapper.prototype.getOldObject = function (id, isNode, diagram) { + var oldObject = isNode ? diagram.oldNodeObjects : diagram.oldConnectorObjects; + for (var i = 0; i < oldObject.length; i++) { + if (oldObject[i].id === id) { + return oldObject[i]; + } + } + return undefined; + }; + /** @private */ + DeepDiffMapper.prototype.changeSegments = function (diff, newObject) { + for (var _i = 0, _a = Object.keys(diff); _i < _a.length; _i++) { + var prop = _a[_i]; + if (prop === 'segments') { + var seg = this.removeNullValues(newObject[prop]); + diff[prop] = seg; + } + } + return diff; + }; + DeepDiffMapper.prototype.removeNullValues = function (segments) { + var newSegments = []; + var seg = {}; + for (var i = 0; i < segments.length; i++) { + seg = this.removeNullObjectValues(segments[i]); + newSegments.push(seg); + } + return newSegments; + }; + ; + /** @private */ + DeepDiffMapper.prototype.removeNullObjectValues = function (segment) { + var newSegObject = {}; + for (var _i = 0, _a = Object.keys(segment); _i < _a.length; _i++) { + var prop = _a[_i]; + if (segment[prop] !== undefined) { + newSegObject[prop] = (segment[prop] instanceof Object) ? this.removeNullObjectValues(segment[prop]) : segment[prop]; + } + } + return newSegObject; + }; + ; + /** @private */ + DeepDiffMapper.prototype.getDifferenceValues = function (selectedObject, args, labelDrag, diagram) { + var diffValue; + var diff; + var result; + var isNode = selectedObject instanceof _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"]; + var oldObject; + if (selectedObject) { + oldObject = isNode ? this.getOldObject(selectedObject.id, true, diagram) : this.getOldObject(selectedObject.id, false, diagram); + if (oldObject) { + var newObject = Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(selectedObject); + result = this.map(newObject, oldObject); + diffValue = this.frameObject({}, result); + diff = this.removeEmptyValues(diffValue); + diff = this.changeSegments(diff, newObject); + if (diff.children) { + diff.children = Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(selectedObject).children; + } + if (diff.ports && diff.ports.length) { + for (var i = 0; i < diff.ports.length; i++) { + if (newObject.ports[i].outEdges) { + diff.ports[i].outEdges = newObject.ports[i].outEdges; + } + if (newObject.ports[i].inEdges) { + diff.ports[i].inEdges = newObject.ports[i].inEdges; + } + } + } + return this.getDiagramObjects(diff, selectedObject.id, isNode, args, labelDrag, diagram); + } + } + }; + /** @private */ + DeepDiffMapper.prototype.getLayerObject = function (oldDiagram, temp, diagram) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["isBlazor"])()) { + var diffLayers = {}; + diffLayers['layers'] = []; + var newDiagram = {}; + newDiagram['layers'] = []; + for (var i = 0; i < diagram.layers.length; i++) { + newDiagram['layers'].push(Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(diagram.layers[i])); + } + var result = void 0; + for (var i = 0; i < newDiagram['layers'].length; i++) { + if (!temp) { + result = this.map(Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(newDiagram['layers'][i]), oldDiagram['layers'][i]); + } + else { + result = this.map(oldDiagram['layers'][i], Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["cloneObject"])(newDiagram['layers'][i])); + } + var diffValue = this.frameObject({}, result); + var diff = this.removeEmptyValues(diffValue); + diffLayers['layers'][i] = diff; + } + this.updateObjectCollection(diffLayers['layers'], diagram); + return diffLayers; + } + }; + /** @private */ + DeepDiffMapper.prototype.getDiagramObjects = function (diffValue, object, isNode, args, labelDrag, diagram) { + var index = 0; + index = Object(_base_util__WEBPACK_IMPORTED_MODULE_2__["getIndex"])(diagram, object); + diffValue.sfIndex = index; + if (isNode) { + this.newNodeObject.push(diffValue); + } + else { + this.newConnectorObject.push(diffValue); + } + if (args && (((args.sourceWrapper instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_0__["TextElement"]) && labelDrag) || args.portId)) { + var tempObject = void 0; + var objectValue = void 0; + if (isNode) { + objectValue = args.portId ? this.newNodeObject[0].ports : this.newNodeObject[0].annotations; + } + else { + objectValue = this.newConnectorObject[0].annotations || []; + } + for (var i = 0; i < objectValue.length; i++) { + if (Object.keys(objectValue[i]).length > 0) { + var selectedObject = diagram.nameTable[object]; + tempObject = objectValue[i]; + if (args.portId) { + this.newNodeObject[0].ports = [tempObject]; + } + else { + for (var j = 0; j < selectedObject.annotations.length; j++) { + if (args.sourceWrapper.id === selectedObject.id + "_" + selectedObject.annotations[j].id) { + tempObject.sfIndex = j; + } + } + if (isNode) { + this.newNodeObject[0].annotations = [tempObject]; + } + else { + this.newConnectorObject[0].annotations = [tempObject]; + } + } + } + } + } + this.diagramObject = { nodes: this.newNodeObject, connectors: this.newConnectorObject }; + //return returnValue; + }; + DeepDiffMapper.prototype.removeArrayValues = function (obj) { + var newObj = []; + var value = JSON.stringify(obj); + if (!(value === JSON.stringify({ 'data': [] }))) { + for (var i = 0; i < obj.length; i++) { + if (obj[i] instanceof Object) { + var newValue = this.removeEmptyValues(obj[i]); + newObj.push(newValue); + } + else { + newObj.push(obj[i]); + } + } + } + return newObj; + }; + /** @private */ + DeepDiffMapper.prototype.removeEmptyValues = function (frame) { + var newObj = {}; + for (var _i = 0, _a = Object.keys(frame); _i < _a.length; _i++) { + var prop = _a[_i]; + if (prop !== 'wrapper' && (prop !== 'data' || (prop === 'data' && !(frame[prop] instanceof Array)))) { + var obj = frame[prop]; + var value = JSON.stringify(obj); + if (obj instanceof Array) { + var newValue = this.removeArrayValues(obj); + if (JSON.stringify(newValue) !== '[]') { + newObj[prop] = newValue; + } + } + else { + if (obj instanceof Object) { + if (!(value === JSON.stringify({ 'data': [] }))) { + var newValue = this.removeEmptyValues(obj); + if (JSON.stringify(newValue) !== '{}') { + newObj[prop] = newValue; + } + } + } + else { + if (!(value === JSON.stringify(['data']) || value === JSON.stringify('data') + || value === JSON.stringify({ 'data': [] }))) { + if (prop !== 'version' && prop !== 'ejsAction') { + newObj[prop] = frame[prop]; + } + } + } + } + } + } + return newObj; + }; + DeepDiffMapper.prototype.map = function (obj1, obj2, arrayName) { + if (this.isFunction(obj1) || this.isFunction(obj2)) { + throw 'Invalid argument. Function given, object expected.'; + } + if (this.isValue(obj1) || this.isValue(obj2)) { + return { + type: this.compareValues(obj1, obj2), + data: obj1 === undefined ? obj2 : obj1 + }; + } + var diff = {}; + if (this.isArray(obj1)) { + for (var i_1 = 0; i_1 < obj1.length; i_1++) { + if (!diff[arrayName]) { + diff[arrayName] = []; + } + var ss = this.map(obj1[i_1], obj2[i_1]); + diff[arrayName].push(ss); + } + } + else { + for (var key in obj1) { + if (this.isFunction(obj1[key])) { + continue; + } + var value2 = undefined; + if (obj2[key] !== undefined) { + value2 = obj2[key]; + } + var kk = this.map(obj1[key], value2, this.isArray(value2) ? key : undefined); + if (this.isArray(value2)) { + diff[key] = kk[key]; + } + else { + diff[key] = kk; + } + } + } + if (this.isArray(obj2)) { + for (var i = obj2.length - 1; i >= 0; i--) { + if (!diff[arrayName]) { + diff[arrayName] = []; + } + if (this.isFunction(obj2[i]) || diff[arrayName][i] !== undefined) { + if (diff[arrayName][i].type && diff[arrayName][i].type !== this.valueUpdated) { + delete diff[arrayName]; + } + continue; + } + var ss = this.map(undefined, obj2[i]); + diff[arrayName][i] = ss; + } + } + else { + for (var key in obj2) { + if (this.isFunction(obj2[key]) || diff[key] !== undefined) { + if (diff[key].type && ((diff[key].type !== this.valueUpdated) && (diff[key].type !== this.valueDeleted))) { + delete diff[key]; + } + continue; + } + var kk = this.map(undefined, obj2[key]); + diff[key] = kk; + } + } + return diff; + }; + DeepDiffMapper.prototype.compareValues = function (value1, value2) { + if (value1 === value2) { + return this.valueUnchanged; + } + if (this.isDate(value1) && this.isDate(value2) && value1.getTime() === value2.getTime()) { + return this.valueUnchanged; + } + if (value1 === undefined) { + return this.valueCreated; + } + if (value2 === undefined) { + return this.valueDeleted; + } + return this.valueUpdated; + }; + DeepDiffMapper.prototype.isFunction = function (x) { + return Object.prototype.toString.call(x) === '[object Function]'; + }; + DeepDiffMapper.prototype.isArray = function (x) { + return Object.prototype.toString.call(x) === '[object Array]'; + }; + DeepDiffMapper.prototype.isDate = function (x) { + return Object.prototype.toString.call(x) === '[object Date]'; + }; + DeepDiffMapper.prototype.isObject = function (x) { + return Object.prototype.toString.call(x) === '[object Object]'; + }; + DeepDiffMapper.prototype.isValue = function (x) { + return !this.isObject(x) && !this.isArray(x); + }; + DeepDiffMapper.prototype.frameObject = function (final, obj) { + for (var key in obj) { + if (this.isArray(obj[key])) { + if (!final[key]) { + final[key] = []; + } + for (var i = 0; i < obj[key].length; i++) { + var kk = this.frameObject({}, obj[key][i]); + final[key].push(kk); + } + } + else { + if ((key != 'type') || (key == 'type' && (obj[key] !== this.valueUpdated && obj[key] !== this.valueUnchanged && obj[key] !== this.valueDeleted && obj[key] !== this.valueCreated))) { + if (this.isFunction(obj[key])) { + continue; + } + if (this.isValue(obj[key])) { + return obj['data']; + } + else { + var kk = this.frameObject({}, obj[key]); + if (this.isValue(kk) || Object.keys(kk).length > 0) { + final[key] = kk; + } + } + } + } + } + return final; + }; + return DeepDiffMapper; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js ***! + \********************************************************************************/ +/*! exports provided: removeElementsByClass, findSegmentPoints, getChildNode, translatePoints, measurePath, measureHtmlText, measureText, measureImage, measureNativeContent, measureNativeSvg, updatePath, getDiagramLayerSvg, getDiagramElement, getDomIndex, getAdornerLayerSvg, getSelectorElement, getAdornerLayer, getUserHandleLayer, getDiagramLayer, getPortLayerSvg, getNativeLayerSvg, getGridLayerSvg, getBackgroundLayerSvg, getBackgroundImageLayer, getBackgroundLayer, getGridLayer, getNativeLayer, getHTMLLayer, createHtmlElement, createSvgElement, parentsUntil, hasClass, getScrollerWidth, addTouchPointer, removeElement, getContent, setAttributeSvg, applyStyleAgainstCsp, setAttributeHtml, createMeasureElements, setChildPosition, getTemplateContent, createUserHandleTemplates */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeElementsByClass", function() { return removeElementsByClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findSegmentPoints", function() { return findSegmentPoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getChildNode", function() { return getChildNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "translatePoints", function() { return translatePoints; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measurePath", function() { return measurePath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measureHtmlText", function() { return measureHtmlText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measureText", function() { return measureText; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measureImage", function() { return measureImage; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measureNativeContent", function() { return measureNativeContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measureNativeSvg", function() { return measureNativeSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updatePath", function() { return updatePath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDiagramLayerSvg", function() { return getDiagramLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDiagramElement", function() { return getDiagramElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDomIndex", function() { return getDomIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAdornerLayerSvg", function() { return getAdornerLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSelectorElement", function() { return getSelectorElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAdornerLayer", function() { return getAdornerLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUserHandleLayer", function() { return getUserHandleLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDiagramLayer", function() { return getDiagramLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPortLayerSvg", function() { return getPortLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNativeLayerSvg", function() { return getNativeLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGridLayerSvg", function() { return getGridLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBackgroundLayerSvg", function() { return getBackgroundLayerSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBackgroundImageLayer", function() { return getBackgroundImageLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBackgroundLayer", function() { return getBackgroundLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGridLayer", function() { return getGridLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNativeLayer", function() { return getNativeLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHTMLLayer", function() { return getHTMLLayer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createHtmlElement", function() { return createHtmlElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSvgElement", function() { return createSvgElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parentsUntil", function() { return parentsUntil; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClass", function() { return hasClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollerWidth", function() { return getScrollerWidth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTouchPointer", function() { return addTouchPointer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeElement", function() { return removeElement; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContent", function() { return getContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAttributeSvg", function() { return setAttributeSvg; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyStyleAgainstCsp", function() { return applyStyleAgainstCsp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAttributeHtml", function() { return setAttributeHtml; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createMeasureElements", function() { return createMeasureElements; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setChildPosition", function() { return setChildPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTemplateContent", function() { return getTemplateContent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createUserHandleTemplates", function() { return createUserHandleTemplates; }); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _path_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./path-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js"); +/* harmony import */ var _base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _primitives_matrix__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../primitives/matrix */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/matrix.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _diagram_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); + + + + + + + + + +/** + * Defines the functionalities that need to access DOM + */ +/** + * removeElementsByClass method \ + * + * @returns {void} removeElementsByClass method .\ + * @param { string } className - provide the element value. + * @param {string} id - provide the string value. + * @private + */ +function removeElementsByClass(className, id) { + var elements; + if (id && document.getElementById(id).classList.contains(className)) { + elements = document.getElementById(id).getElementsByClassName(className); + } + else { + elements = document.getElementsByClassName(className); + } + while (elements.length > 0) { + elements[0].parentNode.removeChild(elements[0]); + } +} +/** + * findSegmentPoints method \ + * + * @returns {PointModel[]} findSegmentPoints method .\ + * @param { PathElement } element - provide the element value. + * @private + */ +function findSegmentPoints(element) { + var pts = []; + var sample; + var sampleLength; + var measureWindowElement = 'measureElement'; + window["" + measureWindowElement].style.visibility = 'visible'; + var svg = window["" + measureWindowElement].children[2]; + var pathNode = getChildNode(svg)[0]; + pathNode.setAttributeNS(null, 'd', element.data); + var pathBounds = element.absoluteBounds; // || pathNode.getBBox(); + var pathData = updatePath(element, pathBounds, element); + pathNode.setAttributeNS(null, 'd', pathData); + var pathLength = pathNode.getTotalLength(); + for (sampleLength = 0; sampleLength <= pathLength; sampleLength += 10) { + sample = pathNode.getPointAtLength(sampleLength); + pts.push({ x: sample.x, y: sample.y }); + } + window["" + measureWindowElement].style.visibility = 'hidden'; + return pts; +} +/** + * getChildNode method \ + * + * @returns {SVGElement[] | HTMLCollection} findSegmentPoints method .\ + * @param { SVGElement } node - provide the element value. + * @private + */ +function getChildNode(node) { + var child; + var collection = []; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_5__["Browser"].info.name === 'msie' || _ej2_base__WEBPACK_IMPORTED_MODULE_5__["Browser"].info.name === 'edge') { + for (var i = 0; i < node.childNodes.length; i++) { + child = node.childNodes[parseInt(i.toString(), 10)]; + if (child.nodeType === 1) { + collection.push(child); + } + } + } + else { + collection = node.children; + } + return collection; +} +/** + * translatePoints method \ + * + * @returns {PointModel[]} translatePoints method .\ + * @param { SVGElement } element - provide the element value. + * @param { PointModel[] } points - provide the element value. + * @private + */ +function translatePoints(element, points) { + var translatedPts = []; + for (var _i = 0, points_1 = points; _i < points_1.length; _i++) { + var point = points_1[_i]; + var pt1 = { + x: element.offsetX - element.actualSize.width * element.pivot.x + point.x, + y: element.offsetY - element.actualSize.height * element.pivot.y + point.y + }; + var matrix = void 0; + var angle = element.rotateAngle + element.parentTransform; + if (angle) { + matrix = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["identityMatrix"])(); + Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["rotateMatrix"])(matrix, angle, element.offsetX, element.offsetY); + } + if (matrix) { + pt1 = Object(_primitives_matrix__WEBPACK_IMPORTED_MODULE_4__["transformPointByMatrix"])(matrix, pt1); + } + translatedPts.push(pt1); + } + return translatedPts; +} +/** + * measurePath method \ + * + * @returns {Rect} measurePath method .\ + * @param { string } data - provide the element value. + * @private + */ +function measurePath(data) { + if (data) { + var measureWindowElement = 'measureElement'; + window["" + measureWindowElement].style.visibility = 'visible'; + var svg = window["" + measureWindowElement].children[2]; + var element = getChildNode(svg)[0]; + element.setAttribute('d', data); + var bounds = element.getBBox(); + var svgBounds = new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](bounds.x, bounds.y, bounds.width, bounds.height); + window["" + measureWindowElement].style.visibility = 'hidden'; + return svgBounds; + } + return new _primitives_rect__WEBPACK_IMPORTED_MODULE_0__["Rect"](0, 0, 0, 0); +} +/** + * getTextOptions method \ + * + * @returns {BaseAttributes} getTextOptions method .\ + * @param { TextElement } element - provide the element value. + * @param { number } maxWidth - provide the maxWidth value. + * @private + */ +function getTextOptions(element, maxWidth) { + var options = { + fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform, + pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth, + dashArray: element.style.strokeDashArray, opacity: element.style.opacity, shadow: element.shadow, + gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description, + width: maxWidth || element.actualSize.width, height: element.actualSize.height, + x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5, + y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5 + }; + options.fontSize = element.style.fontSize; + options.fontFamily = element.style.fontFamily; + options.textOverflow = element.style.textOverflow; + options.textDecoration = element.style.textDecoration; + options.doWrap = element.doWrap; + options.whiteSpace = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["whiteSpaceToString"])(element.style.whiteSpace, element.style.textWrapping); + options.content = element.content; + options.textWrapping = element.style.textWrapping; + options.breakWord = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["wordBreakToString"])(element.style.textWrapping); + options.textAlign = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["textAlignToString"])(element.style.textAlign); + options.color = element.style.color; + options.italic = element.style.italic; + options.bold = element.style.bold; + options.dashArray = ''; + options.strokeWidth = 0; + options.fill = ''; + return options; +} +/** + * wrapSvgText method \ + * + * @returns {SubTextElement[]} wrapSvgText method .\ + * @param { TextAttributes } text - provide the element value. + * @param { string } textValue - provide the maxWidth value. + * @param { number } laneWidth - provide the maxWidth value. + * @private + */ +function wrapSvgText(text, textValue, laneWidth) { + var childNodes = []; + var k = 0; + var txtValue; + var bounds1; + var content = textValue || text.content; + if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') { + if (text.breakWord === 'breakall') { + txtValue = ''; + txtValue += content[0]; + for (k = 0; k < content.length; k++) { + bounds1 = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(txtValue, text); + if (bounds1 >= text.width && txtValue.length > 0) { + childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 }; + txtValue = ''; + } + else { + txtValue = txtValue + (content[k + 1] || ''); + if (txtValue.indexOf('\n') > -1) { + childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(txtValue, text) }; + txtValue = ''; + } + var width = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(txtValue, text); + if (Math.ceil(width) + 2 >= text.width && txtValue.length > 0) { + childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width }; + txtValue = ''; + } + if (k === content.length - 1 && txtValue.length > 0) { + childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width }; + txtValue = ''; + } + } + } + } + else { + childNodes = wordWrapping(text, textValue, laneWidth); + } + } + else { + childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(content, text) }; + } + return childNodes; +} +/** + * wordWrapping method \ + * + * @returns {SubTextElement[]} wordWrapping method .\ + * @param { TextAttributes } text - provide the element value. + * @param { string } textValue - provide the maxWidth value. + * @param { number } laneWidth - provide the maxWidth value. + * @private + */ +function wordWrapping(text, textValue, laneWidth) { + var childNodes = []; + var txtValue = ''; + var j = 0; + var i = 0; + var wrap = text.whiteSpace !== 'nowrap' ? true : false; + var content = textValue || text.content; + var eachLine = content.split('\n'); + var txt; + var words; + var newText; + var existingWidth; + var existingText; + for (j = 0; j < eachLine.length; j++) { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + txt = ''; + words = text.textWrapping !== 'NoWrap' ? eachLine[parseInt(j.toString(), 10)].split(' ') : (text.textWrapping === 'NoWrap') ? [eachLine[parseInt(j.toString(), 10)]] : eachLine; + for (i = 0; i < words.length; i++) { + txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)]; + newText = txtValue + ' ' + (words[i + 1] || ''); + var width = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(newText, text); + if (Math.floor(width) > (laneWidth || text.width) - 2 && txtValue.length > 0) { + childNodes[childNodes.length] = { + text: txtValue, x: 0, dy: 0, + width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["bBoxText"])(txtValue, text) + }; + txtValue = ''; + } + else { + if (i === words.length - 1) { + childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width }; + txtValue = ''; + } + } + existingText = newText; + existingWidth = width; + } + } + return childNodes; +} +/** + * wrapSvgTextAlign method \ + * + * @returns {TextBounds} wrapSvgTextAlign method .\ + * @param { TextAttributes } text - provide the element value. + * @param { string } childNodes - provide the maxWidth value. + * @private + */ +function wrapSvgTextAlign(text, childNodes) { + var wrapBounds = { x: 0, width: 0 }; + var k = 0; + var txtWidth; + var width; + for (k = 0; k < childNodes.length; k++) { + txtWidth = childNodes[parseInt(k.toString(), 10)].width; + width = txtWidth; + if (text.textAlign === 'left') { + txtWidth = 0; + } + else if (text.textAlign === 'center') { + if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) { + txtWidth = 0; + } + else { + txtWidth = -txtWidth / 2; + } + } + else if (text.textAlign === 'right') { + txtWidth = -txtWidth; + } + else { + txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2; + } + childNodes[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2; + childNodes[parseInt(k.toString(), 10)].x = txtWidth; + if (!wrapBounds) { + wrapBounds = { + x: txtWidth, + width: width + }; + } + else { + wrapBounds.x = Math.min(wrapBounds.x, txtWidth); + wrapBounds.width = Math.max(wrapBounds.width, width); + } + } + return wrapBounds; +} +/** + * measureHtmlText method \ + * + * @returns {TextBounds} measureHtmlText method .\ + * @param { TextStyleModel } style - provide the style value. + * @param { string } content - provide the content value. + * @param { string } width - provide the width value. + * @param { string } height - provide the height value. + * @param { string } maxWidth - provide the maxWidth value. + * @private + */ +function measureHtmlText(style, content, width, height, maxWidth) { + var bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](); + var text = createHtmlElement('span', { 'style': 'display:inline-block; line-height: normal' }); + if (style.bold) { + text.style.fontWeight = 'bold'; + } + if (style.italic) { + text.style.fontStyle = 'italic'; + } + if (width !== undefined) { + text.style.width = width.toString() + 'px'; + } + if (height !== undefined) { + text.style.height = height.toString() + 'px'; + } + if (maxWidth !== undefined) { + text.style.maxWidth = maxWidth.toString() + 'px'; + } + text.style.fontFamily = style.fontFamily; + text.style.fontSize = style.fontSize + 'px'; + text.style.color = style.color; + text.textContent = content; + text.style.whiteSpace = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["whiteSpaceToString"])(style.whiteSpace, style.textWrapping); + if (maxWidth !== undefined) { + text.style.wordBreak = 'break-word'; + } + else { + text.style.wordBreak = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["wordBreakToString"])(style.textWrapping); + } + document.body.appendChild(text); + bounds.width = text.offsetWidth; + bounds.height = text.offsetHeight; + document.body.removeChild(text); + return bounds; +} +/** + * measureText method \ + * + * @returns {Size} measureText method .\ + * @param { TextStyleModel } text - provide the text value. + * @param { string } style - provide the style value. + * @param { string } content - provide the content value. + * @param { number } maxWidth - provide the maxWidth value. + * @param { string } textValue - provide the textValue value. + * @private + */ +function measureText(text, style, content, maxWidth, textValue) { + var bounds = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](0, 0); + var childNodes; + var wrapBounds; + var options = getTextOptions(text, maxWidth); + text.childNodes = childNodes = wrapSvgText(options, textValue, text.isLaneOrientation ? maxWidth : undefined); + text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes); + bounds.width = wrapBounds.width; + if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') { + bounds.width = maxWidth; + } + bounds.height = childNodes.length * text.style.fontSize * 1.2; + return bounds; +} +/** + * measureImage method \ + * + * @returns {Size} measureImage method .\ + * @param { string } source - provide the text value. + * @param { Size } contentSize - provide the style value. + * @param { string } id - provide the content value. + * @param { Function } callback - provide the maxWidth value. + * @private + */ +// eslint-disable-next-line +function measureImage(source, contentSize, id, callback) { + var measureWindowElement = 'measureElement'; + window["" + measureWindowElement].style.visibility = 'visible'; + var imageElement = window["" + measureWindowElement].children[1]; + imageElement.setAttribute('src', source); + var bounds = imageElement.getBoundingClientRect(); + var width = bounds.width; + var height = bounds.height; + contentSize = new _primitives_size__WEBPACK_IMPORTED_MODULE_1__["Size"](width, height); + window["" + measureWindowElement].style.visibility = 'hidden'; + var element = document.createElement('img'); + element.setAttribute('src', source); + setAttributeHtml(element, { id: id + 'sf-imageNode', style: 'display: none;' }); + document.body.appendChild(element); + // eslint-disable-next-line + element.onload = function (event) { + var loadedImage = event.currentTarget; + if (callback) { + callback(id, { width: loadedImage.width, height: loadedImage.height }); + } + }; + return contentSize; +} +/* eslint-disable */ +/** + * measureNativeContent method \ + * + * @returns {Rect} measureNativeContent method .\ + * @param { SVGElement } nativeContent - provide the text value. + * @private + */ +function measureNativeContent(nativeContent) { + var measureWindowElement = 'measureElement'; + window[measureWindowElement].style.visibility = 'visible'; + var nativeSVG = window[measureWindowElement].children[2]; + nativeSVG.appendChild(nativeContent); + var bounds = nativeContent.getBoundingClientRect(); + var svgBounds = nativeSVG.getBoundingClientRect(); + var rect = bounds; + rect.x = bounds.left - svgBounds.left; + rect.y = bounds.top - svgBounds.top; + nativeSVG.removeChild(nativeContent); + window[measureWindowElement].style.visibility = 'hidden'; + return rect; +} +/** + * measureNativeSvg method \ + * + * @returns {Rect} measureNativeSvg method .\ + * @param { SVGElement } nativeContent - provide the text value. + * @private + */ +function measureNativeSvg(nativeContent) { + var measureWindowElement = 'measureElement'; + window[measureWindowElement].style.visibility = 'visible'; + var nativeSVG = window[measureWindowElement].children[2]; + nativeSVG.appendChild(nativeContent); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var svgBounds = nativeSVG.getBoundingClientRect(); + nativeSVG.removeChild(nativeContent); + window[measureWindowElement].style.visibility = 'hidden'; + return svgBounds; +} +/** + * updatePath method \ + * + * @returns {string} updatePath method .\ + * @param { SVGElement } element - provide the element value. + * @param { Rect } bounds - provide the bounds value. + * @param { PathElement } child - provide the child value. + * @param { BaseAttributes } options - provide the options value. + * @private + */ +function updatePath(element, bounds, child, options) { + var initX = 0; + var initY = 0; + var scaleX = 0; + var scaleY = 0; + var isScale = false; + var newPathString = ''; + var arrayCollection = []; + var bBox = bounds; + if (initX !== bBox.x || initY !== bBox.y) { + scaleX = initX - Number(bBox.x); + scaleY = initY - Number(bBox.y); + } + if (element.actualSize.width !== bBox.width || element.actualSize.height !== bBox.height || options) { + scaleX = (options && options.width || element.actualSize.width) / Number(bBox.width ? bBox.width : 1); + scaleY = (options && options.height || element.actualSize.height) / Number(bBox.height ? bBox.height : 1); + isScale = true; + } + arrayCollection = Object(_path_util__WEBPACK_IMPORTED_MODULE_2__["processPathData"])(element.data); + arrayCollection = Object(_path_util__WEBPACK_IMPORTED_MODULE_2__["splitArrayCollection"])(arrayCollection); + newPathString = Object(_path_util__WEBPACK_IMPORTED_MODULE_2__["transformPath"])(arrayCollection, scaleX, scaleY, isScale, bBox.x, bBox.y, initX, initY); + isScale = false; + return newPathString; +} +/** + * getDiagramLayerSvg method \ + * + * @returns {string} getDiagramLayerSvg method .\ + * @param { string } diagramId - provide the element value. + * @private + */ +function getDiagramLayerSvg(diagramId) { + //let diagramLayerSvg: SVGSVGElement; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-diagram-layer'); + var diagramLayerSvg = elementcoll[0]; + return diagramLayerSvg; +} +/** + * getDiagramElement method \ + * + * @returns {HTMLElement} getDiagramElement method .\ + * @param { string } elementId - provide the elementId value. + * @param { string } contentId - provide the elementId value. + * @private + */ +function getDiagramElement(elementId, contentId) { + var diagramElement; + var element; + if (contentId) { + element = document.getElementById(contentId); + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_5__["Browser"].info.name === 'msie' || _ej2_base__WEBPACK_IMPORTED_MODULE_5__["Browser"].info.name === 'edge') { + diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId); + } + else { + diagramElement = (element) ? element.querySelector('#' + CSS.escape(elementId)) : document.getElementById(elementId); + } + return diagramElement; +} +/** + * getDomIndex method \ + * + * @returns {HTMLElement} getDomIndex method .\ + * @param { string } viewId - provide the elementId value. + * @param { string } elementId - provide the elementId value. + * @param { string } layer - provide the elementId value. + * @private + */ +function getDomIndex(viewId, elementId, layer) { + var index = undefined; + var parentElement; + var postId = ''; + if (layer === 'native') { + parentElement = getNativeLayer(viewId); + postId = '_content_groupElement'; + } + else if (layer === 'html') { + parentElement = getHTMLLayer(viewId).childNodes[0]; + postId = '_html_element'; + } + else { + parentElement = getDiagramLayer(viewId); + postId = '_groupElement'; + } + var childElement; + for (var i = 0; parentElement.childNodes && i < parentElement.childNodes.length; i++) { + childElement = parentElement.childNodes[i]; + if (childElement && childElement.id === elementId + postId) { + index = i; + break; + } + } + return index; +} +/** + * getAdornerLayerSvg method \ + * + * @returns {SVGSVGElement} getAdornerLayerSvg method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getAdornerLayerSvg(diagramId) { + var adornerLayerSvg = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-adorner-layer'); + adornerLayerSvg = elementcoll[0]; + return adornerLayerSvg; +} +/** + * getSelectorElement method \ + * + * @returns {SVGSVGElement} getSelectorElement method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getSelectorElement(diagramId) { + var adornerLayer = null; + var adornerSvg = getAdornerLayerSvg(diagramId); + adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement'); + return adornerLayer; +} +/** + * getAdornerLayer method \ + * + * @returns {SVGSVGElement} getAdornerLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getAdornerLayer(diagramId) { + var adornerLayer = null; + var diagramAdornerSvg = getAdornerLayerSvg(diagramId); + adornerLayer = diagramAdornerSvg.getElementById(diagramId + '_diagramAdorner'); + return adornerLayer; +} +/** + * getUserHandleLayer method \ + * + * @returns {HTMLElement} getUserHandleLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getUserHandleLayer(diagramId) { + var adornerLayer = null; + var diagramUserHandleLayer = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramUserHandleLayer.getElementsByClassName('e-userHandle-layer'); + adornerLayer = elementcoll[0]; + return adornerLayer; +} +/** + * getDiagramLayer method \ + * + * @returns {HTMLElement} getDiagramLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getDiagramLayer(diagramId) { + //let diagramLayer: SVGElement; + var diagramLayerSvg = getDiagramLayerSvg(diagramId); + var diagramLayer = diagramLayerSvg.getElementById(diagramId + '_diagramLayer'); + return diagramLayer; +} +/** + * getPortLayerSvg method \ + * + * @returns {SVGSVGElement} getPortLayerSvg method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getPortLayerSvg(diagramId) { + var adornerLayerSvg = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-ports-expand-layer'); + adornerLayerSvg = elementcoll[0]; + return adornerLayerSvg; +} +/** + * getNativeLayerSvg method \ + * + * @returns {SVGSVGElement} getNativeLayerSvg method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getNativeLayerSvg(diagramId) { + var nativeLayerSvg; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-native-layer'); + nativeLayerSvg = elementcoll[0]; + return nativeLayerSvg; +} +/** + * getGridLayerSvg method \ + * + * @returns {SVGSVGElement} getNativeLayerSvg method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getGridLayerSvg(diagramId) { + var gridLayerSvg = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-grid-layer'); + gridLayerSvg = elementcoll[0]; + return gridLayerSvg; +} +/** + * getBackgroundLayerSvg method \ + * + * @returns {SVGSVGElement} getBackgroundLayerSvg method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getBackgroundLayerSvg(diagramId) { + var gridLayerSvg = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-background-layer'); + return elementcoll[0].parentNode; +} +/** + * getBackgroundImageLayer method \ + * + * @returns {SVGSVGElement} getBackgroundImageLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getBackgroundImageLayer(diagramId) { + var imageLayer = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-background-image-layer'); + imageLayer = elementcoll[0]; + return imageLayer; +} +/** + * getBackgroundLayer method \ + * + * @returns {SVGSVGElement} getBackgroundLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getBackgroundLayer(diagramId) { + var imageLayer = null; + var diagramElement = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = diagramElement.getElementsByClassName('e-background-layer'); + imageLayer = elementcoll[0]; + return imageLayer; +} +/** + * getGridLayer method \ + * + * @returns {SVGSVGElement} getGridLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getGridLayer(diagramId) { + var domTable = 'domTable'; + var expandCollapse = null; + if (!window[domTable][diagramId + '_gridline']) { + var diagramGridSvg = getGridLayerSvg(diagramId); + expandCollapse = diagramGridSvg.getElementById(diagramId + '_gridline'); + window[domTable][diagramId + '_gridline'] = expandCollapse; + } + else { + expandCollapse = window[domTable][diagramId + '_gridline']; + } + return expandCollapse; +} +// /** @private */ +// export function getExpandCollapseLayer(diagramId: string): SVGElement { +// let expandCollapse: SVGElement = null; +// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId); +// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramExpander') as SVGElement; +// return expandCollapse; +// } +// /** @private */ +// export function getPortsLayer(diagramId: string): SVGElement { +// let expandCollapse: SVGElement = null; +// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId); +// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramPorts') as SVGElement; +// return expandCollapse; +// } +/** + * getNativeLayer method \ + * + * @returns {SVGSVGElement} getNativeLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getNativeLayer(diagramId) { + var nativeLayer = null; + var nativeLayerSvg = getNativeLayerSvg(diagramId); + nativeLayer = nativeLayerSvg.getElementById(diagramId + '_nativeLayer'); + return nativeLayer; +} +/** + * getHTMLLayer method \ + * + * @returns {SVGSVGElement} getHTMLLayer method .\ + * @param { string } diagramId - provide the diagramId value. + * @private + */ +function getHTMLLayer(diagramId) { + var htmlLayer = null; + var domTable = 'domTable'; + if (!window[domTable][diagramId + 'html_layer']) { + var element = getDiagramElement(diagramId); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var elementcoll = element.getElementsByClassName('e-html-layer'); + htmlLayer = elementcoll[0]; + window[domTable][diagramId + 'html_layer'] = htmlLayer; + } + else { + htmlLayer = window[domTable][diagramId + 'html_layer']; + } + return htmlLayer; +} +/* eslint-enable */ +/** + * createHtmlElement method \ + * + * @returns {SVGSVGElement} createHtmlElement method .\ + * @param { string } elementType - provide the diagramId value. + * @param { Object } attribute - provide the diagramId value. + * @private + */ +function createHtmlElement(elementType, attribute) { + var element = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["createElement"])(elementType); + setAttributeHtml(element, attribute); + return element; +} +/** + * createSvgElement method \ + * + * @returns {SVGSVGElement} createSvgElement method .\ + * @param { string } elementType - provide the elementType value. + * @param { Object } attribute - provide the attribute value. + * @private + */ +function createSvgElement(elementType, attribute) { + var element = document.createElementNS('http://www.w3.org/2000/svg', elementType); + setAttributeSvg(element, attribute); + return element; +} +/** @hidden */ +/** + * parentsUntil method \ + * + * @returns {SVGSVGElement} parentsUntil method .\ + * @param { Element } elem - provide the elementType value. + * @param { string } selector - provide the attribute value. + * @param { boolean } isID - provide the attribute value. + * @private + */ +function parentsUntil(elem, selector, isID) { + var parent = elem; + while (parent) { + if (isID ? parent.id === selector : hasClass(parent, selector)) { + break; + } + parent = parent.parentNode; + } + return parent; +} +/** + * hasClass method \ + * + * @returns {SVGSVGElement} hasClass method .\ + * @param { HTMLElement } element - provide the element value. + * @param { string } className - provide the className value. + * @private + */ +function hasClass(element, className) { + var eClassName = (typeof element.className === 'object') ? element.className.animVal : element.className; + return ((' ' + eClassName + ' ').indexOf(' ' + className + ' ') > -1) ? true : false; +} +/** + * getScrollerWidth method \ + * + * @returns {number} getScrollerWidth method .\ + * @private + */ +function getScrollerWidth() { + var outer = createHtmlElement('div', { 'style': 'visibility:hidden; width: 100px' }); + document.body.appendChild(outer); + var widthNoScroll = outer.getBoundingClientRect().width; + // force scrollbars + outer.style.overflow = 'scroll'; + // add innerdiv + var inner = createHtmlElement('div', { 'style': 'width:100%' }); + outer.appendChild(inner); + var widthWithScroll = inner.getBoundingClientRect().width; + // remove divs + outer.parentNode.removeChild(outer); + return widthNoScroll - widthWithScroll; +} +/** + * addTouchPointer method \ + * + * @returns {ITouches[]} addTouchPointer method .\ + * @param { ITouches[] } touchList - provide the touchList value. + * @param { PointerEvent } e - provide the e value. + * @param { TouchList } touches - provide the touches value. + * @private + */ +function addTouchPointer(touchList, e, touches) { + touchList = []; + for (var i = 0, length_1 = touches.length; i < length_1; i++) { + touchList.push({ pageX: touches[parseInt(i.toString(), 10)].clientX, pageY: touches[parseInt(i.toString(), 10)].clientY, pointerId: null }); + } + return touchList; +} +/** + * removes the element from dom \ + * + * @returns {void} removes the element from dom .\ + * @param { ITouches[] } elementId - provide the elementId value. + * @param { PointerEvent } contentId - provide the contentId value. + * @private + */ +function removeElement(elementId, contentId) { + var div = getDiagramElement(elementId, contentId); + if (div) { + div.parentNode.removeChild(div); + } +} +/** + * getContent method \ + * + * @returns {void} getContent method .\ + * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the elementId value. + * @param { boolean } isHtml - provide the boolean value. + * @param { Node | Annotation | PathAnnotation } nodeObject - provide the nodeObject value. + * @private + */ +function getContent(element, isHtml, nodeObject) { + var div; + /* eslint-disable */ + if (isHtml) { + var attr = { 'style': 'height: 100%; width: 100%' }; + div = createHtmlElement('div', attr); + } + else { + div = document.createElementNS('http://www.w3.org/2000/svg', 'g'); + } + var node = Object(_diagram_util__WEBPACK_IMPORTED_MODULE_7__["getElement"])(element); + var content = ''; + var sentNode = {}; + var isSvg = false; + var propertyName; + if (node instanceof _objects_node__WEBPACK_IMPORTED_MODULE_6__["Node"]) { + sentNode = node; + if (node.shape.type === 'Native') { + isSvg = true; + var svgContent = void 0; + var div_1 = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + document.body.appendChild(div_1); + div_1.innerHTML = (node.shape.content); + /* tslint:disable */ + svgContent = (div_1.getElementsByTagName('svg').length > 0) + ? div_1.getElementsByTagName('svg')[0].outerHTML : + div_1.getElementsByTagName('g').length > 0 ? div_1.getElementsByTagName('g')[0].outerHTML : ""; + /* tslint:disable */ + node.shape.content = svgContent; + /* tslint:disable */ + element.content = svgContent; + div_1.parentElement.removeChild(div_1); + } + //let blazor: string = 'Blazor'; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])()) { + content = 'diagramsf_node_template'; + sentNode = Object(_diagram_util__WEBPACK_IMPORTED_MODULE_7__["cloneBlazorObject"])(node); + } + propertyName = "nodeTemplate"; + } + else { + sentNode = node; + //new + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])()) { + sentNode = Object(_diagram_util__WEBPACK_IMPORTED_MODULE_7__["cloneBlazorObject"])(node); + content = 'diagramsf_annotation_template'; + } + propertyName = "annotationTemplate"; + } + var item; + var diagramElement = document.getElementById(element.diagramId); + var instance = 'ej2_instances'; + var diagram = diagramElement[instance][0]; + if (typeof element.content === 'string' && (!element.isTemplate || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])())) { + var template = document.getElementById(element.content); + if (template) { + div.appendChild(template); + } + else { + /* eslint-disable */ + var compiledString = void 0; + compiledString = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["compile"])(element.content); + for (var _i = 0, _a = compiledString(sentNode, diagram, propertyName, content); _i < _a.length; _i++) { + item = _a[_i]; + div.appendChild(item); + } + //new + // for (item of compiledString(sentNode, null, null, content, undefined, undefined, isSvg)) { + // div.appendChild(item); + // } + } + } + else if (element.isTemplate) { + var compiledString = void 0; + if (diagram.isReact) { + compiledString = element.getNodeTemplate()( + /* eslint-enable */ + // eslint-disable-next-line quotes + Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(nodeObject), diagram, propertyName + "_" + ((propertyName === "nodeTemplate") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div); + } + else if (diagram.isVue || diagram.isVue3) { + // EJ2-57563 - Added the below code to provide slot template support for Vue and Vue 3 + var templateFn = element.getNodeTemplate(); + if (templateFn) { + // If other than slot template, this if block gets execute and template get returned. + compiledString = element.getNodeTemplate()( + /* eslint-enable */ + // eslint-disable-next-line quotes + Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(nodeObject), diagram, propertyName + "_" + ((propertyName === "nodeTemplate") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div); + } + else { + // If we provide slot template means then it enters in this block and returns a template + if (propertyName === 'nodeTemplate') { + compiledString = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["compile"])(diagram.nodeTemplate); + } + else { + compiledString = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["compile"])(diagram.annotationTemplate); + } + compiledString = compiledString( + /* eslint-enable */ + // eslint-disable-next-line quotes + Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(nodeObject), diagram, propertyName + "_" + ((propertyName === "nodeTemplate") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div); + } + } + else { + compiledString = element.getNodeTemplate()( + /* eslint-enable */ + // eslint-disable-next-line quotes + Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(nodeObject), diagram, propertyName + "_" + ((propertyName === "nodeTemplate") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false); + } + if (compiledString) { + for (var i = 0; i < compiledString.length; i++) { + div.appendChild(compiledString[parseInt(i.toString(), 10)]); + } + } + } + else { + div.appendChild(element.content); + } + return element.isTemplate ? + div : (isHtml ? div.cloneNode(true) : div.cloneNode(true)); +} +/* eslint-enable */ +/** + * setAttributeSvg method \ + * + * @returns {void} setAttributeSvg method .\ + * @param { SVGElement } svg - provide the svg value. + * @param { Object } attributes - provide the boolean value. + * @private + */ +function setAttributeSvg(svg, attributes) { + var keys = Object.keys(attributes); + for (var i = 0; i < keys.length; i++) { + // Added below condition to check whether svg is undefined or not + if (svg && keys[parseInt(i.toString(), 10)] !== 'style') { + svg.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]); + } + else { + applyStyleAgainstCsp(svg, attributes[keys[parseInt(i.toString(), 10)]]); + } + } +} +/** + * applyStyleAgainstCsp method \ + * + * @returns {void} applyStyleAgainstCsp method .\ + * @param { SVGElement } svg - provide the svg value. + * @param { string } attributes - provide the boolean value. + * @private + */ +function applyStyleAgainstCsp(svg, attributes) { + var keys = attributes.split(';'); + for (var i = 0; i < keys.length; i++) { + var attribute = keys[parseInt(i.toString(), 10)].split(':'); + if (attribute.length === 2) { + svg.style[attribute[0].trim()] = attribute[1].trim(); + } + } +} +/** + * setAttributeHtml method \ + * + * @returns {void} setAttributeHtml method .\ + * @param { HTMLElement } element - provide the svg value. + * @param { Object } attributes - provide the boolean value. + * @private + */ +function setAttributeHtml(element, attributes) { + var keys = Object.keys(attributes); + for (var i = 0; i < keys.length; i++) { + if (keys[parseInt(i.toString(), 10)] !== 'style') { + element.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]); + } + else { + applyStyleAgainstCsp(element, attributes[keys[parseInt(i.toString(), 10)]]); + } + } +} +/** + * createMeasureElements method \ + * + * @returns {void} createMeasureElements method .\ + * @private + */ +function createMeasureElements() { + var measureWindowElement = 'measureElement'; + if (!window["" + measureWindowElement]) { + var divElement = createHtmlElement('div', { + id: 'measureElement', + style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;' + }); + var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' }); + divElement.appendChild(text); + //let imageElement: HTMLImageElement; + var imageElement = createHtmlElement('img', { 'alt': 'measureElementImage', 'src': 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' }); + divElement.appendChild(imageElement); + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); + divElement.appendChild(svg); + var element = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + element.setAttribute('d', ''); + svg.appendChild(element); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var data = document.createTextNode(''); + var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve'); + svg.appendChild(tSpan); + window["" + measureWindowElement] = divElement; + window["" + measureWindowElement].usageCount = 1; + document.body.appendChild(divElement); + var measureElementCount = 'measureElementCount'; + if (!window["" + measureElementCount]) { + window["" + measureElementCount] = 1; + } + else { + window["" + measureElementCount]++; + } + } + else { + window["" + measureWindowElement].usageCount += 1; + } +} +/** + * setChildPosition method \ + * + * @returns {number} setChildPosition method .\ + * @param {SubTextElement} temp - provide the temp value. + * @param {SubTextElement[]} childNodes - provide the childNodes value. + * @param {number} i - provide the i value. + * @param {TextAttributes} options - provide the options value. + * @private + */ +function setChildPosition(temp, childNodes, i, options) { + if (childNodes.length >= 1 && temp.x === 0 && + (options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && + (options.textWrapping === 'Wrap' || options.textWrapping === 'WrapWithOverflow')) { + temp.x = childNodes[i - 1] ? childNodes[i - 1].x : -(temp.width / 2); + return temp.x; + } + return temp.x; +} +/** + * getTemplateContent method \ + * + * @returns {DiagramHtmlElement} getTemplateContent method .\ + * @param {DiagramHtmlElement} annotationcontent - provide the annotationcontent value. + * @param {Annotation} annotation - provide the annotation value. + * @param {number} annotationTemplate - provide the annotationTemplate value. + * @private + */ +function getTemplateContent( +// eslint-disable-next-line @typescript-eslint/ban-types +annotationcontent, annotation, annotationTemplate) { + if (annotationTemplate && !annotation.template) { + annotationcontent.isTemplate = true; + annotationcontent.template = annotationcontent.content = getContent(annotationcontent, true, annotation); + } + else { + annotationcontent.content = annotation.template; + } + return annotationcontent; +} +/* eslint-disable */ +/** @private */ +function createUserHandleTemplates(userHandleTemplate, template, selectedItems, diagramID) { + var userHandleFn; + var handle; + var compiledString; + var i; + var div; + var diagramElement = document.getElementById(diagramID); + var instance = 'ej2_instances'; + var diagram = diagramElement[instance][0]; + if (userHandleTemplate && template) { + userHandleFn = Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["templateCompiler"])(userHandleTemplate); + for (var _i = 0, _a = selectedItems.userHandles; _i < _a.length; _i++) { + handle = _a[_i]; + if (userHandleFn) { + compiledString = userHandleFn(Object(_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(handle), diagram, 'userHandleTemplate' + '_' + handle.name, undefined, undefined, false); + for (i = 0; i < compiledString.length; i++) { + var attr = { + 'style': 'height: 100%; width: 100%; pointer-events: all', + 'id': handle.name + '_template_hiddenUserHandle' + }; + div = createHtmlElement('div', attr); + div.appendChild(compiledString[i]); + } + template[0].appendChild(div); + } + } + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["isBlazor"])()) { + var content = 'diagramsf_userHandle_template'; + var a = void 0; + for (var _b = 0, _c = selectedItems.userHandles; _b < _c.length; _b++) { + handle = _c[_b]; + if (!handle.pathData && !handle.content && !handle.source) { + compiledString = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_5__["compile"])(handle.content); + for (i = 0, a = compiledString(Object(_diagram_util__WEBPACK_IMPORTED_MODULE_7__["cloneBlazorObject"])(handle), diagram, 'userHandleTemplate', content); i < a.length; i++) { + var attr = { + 'style': 'height: 100%; width: 100%; pointer-events: all', + 'id': handle.name + '_template_hiddenUserHandle' + }; + div = createHtmlElement('div', attr); + div.appendChild(a[i]); + } + template[0].appendChild(div); + } + } + } +} +/* eslint-enable */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/path-util.js ***! + \*********************************************************************************/ +/*! exports provided: processPathData, parsePathData, getRectanglePath, getPolygonPath, getFreeHandPath, pathSegmentCollection, transformPath, updatedSegment, scalePathData, splitArrayCollection, getPathString, getString */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "processPathData", function() { return processPathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parsePathData", function() { return parsePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRectanglePath", function() { return getRectanglePath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPolygonPath", function() { return getPolygonPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFreeHandPath", function() { return getFreeHandPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pathSegmentCollection", function() { return pathSegmentCollection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformPath", function() { return transformPath; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updatedSegment", function() { return updatedSegment; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scalePathData", function() { return scalePathData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitArrayCollection", function() { return splitArrayCollection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPathString", function() { return getPathString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getString", function() { return getString; }); +/** + * These utility methods help to process the data and to convert it to desired dimensions + */ +/** + * processPathData method \ + * + * @returns {Object[]} processPathData method .\ + * @param { string } data - provide the data value. + * @private + */ +function processPathData(data) { + var collection = []; + var j; + var arrayCollection = parsePathData(data); + if (arrayCollection.length > 0) { + for (var i = 0; i < arrayCollection.length; i++) { + var ob = arrayCollection[parseInt(i.toString(), 10)]; + var char = ''; + char = ob[0]; + switch (char.toLowerCase()) { + case 'm': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] }); + j = j + 1; + if (char === 'm') { + char = 'l'; + } + else if (char === 'M') { + char = 'L'; + } + } + break; + case 'l': + case 't': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] }); + j = j + 1; + } + break; + case 'h': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, x: ob[parseInt(j.toString(), 10)] }); + } + break; + case 'v': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] }); + } + break; + case 'z': + collection.push({ command: char }); + break; + case 'c': + for (j = 1; j < ob.length; j++) { + collection.push({ + command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x2: ob[j + 2], y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5] + }); + j = j + 5; + } + break; + case 's': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, x2: ob[parseInt(j.toString(), 10)], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] }); + j = j + 3; + } + break; + case 'q': + for (j = 1; j < ob.length; j++) { + collection.push({ command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] }); + j = j + 3; + } + break; + case 'a': + for (j = 1; j < ob.length; j++) { + collection.push({ + command: char, r1: ob[parseInt(j.toString(), 10)], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3], + sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6] + }); + j = j + 6; + } + break; + } + } + } + return collection; +} +/** + * parsePathData method \ + * + * @returns {Object[]} parsePathData method .\ + * @param { string } data - provide the data value. + * @private + */ +function parsePathData(data) { + var tokenizer = /([a-z]+)|([+-]?(?:\d+\.?\d*|\.\d+))/gi; + var current = []; + var commands = []; + var match = {}; + tokenizer.lastIndex = 0; + var isExponential = false; + match = tokenizer.exec(data); + while (match) { + if (match[1] === 'e') { + //let s1: string = ''; + isExponential = true; + } + else if (match[1]) { + if (match[1].toLowerCase() === 'zm') { + if (current.length) { + commands.push(current); + } + commands.push(['Z']); + current = [match[1].substring(1, 2)]; + } + else { + if (current.length) { + commands.push(current); + } + current = [match[1]]; + } + isExponential = false; + } + else { + if (!current.length) { + current = []; + } + if (!isExponential) { + current.push(Number(match[2])); + } + isExponential = false; + } + match = tokenizer.exec(data); + } + if (current.length) { + commands.push(current); + } + return commands; +} +/** + * getRectanglePath method \ + * + * @returns {string} getRectanglePath method .\ + * @param { number } cornerRadius - provide the data value. + * @param { number } height - provide the height value. + * @param { number } width - provide the width value. + * @private + */ +function getRectanglePath(cornerRadius, height, width) { + var x = 0; + var y = 0; + var path = ''; + var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y }, + { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius }, + { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height }, + { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius } + ]; + var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }]; + var corner = 0; + var point2; + var next; + path = 'M' + points[0].x + ' ' + points[0].y; + var i; + for (i = 0; i < points.length; i = i + 2) { + point2 = points[i + 1]; + path += 'L' + point2.x + ' ' + point2.y; + next = points[i + 2] || points[0]; + path += 'Q' + corners[parseInt(corner.toString(), 10)].x + ' ' + corners[parseInt(corner.toString(), 10)].y + ' ' + next.x + ' ' + next.y; + corner++; + } + return path; +} +/** + * getPolygonPath method \ + * + * @returns {string} getPolygonPath method .\ + * @param { PointModel[] } collection - provide the data value. + * @private + */ +function getPolygonPath(collection) { + var path = ''; + var seg; + path = 'M' + collection[0].x + ' ' + collection[0].y; + var i; + for (i = 1; i < collection.length; i++) { + seg = collection[parseInt(i.toString(), 10)]; + path += 'L' + seg.x + ' ' + seg.y; + } + path += 'Z'; + return path; +} +/** + * getFreeHandPath method \ + * + * @returns {string} getFreeHandPath method .\ + * @param { PointModel[] } collection - provide the data value. + * @private + */ +function getFreeHandPath(collection) { + var k; + for (k = 0; k < collection.length; k++) { + collection[parseInt(k.toString(), 10)].x = Math.round(collection[parseInt(k.toString(), 10)].x); + collection[parseInt(k.toString(), 10)].y = Math.round(collection[parseInt(k.toString(), 10)].y); + } + var path = ''; + var seg; + path = 'M' + collection[0].x + ' ' + collection[0].y; + var i; + for (i = 1; i < collection.length; i++) { + seg = collection[parseInt(i.toString(), 10)]; + path += 'L' + seg.x + ' ' + seg.y; + } + return path; +} +/* eslint-disable */ +/** + * pathSegmentCollection method \ + * + * @returns {string} pathSegmentCollection method .\ + * @param { Object[]} collection - provide the collection value. + * @private + */ +function pathSegmentCollection(collection) { + var x0; + var y0; + var x1; + var y1; + var x2; + var y2; + var x; + var y; + var length; + var i; + var initx; + var inity; + var segments = []; + for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) { + var obj = collection[i]; + var seg = obj; + var char = ''; + char = seg.command; + if ('y1' in seg) { + y1 = seg.y1; + } + if ('y2' in seg) { + y2 = seg.y2; + } + if ('x1' in seg) { + x1 = seg.x1; + } + if ('x2' in seg) { + x2 = seg.x2; + } + if ('x' in seg) { + x = seg.x; + } + if ('y' in seg) { + y = seg.y; + } + var prev = segments[segments.length - 1]; + switch (char) { + case 'M': + segments.push({ command: 'M', x: x, y: y }); + break; + case 'L': + segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y }); + break; + case 'H': + segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 }); + break; + case 'V': + segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y }); + break; + case 'C': + segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y }); + break; + case 'S': + if (prev) { + var ctrl = void 0; + if (prev.command === 'C' || prev.command === 'S') { + ctrl = { x: prev.x2, y: prev.y2 }; + } + else { + ctrl = { x: x0, y: y0 }; + } + var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y }; + segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y }); + } + break; + case 'Q': + //ctx.quadraticCurveTo(x1, y1, x, y); + segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y }); + break; + case 'T': + if (prev) { + var ctrl = void 0; + if (prev.command === 'Q') { + ctrl = { x: prev.x1, y: prev.y1 }; + } + else { + ctrl = { x: x0, y: y0 }; + } + var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y }; + segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y }); + } + break; + case 'A': + var newSeg = seg; + newSeg.command = 'A'; + segments.push(newSeg); + break; + case 'Z': + case 'z': + segments.push({ command: 'Z' }); + x = x0; + y = y0; + break; + } + if (char === 'M' || char === 'm') { + initx = x; + inity = y; + } + x0 = x; + y0 = y; + } + return segments; +} +/** + * transformPath method \ + * + * @returns {string} transformPath method .\ + * @param { Object[]} arr - provide the collection value. + * @param { number} sX - provide the collection value. + * @param { number} sY - provide the collection value. + * @param { boolean} s - provide the collection value. + * @param {number} bX - provide the collection value. + * @param { number} bY - provide the collection value. + * @param { number} iX - provide the collection value. + * @param { number} iY - provide the collection value. + * @private + */ +function transformPath(arr, sX, sY, s, bX, bY, iX, iY) { + var x0; + var y0; + var x1; + var y1; + var x2; + var y2; + var x; + var y; + var length; + var i; + var newSeg; + for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) { + var obj = arr[i]; + var seg = obj; + var char = seg.command; + if ('x' in seg) { + x = seg.x; + } + if ('y' in seg) { + y = seg.y; + } + if ('y1' in seg) { + y1 = seg.y1; + } + if ('y2' in seg) { + y2 = seg.y2; + } + if ('x1' in seg) { + x1 = seg.x1; + } + if ('x2' in seg) { + x2 = seg.x2; + } + if (s) { + if (x !== undefined) { + x = scalePathData(x, sX, bX, iX); + } + if (y !== undefined) { + y = scalePathData(y, sY, bY, iY); + } + if (x1 !== undefined) { + x1 = scalePathData(x1, sX, bX, iX); + } + if (y1 !== undefined) { + y1 = scalePathData(y1, sY, bY, iY); + } + if (x2 !== undefined) { + x2 = scalePathData(x2, sX, bX, iX); + } + if (y2 !== undefined) { + y2 = scalePathData(y2, sY, bY, iY); + } + } + else { + if (x !== undefined) { + x = Number((x + sX).toFixed(2)); + } + if (y !== undefined) { + y = Number((y + sY).toFixed(2)); + } + if (x1 !== undefined) { + x1 = Number((x1 + sX).toFixed(2)); + } + if (y1 !== undefined) { + y1 = Number((y1 + sY).toFixed(2)); + } + if (x2 !== undefined) { + x2 = Number((x2 + sX).toFixed(2)); + } + if (y2 !== undefined) { + y2 = Number((y2 + sY).toFixed(2)); + } + } + var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 }; + newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY); + if (newSeg) { + arr[i] = newSeg; + } + // Record the start of a subpath + if (char === 'M' || char === 'm') { + x0 = x; + y0 = y; + } + } + var pathData = getPathString(arr); + return pathData; +} +/** + * updatedSegment method \ + * + * @returns {string} updatedSegment method .\ + * @param { PathSegment} segment - provide the collection value. + * @param { PathSegment} char - provide the collection value. + * @param { number} obj - provide the collection value. + * @param { boolean} isScale - provide the collection value. + * @param {number} sX - provide the collection value. + * @param { number} sY - provide the collection value. + * @private + */ +function updatedSegment(segment, char, obj, isScale, sX, sY) { + switch (char) { + case 'M': + segment.x = obj.x; + segment.y = obj.y; + break; + case 'L': + segment.x = obj.x; + segment.y = obj.y; + break; + case 'H': + segment.x = obj.x; + break; + case 'V': + segment.y = obj.y; + break; + case 'C': + segment.x = obj.x; + segment.y = obj.y; + segment.x1 = obj.x1; + segment.y1 = obj.y1; + segment.x2 = obj.x2; + segment.y2 = obj.y2; + break; + case 'S': + segment.x = obj.x; + segment.y = obj.y; + segment.x2 = obj.x2; + segment.y2 = obj.y2; + break; + case 'Q': + segment.x = obj.x; + segment.y = obj.y; + segment.x1 = obj.x1; + segment.y1 = obj.y1; + break; + case 'T': + segment.x = obj.x; + segment.y = obj.y; + break; + case 'A': + var r1 = obj.r1; + var r2 = obj.r2; + if (isScale) { + obj.r1 = r1 = (r1 * sX); + obj.r2 = r2 = (r2 * sY); + } + segment.x = obj.x; + segment.y = obj.y; + segment.r1 = obj.r1; + segment.r2 = obj.r2; + break; + case 'z': + case 'Z': + segment = { command: 'Z' }; + break; + } + return segment; +} +/* eslint-enable */ +/** + * scalePathData method \ + * + * @returns {string} scalePathData method .\ + * @param { number} val - provide the val value. + * @param { number} scaleFactor - provide the scaleFactor value. + * @param { number} oldOffset - provide the oldOffset value. + * @param { number} newOffset - provide the newOffset value. + * @private + */ +function scalePathData(val, scaleFactor, oldOffset, newOffset) { + if (val !== oldOffset) { + if (newOffset !== oldOffset) { + val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset))) + + (newOffset - Number(oldOffset))); + } + else { + val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset))); + } + } + else { + if (newOffset !== oldOffset) { + val = newOffset; + } + } + return Number(val.toFixed(2)); +} +/** + * splitArrayCollection method \ + * + * @returns {Object[]} splitArrayCollection method .\ + * @param { Object[]} arrayCollection - provide the val value. + * @private + */ +function splitArrayCollection(arrayCollection) { + var x0; + var y0; + var x1; + var y1; + var x2; + var y2; + var x; + var y; + var length; + var i; + for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) { + var path = arrayCollection[parseInt(i.toString(), 10)]; + var seg = path; + var char = seg.command; + if (/[MLHVCSQTA]/.test(char)) { + if ('x' in seg) { + seg.x = x = seg.x; + } + if ('y' in seg) { + seg.y = y = seg.y; + } + } + else { + if ('x1' in seg) { + seg.x1 = x1 = x + seg.x1; + } + if ('x2' in seg) { + seg.x2 = x2 = x + seg.x2; + } + if ('y1' in seg) { + seg.y1 = y1 = y + seg.y1; + } + if ('y2' in seg) { + seg.y2 = y2 = y + seg.y2; + } + if ('x' in seg) { + seg.x = x += seg.x; + } + if ('y' in seg) { + seg.y = y += seg.y; + } + var newSeg = void 0; + switch (char) { + case 'm': + case 'M': + newSeg = { command: 'M', x: x, y: y }; + break; + case 'l': + case 'L': + newSeg = { command: 'L', x: x, y: y }; + break; + case 'h': + case 'H': + newSeg = { command: 'H', x: x }; + break; + case 'v': + case 'V': + newSeg = { command: 'V', y: y }; + break; + case 'c': + case 'C': + newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 }; + break; + case 's': + case 'S': + newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 }; + break; + case 'q': + case 'Q': + newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 }; + break; + case 't': + case 'T': + newSeg = { command: 'T', x: x, y: y }; + break; + case 'a': + case 'A': + newSeg = { command: 'A', x: x, y: y }; + newSeg.r1 = seg.r1; + newSeg.r2 = seg.r2; + newSeg.angle = seg.angle; + newSeg.largeArc = seg.largeArc; + newSeg.sweep = seg.sweep; + break; + case 'z': + case 'Z': + newSeg = { command: 'Z' }; + x = x0; + y = y0; + newSeg = arrayCollection[parseInt(i.toString(), 10)]; + break; + } + if (newSeg) { + arrayCollection[parseInt(i.toString(), 10)] = newSeg; + } + } + if (char === 'M' || char === 'm') { + x0 = x; + y0 = y; + } + } + return arrayCollection; +} +/** + * getPathString method \ + * + * @returns {string} getPathString method .\ + * @param { Object[]} arrayCollection - provide the val value. + * @private + */ +function getPathString(arrayCollection) { + var getNewString = ''; + var i; + for (i = 0; i < arrayCollection.length; i++) { + if (i === 0) { + getNewString += getString(arrayCollection[parseInt(i.toString(), 10)]); + } + else { + getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]); + } + } + return getNewString; +} +/* eslint-disable */ +/** + * getString method \ + * + * @returns {string} getString method .\ + * @param { PathSegment} arrayCollection - provide the val value. + * @private + */ +function getString(obj) { + var string = ''; + switch (obj.command) { + case 'Z': + case 'z': + string = obj.command; + break; + case 'M': + case 'm': + case 'L': + case 'l': + string = obj.command + ' ' + obj.x + ' ' + obj.y; + break; + case 'C': + case 'c': + string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y; + break; + case 'Q': + case 'q': + string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y; + break; + case 'A': + case 'a': + var cmd = obj.command; + var ang = obj.angle; + var l = (obj.largeArc ? '1' : '0'); + var s = (obj.sweep ? '1' : '0'); + string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y; + break; + case 'H': + case 'h': + string = obj.command + ' ' + obj.x; + break; + case 'V': + case 'v': + string = obj.command + ' ' + obj.y; + break; + case 'S': + case 's': + string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y; + break; + case 'T': + case 't': + string = obj.command + ' ' + obj.x + ' ' + obj.y; + } + return string; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js": +/*!**************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/swim-lane-util.js ***! + \**************************************************************************************/ +/*! exports provided: initSwimLane, addObjectToGrid, headerDefine, phaseDefine, laneCollection, createRow, createColumn, initGridRow, initGridColumns, getConnectors, swimLaneMeasureAndArrange, ChangeLaneIndex, arrangeChildNodesInSwimLane, updateChildOuterBounds, checkLaneSize, checkPhaseOffset, updateConnectorsProperties, laneInterChanged, updateSwimLaneObject, findLaneIndex, findPhaseIndex, findStartLaneIndex, updatePhaseMaxWidth, updateHeaderMaxWidth, addLane, addPhase, addLastPhase, addHorizontalPhase, addVerticalPhase, arrangeChildInGrid, swimLaneSelection, pasteSwimLane, gridSelection, removeLaneChildNode, getGridChildren, removeSwimLane, removeLane, removeChildren, removePhase, removeHorizontalPhase, removeVerticalPhase, considerSwimLanePadding, checkLaneChildrenOffset, findLane, canLaneInterchange, updateSwimLaneChildPosition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initSwimLane", function() { return initSwimLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addObjectToGrid", function() { return addObjectToGrid; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "headerDefine", function() { return headerDefine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "phaseDefine", function() { return phaseDefine; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "laneCollection", function() { return laneCollection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRow", function() { return createRow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createColumn", function() { return createColumn; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initGridRow", function() { return initGridRow; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initGridColumns", function() { return initGridColumns; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getConnectors", function() { return getConnectors; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "swimLaneMeasureAndArrange", function() { return swimLaneMeasureAndArrange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeLaneIndex", function() { return ChangeLaneIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrangeChildNodesInSwimLane", function() { return arrangeChildNodesInSwimLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateChildOuterBounds", function() { return updateChildOuterBounds; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkLaneSize", function() { return checkLaneSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkPhaseOffset", function() { return checkPhaseOffset; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateConnectorsProperties", function() { return updateConnectorsProperties; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "laneInterChanged", function() { return laneInterChanged; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateSwimLaneObject", function() { return updateSwimLaneObject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findLaneIndex", function() { return findLaneIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findPhaseIndex", function() { return findPhaseIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findStartLaneIndex", function() { return findStartLaneIndex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updatePhaseMaxWidth", function() { return updatePhaseMaxWidth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateHeaderMaxWidth", function() { return updateHeaderMaxWidth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLane", function() { return addLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addPhase", function() { return addPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addLastPhase", function() { return addLastPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addHorizontalPhase", function() { return addHorizontalPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addVerticalPhase", function() { return addVerticalPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrangeChildInGrid", function() { return arrangeChildInGrid; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "swimLaneSelection", function() { return swimLaneSelection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pasteSwimLane", function() { return pasteSwimLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "gridSelection", function() { return gridSelection; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeLaneChildNode", function() { return removeLaneChildNode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getGridChildren", function() { return getGridChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeSwimLane", function() { return removeSwimLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeLane", function() { return removeLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeChildren", function() { return removeChildren; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removePhase", function() { return removePhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeHorizontalPhase", function() { return removeHorizontalPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeVerticalPhase", function() { return removeVerticalPhase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "considerSwimLanePadding", function() { return considerSwimLanePadding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkLaneChildrenOffset", function() { return checkLaneChildrenOffset; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findLane", function() { return findLane; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canLaneInterchange", function() { return canLaneInterchange; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateSwimLaneChildPosition", function() { return updateSwimLaneChildPosition; }); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/containers/grid */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/grid.js"); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/elements/diagram-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/diagram-element.js"); +/* harmony import */ var _core_elements_text_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/elements/text-element */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/elements/text-element.js"); +/* harmony import */ var _primitives_size__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/containers/canvas */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/core/containers/canvas.js"); +/* harmony import */ var _primitives_rect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _interaction_container_interaction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../interaction/container-interaction */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/interaction/container-interaction.js"); +/* harmony import */ var _constraints_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./constraints-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/constraints-util.js"); + + + + + + + + + + + + +/** + * SwimLane modules are used to rendering and interaction. + */ +/** @private */ +/** + * initSwimLane method \ + * + * @returns {void} initSwimLane method .\ + * @param { GridPanel} grid - provide the grid value. + * @param { Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the node value. + * @private + */ +function initSwimLane(grid, diagram, node) { + if (!node.width && node.shape.phases.length === 0) { + node.width = 100; + } + var row = []; + var columns = []; + var index = 0; + var shape = node.shape; + var orientation = shape.orientation === 'Horizontal' ? true : false; + if (shape.header && shape.hasHeader) { + createRow(row, shape.header.height); + } + initGridRow(row, orientation, node); + initGridColumns(columns, orientation, node); + grid.setDefinitions(row, columns); + if (shape.header && shape.hasHeader) { + headerDefine(grid, diagram, node); + index++; + } + if (shape.phases.length > 0 && shape.phaseSize) { + for (var k = 0; k < shape.phases.length; k++) { + if (shape.phases[parseInt(k.toString(), 10)].id === '') { + shape.phases[parseInt(k.toString(), 10)].id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + } + phaseDefine(grid, diagram, node, index, orientation, k); + } + index++; + } + if (shape.lanes.length > 0) { + for (var k = 0; k < shape.lanes.length; k++) { + if (shape.lanes[parseInt(k.toString(), 10)].id === '') { + shape.lanes[parseInt(k.toString(), 10)].id = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + } + laneCollection(grid, diagram, node, index, k, orientation); + index++; + } + } +} +/** + * addObjectToGrid method \ + * + * @returns {Container} addObjectToGrid method .\ + * @param { Diagram} diagram - provide the diagram value. + * @param { GridPanel} grid - provide the grid value. + * @param {NodeModel} parent - provide the parent value. + * @param {NodeModel} object - provide the object value. + * @param {boolean} isHeader - provide the isHeader value. + * @param {boolean} isPhase - provide the isPhase value. + * @param {boolean} isLane - provide the isLane value. + * @param {string} canvas - provide the canvas value. + * @private + */ +function addObjectToGrid(diagram, grid, parent, object, isHeader, isPhase, isLane, canvas) { + var node = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Node"](diagram, 'nodes', object, true); + node.parentId = parent.id; + node.isHeader = (isHeader) ? true : false; + node.isPhase = (isPhase) ? true : false; + node.isLane = (isLane) ? true : false; + var id = (isPhase) ? 'PhaseHeaderParent' : 'LaneHeaderParent'; + if (canvas) { + node["" + id] = canvas; + } + node.constraints &= ~(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].InConnect | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].OutConnect); + node.constraints |= _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].HideThumbs; + diagram.initObject(node); + diagram.nodes.push(node); + if (node.wrapper.children.length > 0) { + for (var i = 0; i < node.wrapper.children.length; i++) { + var child = node.wrapper.children[parseInt(i.toString(), 10)]; + if (child instanceof _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_4__["DiagramElement"]) { + child.isCalculateDesiredSize = false; + } + if (child instanceof _core_elements_text_element__WEBPACK_IMPORTED_MODULE_5__["TextElement"]) { + child.canConsiderBounds = false; + if (!isHeader && (parent.shape.orientation === 'Vertical' && isPhase) || + (parent.shape.orientation !== 'Vertical' && isLane)) { + child.isLaneOrientation = true; + child.refreshTextElement(); + } + } + } + node.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](undefined, undefined)); + node.wrapper.arrange(node.wrapper.desiredSize); + } + return node.wrapper; +} +/** + * headerDefine method \ + * + * @returns {void} headerDefine method .\ + * @param { GridPanel} grid - provide the grid value. + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} object - provide the object value. + * @private + */ +function headerDefine(grid, diagram, object) { + var maxWidth = 0; + var columns = grid.columnDefinitions(); + var shape = object.shape; + for (var i = 0; i < columns.length; i++) { + maxWidth += columns[parseInt(i.toString(), 10)].width; + } + shape.header.id = shape.header.id || Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + var node = { + id: object.id + shape.header.id, + annotations: [Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.header.annotation)], + style: shape.header.style ? shape.header.style : undefined, + offsetX: object.offsetX, offsetY: object.offsetY, + rowIndex: 0, columnIndex: 0, + maxWidth: maxWidth, + container: { type: 'Canvas', orientation: 'Horizontal' } + }; + if (!Object(_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canSelect"])(object)) { + node.constraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Select; + } + var wrapper = addObjectToGrid(diagram, grid, object, node, true); + grid.addObject(wrapper, 0, 0, 1, grid.columnDefinitions().length); +} +/** + * phaseDefine method \ + * + * @returns {void} phaseDefine method .\ + * @param { GridPanel} grid - provide the grid value. + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} object - provide the object value. + * @param {number} indexValue - provide the indexValue value. + * @param {boolean} orientation - provide the orientation value. + * @param {number} phaseIndex - provide the phaseIndex value. + * @private + */ +function phaseDefine(grid, diagram, object, indexValue, orientation, phaseIndex) { + var rowValue = 0; + var colValue = 0; + var maxWidth; + var shape = object.shape; + if (orientation) { + colValue = phaseIndex; + rowValue = indexValue; + maxWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width; + } + else { + rowValue = shape.header && shape.hasHeader ? phaseIndex + 1 : phaseIndex; + } + var phaseObject = { + annotations: [Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.phases[parseInt(phaseIndex.toString(), 10)].header.annotation)], + maxWidth: maxWidth, + id: object.id + shape.phases[parseInt(phaseIndex.toString(), 10)].id + '_header', + addInfo: shape.phases[parseInt(phaseIndex.toString(), 10)].addInfo, + offsetX: object.offsetX, offsetY: object.offsetY, + style: shape.phases[parseInt(phaseIndex.toString(), 10)].style, + rowIndex: rowValue, columnIndex: colValue, + container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' } + }; + phaseObject.annotations[0].rotateAngle = orientation ? 0 : 270; + if (!Object(_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canSelect"])(object)) { + phaseObject.constraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Select; + } + shape.phases[parseInt(phaseIndex.toString(), 10)].header.id = phaseObject.id; + var wrapper = addObjectToGrid(diagram, grid, object, phaseObject, false, true, false, shape.phases[parseInt(phaseIndex.toString(), 10)].id); + grid.addObject(wrapper, rowValue, colValue); +} +/** + * laneCollection method \ + * + * @returns {void} laneCollection method .\ + * @param { GridPanel} grid - provide the grid value. + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} object - provide the object value. + * @param {number} indexValue - provide the indexValue value. + * @param {number} laneIndex - provide the laneIndex value. + * @param {boolean} orientation - provide the orientation value. + * @private + */ +function laneCollection(grid, diagram, object, indexValue, laneIndex, orientation) { + var laneNode; + var parentWrapper; + var gridCell; + var canvas; + var childWrapper; + var shape = object.shape; + var value = shape.phases.length || 1; + var isHeader = (shape.header && shape.hasHeader) ? 1 : 0; + var rowValue = orientation ? indexValue : isHeader; + var phaseCount = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0; + for (var l = 0; l < value; l++) { + var colValue = orientation ? l : laneIndex + phaseCount; + gridCell = grid.rows[parseInt(rowValue.toString(), 10)].cells[parseInt(colValue.toString(), 10)]; + canvas = { + id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + l, + rowIndex: rowValue, columnIndex: colValue, + width: gridCell.minWidth, height: gridCell.minHeight, + offsetX: object.offsetX, offsetY: object.offsetY, + style: shape.lanes[parseInt(laneIndex.toString(), 10)].style, + addInfo: shape.lanes[parseInt(laneIndex.toString(), 10)].addInfo, + constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].ReadOnly | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].AllowDrop, + container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' } + }; + if (!Object(_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canSelect"])(object)) { + canvas.constraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Select; + } + parentWrapper = addObjectToGrid(diagram, grid, object, canvas, false, false, true); + parentWrapper.children[0].isCalculateDesiredSize = false; + if (l === 0) { + laneNode = { + id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + '_' + l + '_header', + style: shape.lanes[parseInt(laneIndex.toString(), 10)].header.style, + annotations: [Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.lanes[parseInt(laneIndex.toString(), 10)].header.annotation)], + offsetX: object.offsetX, offsetY: object.offsetY, + rowIndex: rowValue, columnIndex: colValue, + container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' } + }; + laneNode.annotations[0].rotateAngle = orientation ? 270 : 0; + shape.lanes[parseInt(laneIndex.toString(), 10)].header.id = laneNode.id; + // eslint-disable-next-line + (orientation) ? laneNode.width = shape.lanes[laneIndex].header.width : + laneNode.height = shape.lanes[parseInt(laneIndex.toString(), 10)].header.height; + if (!Object(_constraints_util__WEBPACK_IMPORTED_MODULE_10__["canSelect"])(object)) { + laneNode.constraints &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Select; + } + childWrapper = addObjectToGrid(diagram, grid, object, laneNode, false, false, true, shape.lanes[parseInt(laneIndex.toString(), 10)].id); + if (orientation) { + childWrapper.children[0].elementActions = childWrapper.children[0].elementActions | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["ElementAction"].HorizontalLaneHeader; + } + parentWrapper.children.push(childWrapper); + } + grid.addObject(parentWrapper, rowValue, colValue); + if (!orientation) { + rowValue++; + } + colValue = orientation ? l : laneIndex + 1; + } +} +/** + * createRow method \ + * + * @returns {void} createRow method .\ + * @param { RowDefinition[]} row - provide the row value. + * @param {number} height - provide the height value. + * @private + */ +function createRow(row, height) { + var rows = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["RowDefinition"](); + rows.height = height; + row.push(rows); +} +/** + * createColumn method \ + * + * @returns {void} createColumn method .\ + * @param {number} width - provide the width value. + * @private + */ +function createColumn(width) { + var cols = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["ColumnDefinition"](); + cols.width = width; + return cols; +} +/** + * initGridRow method \ + * + * @returns {void} initGridRow method .\ + * @param {RowDefinition[]} row - provide the row value. + * @param {boolean} orientation - provide the row value. + * @param {NodeModel} object - provide the row value. + * @private + */ +function initGridRow(row, orientation, object) { + var totalHeight = 0; + var height; + var shape = object.shape; + if (row.length > 0) { + for (var i = 0; i < row.length; i++) { + totalHeight += row[parseInt(i.toString(), 10)].height; + } + } + if (orientation) { + if (shape.phases.length > 0 && shape.phaseSize) { + totalHeight += shape.phaseSize; + createRow(row, shape.phaseSize); + } + if (shape.lanes.length > 0) { + for (var i = 0; i < shape.lanes.length; i++) { + height = shape.lanes[parseInt(i.toString(), 10)].height; + totalHeight += height; + if (i === shape.lanes.length - 1 && totalHeight < object.height) { + height += object.height - totalHeight; + } + createRow(row, height); + } + } + } + else { + if (shape.phases.length > 0) { + var phaseHeight = 0; + for (var i = 0; i < shape.phases.length; i++) { + var phaseOffset = shape.phases[parseInt(i.toString(), 10)].offset; + if (i === 0) { + phaseHeight += phaseOffset; + } + else { + phaseOffset -= phaseHeight; + phaseHeight += phaseOffset; + } + height = phaseOffset; + totalHeight += height; + if (i === shape.phases.length - 1 && totalHeight < object.height) { + height += object.height - totalHeight; + } + createRow(row, height); + } + } + else { + createRow(row, object.height); + } + } +} +/** + * initGridColumns method \ + * + * @returns {void} initGridRow method .\ + * @param {ColumnDefinition[]} columns - provide the row value. + * @param {boolean} orientation - provide the row value. + * @param {NodeModel} object - provide the row value. + * @private + */ +function initGridColumns(columns, orientation, object) { + var totalWidth = 0; + var shape = object.shape; + var phaseOffset; + var cols; + var k; + var j; + var value; + if (shape.phases.length > 0 && shape.orientation === 'Horizontal') { + for (j = 0; j < shape.phases.length; j++) { + phaseOffset = shape.phases[parseInt(j.toString(), 10)].offset; + if (j === 0) { + totalWidth += phaseOffset; + } + else { + phaseOffset -= totalWidth; + totalWidth += phaseOffset; + } + cols = createColumn(phaseOffset); + if (j === shape.phases.length - 1 && totalWidth < object.width) { + cols.width += object.width - totalWidth; + } + columns.push(cols); + } + } + else if (!orientation) { + value = (shape.phaseSize && shape.phases.length > 0) ? shape.lanes.length + + 1 : shape.lanes.length; + if (shape.phaseSize && shape.phases.length > 0) { + totalWidth += shape.phaseSize; + cols = createColumn(shape.phaseSize); + columns.push(cols); + } + for (k = 0; k < shape.lanes.length; k++) { + totalWidth += shape.lanes[parseInt(k.toString(), 10)].width; + cols = createColumn(shape.lanes[parseInt(k.toString(), 10)].width); + if (k === shape.lanes.length - 1 && totalWidth < object.width) { + cols.width += object.width - totalWidth; + } + columns.push(cols); + } + if ((shape.phases.length === 0 && shape.lanes.length === 0)) { + cols = createColumn(object.width); + columns.push(cols); + } + } + else { + cols = createColumn(object.width); + columns.push(cols); + } +} +/** + * getConnectors method \ + * + * @returns {void} getConnectors method .\ + * @param {Diagram} diagram - provide the row value. + * @param {GridPanel} grid - provide the row value. + * @param {number} rowIndex - provide the row value. + * @param {boolean} isRowUpdate - provide the row value. + * @private + */ +function getConnectors(diagram, grid, rowIndex, isRowUpdate) { + var connectors = []; + var conn = 0; + var childNode; + var node; + var k; + var i; + var j; + var canvas; + var row; + var length = grid.rowDefinitions().length; + var edges; + for (var i_1 = 0; i_1 < length; i_1++) { + row = grid.rows[parseInt(i_1.toString(), 10)]; + for (j = 0; j < row.cells.length; j++) { + canvas = row.cells[parseInt(j.toString(), 10)].children[0]; + if (canvas && canvas.children && canvas.children.length) { + for (k = 1; k < canvas.children.length; k++) { + childNode = canvas.children[parseInt(k.toString(), 10)]; + node = diagram.getObject(childNode.id); + if (node && (node.inEdges.length > 0 || node.outEdges.length > 0)) { + edges = node.inEdges.concat(node.outEdges); + for (conn = 0; conn < edges.length; conn++) { + if (connectors.indexOf(edges[parseInt(conn.toString(), 10)]) === -1) { + connectors.push(edges[parseInt(conn.toString(), 10)]); + } + } + } + } + } + } + } + return connectors; +} +/** + * swimLaneMeasureAndArrange method \ + * + * @returns {void} swimLaneMeasureAndArrange method .\ + * @param {NodeModel} obj - provide the row value. + * @private + */ +function swimLaneMeasureAndArrange(obj) { + var canvas = obj.wrapper; + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](obj.width, obj.height)); + if (canvas.children[0] instanceof _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["GridPanel"]) { + var grid = canvas.children[0]; + var isMeasure = false; + if (grid.width && grid.width < grid.desiredSize.width) { + isMeasure = true; + grid.width = grid.desiredSize.width; + } + if (grid.height && grid.height < grid.desiredSize.height) { + isMeasure = true; + grid.height = grid.desiredSize.height; + } + if (isMeasure) { + grid.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](grid.width, grid.height)); + } + } + canvas.arrange(canvas.desiredSize); +} +/** + * ChangeLaneIndex method \ + * + * @returns {void} ChangeLaneIndex method .\ + * @param {Diagram} diagram - provide the row value. + * @param {NodeModel} obj - provide the row value. + * @param {number} startRowIndex - provide the row value. + * @private + */ +function ChangeLaneIndex(diagram, obj, startRowIndex) { + var container = obj.wrapper.children[0]; + var i; + var j; + var k; + var object; + var subChild; + var row; + var cell; + var child; + for (i = startRowIndex; i < container.rows.length; i++) { + row = container.rows[parseInt(i.toString(), 10)]; + for (j = 0; j < row.cells.length; j++) { + cell = row.cells[parseInt(j.toString(), 10)]; + if (cell.children && cell.children.length > 0) { + for (k = 0; k < cell.children.length; k++) { + child = cell.children[parseInt(k.toString(), 10)]; + object = diagram.nameTable[child.id]; + if (object.isLane && child.children.length > 1) { + subChild = diagram.nameTable[child.children[1].id]; + if (subChild && subChild.isLane) { + subChild.rowIndex = i; + subChild.columnIndex = j; + } + } + object.rowIndex = i; + object.columnIndex = j; + } + } + } + } +} +/** + * arrangeChildNodesInSwimLane method \ + * + * @returns {void} arrangeChildNodesInSwimLane method .\ + * @param {Diagram} diagram - provide the row value. + * @param {NodeModel} obj - provide the row value. + * @private + */ +function arrangeChildNodesInSwimLane(diagram, obj) { + var grid = obj.wrapper.children[0]; + var shape = obj.shape; + var padding = shape.padding; + var lanes = shape.lanes; + var top = grid.bounds.y; + var rowvalue; + var columnValue; + var phaseCount = (shape.phaseSize > 0) ? shape.phases.length : 0; + var node; + var canvas; + var cell; + var i; + var j; + var k; + var orientation = shape.orientation === 'Horizontal' ? true : false; + var col = orientation ? shape.phases.length || 1 : lanes.length + 1; + var row = orientation ? ((shape.header && shape.hasHeader) ? 1 : 0) + + (shape.phases.length > 0 ? 1 : 0) + (shape.lanes.length) + : (shape.header && shape.hasHeader ? 1 : 0) + shape.phases.length; + if (phaseCount === 0 && !orientation && shape.lanes.length) { + row += 1; + } + if (orientation) { + rowvalue = (shape.header && shape.hasHeader ? 1 : 0) + (phaseCount > 0 ? 1 : 0); + columnValue = 0; + } + else { + rowvalue = (shape.header && shape.hasHeader ? 1 : 0); + columnValue = phaseCount > 0 ? 1 : 0; + } + if (lanes.length > 0) { + top += (shape.header && shape.hasHeader) ? shape.header.height : 0; + for (i = 0; i < lanes.length; i++) { + for (j = 0; j < lanes[parseInt(i.toString(), 10)].children.length; j++) { + node = lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]; + node.offsetX = lanes[parseInt(i.toString(), 10)].width; + node.offsetY = lanes[parseInt(i.toString(), 10)].height; + diagram.initObject(node); + diagram.nodes.push(node); + // EJ2-63939 - Check whether the lane child is BPMN text node or not + if (node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) { + obj.isTextNode = true; + } + canvas = node.wrapper; + if (orientation) { + for (k = columnValue; k < col; k++) { + cell = grid.rows[parseInt(rowvalue.toString(), 10)].cells[parseInt(k.toString(), 10)]; + if (canvas.margin.left < (cell.bounds.right - grid.bounds.x)) { + node.parentId = cell.children[0].id; + if (k > columnValue) { + canvas.margin.left = canvas.margin.left - (cell.bounds.left - grid.bounds.left); + } + else { + if ((cell.children[0].children[1].actualSize.width + padding) >= canvas.margin.left) { + canvas.margin.left = cell.children[0].children[1].actualSize.width + padding; + } + } + if (canvas.margin.left < padding) { + canvas.margin.left = padding; + } + if (canvas.margin.top < padding) { + canvas.margin.top = padding; + } + addChildToLane(canvas, node, diagram); + break; + } + } + } + else { + for (var k_1 = rowvalue; k_1 < row; k_1++) { + cell = grid.rows[parseInt(k_1.toString(), 10)].cells[parseInt(columnValue.toString(), 10)]; + if (canvas.margin.top < (cell.bounds.bottom - top)) { + node.parentId = cell.children[0].id; + if (k_1 > rowvalue) { + canvas.margin.top = canvas.margin.top - (cell.bounds.top - top); + } + else { + if ((cell.children[0].children[1].actualSize.height + padding) >= canvas.margin.top) { + canvas.margin.top = cell.children[0].children[1].actualSize.height + padding; + } + } + if (canvas.margin.left < padding) { + canvas.margin.left = padding; + } + if (canvas.margin.top < padding) { + canvas.margin.top = padding; + } + addChildToLane(canvas, node, diagram); + break; + } + } + } + } + // eslint-disable-next-line + orientation ? rowvalue++ : columnValue++; + } + } + grid.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](obj.width, obj.height)); + grid.arrange(grid.desiredSize); + updateChildOuterBounds(grid, obj); + obj.width = obj.wrapper.width = grid.width; + obj.height = obj.wrapper.height = grid.height; + updateHeaderMaxWidth(diagram, obj); + obj.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](obj.width, obj.height)); + obj.wrapper.arrange(grid.desiredSize); + checkLaneChildrenOffset(obj); + checkPhaseOffset(obj, diagram); + checkLaneSize(obj); +} +/** + * addChildToLane method \ + * + * @returns {void} addChildToLane method .\ + * @param {Container} canvas - provide the row value. + * @param {NodeModel} node - provide the row value. + * @param {Diagram} diagram - provide the row value. + * @private + */ +function addChildToLane(canvas, node, diagram) { + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](node.width, node.height)); + canvas.arrange(canvas.desiredSize); + var parent = diagram.getObject(node.parentId); + diagram.addChild(parent, node.id); +} +/** + * updateChildOuterBounds method \ + * + * @returns {void} updateChildOuterBounds method .\ + * @param {GridPanel} grid - provide the row value. + * @param {NodeModel} obj - provide the row value. + * @private + */ +function updateChildOuterBounds(grid, obj) { + var columnDefinitions = grid.columnDefinitions(); + var rowDefinitions = grid.rowDefinitions(); + var i; + var k; + var j; + var cell; + var child; + var row; + var rowIndex = findStartLaneIndex(obj); + if (obj.shape.orientation === 'Vertical') { + if (rowIndex === 0) { + rowIndex = (obj.shape.header && obj.shape.hasHeader) ? 1 : 0; + } + } + var padding = obj.shape.padding; + for (i = 0; i < columnDefinitions.length; i++) { + grid.updateColumnWidth(i, columnDefinitions[parseInt(i.toString(), 10)].width, true, padding); + } + for (i = rowIndex; i < rowDefinitions.length; i++) { + grid.updateRowHeight(i, rowDefinitions[parseInt(i.toString(), 10)].height, true, padding); + } + for (k = 0; k < rowDefinitions.length; k++) { + row = grid.rows[parseInt(k.toString(), 10)]; + for (i = 0; i < columnDefinitions.length; i++) { + cell = row.cells[parseInt(i.toString(), 10)]; + if (cell.children && cell.children.length > 0) { + for (j = 0; j < cell.children.length; j++) { + child = cell.children[parseInt(j.toString(), 10)]; + if (child.maxWidth) { + child.maxWidth = cell.actualSize.width; + } + if (child.maxHeight) { + child.maxHeight = cell.actualSize.height; + } + } + } + } + } +} +/** + * checkLaneSize method \ + * + * @returns {void} checkLaneSize method .\ + * @param {NodeModel} obj - provide the row value. + * @private + */ +function checkLaneSize(obj) { + if (obj.shape.type === 'SwimLane' && !obj.shape.isLane && !obj.shape.isPhase) { + var lane = void 0; + var i = void 0; + var columns = void 0; + var size = void 0; //let laneCount: number = 0; + var lanes = obj.shape.lanes; + var laneIndex = findStartLaneIndex(obj); + var rows = obj.wrapper.children[0].rowDefinitions(); + for (i = 0; i < lanes.length; i++, laneIndex++) { + lane = lanes[parseInt(i.toString(), 10)]; + if (obj.shape.orientation === 'Horizontal') { + size = rows[parseInt(laneIndex.toString(), 10)].height; + if (lane.height !== size) { + lane.height = size; + } + } + else { + columns = obj.wrapper.children[0].columnDefinitions(); + size = columns[parseInt(laneIndex.toString(), 10)].width; + if (lane.width !== size) { + lane.width = size; + } + } + } + } +} +/** + * checkPhaseOffset method \ + * + * @returns {void} checkPhaseOffset method .\ + * @param {NodeModel} obj - provide the obj value. + * @param {Diagram} diagram - provide the obj value. + * @private + */ +function checkPhaseOffset(obj, diagram) { + var shape = obj.shape; + var phases = shape.phases; + var i; + var offset; + var phaseRow; + var phase; + var gridRowIndex = (shape.header && shape.hasHeader) ? 1 : 0; + var grid = obj.wrapper.children[0]; + var top = grid.bounds.y + ((shape.header && shape.hasHeader) ? shape.header.height : 0); + if (obj.shape.type === 'SwimLane') { + obj = diagram.getObject(obj.id) || obj; + if (phases.length > 0) { + grid = obj.wrapper.children[0]; + if (shape.orientation === 'Horizontal') { + phaseRow = (shape.header && shape.hasHeader) ? grid.rows[1] : grid.rows[0]; + for (i = 0; i < phases.length; i++) { + phase = phaseRow.cells[parseInt(i.toString(), 10)].children[0]; + offset = phase.bounds.right - grid.bounds.x; + if (phases[parseInt(i.toString(), 10)].offset !== offset) { + phases[parseInt(i.toString(), 10)].offset = offset; + } + diagram.nameTable[phase.id].maxWidth = phase.maxWidth; + } + } + else { + for (i = 0; i < phases.length; i++) { + phase = grid.rows[gridRowIndex + i].cells[0].children[0]; + offset = phase.bounds.bottom - top; + if (phases[parseInt(i.toString(), 10)].offset !== offset) { + phases[parseInt(i.toString(), 10)].offset = offset; + } + diagram.nameTable[phase.id].maxWidth = phase.maxWidth; + } + } + } + } +} +/** + * updateConnectorsProperties method \ + * + * @returns {void} checkPhaseOffset method .\ + * @param {string[]} connectors - provide the obj value. + * @param {Diagram} diagram - provide the obj value. + * @private + */ +function updateConnectorsProperties(connectors, diagram) { + if (connectors && connectors.length > 0) { + var edges = void 0; + if (diagram.lineRoutingModule && (diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramConstraints"].LineRouting)) { + diagram.lineRoutingModule.renderVirtualRegion(diagram, true); + } + for (var i = 0; i < connectors.length; i++) { + edges = diagram.getObject(connectors[parseInt(i.toString(), 10)]); + if (diagram.lineRoutingModule && (diagram.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramConstraints"].LineRouting) && edges.type === 'Orthogonal') { + diagram.lineRoutingModule.refreshConnectorSegments(diagram, edges, true); + } + else { + diagram.connectorPropertyChange(edges, {}, { + sourceID: edges.sourceID, targetID: edges.targetID + }); + } + } + } +} +/** + * laneInterChanged method \ + * + * @returns {void} laneInterChanged method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} obj - provide the obj value. + * @param {NodeModel} target - provide the target value. + * @param {PointModel} position - provide the position value. + * @private + */ +function laneInterChanged(diagram, obj, target, position) { + var index; + var undoElement; + var entry; + var redoElement; + var sourceIndex; + var targetIndex; + var temp; + var sourceLaneIndex; + var targetLaneIndex; + var rowIndex; + var swimLane = (diagram.getObject(obj.parentId)); + var shape = swimLane.shape; + var grid = swimLane.wrapper.children[0]; + var lanes = shape.lanes; + var connectors = getConnectors(diagram, grid, obj.rowIndex, true); + if ((shape.orientation === 'Horizontal' && obj.rowIndex !== target.rowIndex) || + (shape.orientation === 'Vertical' && obj.columnIndex !== target.columnIndex)) { + if (shape.orientation === 'Horizontal') { + sourceIndex = obj.rowIndex; + targetIndex = target.rowIndex; + index = ((shape.header && shape.hasHeader) ? 1 : 0) + (shape.phases.length && shape.phaseSize ? 1 : 0); + sourceLaneIndex = obj.rowIndex - index; + targetLaneIndex = target.rowIndex - index; + if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) { + if (sourceLaneIndex < targetLaneIndex) { + if (position && target.wrapper.offsetY > position.y) { + targetIndex += (targetLaneIndex > 0) ? -1 : 1; + targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1; + } + } + else { + if (position && target.wrapper.offsetY < position.y) { + targetIndex += 1; + targetLaneIndex += 1; + } + } + if (sourceIndex !== targetIndex) { + grid.updateRowIndex(sourceIndex, targetIndex); + } + } + } + else { + sourceIndex = obj.columnIndex; + targetIndex = target.columnIndex; + index = (shape.phases.length && shape.phaseSize) ? 1 : 0; + sourceLaneIndex = obj.columnIndex - index; + targetLaneIndex = target.columnIndex - index; + rowIndex = (shape.header && shape.hasHeader) ? 1 : 0; + if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) { + if (sourceLaneIndex < targetLaneIndex) { + if (position && target.wrapper.offsetX > position.x) { + targetIndex += (targetLaneIndex > 0) ? -1 : 1; + targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1; + } + } + else { + if (position && target.wrapper.offsetX < position.x) { + targetIndex += 1; + targetLaneIndex += 1; + } + } + if (sourceIndex !== targetIndex) { + if ((shape.phaseSize === 0 || shape.phases.length === 0) && (targetIndex === 0 || sourceIndex === 0)) { + if (shape.header && shape.hasHeader) { + var changeHeaderIndex = (targetIndex === 0) ? sourceIndex : targetIndex; + grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].children = grid.rows[0].cells[0].children; + grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].columnSpan = grid.rows[0].cells[0].columnSpan; + grid.rows[0].cells[0].children = []; + } + } + grid.updateColumnIndex(0, sourceIndex, targetIndex); + } + } + } + if (sourceIndex !== targetIndex) { + temp = lanes[parseInt(sourceLaneIndex.toString(), 10)]; + if (temp.canMove) { + undoElement = { + target: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(target), source: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(obj) + }; + temp = lanes[parseInt(sourceLaneIndex.toString(), 10)]; + lanes.splice(sourceLaneIndex, 1); + lanes.splice(targetLaneIndex, 0, temp); + redoElement = { + target: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(undoElement.source), source: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(undoElement.target) + }; + entry = { + type: 'LanePositionChanged', redoObject: redoElement, + undoObject: undoElement, category: 'Internal' + }; + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + diagram.commandHandler.addHistoryEntry(entry); + } + ChangeLaneIndex(diagram, swimLane, 0); + updateConnectorsProperties(connectors, diagram); + updateSwimLaneChildPosition(lanes, diagram); + swimLane.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](swimLane.width, swimLane.height)); + swimLane.wrapper.arrange(swimLane.wrapper.desiredSize); + diagram.updateDiagramObject(swimLane); + } + } + } + diagram.updateDiagramElementQuad(); +} +/** + * updateSwimLaneObject method \ + * + * @returns {void} updateSwimLaneObject method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {Node} obj - provide the obj value. + * @param {NodeModel} swimLane - provide the target value. + * @param {NodeModel} helperObject - provide the position value. + * @private + */ +function updateSwimLaneObject(diagram, obj, swimLane, helperObject) { + var parentNode = diagram.getObject(swimLane.id); + var shape = parentNode.shape; + var index = (shape.header && shape.hasHeader) ? 1 : 0; + var lanes = shape.lanes; + var phases = shape.phases; + var helperWidth = helperObject.wrapper.actualSize.width; + var helperHeight = helperObject.wrapper.actualSize.height; + var objWidth = obj.wrapper.actualSize.width; + var objHeight = obj.wrapper.actualSize.height; + if (parentNode.shape.type === 'SwimLane') { + if (shape.orientation === 'Horizontal') { + if (obj.isPhase) { + phases[obj.columnIndex].offset += (helperWidth - objWidth); + } + else { + index = (shape.phaseSize && shape.phases.length > 0) ? index + 1 : index; + lanes[(obj.rowIndex - index)].height += (helperHeight - objHeight); + } + } + else { + if (obj.isPhase) { + phases[(obj.rowIndex - index)].offset += (helperHeight - objHeight); + } + else { + index = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0; + lanes[(obj.columnIndex - index)].width += (helperWidth - objWidth); + } + } + } +} +/** + * findLaneIndex method \ + * + * @returns {number} findLaneIndex method .\ + * @param {NodeModel} swimLane - provide the diagram value. + * @param {NodeModel} laneObj - provide the obj value. + * @private + */ +function findLaneIndex(swimLane, laneObj) { + var laneIndex; + var shape = swimLane.shape; + var index = (shape.header && shape.hasHeader) ? 1 : 0; + if (shape.orientation === 'Horizontal') { + index += shape.phases.length > 0 ? 1 : 0; + laneIndex = laneObj.rowIndex - index; + } + else { + laneIndex = laneObj.columnIndex - (shape.phaseSize && shape.phases.length > 0 ? 1 : 0); + } + return laneIndex; +} +/** + * findPhaseIndex method \ + * + * @returns {number} findPhaseIndex method .\ + * @param {NodeModel} phase - provide the diagram value. + * @param {NodeModel} swimLane - provide the obj value. + * @private + */ +function findPhaseIndex(phase, swimLane) { + var shape = swimLane.shape; + var index = (shape.header && shape.hasHeader) ? 1 : 0; + var phaseIndex = (shape.orientation === 'Horizontal') ? phase.columnIndex : phase.rowIndex - index; + return phaseIndex; +} +/** + * findStartLaneIndex method \ + * + * @returns {number} findStartLaneIndex method .\ + * @param {NodeModel} swimLane - provide the obj value. + * @private + */ +function findStartLaneIndex(swimLane) { + var index = 0; + var shape = swimLane.shape; + if (shape.orientation === 'Horizontal') { + index = (shape.header && shape.hasHeader) ? 1 : 0; + } + if (shape.phases.length > 0 && shape.phaseSize) { + index += 1; + } + return index; +} +/** + * updatePhaseMaxWidth method \ + * + * @returns {void} updatePhaseMaxWidth method .\ + * @param {NodeModel} parent - provide the obj value. + * @param {Diagram} diagram - provide the obj value. + * @param {Canvas} wrapper - provide the obj value. + * @param {number} columnIndex - provide the obj value. + * @private + */ +function updatePhaseMaxWidth(parent, diagram, wrapper, columnIndex) { + var shape = parent.shape; + if (shape.phases.length > 0) { + var node = diagram.nameTable[shape.phases[parseInt(columnIndex.toString(), 10)].header.id]; + if (node && node.maxWidth < wrapper.outerBounds.width) { + node.maxWidth = wrapper.outerBounds.width; + node.wrapper.maxWidth = wrapper.outerBounds.width; + } + } +} +/** + * updateHeaderMaxWidth method \ + * + * @returns {void} updateHeaderMaxWidth method .\ + * @param {NodeModel} diagram - provide the obj value. + * @param {NodeModel} swimLane - provide the obj value. + * @private + */ +function updateHeaderMaxWidth(diagram, swimLane) { + if (swimLane.shape.header && swimLane.shape.hasHeader) { + var grid = swimLane.wrapper.children[0]; + var id = grid.rows[0].cells[0].children[0].id; + var headerNode = diagram.nameTable["" + id]; + if (headerNode && headerNode.isHeader && headerNode.maxWidth < swimLane.width) { + headerNode.maxWidth = swimLane.width; + headerNode.wrapper.maxWidth = swimLane.width; + } + } +} +/** + * addLane method \ + * + * @returns {void} addLane method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {NodeModel} parent - provide the obj value. + * @param {LaneModel} lane - provide the obj value. + * @param {number} count - provide the obj value. + * @private + */ +function addLane(diagram, parent, lane, count) { + var args; + var swimLane = diagram.nameTable[parent.id]; + if (swimLane.shape.type === 'SwimLane') { + diagram.protectPropertyChange(true); + var grid = swimLane.wrapper.children[0]; + var bounds = grid.bounds; + var shape = swimLane.shape; + var redoObj = void 0; + var orientation_1 = false; + var entry = void 0; + var index = void 0; + var children = void 0; + var j = void 0; + var i = void 0; + var k = void 0; + var cell = void 0; + var child = void 0; + var point = void 0; + var laneObj = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Lane"](shape, 'lanes', lane, true); + index = (shape.header && shape.hasHeader) ? 1 : 0; + if (shape.orientation === 'Horizontal') { + orientation_1 = true; + index = shape.phases.length > 0 ? index + 1 : index; + } + var connectors = getConnectors(diagram, grid, 0, true); + var laneIndex = (count !== undefined) ? count : shape.lanes.length; + index += laneIndex; + args = { + element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Addition', cancel: false, laneIndex: laneIndex + }; + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramEvent"].collectionChange, args); + if (!args.cancel) { + if (orientation_1) { + var rowDef = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["RowDefinition"](); + rowDef.height = lane.height; + grid.addRow(index, rowDef, false); + swimLane.height = (swimLane.height !== undefined) ? swimLane.height + lane.height : swimLane.height; + swimLane.wrapper.height = grid.height = swimLane.height; + } + else { + var colDef = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["ColumnDefinition"](); + colDef.width = lane.width; + grid.addColumn(laneIndex + 1, colDef, false); + if (swimLane.width) { + swimLane.width += lane.width; + swimLane.wrapper.width = grid.width = swimLane.width; + } + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + grid.rows[0].cells[0].columnSpan += 1; + } + } + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + laneObj.id = (laneObj.id === '') ? Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])() : laneObj.id; + } + if (count !== undefined) { + shape.lanes.splice(count, 0, laneObj); + } + else { + shape.lanes.push(laneObj); + } + args = { + element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Addition', cancel: false, laneIndex: laneIndex + }; + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramEvent"].collectionChange, args); + laneCollection(grid, diagram, swimLane, index, laneIndex, orientation_1); + redoObj = (shape.orientation === 'Horizontal') ? + diagram.nameTable[grid.rows[parseInt(index.toString(), 10)].cells[0].children[0].id] : + ((shape.header && shape.hasHeader) ? diagram.nameTable[grid.rows[1].cells[parseInt(index.toString(), 10)].children[0].id] : + diagram.nameTable[grid.rows[0].cells[parseInt(index.toString(), 10)].children[0].id]); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + entry = { + type: 'LaneCollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(laneObj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(redoObj), category: 'Internal' + }; + diagram.addHistoryEntry(entry); + } + var startRowIndex = (shape.orientation === 'Horizontal') ? + index : ((shape.header && shape.hasHeader) ? 1 : 0); + ChangeLaneIndex(diagram, swimLane, startRowIndex); + swimLaneMeasureAndArrange(swimLane); + updateHeaderMaxWidth(diagram, swimLane); + children = lane.children; + if (children && children.length > 0) { + for (j = 0; j < children.length; j++) { + child = children[parseInt(j.toString(), 10)]; + point = { x: child.wrapper.offsetX, y: child.wrapper.offsetY }; + if (shape.orientation === 'Horizontal') { + cell = grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)]; + for (i = 0; i < grid.rows[parseInt(index.toString(), 10)].cells.length; i++) { + addChildNodeToNewLane(diagram, grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)], point, child); + } + } + else { + for (k = 0; k < grid.rows.length; k++) { + cell = grid.rows[parseInt(k.toString(), 10)].cells[parseInt(index.toString(), 10)]; + addChildNodeToNewLane(diagram, cell, point, child); + } + } + } + } + updateConnectorsProperties(connectors, diagram); + diagram.drag(swimLane, bounds.x - grid.bounds.x, bounds.y - grid.bounds.y); + } + diagram.protectPropertyChange(false); + } +} +/** + * addChildNodeToNewLane method \ + * + * @returns {void} addChildNodeToNewLane method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {GridCell} cell - provide the cell value. + * @param {PointModel} point - provide the point value. + * @param {NodeModel} child - provide the child value. + * @private + */ +function addChildNodeToNewLane(diagram, cell, point, child) { + if (cell.children && cell.children.length > 0) { + var canvas = cell.children[0]; + var parent_1 = diagram.nameTable[canvas.id]; + if (canvas.bounds.containsPoint(point)) { + diagram.addChild(parent_1, child); + } + } +} +/** + * addPhase method \ + * + * @returns {void} addPhase method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} parent - provide the cell value. + * @param {PhaseModel} newPhase - provide the point value. + * @private + */ +function addPhase(diagram, parent, newPhase) { + if (parent.shape.type === 'SwimLane') { + var gridRowIndex = void 0; + var gridColIndex = void 0; + var phaseNode = void 0; + var phase = void 0; + var previousPhase = void 0; + var nextPhase = void 0; + var phaseIndex = void 0; + var i = void 0; + var x = parent.wrapper.bounds.x; + var y = parent.wrapper.bounds.y; + var shape = parent.shape; + var padding = shape.padding; + var phasesCollection = shape.phases; + var width = void 0; + var grid = parent.wrapper.children[0]; + var orientation_2 = shape.orientation === 'Horizontal' ? true : false; + gridRowIndex = (shape.header && shape.hasHeader) ? 0 : -1; + if (shape.phases.length > 0) { + gridRowIndex += 1; + gridColIndex = 0; + } + var laneHeaderSize = (orientation_2) ? shape.lanes[0].header.width : shape.lanes[0].header.height; + if (newPhase.offset > laneHeaderSize) { + for (i = 0; i < phasesCollection.length; i++) { + phase = phasesCollection[parseInt(i.toString(), 10)]; + previousPhase = (i > 0) ? phasesCollection[i - 1] : phase; + if (phase.offset > newPhase.offset) { + width = (i > 0) ? newPhase.offset - previousPhase.offset : newPhase.offset; + if (orientation_2) { + var nextCol = grid.columnDefinitions()[parseInt(i.toString(), 10)]; + nextCol.width -= width; + nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id]; + nextPhase.maxWidth = nextPhase.wrapper.maxWidth = nextCol.width; + grid.updateColumnWidth(i, nextCol.width, false); + var addPhase_1 = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["ColumnDefinition"](); + addPhase_1.width = width; + phaseIndex = i; + grid.addColumn(i, addPhase_1, false); + break; + } + else { + var nextRow = grid.rowDefinitions()[i + gridRowIndex]; + nextRow.height -= width; + nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id]; + grid.updateRowHeight(i + gridRowIndex, nextRow.height, false); + var addPhase_2 = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["RowDefinition"](); + addPhase_2.height = width; + phaseIndex = i; + grid.addRow(i + gridRowIndex, addPhase_2, false); + break; + } + } + } + if (diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo && phaseIndex === undefined) { + var entry = diagram.historyManager.currentEntry.next; + if (entry.isLastPhase) { + phaseIndex = phasesCollection.length; + addLastPhase(phaseIndex, parent, entry, grid, orientation_2, newPhase); + } + } + var phaseObj = new _objects_node__WEBPACK_IMPORTED_MODULE_0__["Phase"]((parent.shape), 'phases', newPhase, true); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + phaseObj.id += Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + } + shape.phases.splice(phaseIndex, 0, phaseObj); + phaseDefine(grid, diagram, parent, gridRowIndex, orientation_2, phaseIndex); + if (orientation_2) { + phaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[parseInt(phaseIndex.toString(), 10)].children[0].id]; + if (phaseIndex === 0 && shape.header && shape.hasHeader) { + grid.rows[0].cells[0].children = grid.rows[0].cells[1].children; + grid.rows[0].cells[1].children = []; + var fristRow = grid.rows[0]; + for (var i_2 = 0; i_2 < fristRow.cells.length; i_2++) { + fristRow.cells[parseInt(i_2.toString(), 10)].minWidth = undefined; + if (i_2 === 0) { + fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = grid.rows[0].cells.length; + } + else { + fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = 1; + } + } + } + addHorizontalPhase(diagram, parent, grid, phaseIndex, orientation_2); + var col = grid.columnDefinitions(); + grid.updateColumnWidth(phaseIndex, col[parseInt(phaseIndex.toString(), 10)].width, true, padding); + phaseNode.maxWidth = phaseNode.wrapper.maxWidth = col[parseInt(phaseIndex.toString(), 10)].width; + if (col.length > phaseIndex + 1) { + var nextPhaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[phaseIndex + 1].children[0].id]; + grid.updateColumnWidth(phaseIndex + 1, col[phaseIndex + 1].width, true, padding); + nextPhaseNode.maxWidth = nextPhaseNode.wrapper.maxWidth = col[phaseIndex + 1].width; + } + parent.width = parent.wrapper.width = parent.wrapper.children[0].width = grid.width; + } + else { + phaseNode = diagram.nameTable[grid.rows[gridRowIndex + phaseIndex].cells[0].children[0].id]; + var row = grid.rowDefinitions(); + var size = row[gridRowIndex + phaseIndex].height; + addVerticalPhase(diagram, parent, grid, gridRowIndex + phaseIndex, orientation_2); + grid.updateRowHeight(gridRowIndex + phaseIndex, size, true, padding); + if (row.length > gridRowIndex + phaseIndex + 1) { + size = row[gridRowIndex + phaseIndex + 1].height; + grid.updateRowHeight(gridRowIndex + phaseIndex + 1, size, true, padding); + } + parent.height = parent.wrapper.height = parent.wrapper.children[0].height = grid.actualSize.height; + } + swimLaneMeasureAndArrange(parent); + parent.width = parent.wrapper.actualSize.width; + updateHeaderMaxWidth(diagram, parent); + diagram.drag(parent, x - parent.wrapper.bounds.x, y - parent.wrapper.bounds.y); + checkPhaseOffset(parent, diagram); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'PhaseCollectionChanged', changeType: 'Insert', undoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(phaseObj), + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(phaseNode), category: 'Internal' + }; + diagram.addHistoryEntry(entry); + } + diagram.updateDiagramObject(parent); + } + } +} +/** + * addLastPhase method \ + * + * @returns {void} addLastPhase method .\ + * @param {number} phaseIndex - provide the diagram value. + * @param {NodeModel} parent - provide the cell value. + * @param {HistoryEntry} entry - provide the point value. + * @param {GridPanel} grid - provide the grid value. + * @param {boolean} orientation - provide the orientation value. + * @param {PhaseModel} newPhase - provide the newPhase value. + * @private + */ +function addLastPhase(phaseIndex, parent, entry, grid, orientation, newPhase) { + var shape = parent.shape; + var prevPhase = shape.phases[phaseIndex - 2]; + var prevOffset = entry.previousPhase.offset; + if (orientation) { + var nextCol = grid.columnDefinitions()[phaseIndex - 1]; + var addPhase_3 = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["ColumnDefinition"](); + if (phaseIndex > 1) { + addPhase_3.width = (nextCol.width) - (prevOffset - prevPhase.offset); + nextCol.width = prevOffset - prevPhase.offset; + } + else { + addPhase_3.width = nextCol.width - prevOffset; + nextCol.width = prevOffset; + } + grid.updateColumnWidth(phaseIndex - 1, nextCol.width, false); + grid.addColumn(phaseIndex, addPhase_3, false); + } + else { + var nextCol = grid.rowDefinitions()[parseInt(phaseIndex.toString(), 10)]; + var addPhase_4 = new _core_containers_grid__WEBPACK_IMPORTED_MODULE_1__["RowDefinition"](); + if (phaseIndex > 1) { + addPhase_4.height = entry.undoObject.offset - prevOffset; + nextCol.height = prevOffset - prevPhase.offset; + } + else { + addPhase_4.height = nextCol.height - prevOffset; + nextCol.height = prevOffset; + } + grid.updateRowHeight(phaseIndex, nextCol.height, false); + grid.addRow(1 + phaseIndex, addPhase_4, false); + } +} +/** + * addHorizontalPhase method \ + * + * @returns {void} addHorizontalPhase method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the cell value. + * @param {GridPanel} grid - provide the point value. + * @param {number} index - provide the point value. + * @param {boolean} orientation - provide the point value. + * @private + */ +function addHorizontalPhase(diagram, node, grid, index, orientation) { + var shape = node.shape; + var nextCell; + var i; + var prevCell; + var gridCell; + var row; + var laneIndex = findStartLaneIndex(node); + if (shape.header && shape.hasHeader) { + grid.rows[0].cells[0].columnSpan = grid.rows[0].cells.length; + } + for (i = laneIndex; i < grid.rows.length; i++) { + row = grid.rows[parseInt(i.toString(), 10)]; + prevCell = row.cells[index - 1]; + gridCell = row.cells[parseInt(index.toString(), 10)]; + nextCell = row.cells[index + 1]; + addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, i, index); + } + ChangeLaneIndex(diagram, node, 1); +} +/** + * addVerticalPhase method \ + * + * @returns {void} addVerticalPhase method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the cell value. + * @param {GridPanel} grid - provide the point value. + * @param {number} rowIndex - provide the point value. + * @param {boolean} orientation - provide the point value. + * @private + */ +function addVerticalPhase(diagram, node, grid, rowIndex, orientation) { + var prevCell; + var gridCell; + var nextCell; + var row = grid.rows[parseInt(rowIndex.toString(), 10)]; + var nextRow = grid.rows[rowIndex + 1]; + var prevRow = grid.rows[rowIndex - 1]; + for (var i = 1; i < row.cells.length; i++) { + gridCell = row.cells[parseInt(i.toString(), 10)]; + nextCell = (nextRow) ? nextRow.cells[parseInt(i.toString(), 10)] : undefined; + prevCell = prevRow.cells[parseInt(i.toString(), 10)]; + addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, i); + } + ChangeLaneIndex(diagram, node, 1); +} +/** + * addSwimlanePhases method \ + * + * @returns {void} addSwimlanePhases method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the node value. + * @param {GridPanel} prevCell - provide the prevCell value. + * @param {number} gridCell - provide the gridCell value. + * @param {boolean} nextCell - provide the nextCell value. + * @param {boolean} rowIndex - provide the rowIndex value. + * @param {boolean} columnIndex - provide the columnIndex value. + * @private + */ +function addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, columnIndex) { + var x; + var y; + var shape = node.shape; + var orientation = shape.orientation === 'Horizontal' ? true : false; + var grid = node.wrapper.children[0]; + var width = gridCell.desiredCellWidth; + var height = gridCell.desiredCellHeight; + //const col: number = (orientation) ? rowIndex : columnIndex; + //let parentWrapper: Container; + var j; + var i = (orientation) ? rowIndex : columnIndex; + if (prevCell) { + x = orientation ? prevCell.bounds.x + prevCell.bounds.width : prevCell.bounds.x; + y = orientation ? prevCell.bounds.y : prevCell.bounds.y + prevCell.bounds.height; + } + else { + x = grid.bounds.x; + y = nextCell.bounds.y; + } + var rect = new _primitives_rect__WEBPACK_IMPORTED_MODULE_8__["Rect"](x, y, width, height); + var canvas = { + id: node.id + ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).id + Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])()[0], + rowIndex: rowIndex, columnIndex: columnIndex, + width: gridCell.minWidth, height: gridCell.minHeight, + style: ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).style, + constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].AllowDrop, + container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' } + }; + var parentWrapper = addObjectToGrid(diagram, grid, node, canvas, false, false, true); + parentWrapper.children[0].isCalculateDesiredSize = false; + grid.addObject(parentWrapper, rowIndex, columnIndex); + if (nextCell && nextCell.children && nextCell.children.length) { + for (j = 0; j < nextCell.children.length; j++) { + if (orientation) { + diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].columnIndex += 1; + } + else { + diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].rowIndex += 1; + } + } + } + arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell); +} +/** + * arrangeChildInGrid method \ + * + * @returns {void} arrangeChildInGrid method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {GridCell} nextCell - provide the nextCell value. + * @param {GridPanel} gridCell - provide the gridCell value. + * @param {Rect} rect - provide the rect value. + * @param {Container} parentWrapper - provide the parentWrapper value. + * @param {boolean} orientation - provide the orientation value. + * @param {GridCell} prevCell - provide the prevCell value. + * @private + */ +function arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell) { + var child; + var point; + var childNode; + var parent = diagram.nameTable[parentWrapper.id]; + var changeCell = (!nextCell) ? prevCell : nextCell; + var swimLane = diagram.nameTable[parent.parentId]; + var padding = swimLane.shape.padding; + if (changeCell.children && changeCell.children[0].children.length > 1) { + for (var j = 1; j < changeCell.children[0].children.length; j++) { + child = changeCell.children[0].children[parseInt(j.toString(), 10)]; + childNode = diagram.nameTable[child.id]; + point = (orientation) ? { x: child.bounds.x, y: child.bounds.center.y } : + { x: child.bounds.center.x, y: child.bounds.top }; + if (rect.containsPoint(point)) { + gridCell.children[0].children.push(child); + changeCell.children[0].children.splice(j, 1); + j--; + diagram.deleteChild(childNode); + if (!childNode.isLane) { + childNode.parentId = parentWrapper.id; + } + if (!parent.children) { + parent.children = []; + } + if (!nextCell) { + if (orientation) { + childNode.margin.left = childNode.wrapper.bounds.x - changeCell.children[0].bounds.right; + } + else { + childNode.margin.top = childNode.wrapper.bounds.y - changeCell.children[0].bounds.bottom; + } + } + parent.children.push(child.id); + childNode.zIndex = parent.zIndex + 1; + diagram.removeElements(childNode); + } + else if (nextCell) { + if (orientation) { + childNode.margin.left -= gridCell.desiredCellWidth; + if (padding > childNode.margin.left) { + childNode.margin.left = padding; + } + } + else { + childNode.margin.top -= gridCell.desiredCellHeight; + if (padding > childNode.margin.top) { + childNode.margin.top = padding; + } + } + } + } + } +} +/** + * swimLaneSelection method \ + * + * @returns {void} swimLaneSelection method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the node value. + * @param {string} corner - provide the corner value. + * @private + */ +function swimLaneSelection(diagram, node, corner) { + if (node.shape.type === 'SwimLane' && (corner === 'ResizeSouth' || corner === 'ResizeEast')) { + var shape = node.shape; + var wrapper = node.wrapper.children[0]; + var child = void 0; + var index = void 0; + if (corner === 'ResizeSouth') { + if (shape.orientation === 'Vertical') { + child = wrapper.rows[wrapper.rows.length - 1].cells[0]; + } + else { + index = wrapper.rows.length - 1; + child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1]; + } + } + else { + index = (shape.header && shape.hasHeader) ? 1 : 0; + child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1]; + } + diagram.commandHandler.select(diagram.nameTable[child.children[0].id]); + } +} +/** + * pasteSwimLane method \ + * + * @returns {void} pasteSwimLane method .\ + * @param {Diagram} swimLane - provide the diagram value. + * @param {NodeModel} diagram - provide the diagram value. + * @param {string} clipboardData - provide the clipboardData value. + * @param {string} laneNode - provide the laneNode value. + * @param {string} isLane - provide the isLane value. + * @param {string} isUndo - provide the isUndo value. + * @private + */ +function pasteSwimLane(swimLane, diagram, clipboardData, laneNode, isLane, isUndo) { + var i; + var j; + var lane; + var phase; + var node; + var ranId = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["randomId"])(); + var cloneLane; + var childX; + var childY; + var shape = swimLane.shape; //let lanes: LaneModel[]; + var phases = shape.phases; + var nodeX = swimLane.offsetX - swimLane.wrapper.actualSize.width / 2; + var nodeY = swimLane.offsetY - swimLane.wrapper.actualSize.height / 2; + if (shape.orientation === 'Vertical') { + nodeY += (shape.header && shape.hasHeader) ? shape.header.height : 0; + } + if (!isUndo) { + if (!isLane) { + swimLane.id += ranId; + if (shape && shape.header && shape.hasHeader) { + shape.header.id += ranId; + } + else { + shape.header = undefined; + } + } + for (i = 0; phases && i < phases.length; i++) { + phase = phases[parseInt(i.toString(), 10)]; + phase.id += ranId; + } + } + var lanes = (isLane) ? [clipboardData.childTable[laneNode.id]] : shape.lanes; + for (i = 0; lanes && i < lanes.length; i++) { + lane = lanes[parseInt(i.toString(), 10)]; + if (!isUndo) { + lane.id += ranId; + } + for (j = 0; lane.children && j < lane.children.length; j++) { + node = lane.children[parseInt(j.toString(), 10)]; + childX = node.wrapper.offsetX - node.width / 2; + childY = node.wrapper.offsetY - node.height / 2; + node.zIndex = -1; + node.inEdges = node.outEdges = []; + if (isUndo || (clipboardData && (clipboardData.pasteIndex === 1 || clipboardData.pasteIndex === 0))) { + if (shape.orientation === 'Vertical') { + node.margin.top = childY - nodeY; + } + else { + node.margin.left = childX - nodeX; + } + } + if (!isUndo) { + node.id += ranId; + } + } + } + if (!isUndo) { + if (isLane) { + var newShape = { + lanes: lanes, + phases: phases, phaseSize: shape.phaseSize, + type: 'SwimLane', orientation: shape.orientation, + header: { annotation: { content: 'Title' }, height: 50 } + }; + cloneLane = { shape: newShape }; + if (shape.orientation === 'Horizontal') { + cloneLane.width = swimLane.wrapper.actualSize.width; + cloneLane.height = laneNode.wrapper.actualSize.height + shape.header.height + shape.phaseSize; + cloneLane.offsetX = swimLane.wrapper.offsetX + (clipboardData.pasteIndex * 10); + cloneLane.offsetY = laneNode.wrapper.offsetY + (clipboardData.pasteIndex * 10); + } + else { + cloneLane.width = laneNode.wrapper.actualSize.width; + cloneLane.height = swimLane.wrapper.actualSize.height; + cloneLane.offsetX = laneNode.wrapper.offsetX + (clipboardData.pasteIndex * 10); + cloneLane.offsetY = swimLane.wrapper.offsetY + (clipboardData.pasteIndex * 10); + } + swimLane = cloneLane; + } + if (clipboardData.pasteIndex !== 0) { + swimLane.offsetX += 10; + swimLane.offsetY += 10; + } + swimLane.zIndex = -1; + swimLane = diagram.add(swimLane); + if (!isLane) { + for (var _i = 0, _a = Object.keys(clipboardData.childTable); _i < _a.length; _i++) { + var i_3 = _a[_i]; + var connector = clipboardData.childTable["" + i_3]; + connector.id += ranId; + connector.sourceID += ranId; + connector.targetID += ranId; + connector.zIndex = -1; + diagram.add(connector); + } + } + if (diagram.mode !== 'SVG') { + diagram.refreshDiagramLayer(); + } + diagram.select([swimLane]); + } + return swimLane; +} +/** + * gridSelection method \ + * + * @returns {void} gridSelection method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {SelectorModel} selectorModel - provide the selectorModel value. + * @param {string} id - provide the id value. + * @param {boolean} isSymbolDrag - provide the isSymbolDrag value. + * @private + */ +function gridSelection(diagram, selectorModel, id, isSymbolDrag) { + var canvas; + var node = selectorModel.nodes[0]; + if (isSymbolDrag || Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_9__["checkParentAsContainer"])(diagram, node, true)) { + var targetnode = void 0; + var bounds = void 0; + var swimLaneId = void 0; + var element = new _core_elements_diagram_element__WEBPACK_IMPORTED_MODULE_4__["DiagramElement"](); + if (id) { + swimLaneId = (diagram.nameTable["" + id].parentId); + targetnode = node = diagram.nameTable["" + id]; + } + var wrapper = !id ? node.wrapper : targetnode.wrapper; + var parentNode = diagram.nameTable[swimLaneId || node.parentId]; + if (parentNode && parentNode.container.type === 'Grid') { + canvas = new _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"](); + canvas.children = []; + if (isSymbolDrag || !(node.isHeader)) { + if ((parentNode.container.orientation === 'Horizontal' && node.isPhase) || + (parentNode.container.orientation === 'Vertical' && + (node.rowIndex > 0 && node.columnIndex > 0 || node.isLane))) { + bounds = Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_9__["findBounds"])(parentNode, (targetnode) ? targetnode.columnIndex : node.columnIndex, (parentNode.shape.header && parentNode.shape.hasHeader) ? true : false); + canvas.offsetX = bounds.center.x; + canvas.offsetY = bounds.center.y; + element.width = bounds.width; + element.height = bounds.height; + } + else { + canvas.offsetX = parentNode.offsetX; + canvas.offsetY = wrapper.offsetY; + element.width = parentNode.wrapper.actualSize.width; + element.height = wrapper.actualSize.height; + } + } + canvas.children.push(element); + canvas.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"]()); + canvas.arrange(canvas.desiredSize); + } + } + return canvas; +} +/** + * removeLaneChildNode method \ + * + * @returns {void} removeLaneChildNode method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} swimLaneNode - provide the diagram value. + * @param {NodeModel} currentObj - provide the currentObj value. + * @param {NodeModel} isChildNode - provide the isChildNode value. + * @param {number} laneIndex - provide the laneIndex value. + * @private + */ +function removeLaneChildNode(diagram, swimLaneNode, currentObj, isChildNode, laneIndex) { + laneIndex = (laneIndex !== undefined) ? laneIndex : findLaneIndex(swimLaneNode, currentObj); + var preventHistory = false; + var lanenode = swimLaneNode.shape.lanes[parseInt(laneIndex.toString(), 10)]; + for (var j = lanenode.children.length - 1; j >= 0; j--) { + if (isChildNode) { + if (isChildNode.id === lanenode.children[parseInt(j.toString(), 10)].id) { + lanenode.children.splice(j, 1); + } + } + else { + diagram.removeDependentConnector(lanenode.children[parseInt(j.toString(), 10)]); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + diagram.diagramActions = diagram.diagramActions | _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo; + preventHistory = true; + } + diagram.remove(lanenode.children[parseInt(j.toString(), 10)]); + lanenode.children.splice(j, 1); + if (preventHistory) { + diagram.diagramActions = diagram.diagramActions & ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo; + } + } + } +} +/** + * getGridChildren method \ + * + * @returns {DiagramElement} getGridChildren method .\ + * @param {Diagram} obj - provide the obj value. + * @private + */ +function getGridChildren(obj) { + var children = obj.children[0]; + return children; +} +/** + * removeSwimLane method \ + * + * @returns {void} removeSwimLane method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {NodeModel} obj - provide the obj value. + * @private + */ +function removeSwimLane(diagram, obj) { + var rows = obj.wrapper.children[0].rows; + //let preventHistory: boolean = false; + var node; + var i; + var j; + var k; + var child; + var removeNode; + for (i = 0; i < rows.length; i++) { + for (j = 0; j < rows[parseInt(i.toString(), 10)].cells.length; j++) { + child = getGridChildren(rows[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)]); + if (child && child.children) { + for (k = child.children.length - 1; k >= 0; k--) { + if (child.children[parseInt(k.toString(), 10)].children) { + removeNode = diagram.nameTable[child.children[parseInt(k.toString(), 10)].id]; + if (removeNode) { + if (removeNode.isLane) { + deleteNode(diagram, removeNode); + } + else { + diagram.removeDependentConnector(removeNode); + diagram.diagramActions |= _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].PreventHistory; + if ((removeNode.constraints & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Delete)) { + diagram.remove(removeNode); + } + else { + Object(_interaction_container_interaction__WEBPACK_IMPORTED_MODULE_9__["removeChildInContainer"])(diagram, removeNode, {}, false); + } + diagram.diagramActions &= ~_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].PreventHistory; + } + } + } + } + } + if (child) { + node = diagram.nameTable[child.id]; + if (node) { + deleteNode(diagram, node); + } + } + } + } +} +/** + * deleteNode method \ + * + * @returns {void} deleteNode method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {NodeModel} node - provide the obj value. + * @private + */ +function deleteNode(diagram, node) { + diagram.nodes.splice(diagram.nodes.indexOf(node), 1); + diagram.removeFromAQuad(node); + diagram.removeObjectsFromLayer(node); + delete diagram.nameTable[node.id]; + diagram.removeElements(node); +} +/** + * removeLane method \ + * + * @returns {void} removeLane method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {NodeModel} lane - provide the obj value. + * @param {NodeModel} swimLane - provide the obj value. + * @param {LaneModel} lanes - provide the obj value. + * @private + */ +function removeLane(diagram, lane, swimLane, lanes) { + var args; + if (swimLane.shape.type === 'SwimLane') { + var shape = swimLane.shape; + var laneIndex = void 0; + if (shape.lanes.length === 1) { + diagram.remove(swimLane); + } + else { + var x = swimLane.wrapper.bounds.x; + var y = swimLane.wrapper.bounds.y; + var row = void 0; + var i = void 0; + var cell = void 0; + var j = void 0; + var child = void 0; + var grid = swimLane.wrapper.children[0]; + laneIndex = (lanes) ? (shape.lanes.indexOf(lanes)) : findLaneIndex(swimLane, lane); + args = { + element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Removal', cancel: false, laneIndex: laneIndex + }; + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramEvent"].collectionChange, args); + if (!args.cancel) { + var undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.lanes[parseInt(laneIndex.toString(), 10)]); + removeLaneChildNode(diagram, swimLane, lane, undefined, laneIndex); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'LaneCollectionChanged', changeType: 'Remove', undoObject: undoObj, + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(lane), category: 'Internal' + }; + diagram.addHistoryEntry(entry); + } + shape.lanes.splice(laneIndex, 1); + var index = (lane) ? (shape.orientation === 'Horizontal' ? lane.rowIndex : lane.columnIndex) : + (findStartLaneIndex(swimLane) + laneIndex); + if (shape.orientation === 'Horizontal') { + row = grid.rows[parseInt(index.toString(), 10)]; + for (i = 0; i < row.cells.length; i++) { + cell = row.cells[parseInt(i.toString(), 10)]; + if (cell && cell.children.length > 0) { + for (j = 0; j < cell.children.length; j++) { + child = cell.children[parseInt(j.toString(), 10)]; + removeChildren(diagram, child); + } + } + } + grid.removeRow(index); + } + else { + swimLane.width = (swimLane.width !== undefined) ? + swimLane.width - grid.rows[0].cells[parseInt(index.toString(), 10)].actualSize.width : swimLane.width; + for (i = 0; i < grid.rows.length; i++) { + cell = grid.rows[parseInt(i.toString(), 10)].cells[parseInt(index.toString(), 10)]; + if (cell && cell.children.length > 0) { + for (j = 0; j < cell.children.length; j++) { + child = cell.children[parseInt(j.toString(), 10)]; + removeChildren(diagram, child); + } + } + } + grid.removeColumn(index); + } + args = { + element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Removal', cancel: false, laneIndex: laneIndex + }; + diagram.triggerEvent(_enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramEvent"].collectionChange, args); + swimLane.width = swimLane.wrapper.width = grid.width; + swimLane.height = swimLane.wrapper.height = grid.height; + swimLaneMeasureAndArrange(swimLane); + if (swimLane.shape.orientation === 'Vertical') { + index = 0; + } + ChangeLaneIndex(diagram, swimLane, index); + diagram.drag(swimLane, x - swimLane.wrapper.bounds.x, y - swimLane.wrapper.bounds.y); + diagram.updateDiagramObject(swimLane); + } + } + } +} +/** + * removeChildren method \ + * + * @returns {void} removeChildren method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {Canvas} canvas - provide the obj value. + * @private + */ +function removeChildren(diagram, canvas) { + var i; + var node; + if (canvas instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + if (canvas.children.length > 0) { + for (i = 0; i < canvas.children.length; i++) { + if (canvas.children[parseInt(i.toString(), 10)] instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + removeChildren(diagram, canvas.children[parseInt(i.toString(), 10)]); + } + } + } + node = diagram.getObject(canvas.id); + deleteNode(diagram, node); + } +} +/** + * removePhase method \ + * + * @returns {void} removePhase method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {NodeModel} phase - provide the obj value. + * @param {NodeModel} swimLane - provide the obj value. + * @param {PhaseModel} swimLanePhases - provide the obj value. + * @private + */ +function removePhase(diagram, phase, swimLane, swimLanePhases) { + diagram.protectPropertyChange(true); + var x = swimLane.wrapper.bounds.x; + var y = swimLane.wrapper.bounds.y; + var isLastPhase = false; + var previousPhase; + var shape = swimLane.shape; + var grid = swimLane.wrapper.children[0]; + var phaseIndex = swimLanePhases ? shape.phases.indexOf(swimLanePhases) : findPhaseIndex(phase, swimLane); + var phaseLength = shape.phases.length; + if (shape.phases.length > 1) { + if (phaseIndex === phaseLength - 1) { + isLastPhase = true; + previousPhase = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.phases[phaseIndex - 1]); + } + var undoObj = Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(shape.phases[parseInt(phaseIndex.toString(), 10)]); + shape.phases.splice(phaseIndex, 1); + if (!(diagram.diagramActions & _enum_enum__WEBPACK_IMPORTED_MODULE_2__["DiagramAction"].UndoRedo)) { + var entry = { + type: 'PhaseCollectionChanged', changeType: 'Remove', undoObject: undoObj, previousPhase: previousPhase, + redoObject: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["cloneObject"])(phase), category: 'Internal', isLastPhase: isLastPhase + }; + diagram.addHistoryEntry(entry); + } + if (shape.orientation === 'Horizontal') { + removeHorizontalPhase(diagram, grid, phase, phaseIndex); + } + else { + removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane); + } + updateHeaderMaxWidth(diagram, swimLane); + ChangeLaneIndex(diagram, swimLane, 1); + checkPhaseOffset(swimLane, diagram); + diagram.protectPropertyChange(false); + diagram.updateDiagramObject(swimLane); + } +} +/** + * removeHorizontalPhase method \ + * + * @returns {void} removeHorizontalPhase method .\ + * @param {Diagram} diagram - provide the obj value. + * @param {GridPanel} grid - provide the obj value. + * @param {NodeModel} phase - provide the obj value. + * @param {number} phaseIndex - provide the obj value. + * @private + */ +function removeHorizontalPhase(diagram, grid, phase, phaseIndex) { + var row; + var cell; + var prevCell; + var actualChild; //let prevChild: Canvas; + var prevCanvas; + var width; + phaseIndex = (phaseIndex !== undefined) ? phaseIndex : phase.columnIndex; + var i; + var j; + var k; + var child; + var node; + var object; + for (i = 0; i < grid.rows.length; i++) { + row = grid.rows[parseInt(i.toString(), 10)]; + if (row.cells.length > 1) { + cell = row.cells[parseInt(phaseIndex.toString(), 10)]; + prevCell = (row.cells.length - 1 === phaseIndex) ? row.cells[phaseIndex - 1] : + row.cells[phaseIndex + 1]; + prevCanvas = prevCell.children[0]; + if (cell.children.length > 0) { + actualChild = cell.children[0]; + node = diagram.nameTable[actualChild.id]; + if (prevCell.children.length === 0 && cell.children.length > 0) { + prevCell.children = cell.children; + prevCell.columnSpan = cell.columnSpan - 1; + } + else { + for (j = 0; j < actualChild.children.length; j++) { + child = actualChild.children[parseInt(j.toString(), 10)]; + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + object = diagram.nameTable[child.id]; + if (!object.isLane) { + object.parentId = prevCanvas.id; + } + if ((row.cells.length - 1 === phaseIndex)) { + object.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x; + child.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x; + } + prevCanvas.children.push(child); + if (diagram.nameTable[prevCanvas.id]) { + var parentNode = diagram.nameTable[prevCanvas.id]; + if (!parentNode.children) { + parentNode.children = []; + } + parentNode.children.push(child.id); + } + actualChild.children.splice(j, 1); + j--; + if (node && node.children && node.children.indexOf(object.id) !== -1) { + node.children.splice(node.children.indexOf(object.id), 1); + } + } + if ((row.cells.length - 1 !== phaseIndex)) { + for (k = 0; k < prevCanvas.children.length; k++) { + var prevChild = prevCanvas.children[parseInt(k.toString(), 10)]; + if (prevChild instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + var prevNode = diagram.nameTable[prevChild.id]; + prevNode.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x; + prevChild.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x; + } + } + } + } + if (node && node.isPhase) { + var object_1 = diagram.nameTable[prevCanvas.id]; + if (object_1) { + prevCanvas.maxWidth = object_1.wrapper.maxWidth = object_1.wrapper.maxWidth += node.wrapper.maxWidth; + } + } + deleteNode(diagram, node); + } + } + } + } + var prevWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width; + grid.removeColumn(phaseIndex); + if ((phaseIndex < grid.columnDefinitions().length)) { + width = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width; + width += prevWidth; + grid.updateColumnWidth(phaseIndex, width, true); + } + else { + width = grid.columnDefinitions()[phaseIndex - 1].width; + width += prevWidth; + grid.updateColumnWidth(phaseIndex - 1, width, true); + } +} +/** + * removeVerticalPhase method \ + * + * @returns {void} removeVerticalPhase method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {GridPanel} grid - provide the grid value. + * @param {NodeModel} phase - provide the phase value. + * @param {number} phaseIndex - provide the phaseIndex value. + * @param {number} swimLane - provide the swimLane value. + * @private + */ +function removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane) { + var cell; + var height; + var i; + var j; + var k; + var prevCell; + var prevChild; + var shape = swimLane.shape; + var child; + var object; + var phaseRowIndex = (phaseIndex !== undefined) ? ((shape.header) ? phaseIndex + 1 : phaseIndex) : phase.rowIndex; + var row = grid.rows[parseInt(phaseRowIndex.toString(), 10)]; + var top = swimLane.wrapper.bounds.y; + var phaseCount = shape.phases.length; + if (shape.header !== undefined && shape.hasHeader) { + top += grid.rowDefinitions()[0].height; + } + var prevRow = (phaseIndex === phaseCount) ? grid.rows[phaseRowIndex - 1] : grid.rows[phaseRowIndex + 1]; + for (i = 0; i < row.cells.length; i++) { + cell = row.cells[parseInt(i.toString(), 10)]; + prevCell = prevRow.cells[parseInt(i.toString(), 10)]; + prevChild = prevCell.children[0]; + if (cell.children.length > 0) { + var children = cell.children[0]; + var node = diagram.nameTable[children.id]; + if (phaseIndex < phaseCount) { + for (k = 0; k < prevChild.children.length; k++) { + child = prevChild.children[parseInt(k.toString(), 10)]; + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + object = diagram.nameTable[child.id]; + object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y); + child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y); + } + } + } + for (j = 0; j < children.children.length; j++) { + child = children.children[parseInt(j.toString(), 10)]; + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + object = diagram.nameTable[child.id]; + object.parentId = prevChild.id; + if (phaseIndex === phaseCount) { + object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y); + child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y); + } + prevChild.children.push(child); + children.children.splice(j, 1); + j--; + if (node.children && node.children.indexOf(object.id) !== -1) { + node.children.splice(node.children.indexOf(object.id), 1); + } + } + } + deleteNode(diagram, node); + } + } + var prevHeight = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height; + grid.removeRow(phaseRowIndex); + if ((phaseRowIndex < grid.rowDefinitions().length)) { + height = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height; + height += prevHeight; + grid.updateRowHeight(phaseRowIndex, height, true); + } + else { + height = grid.rowDefinitions()[phaseRowIndex - 1].height; + height += prevHeight; + grid.updateRowHeight(phaseRowIndex - 1, height, true); + } +} +/** + * considerSwimLanePadding method \ + * + * @returns {void} considerSwimLanePadding method .\ + * @param {Diagram} diagram - provide the diagram value. + * @param {NodeModel} node - provide the grid value. + * @param {number} padding - provide the phase value. + * @private + */ +function considerSwimLanePadding(diagram, node, padding) { + var lane = diagram.nameTable[node.parentId]; + if (lane && lane.isLane) { + var swimLane = diagram.nameTable[lane.parentId]; + var grid = swimLane.wrapper.children[0]; + //let x: number = swimLane.wrapper.bounds.x; let y: number = swimLane.wrapper.bounds.y; + grid.updateColumnWidth(lane.columnIndex, grid.columnDefinitions()[lane.columnIndex].width, true, padding); + grid.updateRowHeight(lane.rowIndex, grid.rowDefinitions()[lane.rowIndex].height, true, padding); + var canvas = lane.wrapper; + var laneHeader = void 0; + var isConsiderHeader = false; + if (node.margin.left < padding) { + node.margin.left = padding; + } + if (node.margin.top < padding) { + node.margin.top = padding; + } + for (var i = 0; i < canvas.children.length; i++) { + var child = canvas.children[parseInt(i.toString(), 10)]; + if (child instanceof _core_containers_canvas__WEBPACK_IMPORTED_MODULE_7__["Canvas"]) { + var childNode = diagram.nameTable[child.id]; + if (childNode.isLane) { + laneHeader = childNode.wrapper; + isConsiderHeader = true; + break; + } + } + } + if (laneHeader) { + if (swimLane.shape.orientation === 'Horizontal') { + if (node.margin.left < padding + laneHeader.actualSize.width) { + node.margin.left = padding + laneHeader.actualSize.width; + } + } + else { + if (node.margin.top < padding + laneHeader.actualSize.height) { + node.margin.top = padding + laneHeader.actualSize.height; + } + } + } + swimLane.wrapper.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](swimLane.width, swimLane.height)); + swimLane.wrapper.arrange(swimLane.wrapper.desiredSize); + node.offsetX = node.wrapper.offsetX; + node.offsetY = node.wrapper.offsetY; + diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } }); + //EJ2-68372- Text-Annotation in event node is not positioned properly while drag the swimlane + if (diagram.bpmnModule && node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) { + diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } }); + } + grid.measure(new _primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](grid.width, grid.height)); + grid.arrange(grid.desiredSize); + swimLane.width = swimLane.wrapper.width = swimLane.wrapper.children[0].actualSize.width; + swimLane.height = swimLane.wrapper.height = swimLane.wrapper.children[0].actualSize.height; + } +} +/** + * checkLaneChildrenOffset method \ + * + * @returns {void} checkLaneChildrenOffset method .\ + * @param {NodeModel} swimLane - provide the diagram value. + * @private + */ +function checkLaneChildrenOffset(swimLane) { + if (swimLane.shape.type === 'SwimLane') { + var lanes = swimLane.shape.lanes; + var lane = void 0; + var child = void 0; + for (var i = 0; i < lanes.length; i++) { + lane = lanes[parseInt(i.toString(), 10)]; + for (var j = 0; j < lane.children.length; j++) { + child = lane.children[parseInt(j.toString(), 10)]; + child.offsetX = child.wrapper.offsetX; + child.offsetY = child.wrapper.offsetY; + } + } + } +} +/** + * findLane method \ + * + * @returns {LaneModel} findLane method .\ + * @param {Node} laneNode - provide the laneNode value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function findLane(laneNode, diagram) { + var lane; + if (laneNode.isLane) { + var swimLane = diagram.getObject(laneNode.parentId); + if (swimLane && swimLane.shape.type === 'SwimLane' && laneNode.isLane) { + var laneIndex = findLaneIndex(swimLane, laneNode); + lane = swimLane.shape.lanes[parseInt(laneIndex.toString(), 10)]; + } + } + return lane; +} +/** + * canLaneInterchange method \ + * + * @returns {boolean} canLaneInterchange method .\ + * @param {Node} laneNode - provide the laneNode value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function canLaneInterchange(laneNode, diagram) { + if (laneNode.isLane) { + var lane = findLane(laneNode, diagram); + var eventHandler = 'eventHandler'; + var resize = diagram["" + eventHandler].action; + var canResize = resize.includes('Resize'); + if (canResize || lane.canMove) { + return true; + } + } + return false; +} +/** + * updateSwimLaneChildPosition method \ + * + * @returns {void} updateSwimLaneChildPosition method .\ + * @param {Lane[]} lanes - provide the laneNode value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function updateSwimLaneChildPosition(lanes, diagram) { + var lane; + var node; + for (var i = 0; i < lanes.length; i++) { + lane = lanes[parseInt(i.toString(), 10)]; + for (var j = 0; j < lane.children.length; j++) { + node = diagram.nameTable[lane.children[parseInt(j.toString(), 10)].id]; + node.offsetX = node.wrapper.offsetX; + node.offsetY = node.wrapper.offsetY; + } + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/uml-util.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/uml-util.js ***! + \********************************************************************************/ +/*! exports provided: getULMClassifierShapes, getClassNodes, getClassMembers, addSeparator, getStyle */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getULMClassifierShapes", function() { return getULMClassifierShapes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassNodes", function() { return getClassNodes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getClassMembers", function() { return getClassMembers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSeparator", function() { return addSeparator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStyle", function() { return getStyle; }); +/* harmony import */ var _enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _objects_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../objects/node */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/objects/node.js"); +/* harmony import */ var _utility_base_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); + + + +/** + * These utility methods help to process the data and to convert it to desired dimensions + */ +/** + * getULMClassifierShapes method \ + * + * @returns {DiagramElement} getULMClassifierShapes method .\ + * @param { DiagramElement} content - provide the content value. + * @param {NodeModel} node - provide the node value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function getULMClassifierShapes(content, node, diagram) { + var classifier; + var textWrap = 'NoWrap'; + if (node.shape.classifier === 'Class') { + classifier = node.shape.classShape; + } + else if (node.shape.classifier === 'Enumeration') { + classifier = node.shape.enumerationShape; + } + else if (node.shape.classifier === 'Interface') { + classifier = node.shape.interfaceShape; + } + //let attributeText: string = ''; + node.container = { type: 'Stack', orientation: 'Vertical' }; + node.constraints = (_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].HideThumbs) & + ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize); + node.style = { + fill: node.style.fill, strokeColor: node.style.strokeColor, + strokeWidth: 1.5 + }; + node.children = []; + if (node.maxWidth) { + textWrap = 'Wrap'; + } + var newObj = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', { + id: node.id + '_umlClass_header', + annotations: [ + { + id: 'name', content: classifier.name, + offset: { x: 0.5, y: 0.65 }, margin: { left: 10, right: 10 }, + style: { + bold: true, fontSize: 14, color: classifier.style.color, fill: classifier.style.fill, + textWrapping: textWrap + } + }, { + content: '<<' + node.shape.classifier + '>>', margin: { left: 10, right: 10 }, + id: 'class', style: { + fontSize: classifier.style.fontSize, + color: classifier.style.color, fill: classifier.style.fill, + textWrapping: textWrap + }, offset: { x: 0.5, y: 0.3 }, constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"].ReadOnly + } + ], + constraints: (_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].HideThumbs) & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize), + verticalAlignment: 'Stretch', + horizontalAlignment: 'Stretch', + style: { fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor } + }, true); + diagram.initObject(newObj); + diagram.nodes.push(newObj); + diagram.UpdateBlazorDiagramModel(newObj, 'Node'); + node.children.push(newObj.id); + getClassNodes(node, diagram, classifier, textWrap); + getClassMembers(node, diagram, classifier, textWrap); + /* eslint-disable */ + node.offsetX = node.offsetX; + node.offsetY = node.offsetY; + node.style.fill = node.style.fill; + node.borderColor = node.borderColor; + diagram.initObject(node); + /* eslint-enable */ + return content; +} +/** + * getClassNodes method \ + * + * @returns {void} getClassNodes method .\ + * @param { Node} node - provide the node value. + * @param {Diagram} diagram - provide the diagram value. + * @param {UmlClassModel} classifier - provide the classifier value. + * @param {TextWrap} textWrap - provide the textWrap value. + * @private + */ +function getClassNodes(node, diagram, classifier, textWrap) { + if (node.shape.classifier === 'Enumeration') { + var member = classifier.members; + if (member && member.length) { + addSeparator(node, diagram); + var memberText = ''; + for (var i = 0; i < member.length; i++) { + var members = member[parseInt(i.toString(), 10)]; + if (members.name !== '') { + memberText += members.name; + } + if (i !== member.length) { + var style = getStyle(node, members); + var temp = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', { + id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["randomId"])() + '_umlMember', + annotations: [ + { + id: 'name', content: memberText, offset: { x: 0, y: 0.5 }, + style: { + bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill, + textWrapping: textWrap + }, + margin: { left: 14, right: 5 }, horizontalAlignment: 'Left' + } + ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch', + style: { + fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? + '#ffffff00' : node.style.strokeColor, textWrapping: textWrap + }, + constraints: (_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].HideThumbs) & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize), + minHeight: 25 + }, true); + diagram.initObject(temp); + diagram.nodes.push(temp); + diagram.UpdateBlazorDiagramModel(temp, 'Node'); + node.children.push(temp.id); + memberText = ''; + if (members.isSeparator && (i !== member.length - 1)) { + addSeparator(node, diagram); + } + } + } + } + } + else { + var attributes = classifier.attributes; + if (attributes.length) { + var attributeText = ''; + addSeparator(node, diagram); + for (var i = 0; i < attributes.length; i++) { + var text = void 0; + var attribute = attributes[parseInt(i.toString(), 10)]; + if (attribute.scope && (attribute).scope === 'Public') { + text = ' +'; + } + else if (attribute.scope && attribute.scope === 'Private') { + text = '-'; + } + else if (attribute.scope && attribute.scope === 'Protected') { + text = '#'; + } + else { + text = '~'; + } + if (attribute.name !== '') { + if (text) { + attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type; + } + } + if (i !== attributes.length) { + var style = getStyle(node, attribute); + var temp = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', { + id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["randomId"])() + '_umlProperty', style: { fill: node.style.fill, + strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor }, + annotations: [ + { + id: 'name', content: attributeText, offset: { x: 0, y: 0.5 }, + style: { + bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill, + textWrapping: textWrap + }, + margin: { left: 14, right: 5 }, horizontalAlignment: 'Left' + } + ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch', + constraints: (_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].HideThumbs) & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize), + minHeight: 25 + }, true); + diagram.initObject(temp); + diagram.nodes.push(temp); + diagram.UpdateBlazorDiagramModel(temp, 'Node'); + node.children.push(temp.id); + attributeText = ''; + if (attribute.isSeparator && (i !== attributes.length - 1)) { + addSeparator(node, diagram); + } + } + } + } + } +} +/** + * getClassMembers method \ + * + * @returns {void} getClassMembers method .\ + * @param { Node} node - provide the node value. + * @param {Diagram} diagram - provide the diagram value. + * @param {UmlClassModel} classifier - provide the classifier value. + * @param {TextWrap} textWrap - provide the textWrap value. + * @private + */ +function getClassMembers(node, diagram, classifier, textWrap) { + if (classifier.methods && classifier.methods.length) { + var methods = classifier.methods; + addSeparator(node, diagram); + var argumentText = ''; + var methodText = ''; + var text = void 0; + for (var i = 0; i < methods.length; i++) { + var method = methods[parseInt(i.toString(), 10)]; + if (method.scope && method.scope === 'Public') { + text = ' +'; + } + else if (method.scope && method.scope === 'Private') { + text = '-'; + } + else if (method.scope && method.scope === 'Protected') { + text = '#'; + } + else { + text = '~'; + } + if (method.parameters) { + for (var j = 0; j < method.parameters.length; j++) { + if (method.parameters[parseInt(j.toString(), 10)].type) { + argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type; + } + else { + argumentText += method.parameters[parseInt(j.toString(), 10)].name; + } + if (j !== method.parameters.length - 1) { + argumentText += ','; + } + } + } + if (method.name !== '') { + if (text) { + methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type; + } + } + if (i !== methods.length) { + var style = getStyle(node, method); + var temp = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', { + id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["randomId"])() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch', + annotations: [ + { + id: 'name', content: methodText, offset: { x: 0, y: 0.5 }, + style: { + bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill, + textWrapping: textWrap + }, + margin: { left: 14, right: 5 }, horizontalAlignment: 'Left' + } + ], + style: { + fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? + '#ffffff00' : node.style.strokeColor + }, minHeight: 25, + constraints: (_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].HideThumbs) & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Rotate | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Drag | _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Resize) + }, true); + diagram.initObject(temp); + diagram.nodes.push(temp); + diagram.UpdateBlazorDiagramModel(temp, 'Node'); + node.children.push(temp.id); + methodText = ''; + if (method.isSeparator && (i !== methods.length - 1)) { + addSeparator(node, diagram); + } + } + } + } +} +/** + * addSeparator method \ + * + * @returns {void} addSeparator method .\ + * @param { Node} stack - provide the stack value. + * @param {Diagram} diagram - provide the diagram value. + * @private + */ +function addSeparator(stack, diagram) { + var lineObject = new _objects_node__WEBPACK_IMPORTED_MODULE_1__["Node"](diagram, 'nodes', { + id: Object(_utility_base_util__WEBPACK_IMPORTED_MODULE_2__["randomId"])() + '_path', height: 1, constraints: _enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Default & ~(_enum_enum__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"].Select), + verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch', + style: { strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor } + }, true); + diagram.initObject(lineObject); + diagram.nodes.push(lineObject); + stack.children.push(lineObject.id); +} +/** + * getStyle method \ + * + * @returns {TextStyleModel} addSeparator method .\ + * @param { Node} stack - provide the stack value. + * @param {UmlClassModel} node - provide the node value. + * @private + */ +function getStyle(stack, node) { + var newStyle = {}; + var style = node.style; + newStyle.fill = (style.fill !== 'transparent') ? style.fill : stack.style.fill; + newStyle.color = style.color; + newStyle.fontSize = (style.fontSize !== 12) ? style.fontSize : stack.style.fontSize; + newStyle.strokeColor = (style.strokeColor !== 'black') ? style.strokeColor : stack.style.strokeColor; + newStyle.strokeWidth = (style.strokeWidth !== 1) ? style.strokeWidth : stack.style.strokeWidth; + return newStyle; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/index.js": +/*!*************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/index.js ***! + \*************************************************************/ +/*! exports provided: Diagram, PrintAndExport, Size, Rect, MatrixTypes, Matrix, identityMatrix, transformPointByMatrix, transformPointsByMatrix, rotateMatrix, scaleMatrix, translateMatrix, multiplyMatrix, Point, BlazorAction, PortVisibility, SnapConstraints, SelectorConstraints, ConnectionPointOrigin, ChildArrangement, ConnectorConstraints, AnnotationConstraints, NodeConstraints, ElementAction, ThumbsConstraints, DiagramConstraints, DiagramTools, Transform, RenderMode, KeyModifiers, Keys, DiagramAction, RendererAction, RealAction, ScrollActions, NoOfSegments, DiagramEvent, PortConstraints, contextMenuClick, contextMenuOpen, contextMenuBeforeItemRender, ControlPointsVisibility, BezierSmoothness, Thickness, Margin, Shadow, Stop, Gradient, DiagramGradient, LinearGradient, RadialGradient, ShapeStyle, StrokeStyle, TextStyle, DiagramShapeStyle, DiagramElement, PathElement, ImageElement, TextElement, Container, Canvas, GridPanel, RowDefinition, ColumnDefinition, GridRow, GridCell, StackPanel, findConnectorPoints, swapBounds, findMargin, findAngle, findPoint, getIntersection, getIntersectionPoints, orthoConnection2Segment, getPortDirection, getOuterBounds, getOppositeDirection, processPathData, parsePathData, getRectanglePath, getPolygonPath, getFreeHandPath, pathSegmentCollection, transformPath, updatedSegment, scalePathData, splitArrayCollection, getPathString, getString, randomId, getIndex, templateCompiler, cornersPointsBeforeRotation, getBounds, cloneObject, getInternalProperties, cloneArray, extendObject, extendArray, textAlignToString, wordBreakToString, bBoxText, middleElement, overFlow, whiteSpaceToString, rotateSize, rotatePoint, getOffset, getFunction, completeRegion, findNodeByName, findObjectType, setSwimLaneDefaults, getSpaceValue, getInterval, setPortsEdges, setUMLActivityDefaults, setConnectorDefaults, findNearestPoint, isDiagramChild, groupHasType, updateDefaultValues, updateLayoutValue, isPointOverConnector, intersect3, intersect2, getLineSegment, getPoints, getTooltipOffset, initfixedUserHandlesSymbol, sort, getAnnotationPosition, getOffsetOfConnector, getAlignedPosition, alignLabelOnSegments, getBezierDirection, removeChildNodes, getChild, serialize, deserialize, upgrade, updateStyle, updateHyperlink, updateShapeContent, updateShape, updateContent, updateUmlActivityNode, getUMLFinalNode, getUMLActivityShapes, removeGradient, removeItem, updateConnector, getUserHandlePosition, canResizeCorner, canShowCorner, canShowControlPoints, checkPortRestriction, findAnnotation, findPort, getInOutConnectPorts, findObjectIndex, getObjectFromCollection, scaleElement, arrangeChild, insertObject, getElement, getCollectionChangeEventArguements, getDropEventArguements, getPoint, getObjectType, flipConnector, updatePortEdges, alignElement, cloneSelectedObjects, updatePathElement, checkPort, findPath, getConnectorDirection, findDistance, cloneBlazorObject, checkBrowserInfo, canMeasureDecoratorPath, getPreviewSize, getSymbolSize, findParentInSwimlane, selectionHasConnector, CanvasRenderer, DiagramRenderer, DataBinding, getBasicShape, getPortShape, getDecoratorShape, getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical, getIconShape, getFlowShape, Hyperlink, Annotation, ShapeAnnotation, PathAnnotation, Port, PointPort, menuClass, DiagramContextMenu, Shape, Path, Native, Html, Image, Text, BasicShape, FlowShape, BpmnGateway, BpmnDataObject, BpmnTask, BpmnEvent, BpmnSubEvent, BpmnTransactionSubProcess, BpmnSubProcess, BpmnActivity, BpmnAnnotation, BpmnShape, UmlActivityShape, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, UmlClassifierShape, DiagramShape, Node, Header, Lane, Phase, SwimLane, ChildContainer, Selector, BpmnDiagrams, getBpmnShapePathData, getBpmnTriggerShapePathData, getBpmnGatewayShapePathData, getBpmnTaskShapePathData, getBpmnLoopShapePathData, Decorator, Vector, BezierSettings, ConnectorShape, ActivityFlow, BpmnFlow, ConnectorSegment, StraightSegment, BezierSegment, OrthogonalSegment, DiagramConnectorSegment, getDirection, isEmptyVector, getBezierPoints, getBezierBounds, bezierPoints, MultiplicityLabel, ClassifierMultiplicity, RelationShip, DiagramConnectorShape, Connector, ConnectorBridging, Snapping, UndoRedo, DiagramTooltip, initTooltip, updateTooltip, LayoutAnimation, SymbolSize, SymbolPaletteInfo, FixedUserHandle, NodeFixedUserHandle, ConnectorFixedUserHandle, UserHandle, ToolBase, SelectTool, FixedUserHandleTool, ConnectTool, MoveTool, RotateTool, ResizeTool, NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, ZoomPanTool, ExpandTool, LabelTool, PolygonDrawingTool, PolyLineDrawingTool, LabelDragTool, LabelResizeTool, LabelRotateTool, FreeHandTool, DiagramEventHandler, CommandHandler, findToolToActivate, findPortToolToActivate, contains, hasSelection, hasSingleConnection, isSelected, getCursor, ConnectorEditing, updateCanvasBounds, removeChildInContainer, findBounds, createHelper, renderContainerHelper, checkParentAsContainer, checkChildNodeInContainer, addChildToContainer, updateLaneBoundsAfterAddChild, renderStackHighlighter, moveChildInStack, LineRouting, LineDistribution, CrudAction, ConnectionDataSource, DataSource, Gridlines, SnapSettings, KeyGesture, Command, CommandManager, ContextMenuSettings, CustomCursorAction, DataMappingItems, BlazorAnimation, BlazorTooltip, Layout, MindMap, HierarchicalTree, RadialTree, GraphForceNode, SymmetricLayout, GraphLayoutManager, ComplexHierarchicalTree, Palette, SymbolDragSize, SymbolPreview, SymbolPalette, Ruler, Overview */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _diagram_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./diagram/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Diagram", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Diagram"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrintAndExport", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PrintAndExport"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Size", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Size"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rect", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Rect"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MatrixTypes", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["MatrixTypes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Matrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Matrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identityMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["identityMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPointByMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["transformPointByMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPointsByMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["transformPointsByMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotateMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["rotateMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["scaleMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "translateMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["translateMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multiplyMatrix", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["multiplyMatrix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Point", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Point"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BlazorAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PortVisibility", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PortVisibility"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SnapConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SnapConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectorConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SelectorConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionPointOrigin", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectionPointOrigin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChildArrangement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ChildArrangement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnnotationConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["AnnotationConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["NodeConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ElementAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ElementAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ThumbsConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ThumbsConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramTools", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramTools"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Transform", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Transform"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RenderMode", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RenderMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyModifiers", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["KeyModifiers"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keys", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Keys"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RendererAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RendererAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RealAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RealAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollActions", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ScrollActions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NoOfSegments", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["NoOfSegments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramEvent", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PortConstraints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PortConstraints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuClick", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["contextMenuClick"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuOpen", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["contextMenuOpen"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contextMenuBeforeItemRender", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["contextMenuBeforeItemRender"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControlPointsVisibility", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ControlPointsVisibility"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSmoothness", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BezierSmoothness"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Thickness", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Thickness"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Margin", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Margin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shadow", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Shadow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Stop", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Stop"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Gradient", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Gradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramGradient", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LinearGradient", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LinearGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialGradient", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RadialGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShapeStyle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ShapeStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StrokeStyle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["StrokeStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextStyle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["TextStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramShapeStyle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramShapeStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PathElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PathElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ImageElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ImageElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["TextElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Container", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Container"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Canvas", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Canvas"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridPanel", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["GridPanel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowDefinition", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RowDefinition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnDefinition", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ColumnDefinition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridRow", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["GridRow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCell", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["GridCell"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StackPanel", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["StackPanel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findConnectorPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findConnectorPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "swapBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["swapBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findMargin", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findMargin"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findAngle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findAngle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPoint", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIntersection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getIntersection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIntersectionPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getIntersectionPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "orthoConnection2Segment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["orthoConnection2Segment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPortDirection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPortDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOuterBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getOuterBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOppositeDirection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getOppositeDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "processPathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["processPathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parsePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["parsePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRectanglePath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getRectanglePath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPolygonPath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPolygonPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFreeHandPath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getFreeHandPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pathSegmentCollection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["pathSegmentCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformPath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["transformPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatedSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updatedSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scalePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["scalePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "splitArrayCollection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["splitArrayCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPathString", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPathString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getString", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomId", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["randomId"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIndex", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getIndex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "templateCompiler", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["templateCompiler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cornersPointsBeforeRotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["cornersPointsBeforeRotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["cloneObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInternalProperties", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getInternalProperties"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneArray", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["cloneArray"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendObject", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["extendObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "extendArray", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["extendArray"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "textAlignToString", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["textAlignToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wordBreakToString", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["wordBreakToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bBoxText", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["bBoxText"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "middleElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["middleElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "overFlow", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["overFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "whiteSpaceToString", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["whiteSpaceToString"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotateSize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["rotateSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "rotatePoint", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["rotatePoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOffset", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getOffset"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFunction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getFunction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "completeRegion", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["completeRegion"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findNodeByName", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findNodeByName"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findObjectType", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findObjectType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSwimLaneDefaults", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["setSwimLaneDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSpaceValue", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getSpaceValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInterval", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getInterval"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setPortsEdges", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["setPortsEdges"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setUMLActivityDefaults", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["setUMLActivityDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setConnectorDefaults", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["setConnectorDefaults"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findNearestPoint", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findNearestPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDiagramChild", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["isDiagramChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupHasType", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["groupHasType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateDefaultValues", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateDefaultValues"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateLayoutValue", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateLayoutValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isPointOverConnector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["isPointOverConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersect3", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["intersect3"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "intersect2", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["intersect2"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getLineSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getLineSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getTooltipOffset", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getTooltipOffset"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initfixedUserHandlesSymbol", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["initfixedUserHandlesSymbol"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sort", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["sort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAnnotationPosition", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getAnnotationPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOffsetOfConnector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getOffsetOfConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAlignedPosition", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getAlignedPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "alignLabelOnSegments", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["alignLabelOnSegments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierDirection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBezierDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeChildNodes", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["removeChildNodes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getChild", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "serialize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["serialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "deserialize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["deserialize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "upgrade", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["upgrade"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateStyle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateHyperlink", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateHyperlink"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateShapeContent", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateShapeContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateContent", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateContent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateUmlActivityNode", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateUmlActivityNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUMLFinalNode", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getUMLFinalNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUMLActivityShapes", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getUMLActivityShapes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeGradient", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["removeGradient"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeItem", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["removeItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateConnector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getUserHandlePosition", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getUserHandlePosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canResizeCorner", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["canResizeCorner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canShowCorner", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["canShowCorner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canShowControlPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["canShowControlPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkPortRestriction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["checkPortRestriction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findAnnotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPort", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findPort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getInOutConnectPorts", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getInOutConnectPorts"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findObjectIndex", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findObjectIndex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getObjectFromCollection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getObjectFromCollection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scaleElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["scaleElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "arrangeChild", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["arrangeChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "insertObject", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["insertObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCollectionChangeEventArguements", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getCollectionChangeEventArguements"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDropEventArguements", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getDropEventArguements"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPoint", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPoint"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getObjectType", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getObjectType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flipConnector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["flipConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatePortEdges", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updatePortEdges"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "alignElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["alignElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneSelectedObjects", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["cloneSelectedObjects"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updatePathElement", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updatePathElement"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkPort", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["checkPort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getConnectorDirection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getConnectorDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findDistance", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findDistance"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneBlazorObject", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["cloneBlazorObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkBrowserInfo", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["checkBrowserInfo"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "canMeasureDecoratorPath", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["canMeasureDecoratorPath"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPreviewSize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPreviewSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSymbolSize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getSymbolSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findParentInSwimlane", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findParentInSwimlane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "selectionHasConnector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["selectionHasConnector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CanvasRenderer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["CanvasRenderer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramRenderer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramRenderer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataBinding", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DataBinding"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBasicShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBasicShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getPortShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getPortShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDecoratorShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getDecoratorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeHorizontal", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getSegmentThumbShapeHorizontal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSegmentThumbShapeVertical", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getSegmentThumbShapeVertical"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getIconShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getIconShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFlowShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getFlowShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Hyperlink", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Hyperlink"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Annotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Annotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ShapeAnnotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ShapeAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PathAnnotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PathAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Port", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Port"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PointPort", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PointPort"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "menuClass", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["menuClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramContextMenu", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramContextMenu"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Shape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Shape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Path", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Path"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Native", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Native"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Html", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Html"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Image", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Image"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Text"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BasicShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BasicShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FlowShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["FlowShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnGateway", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnGateway"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnDataObject", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnDataObject"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnTask", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnTask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnEvent", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnSubEvent", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnSubEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnTransactionSubProcess", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnTransactionSubProcess"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnSubProcess", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnSubProcess"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnActivity", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnActivity"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnAnnotation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnAnnotation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlActivityShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlActivityShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MethodArguments", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["MethodArguments"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassAttribute", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlClassAttribute"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassMethod", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlClassMethod"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClass", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlInterface", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlInterface"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlEnumerationMember", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlEnumerationMember"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlEnumeration", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlEnumeration"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UmlClassifierShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UmlClassifierShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Node", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Node"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Header"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Lane", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Lane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Phase", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Phase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwimLane", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SwimLane"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChildContainer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ChildContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Selector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Selector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnDiagrams", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnDiagrams"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnShapePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBpmnShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnTriggerShapePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBpmnTriggerShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnGatewayShapePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBpmnGatewayShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnTaskShapePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBpmnTaskShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBpmnLoopShapePathData", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBpmnLoopShapePathData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Decorator", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Decorator"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Vector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Vector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSettings", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BezierSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActivityFlow", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ActivityFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BpmnFlow", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BpmnFlow"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StraightSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["StraightSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BezierSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BezierSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OrthogonalSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["OrthogonalSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorSegment", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramConnectorSegment"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getDirection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmptyVector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["isEmptyVector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBezierPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBezierBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getBezierBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bezierPoints", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["bezierPoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MultiplicityLabel", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["MultiplicityLabel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClassifierMultiplicity", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ClassifierMultiplicity"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RelationShip", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RelationShip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramConnectorShape", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramConnectorShape"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Connector"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorBridging", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorBridging"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Snapping", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Snapping"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UndoRedo", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UndoRedo"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramTooltip", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initTooltip", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["initTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateTooltip", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutAnimation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LayoutAnimation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolSize", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SymbolSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPaletteInfo", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SymbolPaletteInfo"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["FixedUserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeFixedUserHandle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["NodeFixedUserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorFixedUserHandle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorFixedUserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserHandle", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["UserHandle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ToolBase", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ToolBase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SelectTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedUserHandleTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["FixedUserHandleTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["MoveTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RotateTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RotateTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ResizeTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeDrawingTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["NodeDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorDrawingTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextDrawingTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["TextDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZoomPanTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ZoomPanTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpandTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ExpandTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LabelTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PolygonDrawingTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PolygonDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PolyLineDrawingTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["PolyLineDrawingTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelDragTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LabelDragTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelResizeTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LabelResizeTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelRotateTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LabelRotateTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FreeHandTool", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["FreeHandTool"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DiagramEventHandler", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DiagramEventHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandHandler", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["CommandHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findToolToActivate", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findToolToActivate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findPortToolToActivate", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findPortToolToActivate"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "contains", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["contains"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasSelection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["hasSelection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasSingleConnection", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["hasSingleConnection"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isSelected", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["isSelected"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getCursor", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["getCursor"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorEditing", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectorEditing"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateCanvasBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateCanvasBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeChildInContainer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["removeChildInContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findBounds", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["findBounds"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createHelper", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["createHelper"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderContainerHelper", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["renderContainerHelper"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkParentAsContainer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["checkParentAsContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkChildNodeInContainer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["checkChildNodeInContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addChildToContainer", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["addChildToContainer"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateLaneBoundsAfterAddChild", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["updateLaneBoundsAfterAddChild"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "renderStackHighlighter", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["renderStackHighlighter"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "moveChildInStack", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["moveChildInStack"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LineRouting", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LineRouting"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LineDistribution", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["LineDistribution"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CrudAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["CrudAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectionDataSource", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ConnectionDataSource"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataSource", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DataSource"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Gridlines", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Gridlines"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SnapSettings", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SnapSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyGesture", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["KeyGesture"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Command", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Command"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CommandManager", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["CommandManager"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextMenuSettings", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ContextMenuSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomCursorAction", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["CustomCursorAction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DataMappingItems", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["DataMappingItems"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorAnimation", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BlazorAnimation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BlazorTooltip", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["BlazorTooltip"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Layout", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["Layout"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MindMap", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["MindMap"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HierarchicalTree", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["HierarchicalTree"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RadialTree", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["RadialTree"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GraphForceNode", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["GraphForceNode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymmetricLayout", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["SymmetricLayout"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GraphLayoutManager", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["GraphLayoutManager"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComplexHierarchicalTree", function() { return _diagram_index__WEBPACK_IMPORTED_MODULE_0__["ComplexHierarchicalTree"]; }); + +/* harmony import */ var _symbol_palette_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./symbol-palette/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Palette", function() { return _symbol_palette_index__WEBPACK_IMPORTED_MODULE_1__["Palette"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolDragSize", function() { return _symbol_palette_index__WEBPACK_IMPORTED_MODULE_1__["SymbolDragSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPreview", function() { return _symbol_palette_index__WEBPACK_IMPORTED_MODULE_1__["SymbolPreview"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPalette", function() { return _symbol_palette_index__WEBPACK_IMPORTED_MODULE_1__["SymbolPalette"]; }); + +/* harmony import */ var _ruler_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ruler/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Ruler", function() { return _ruler_index__WEBPACK_IMPORTED_MODULE_2__["Ruler"]; }); + +/* harmony import */ var _overview_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./overview/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overview", function() { return _overview_index__WEBPACK_IMPORTED_MODULE_3__["Overview"]; }); + +/** + * Diagram component exported items + */ + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/index.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/index.js ***! + \**********************************************************************/ +/*! exports provided: Overview */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _overview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./overview */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/overview.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Overview", function() { return _overview__WEBPACK_IMPORTED_MODULE_0__["Overview"]; }); + +/** + * Overview Components + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/overview.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/overview/overview.js ***! + \*************************************************************************/ +/*! exports provided: Overview */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Overview", function() { return Overview; }); +/* harmony import */ var _diagram_enum_enum__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../diagram/enum/enum */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/enum/enum.js"); +/* harmony import */ var _diagram_rendering_renderer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagram/rendering/renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/renderer.js"); +/* harmony import */ var _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagram/rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../diagram/utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _diagram_primitives_rect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../diagram/primitives/rect */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/rect.js"); +/* harmony import */ var _diagram_primitives_size__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../diagram/primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diagram/rendering/svg-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + +/** + * Overview control allows you to see a preview or an overall view of the entire content of a Diagram. + * This helps you to look at the overall picture of a large Diagram + * To navigate, pan, or zoom, on a particular position of the page. + * ```html + *
+ *
+ * ``` + * ```typescript + * let overview: Overview; + * let diagram: Diagram = new Diagram({ + * width:'1000px', height:'500px' }); + * diagram.appendTo('#diagram'); + * let options: OverviewModel = {}; + * options.sourceID = 'diagram'; + * options.width = '250px'; + * options.height = '500px'; + * overview = new Overview(options); + * overview.appendTo('#overview'); + * ``` + */ +var Overview = /** @__PURE__ @class */ (function (_super) { + __extends(Overview, _super); + function Overview(options, element) { + var _this = _super.call(this, options, element) || this; + /** @private */ + _this.mode = 'Canvas'; + /** @private */ + _this.id = 'overview'; + _this.actionName = ''; + _this.startPoint = null; + _this.currentPoint = null; + _this.prevPoint = null; + _this.scale = null; + _this.inAction = false; + _this.viewPortRatio = 1; + _this.horizontalOffset = 0; + _this.verticalOffset = 0; + _this.model = {}; + _this.event = true; + _this.overviewid = 88123; + _this.model = { width: _this.width, height: _this.height }; + return _this; + } + /** + * Updates the overview control when the objects are changed + * + * @param {OverviewModel} newProp - Lists the new values of the changed properties + * @param {OverviewModel} oldProp - Lists the old values of the changed properties + */ + Overview.prototype.onPropertyChanged = function (newProp, oldProp) { + //let objectArray: Object[] = []; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'sourceID': + this.setParent(newProp.sourceID); + break; + case 'width': + case 'height': + this.renderCanvas(); + this.setParent(this.sourceID); + break; + } + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} Get the properties to be maintained in the persisted state. + */ + Overview.prototype.getPersistData = function () { + var keyEntity = ['loaded']; + return this.addOnPersist(keyEntity); + }; + /** + * Initializes the values of private members. + * + * @returns {void} Initializes the values of private members. + * @private + */ + Overview.prototype.preRender = function () { + if (this.element.id === '') { + var collection = document.getElementsByClassName('e-overview').length; + this.element.id = 'overview_' + this.overviewid + '_' + collection; + } + //EJ2-64637 - Diagram element in the overview disappears on window resize. + this.id = this.element.id ? this.element.id : this.id; + this.element.style.background = 'transparent'; + this.unWireEvents(); + this.wireEvents(); + }; + Overview.prototype.render = function () { + this.diagramRenderer = new _diagram_rendering_renderer__WEBPACK_IMPORTED_MODULE_1__["DiagramRenderer"](this.element.id, new _diagram_rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_7__["SvgRenderer"](), false); + this.renderCanvas(); + this.setParent(this.sourceID); + this.renderComplete(); + }; + // eslint-disable-next-line @typescript-eslint/ban-types + Overview.prototype.getSizeValue = function (real) { + var text; + if (real.toString().indexOf('px') > 0 || real.toString().indexOf('%') > 0) { + text = real.toString(); + } + else { + text = real.toString() + 'px'; + } + return text; + }; + Overview.prototype.renderCanvas = function (options) { + var canvas = document.getElementById(this.element.id + '_canvas'); + if (!canvas) { + canvas = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', {}); + this.element.appendChild(canvas); + } + var attribute = { + 'id': this.element.id + '_canvas', 'class': 'drawing', + 'style': 'position:relative; height:' + this.getSizeValue(this.model.height) + '; width:' + + this.getSizeValue(this.model.width) + + ';style:-ms-touch-action: none;touch-action: none;' + }; + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeHtml"])(canvas, attribute); + this.element.setAttribute('tabindex', String(0)); + this.element.style.overflow = 'hidden'; + this.element.style.height = String(this.model.height); + this.element.style.width = String(this.model.width); + this.canvas = canvas; + }; + Overview.prototype.setParent = function (id) { + var element = document.getElementById(id); + var instance = 'ej2_instances'; + if (this.parent) { + var oldparent = this.parent; + this.parent = null; + oldparent.setOverview(null, this.element.id); + this.removeDocument(this); + } + this.parent = this.getDiagram(element, instance); + if (this.parent) { + this.parent.setOverview(this); + } + }; + Overview.prototype.getDiagram = function (element, instance) { + var diagram; + var n = element["" + instance].length; + for (var i = 0; i < n; i++) { + if (Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["hasClass"])(element["" + instance][parseInt(i.toString(), 10)].element, 'e-diagram')) { + diagram = element["" + instance][parseInt(i.toString(), 10)]; + break; + } + } + return diagram; + }; + Overview.prototype.unWireEvents = function () { + var start = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchStartEvent; + var move = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchMoveEvent; + //const evnt: EventHandler; + var cancel = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].isPointer ? 'pointerleave' : 'mouseleave'; + //const isIE11Pointer: Boolean = Browser.isPointer; + // const wheelEvent: string = Browser.info.name === 'mozilla' ? + // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel'; + var stop = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchEndEvent; + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(this.element, start, this.mouseDown); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(this.element, move, this.mouseMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(this.element, stop, this.mouseUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(this.element, cancel, this.documentMouseUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(window, 'resize', this.windowResize); + var container = document.getElementById(this.sourceID + 'content'); + if (container) { + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].remove(container, 'scroll', this.scrolled); + } + }; + Overview.prototype.wireEvents = function () { + var start = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchStartEvent; + var stop = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchEndEvent; + var move = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].touchMoveEvent; + var cancel = _ej2_base__WEBPACK_IMPORTED_MODULE_3__["Browser"].isPointer ? 'pointerleave' : 'mouseleave'; + //const isIE11Pointer: Boolean = Browser.isPointer; + // const wheelEvent: string = Browser.info.name === 'mozilla' ? + // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel'; + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(this.element, start, this.mouseDown, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(this.element, move, this.mouseMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(this.element, stop, this.mouseUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(this.element, cancel, this.documentMouseUp, this); + // eslint-disable + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(window, 'resize', this.windowResize, this); + // eslint-enable + var container = document.getElementById(this.sourceID + 'content'); + if (container) { + _ej2_base__WEBPACK_IMPORTED_MODULE_3__["EventHandler"].add(container, 'scroll', this.scrolled, this); + } + }; + /** + * renderDocument method\ + * + * @returns { void } renderDocument method .\ + * @param {Overview} view - provide the angle value. + * @private + */ + Overview.prototype.renderDocument = function (view) { + view.canvas = this.canvas; + var g = document.getElementById(this.canvas.id + '_svg'); + if (g) { + g.parentNode.removeChild(g); + } + var attr = { + id: this.canvas.id + '_svg', + version: '1.1', + 'class': 'overview_svg' + }; + var svg = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('svg', attr); + this.svg = svg; + view.svg = svg; + view.canvas.appendChild(svg); + var ovw = document.getElementById(this.element.id); + var element = ovw; + var eWidth = element.clientWidth; + var eHeight = element.clientHeight; + var bRect = element.getBoundingClientRect(); + // Check for the window resize + var screenX = (window.screenX < 0) ? window.screenX * -1 : window.screenX; + var screenY = (window.screenY < 0) ? window.screenY * -1 : window.screenY; + if (eWidth === 0) { + var widthValue = Math.floor(((window.innerWidth - screenX) - Math.floor(bRect.left))); + eWidth = widthValue > 0 ? widthValue : Math.floor(window.innerWidth); + } + if (eHeight === 0) { + var heightValue = Math.floor(((window.innerHeight - screenY) - Math.floor(bRect.top))); + eHeight = heightValue > 0 ? heightValue : Math.floor(window.innerHeight); + } + if (eWidth > 0) { + svg.setAttribute('width', String(eWidth)); + this.model.height = eHeight; + } + if (eHeight > 0) { + svg.setAttribute('height', String(eHeight)); + this.model.width = eWidth; + } + //let attributes: Object; + if (!view.diagramLayerDiv) { + view.diagramLayerDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', {}); + //const container: HTMLElement = document.getElementById(this.element.id); + view.diagramLayer = _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_2__["CanvasRenderer"].createCanvas(this.element.id + '_diagramLayer', this.model.width, this.model.height); + view.diagramLayer.setAttribute('style', 'position:absolute; left:0px; top:0px '); + view.diagramLayerDiv.appendChild(view.diagramLayer); + view.canvas.appendChild(view.diagramLayerDiv); + } + var attributes = { + 'id': this.element.id + '_diagramLayer_div', + 'style': 'width:' + this.model.width + 'px; height:' + this.model.height + 'px;position:absolute;top:0px;left:0px' + }; + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeHtml"])(view.diagramLayerDiv, attributes); + this.renderHtmlLayer(view.canvas); + this.renderNativeLayer(view.canvas, view); + this.addOverviewRectPanel(view); + }; + /** + * removeDocument method\ + * + * @returns { void } removeDocument method .\ + * @param {Overview} view - provide the angle value. + * @private + */ + Overview.prototype.removeDocument = function (view) { + var svg = document.getElementById(this.canvas.id + '_svg'); + this.canvas.removeChild(svg); + var htmlLayer = document.getElementById(this.element.id + '_htmlLayer'); + this.canvas.removeChild(htmlLayer); + var diagramLayer = document.getElementById(this.element.id + '_diagramLayer_div'); + this.canvas.removeChild(diagramLayer); + view.diagramLayerDiv = null; + view.diagramLayer = null; + var domTable = 'domTable'; + window["" + domTable][this.id + 'html_layer'] = null; + }; + Overview.prototype.renderHtmlLayer = function (canvas) { + var htmlLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': this.element.id + '_htmlLayer', 'class': 'e-html-layer', + 'style': 'pointer-events:none;position:absolute;top:0px;left:0px;' + }); + var options = { + 'id': this.element.id + '_htmlLayer_div', + 'style': 'position:absolute;top:0px;left:0px;' + }; + var htmlDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', options); + htmlLayer.appendChild(htmlDiv); + canvas.appendChild(htmlLayer); + return htmlLayer; + }; + Overview.prototype.renderNativeLayer = function (canvas, view) { + if (!document.getElementById(this.element.id + '_nativeLayer_svg')) { + var nativeLayerSvg = this.parent.createSvg(this.element.id + '_nativeLayer_svg', this.model.width, this.model.height); + var nativeLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('g', { 'id': this.element.id + '_nativeLayer' }); + nativeLayerSvg.appendChild(nativeLayer); + view.diagramLayerDiv.appendChild(nativeLayerSvg); + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeSvg"])(nativeLayerSvg, { 'class': 'e-native-layer' }); + } + }; + Overview.prototype.addOverviewRectPanel = function (view) { + var svg = document.getElementById(this.canvas.id + '_overviewsvg'); + if (svg) { + svg.parentNode.removeChild(svg); + } + var attr = ({ + id: this.canvas.id + '_overviewsvg', + class: 'overviewsvg', + version: '1.1', + 'style': 'position:absolute;left:0px;top:0px; aria-label:Specifies overview', + width: this.model.width, + height: this.model.height + }); + svg = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('svg', attr); + view.canvas.appendChild(svg); + var ovw = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('g', { 'id': this.element.id + '_overviewlayer', 'style': 'pointer-events:none' }); + svg.appendChild(ovw); + var rect = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('rect', { + 'fill': 'transparent', 'width': '100%', 'height': '100%', 'class': 'overviewbackrect', + 'id': this.canvas.id + 'overviewbackrect' + }); + rect.setAttribute('style', ' pointer-events: none; '); + ovw.appendChild(rect); + //const svgDocument: SVGElement = (ovw); + var g = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('g', { 'id': this.canvas.id + 'overviewhandle', 'style': 'pointer-events:all' }); + ovw.appendChild(g); + var innerrect = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('rect', { 'id': this.canvas.id + 'overviewrect', 'fill': 'transparent' }); + g.appendChild(innerrect); + this.renderOverviewCorner('left', g); + this.renderOverviewCorner('right', g); + this.renderOverviewCorner('top', g); + this.renderOverviewCorner('bottom', g); + this.renderOverviewCorner('topleft', g); + this.renderOverviewCorner('topright', g); + this.renderOverviewCorner('bottomleft', g); + this.renderOverviewCorner('bottomright', g); + }; + Overview.prototype.renderOverviewCorner = function (name, parent) { + var svg = this.svg; + var shape; + if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') { + shape = 'rect'; + } + else { + shape = 'circle'; + } + var innerrect = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])(shape, { 'id': this.canvas.id + 'visible' + name }); + parent.appendChild(innerrect); + var transrect = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])(shape, { + 'id': this.canvas.id + name, 'class': 'overviewresizer', 'fill': 'transparent' + }); + parent.appendChild(transrect); + }; + Overview.prototype.updateOverviewRectangle = function () { + var difx = this.currentPoint.x - this.prevPoint.x; + var dify = this.currentPoint.y - this.prevPoint.y; + var size = new _diagram_primitives_size__WEBPACK_IMPORTED_MODULE_6__["Size"](); + size.width = 0; + size.height = 0; + var x = 0; + var y = 0; + var w; + var h; + switch (this.resizeDirection) { + case 'left': + size.width -= difx; + size.height -= difx / this.viewPortRatio; + x = difx; + y = difx / this.viewPortRatio; + y /= 2; + break; + case 'right': + size.width += difx; + size.height += difx / this.viewPortRatio; + y = difx / this.viewPortRatio; + y /= -2; + break; + case 'top': + size.height -= dify; + size.width -= dify * this.viewPortRatio; + y = dify; + x = dify * this.viewPortRatio; + x /= 2; + break; + case 'bottom': + size.height += dify; + size.width += dify * this.viewPortRatio; + x = dify * this.viewPortRatio; + x /= -2; + break; + case 'topleft': + if (Math.abs(dify) > Math.abs(difx)) { + difx = dify * this.viewPortRatio; + } + else { + dify = difx / this.viewPortRatio; + } + size.width -= difx; + size.height -= dify; + x = difx; + y = dify; + break; + case 'topright': + if (Math.abs(dify) > Math.abs(difx)) { + difx = -dify * this.viewPortRatio; + } + else { + dify = -(difx / this.viewPortRatio); + } + y = dify; + size.width += difx; + size.height -= dify; + break; + case 'bottomleft': + if (Math.abs(dify) > Math.abs(difx)) { + difx = -dify * this.viewPortRatio; + } + else { + dify = -difx / this.viewPortRatio; + } + x = difx; + size.width -= difx; + size.height += dify; + break; + case 'bottomright': + if (Math.abs(dify) > Math.abs(difx)) { + difx = dify * this.viewPortRatio; + } + else { + dify = difx / this.viewPortRatio; + } + size.width += difx; + size.height += dify; + break; + } + this.updateHelper(x, y, size, w, h); + }; + Overview.prototype.updateHelper = function (difx, dify, size, width, height) { + var x; + var y; + var bounds; + var svg = this.element.getElementsByTagName('svg')[2]; + var rect = svg.getElementById('helper'); + if (size) { + bounds = rect.getBBox(); + x = bounds.x + difx; + y = bounds.y + dify; + width = bounds.width + size.width; + height = bounds.height + size.height; + } + else { + var difx_1; + if (this.currentPoint.x > this.startPoint.x) { + difx_1 = this.currentPoint.x - this.prevPoint.x; + } + else { + difx_1 = this.prevPoint.x - this.currentPoint.x; + } + var dify_1; + if (this.currentPoint.y > this.startPoint.y) { + dify_1 = this.currentPoint.y - this.prevPoint.y; + } + else { + dify_1 = this.prevPoint.y - this.currentPoint.y; + } + var w = void 0; + var h = void 0; + if (Math.abs(dify_1) > Math.abs(difx_1)) { + difx_1 = this.viewPortRatio * dify_1; + h = true; + w = false; + } + else { + dify_1 = difx_1 / this.viewPortRatio; + w = true; + h = false; + } + bounds = rect.getBBox(); + x = ((this.startPoint.x > this.currentPoint.x) ? + bounds.x - difx_1 : bounds.x); + y = ((this.startPoint.y > this.currentPoint.y) ? bounds.y - dify_1 : bounds.y); + width = bounds.width + difx_1; + height = bounds.height + dify_1; + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeSvg"])(this.helper, { + 'id': this.helper.id, 'x': x, 'y': y, + 'width': Math.max(0, width), 'height': Math.max(0, height) + }); + }; + Overview.prototype.updateOverviewrect = function (x, y, width, height) { + var rect = document.getElementById(this.canvas.id + 'overviewrect'); + var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) }; + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeHtml"])(rect, attr); + this.updateOverviewCorner('top', x + 8, y + 1, Math.max(0, width - 16), 2); + this.updateOverviewCorner('bottom', x + 8, y + height + 3, Math.max(0, width - 16), 2); + this.updateOverviewCorner('left', x - 2, y + 11, 2, Math.max(0, height - 16)); + this.updateOverviewCorner('right', x + width, y + 11, 2, Math.max(0, height - 16)); + this.updateOverviewCorner('topleft', x, y + 3, 5, 5); + this.updateOverviewCorner('topright', x + width, y + 3, 5, 5); + this.updateOverviewCorner('bottomleft', x, y + height + 3, 5, 5); + this.updateOverviewCorner('bottomright', x + width, y + height + 3, 5, 5); + }; + Overview.prototype.updateOverviewCorner = function (name, x, y, width, height) { + var attr; + var transattr; + var rectname = 'visible' + name; + var rect = document.getElementById(this.canvas.id + rectname); + if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') { + attr = { x: x, y: y, width: width, height: height, fill: '#ED1C24' }; + transattr = { x: x - 2, y: y - 2, width: width === 2 ? 4 : width, height: height === 2 ? 4 : height }; + } + else { + attr = { cx: x, cy: y, 'r': 4, fill: '#ED1C24' }; + transattr = { cx: x, cy: y, 'r': 6, fill: 'transparent' }; + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeHtml"])(rect, attr); + var transrect = document.getElementById(this.canvas.id + name); + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["setAttributeHtml"])(transrect, transattr); + }; + Overview.prototype.translateOverviewRectangle = function () { + var offwidth = Number(this.model.width); + var offheight = Number(this.model.height); + var difx = this.currentPoint.x - this.prevPoint.x; + var dify = this.currentPoint.y - this.prevPoint.y; + //const viewPort: Rect; + //let zoom: number = Math.min(this.parent.scroller.viewPortWidth / offwidth, this.parent.scroller.viewPortHeight / offheight); + var svg = this.element.getElementsByClassName('overviewsvg')[0]; + var panel = svg.getElementById(this.canvas.id + + 'overviewrect'); + var bounds = panel.getBBox(); + var x = bounds.x + difx; + var y = bounds.y + dify; + var width = bounds.width; + var height = bounds.height; + this.updateOverviewrect(x, y, width, height); + this.updateParentView(this.parent.scroller.currentZoom, x, y, width, height, null); + }; + Overview.prototype.renderOverviewRect = function (x, y, width, height) { + var offwidth = Number(this.model.width); + var offheight = Number(this.model.height); + //const viewPort: Rect; + var viewwidth = (width / offwidth) * this.contentWidth; + var viewheight = (height / offheight) * this.contentHeight; + var zoom = Math.max(this.parent.scroller.viewPortWidth / viewwidth, this.parent.scroller.viewPortHeight / viewheight); + if (zoom >= 0.25 && zoom <= 30) { + var point = { x: 0, y: 0 }; + this.updateParentView(zoom, x, y, width, height, point); + var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true); + if (this.helper) { + var panel = this.element.getElementsByTagName('rect')[10]; + var svgRect = panel.getBBox(); + bounds.x = svgRect.x; + bounds.y = svgRect.y; + } + this.updateOverviewrect(bounds.x, bounds.y, bounds.width, bounds.height); + } + }; + Overview.prototype.scrollOverviewRect = function (hoffset, voffset, currentZoom, scaled) { + if (!(this.actionName) || scaled) { + var offwidth = Number(this.model.width); + var offheight = Number(this.model.height); + var scale = Math.min(this.contentWidth / offwidth, this.contentHeight / offheight); + var bounds = new _diagram_primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"](); + var x = bounds.x = (hoffset / currentZoom) / scale; + var y = bounds.y = (voffset / currentZoom) / scale; + //const viewPort: Rect; + var width = bounds.width = (this.parent.scroller.viewPortWidth / currentZoom) / scale; + var height = bounds.height = (this.parent.scroller.viewPortHeight / currentZoom) / scale; + //const ratio: number = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight; + if (scaled) { + var rect = new _diagram_primitives_rect__WEBPACK_IMPORTED_MODULE_5__["Rect"](); + rect.x = x; + rect.y = y; + rect.width = width; + rect.height = height; + return rect; + } + this.updateOverviewrect(-x, -y, width, height); + } + return null; + }; + Overview.prototype.updateParentView = function (zoom, x, y, width, height, focusPoint) { + var offwidth = Number(this.model.width); + var offheight = Number(this.model.height); + var scalex = this.contentWidth / offwidth; + var scaley = this.contentHeight / offheight; + var hoffset = x * scalex * zoom; + var voffset = y * scaley * zoom; + var delx; + var dely; + var bounds = this.parent.scroller.getPageBounds(); + if (zoom !== 1 || this.actionName === 'pan') { + delx = -hoffset - this.parent.scroller.horizontalOffset; + dely = -voffset - this.parent.scroller.verticalOffset; + } + this.parent.setBlazorDiagramProps(true); + this.parent.realActions |= _diagram_enum_enum__WEBPACK_IMPORTED_MODULE_0__["RealAction"].OverViewAction; + var canOverview = true; + if (this.actionName === 'scale' || this.actionName === 'draw') { + this.parent.scroller.zoom(zoom / this.parent.scroller.currentZoom, delx, dely, focusPoint); + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["isBlazor"])()) { + this.parent.pan(delx, dely, focusPoint, canOverview); + } + else { + this.parent.scroller.zoom(1, delx, dely, focusPoint); + } + } + }; + Overview.prototype.updateHtmlLayer = function (view) { + var htmlLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["getHTMLLayer"])(view.element.id); + var bounds = this.parent.scroller.getPageBounds(true); + var width = bounds.width; + var height = bounds.height; + var w = Math.max(width, this.parent.scroller.viewPortWidth); + var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom); + var scale = Math.min(Number(this.model.width) / w, Number(this.model.height) / h); + htmlLayer.style.transform = 'scale(' + scale + ') translate(' + this.parent.scroller.transform.tx + 'px,' + + (this.parent.scroller.transform.ty) + 'px)'; + }; + /** @private */ + /** + * updateView method\ + * + * @returns { void } removeDocument method .\ + * @param {Overview} view - provide the angle value. + * @private + */ + Overview.prototype.updateView = function (view) { + //let width: number; let height: number; + var bounds = this.parent.scroller.getPageBounds(); + var diagramBoundsWidth = this.parent.scroller.viewPortWidth / this.parent.scroller.currentZoom; + var diagramBoundsHeight = this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom; + var transformWidth = 0; + var transformHeight = 0; + if (this.parent.scroller.currentZoom < 1 && diagramBoundsWidth > bounds.width && diagramBoundsHeight > bounds.height) { + transformWidth = (diagramBoundsWidth - bounds.width) / 2; + transformHeight = (diagramBoundsHeight - bounds.height) / 2; + } + var width = bounds.width; + var height = bounds.height; + var offwidth = Number(this.model.width); + var offheight = Number(this.model.height); + //let scale: number; + var w = Math.max(width, this.parent.scroller.viewPortWidth); + var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom); + this.contentWidth = w = Math.max(w, (offwidth / offheight) * h); + this.contentHeight = h = Math.max(h, (offheight / offwidth) * w); + var scale = Math.min(offwidth / w, offheight / h); + var htmlLayer = document.getElementById(this.element.id + '_htmlLayer'); + htmlLayer.style.webkitTransform = 'scale(' + scale + ') translate(' + -bounds.x + 'px,' + (-bounds.y) + 'px)'; + htmlLayer.style.transform = 'scale(' + scale + ') translate(' + ((-(bounds.x)) + transformWidth) + 'px,' + + (((-bounds.y) + transformHeight)) + 'px)'; + var ovw = document.getElementById(this.element.id + '_overviewlayer'); + ovw.setAttribute('transform', 'translate(' + (-bounds.x * scale) + ',' + (-bounds.y * scale) + ')'); + this.horizontalOffset = bounds.x * scale; + this.verticalOffset = bounds.y * scale; + var canvas = document.getElementById(this.element.id + '_diagramLayer'); + var nativeLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["getNativeLayer"])(this.element.id); + var context = canvas.getContext('2d'); + var widthratio = (Number(this.model.width) / this.contentWidth); + var heightratio = (Number(this.model.height) / this.contentHeight); + widthratio = Math.min(widthratio, heightratio); + var transform = this.parent.scroller.transform; + var tx = transform.tx; + var ty = transform.ty; + nativeLayer.setAttribute('transform', 'translate(' + + (tx * widthratio) + ',' + (ty * heightratio) + '),scale(' + + widthratio + ')'); + context.setTransform(widthratio, 0, 0, widthratio, 0, 0); + context.fillStyle = 'red'; + this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom); + }; + // region - Event Handlers + Overview.prototype.scrolled = function (evt) { + if (this.event) { + var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true); + this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height); + // EJ2-67416 - Added below code to update the overview rect if the diagram and overview is scrolled. + this.updateView(this); + } + }; + Overview.prototype.updateCursor = function (evt) { + if (Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["hasClass"])(evt.target, ('overviewresizer'))) { + switch (evt.target.id) { + case this.canvas.id + 'left': + this.canvas.style.cursor = 'w-resize'; + break; + case this.canvas.id + 'right': + this.canvas.style.cursor = 'e-resize'; + break; + case this.canvas.id + 'top': + this.canvas.style.cursor = 'n-resize'; + break; + case this.canvas.id + 'bottom': + this.canvas.style.cursor = 's-resize'; + break; + case this.canvas.id + 'topleft': + this.canvas.style.cursor = 'nw-resize'; + break; + case this.canvas.id + 'topright': + this.canvas.style.cursor = 'ne-resize'; + break; + case this.canvas.id + 'bottomleft': + this.canvas.style.cursor = 'sw-resize'; + break; + case this.canvas.id + 'bottomright': + this.canvas.style.cursor = 'se-resize'; + break; + } + } + else { + this.canvas.style.cursor = 'default'; + } + }; + Overview.prototype.mouseMove = function (evt) { + this.event = false; + this.updateCursor(evt); + this.currentPoint = this.mousePosition(evt); + if (this.actionName) { + switch (this.actionName) { + case 'draw': + if (!this.inAction && (this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) { + this.initHelper(); + this.inAction = true; + } + if (this.inAction) { + this.updateHelper(); + } + break; + case 'scale': + if (!this.inAction) { + this.initHelper(); + this.inAction = true; + } + this.updateOverviewRectangle(); + break; + case 'pan': + if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y === this.currentPoint.y) || this.inAction) { + this.inAction = true; + this.translateOverviewRectangle(); + } + break; + } + } + this.prevPoint = this.currentPoint; + }; + Overview.prototype.documentMouseUp = function (evt) { + this.inAction = false; + this.actionName = ''; + if (this.helper) { + this.helper.parentNode.removeChild(this.helper); + this.helper = null; + } + this.event = true; + document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all'; + }; + Overview.prototype.windowResize = function (evt) { + var _this = this; + if (this.resizeTo) { + clearTimeout(this.resizeTo); + } + this.resizeTo = setTimeout(function () { + var element = document.getElementById(_this.element.id); + var bRect = element.getBoundingClientRect(); + _this.model.width = bRect.width > 0 ? bRect.width : _this.model.width; + _this.model.height = bRect.height > 0 ? bRect.height : _this.model.height; + _this.renderCanvas(); + _this.setParent(_this.sourceID); + }, 10); + return false; + }; + /** + * mouseDown method\ + * + * @returns { void } mouseDown method .\ + * @param {PointerEvent | TouchEvent} evt - provide the angle value. + * @private + */ + Overview.prototype.mouseDown = function (evt) { + if (evt.target.id === this.canvas.id + '_overviewsvg') { + this.actionName = 'draw'; + } + if (evt.target.id === this.canvas.id + 'overviewrect') { + this.actionName = 'pan'; + } + if (Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["hasClass"])(evt.target, 'overviewresizer')) { + this.actionName = 'scale'; + switch (evt.target.id) { + case this.canvas.id + 'left': + this.resizeDirection = 'left'; + break; + case this.canvas.id + 'right': + this.resizeDirection = 'right'; + break; + case this.canvas.id + 'top': + this.resizeDirection = 'top'; + break; + case this.canvas.id + 'bottom': + this.resizeDirection = 'bottom'; + break; + case this.canvas.id + 'topleft': + this.resizeDirection = 'topleft'; + break; + case this.canvas.id + 'topright': + this.resizeDirection = 'topright'; + break; + case this.canvas.id + 'bottomleft': + this.resizeDirection = 'bottomleft'; + break; + case this.canvas.id + 'bottomright': + this.resizeDirection = 'bottomright'; + break; + } + } + this.startPoint = this.prevPoint = this.mousePosition(evt); + this.viewPortRatio = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight; + var overViewHandle = document.getElementById(this.canvas.id + 'overviewhandle'); + overViewHandle.style.pointerEvents = 'none'; + }; + Overview.prototype.mouseUp = function (evt) { + this.currentPoint = this.mousePosition(evt); + //let offwidth: number = Number(this.model.width); + //let offheight: number = Number(this.model.height); + if (this.actionName) { + if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) { + if (this.actionName === 'pan') { + //let i: number = 0; + } + else { + if (this.helper) { + var bounds = (this.element.getElementsByTagName('rect')[10]).getBBox(); + this.resizeDirection = this.resizeDirection || ''; + var x = bounds.x; + var y = bounds.y; + var width = bounds.width; + var height = bounds.height; + var adjust = this.resizeDirection === 'topleft' || this.resizeDirection === 'topright' || + this.resizeDirection === 'bottomleft' || this.resizeDirection === 'bottomright'; + this.renderOverviewRect(x, y, width, height); + } + } + } + else { + if (evt.target.id === this.canvas.id + '_overviewsvg' || evt.target.id === 'helper') { + var svg = this.element.getElementsByTagName('svg')[2]; + var g = svg.getElementById(this.canvas.id + + 'overviewrect'); + var bounds = g.getBBox(); + var width = bounds.width; + var height = bounds.height; + this.inAction = true; + this.actionName = 'pan'; + this.renderOverviewRect(this.currentPoint.x - width / 2, this.currentPoint.y - height / 2, width, height); + this.inAction = false; + } + } + } + if (this.helper) { + this.helper.parentNode.removeChild(this.helper); + this.helper = null; + } + this.actionName = ''; + this.startPoint = null; + this.currentPoint = null; + this.prevPoint = null; + this.helper = null; + this.viewPortRatio = 1; + this.resizeDirection = ''; + this.inAction = false; + this.event = true; + document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all'; + }; + Overview.prototype.initHelper = function () { + var g = this.element.getElementsByTagName('svg')[2]; + //const scale: number = this.parent.scroller.currentZoom; + var x = this.startPoint.x; + var y = this.startPoint.y; + var width = 1; + var height = 1; + if (this.actionName === 'scale') { + var rect = g. + getElementById(this.canvas.id + 'overviewrect'); + var bounds = rect.getBBox(); + x = bounds.x; + y = bounds.y; + width = bounds.width; + height = bounds.height; + } + var selectionRect = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('rect', { + 'id': 'helper', x: x, y: y, width: width, height: height, + 'fill': 'transparent', 'stroke': 'gray', 'stroke-dasharray': '2 2', 'shape-rendering': 'crispEdges' + }); + var overviewLayer = g.getElementById(this.element.id + '_overviewlayer'); + overviewLayer.appendChild(selectionRect); + this.helper = selectionRect; + }; + Overview.prototype.mousePosition = function (evt) { + var touchArg; + var offsetX; + var offsetY; + if (evt.type.indexOf('touch') !== -1) { + touchArg = evt; + var pageX = touchArg.changedTouches[0].clientX; + var pageY = touchArg.changedTouches[0].clientY; + offsetX = pageX - this.element.offsetLeft; + offsetY = pageY - this.element.offsetTop; + } + else { + offsetX = evt.clientX; + offsetY = evt.clientY; + } + var boundingRect = this.element.getBoundingClientRect(); + offsetX = offsetX - boundingRect.left; + offsetY = offsetY - boundingRect.top; + return { x: offsetX + this.horizontalOffset, y: offsetY + this.verticalOffset }; + }; + // end region - Event handlers + /** + *To destroy the overview + * + * @returns {void} To destroy the overview + */ + Overview.prototype.destroy = function () { + this.unWireEvents(); + this.notify('destroy', {}); + _super.prototype.destroy.call(this); + if (document.getElementById(this.element.id)) { + this.element.classList.remove('e-overview'); + var content = document.getElementById(this.element.id + '_canvas'); + if (content) { + this.element.removeChild(content); + } + } + this.parent.views.splice(this.parent.views.indexOf(this.element.id), 1); + this.diagramLayerDiv = null; + this.canvas = null; + this.parent = null; + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + Overview.prototype.getModuleName = function () { + /** + * Returns the module name + */ + return 'Overview'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["Property"])('100%') + ], Overview.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["Property"])('100%') + ], Overview.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["Property"])('') + ], Overview.prototype, "sourceID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["Event"])() + ], Overview.prototype, "created", void 0); + return Overview; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_3__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/index.js ***! + \*******************************************************************/ +/*! exports provided: Ruler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ruler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ruler */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/ruler.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Ruler", function() { return _ruler__WEBPACK_IMPORTED_MODULE_0__["Ruler"]; }); + +/** + * Exported Ruler files + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/ruler.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/ruler/ruler.js ***! + \*******************************************************************/ +/*! exports provided: Ruler */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Ruler", function() { return Ruler; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../diagram/utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _diagram_primitives_size__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagram/primitives/size */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/size.js"); +/* harmony import */ var _diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../diagram/utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/ban-types */ + + + + +/** + * Represents the Ruler component that measures the Diagram objects, indicate positions, and align Diagram elements. + * ```html + *
Show Ruler
+ * ``` + * ```typescript + * + * ``` + */ +var Ruler = /** @__PURE__ @class */ (function (_super) { + __extends(Ruler, _super); + /** + * Constructor for creating the Ruler Component + * + * @param {RulerModel} options The ruler model. + * @param {string | HTMLElement} element The ruler element. + */ + function Ruler(options, element) { + var _this = _super.call(this, options, element) || this; + /** @private */ + _this.offset = 0; + /** @private */ + _this.scale = 1; + return _this; + } + /** + * Initializes the values of private members. + * + * @returns {void} Initializes the values of private members. + * @private + */ + Ruler.prototype.preRender = function () { + this.unWireEvents(); + this.wireEvents(); + }; + /** + * Renders the rulers. + * + * @returns {void} Renders the rulers. + * @private + */ + Ruler.prototype.render = function () { + this.updateRulerGeometry(); + this.renderComplete(); + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + Ruler.prototype.getModuleName = function () { + return 'Ruler'; + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + Ruler.prototype.destroy = function () { + this.unWireEvents(); + this.notify('destroy', {}); + _super.prototype.destroy.call(this); + this.element.classList.remove('e-ruler'); + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} Get the properties to be maintained in the persisted state. + */ + Ruler.prototype.getPersistData = function () { + var keyEntity = ['loaded']; + return this.addOnPersist(keyEntity); + }; + /** + * Refreshes the ruler when the Ruler properties are updated\ + * + * @returns { void} Refreshes the ruler when the Ruler properties are updated .\ + * @param {RulerModel} newProp - provide the newProp value. + * @param {RulerModel} oldProp - provide the oldProp value. + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Ruler.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'length': + case 'interval': + case 'segmentWidth': + case 'tickAlignment': + case 'markerColor': + case 'thickness': + this.updateRuler(); + break; + } + } + }; + Ruler.prototype.updateRulerGeometry = function () { + this.element.style.textAlign = 'left'; + this.renderRulerSpace(); + this.updateRuler(); + }; + Ruler.prototype.renderRulerSpace = function () { + var rulerGeometry = this.getRulerGeometry(); + var div = document.getElementById(this.element.id + '_ruler_space'); + if (!div) { + div = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createHtmlElement"])('div', { + 'id': this.element.id + '_ruler_space', + 'style': 'height:' + rulerGeometry.height + 'px;width:' + rulerGeometry.width + 'px;cssFloat:' + 'left;' + }); + this.element.appendChild(div); + } + return div; + }; + Ruler.prototype.updateRuler = function () { + var rulerSize = this.getRulerSize(); + var rulerGeometry = this.getRulerGeometry(); + var length = 0; + var offset = 0; + var availableSize = new _diagram_primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"](); + var svg = this.getRulerSVG(rulerGeometry); + if (svg) { + length = this.length; + availableSize.height = rulerSize; + offset = this.offset; + if (length && length !== Infinity) { + var unitLength = length + this.segmentWidth; + var unitOffset = offset; + this.updateSegments(unitOffset, (unitLength + Math.abs(unitOffset)), svg, rulerSize); + } + } + }; + Ruler.prototype.updateSegments = function (start, end, svg, rulerSize) { + var run = start; + var trans = { trans: 0 }; + while (run < end) { + var rulerSegment = this.getNewSegment(run, svg); + if (rulerSegment) { + svg.appendChild(rulerSegment.segment); + run = this.updateSegment(start, end, rulerSegment, run, trans, rulerSize); + } + } + }; + Ruler.prototype.updateSegment = function (start, end, rulerSegment, run, trans, rulerSize) { + var segWidth = this.updateSegmentWidth(this.scale); + if (run === start) { + this.startValue = Math.floor(start / segWidth) * segWidth / this.scale; + this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue; + rulerSegment.label.textContent = this.startValue.toString(); + this.defStartValue = run = this.startValue * this.scale; + if (this.orientation === 'Horizontal') { + this.hRulerOffset = start - run; + } + else { + this.vRulerOffset = start - run; + } + } + else { + this.startValue = (run / this.scale); + this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue; + rulerSegment.label.textContent = this.startValue.toString(); + } + this.updateTickLabel(rulerSegment, rulerSize); + var translate = (this.orientation === 'Horizontal') ? ((trans.trans + 0.5) + ',0.5') : ('0.5,' + (trans.trans + 0.5)); + rulerSegment.segment.setAttribute('transform', 'translate(' + translate + ')'); + trans.trans += segWidth; + run += segWidth; + return run; + }; + Ruler.prototype.updateTickLabel = function (rulerSegment, rulerSize) { + var bBox = rulerSegment.segment.lastChild.getBBox(); + var isHorizontal = (this.orientation === 'Horizontal') ? true : false; + var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false; + var x = isHorizontal ? 2 : 0; + var y = isHorizontal ? (isRightOrBottom ? (rulerSize / 2 + (11 / 2) - (11 / 2)) : + (rulerSize / 2 + (11 / 2))) : bBox.height; + var translate = isRightOrBottom ? (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height)) : + (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height / 2)); + var attr = isHorizontal ? { 'x': x, 'y': y } : + { 'x': x, 'y': y, 'transform': 'rotate(270)' + 'translate(' + translate + ')' }; + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["setAttributeSvg"])(rulerSegment.segment.lastChild, attr); + }; + Ruler.prototype.getNewSegment = function (run, svg) { + var segment = this.createNewTicks(run, svg); + var label = this.createTickLabel(svg, segment); + return { segment: segment, label: label }; + }; + Ruler.prototype.createNewTicks = function (run, svg) { + var tick; + var tickInterval; + var segmentWidth = this.updateSegmentWidth(this.scale); + //let g: SVGElement; + var attr = { 'class': 'e-ruler-segment' }; + var g = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createSvgElement"])('g', attr); + for (var i = 0; i < this.interval; i++) { + tickInterval = segmentWidth / this.interval; + tick = this.createTick(svg, tickInterval, i + 1, run); + g.appendChild(tick); + } + return g; + }; + Ruler.prototype.getLinePoint = function (svg, tickInterval, length) { + var segmentWidth = this.updateSegmentWidth(this.scale); + var rulerSize = this.getRulerSize(); + tickInterval = tickInterval * (length - 1); + length = ((tickInterval % segmentWidth) === 0) ? rulerSize : rulerSize * 0.3; + return length; + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Ruler.prototype.createTick = function (svg, tickInterval, length, run) { + var ruler; + //let line: SVGElement; + var linePoint = this.getLinePoint(svg, tickInterval, length); + var rulerSize = this.getRulerSize(); + //let args: IArrangeTickOptions; + //let attr: Object; + var isHorizontal = (this.orientation === 'Horizontal') ? true : false; + var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false; + var arrangeTick = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_3__["getFunction"])(this.arrangeTick); + // eslint-disable-next-line + var args = { ruler: ruler, tickLength: linePoint, tickInterval: ((this.segmentWidth / this.interval) * (length - 1)) }; + if (arrangeTick) { + arrangeTick(args); + } + linePoint = args.tickLength; + var point = tickInterval * (length - 1); + var x1 = isHorizontal ? point : (isRightOrBottom ? rulerSize : 0); + var x2 = isHorizontal ? point : (isRightOrBottom ? (rulerSize - linePoint) : (rulerSize - (rulerSize - linePoint))); + var y1 = isHorizontal ? (isRightOrBottom ? rulerSize : (rulerSize - (rulerSize - linePoint))) : point; + var y2 = isHorizontal ? (isRightOrBottom ? (rulerSize - linePoint) : 0) : point; + var attr = { 'x1': x1, 'y1': y1, 'x2': x2, 'y2': y2, 'stroke-width': '1', 'stroke': 'black' }; + var line = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createSvgElement"])('line', attr); + line.setAttribute('class', 'e-ruler-tick'); + return line; + }; + Ruler.prototype.createTickLabel = function (svg, segment) { + var text; + if (segment) { + var attr = { 'class': 'e-ruler-tick-label' }; + text = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createSvgElement"])('text', attr); + segment.appendChild(text); + } + return text; + }; + /** + * @private + * @param {number} scale + */ + /** + * updateSegmentWidth method\ + * + * @returns {number} updateSegmentWidth method .\ + * @param {string} scale - provide the scale value. + * + * @private + */ + Ruler.prototype.updateSegmentWidth = function (scale) { + if (this.segmentWidth !== 100) { + return this.segmentWidth; + } + var five = 25; + var multiples = 1; + var div; + //let scaleRound: number; + var fifty = 100; + var scaleRound = Math.pow(2, Math.round(Math.log(scale) / Math.log(2))); + div = fifty; + div = (fifty / scaleRound); + while (div > 100) { + multiples /= 10; + div /= 10; + } + while (div < 25) { + multiples *= 10; + div *= 10; + } + if (div >= five && div % five !== 0) { + div = Math.round(div / five) * five; + } + return div * scale / multiples; + }; + Ruler.prototype.createMarkerLine = function (rulerSvg, rulerObj, attr) { + var line; + if (rulerObj) { + line = rulerSvg.getElementById(rulerObj.id + '_marker'); + if (line) { + line.parentNode.removeChild(line); + } + line = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createSvgElement"])('line', attr); + } + return line; + }; + /** + * updateSegmentWidth method\ + * + * @returns {void} updateSegmentWidth method .\ + * @param {HTMLElement} rulerObj - Defines the ruler Object + * @param {PointModel} currentPoint - Defines the current point for ruler Object + * @param {number} offset - Defines the offset ruler Object + * + * @private + */ + Ruler.prototype.drawRulerMarker = function (rulerObj, currentPoint, offset) { + var rulerSvg; + var rulerSize; + var scale; + var diff; + var i; + var attr; + var line; + var isHorizontal = this.orientation === 'Horizontal' ? true : false; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var rulerSvgElements = rulerObj.getElementsByTagName('svg'); + for (i = 0; i < rulerSvgElements.length; i++) { + if (rulerSvgElements[parseInt(i.toString(), 10)]) { + rulerSvg = rulerSvgElements[parseInt(i.toString(), 10)]; + } + break; + } + if (rulerSvg) { + rulerSize = this.getRulerSize(); + attr = { + 'id': rulerObj.id + '_marker', 'x1': 0, 'y1': 0, 'x2': (isHorizontal ? 0 : rulerSize), + 'y2': (isHorizontal ? rulerSize : 0), 'stroke': this.markerColor, 'stroke-width': 1.5, + 'class': 'e-d-ruler-marker' + }; + line = this.createMarkerLine(rulerSvg, rulerObj, attr); + scale = this.scale; + diff = this.offset - this.defStartValue; + var point = isHorizontal ? currentPoint.x : currentPoint.y; + var move = (point * scale) + offset + diff; + line.setAttribute('transform', 'translate(' + (isHorizontal ? ((move + 0.5) + ' 0.5') : ('0.5 ' + (move + 0.5))) + ')'); + rulerSvg.appendChild(line); + } + }; + Ruler.prototype.getRulerGeometry = function () { + return new _diagram_primitives_size__WEBPACK_IMPORTED_MODULE_2__["Size"](this.element ? this.element.getBoundingClientRect().width : 0, this.element ? this.element.getBoundingClientRect().height : 0); + }; + Ruler.prototype.getRulerSize = function () { + return this.thickness; + }; + Ruler.prototype.getRulerSVG = function (rulerGeometry) { + var rulerSpace; + var rulerSize = this.getRulerSize(); + var svg; + if (this.element) { + rulerSpace = document.getElementById(this.element.id + '_ruler_space'); + if (rulerSpace) { + var attr = { + 'id': this.element.id + '_Ruler_svg', + width: this.orientation === 'Horizontal' ? (rulerGeometry.width + 200) : rulerSize + 'px', + height: this.orientation === 'Horizontal' ? rulerSize : (rulerGeometry.height + 200) + 'px', + style: 'position:inherit;' + }; + svg = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_1__["createSvgElement"])('svg', attr); + if (rulerSpace.childNodes.length > 0) { + for (var i = rulerSpace.childNodes.length - 1; i >= 0; i--) { + rulerSpace.childNodes[parseInt(i.toString(), 10)].parentNode.removeChild(rulerSpace.childNodes[parseInt(i.toString(), 10)]); + } + } + rulerSpace.appendChild(svg); + } + } + return svg; + }; + /** + * Method to bind events for the ruler \ + * + * @returns {void} Method to bind events for the ruler .\ + * @private + */ + Ruler.prototype.wireEvents = function () { + //wire Events + }; + /** + * Method to unbind events for the ruler \ + * + * @returns {void} Method to unbind events for the ruler .\ + * @private + */ + Ruler.prototype.unWireEvents = function () { + //unWire Events + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], Ruler.prototype, "interval", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], Ruler.prototype, "segmentWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], Ruler.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('RightOrBottom') + ], Ruler.prototype, "tickAlignment", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('red') + ], Ruler.prototype, "markerColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(25) + ], Ruler.prototype, "thickness", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Ruler.prototype, "arrangeTick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], Ruler.prototype, "length", void 0); + return Ruler; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/index.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/index.js ***! + \****************************************************************************/ +/*! exports provided: Palette, SymbolDragSize, SymbolPreview, SymbolPalette */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _symbol_palette__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./symbol-palette */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/symbol-palette.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Palette", function() { return _symbol_palette__WEBPACK_IMPORTED_MODULE_0__["Palette"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolDragSize", function() { return _symbol_palette__WEBPACK_IMPORTED_MODULE_0__["SymbolDragSize"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPreview", function() { return _symbol_palette__WEBPACK_IMPORTED_MODULE_0__["SymbolPreview"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SymbolPalette", function() { return _symbol_palette__WEBPACK_IMPORTED_MODULE_0__["SymbolPalette"]; }); + +/** + * Exported symbol palette files + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/symbol-palette.js": +/*!*************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-diagrams/symbol-palette/symbol-palette.js ***! + \*************************************************************************************/ +/*! exports provided: Palette, SymbolDragSize, SymbolPreview, SymbolPalette */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Palette", function() { return Palette; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolDragSize", function() { return SymbolDragSize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolPreview", function() { return SymbolPreview; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SymbolPalette", function() { return SymbolPalette; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_navigations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-navigations */ "./ej2-resources/22.1.37/scripts/ej2-navigations/index.js"); +/* harmony import */ var _diagram_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../diagram/index */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/index.js"); +/* harmony import */ var _diagram_rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../diagram/rendering/svg-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/svg-renderer.js"); +/* harmony import */ var _diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../diagram/utility/dom-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/dom-util.js"); +/* harmony import */ var _diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../diagram/utility/diagram-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/diagram-util.js"); +/* harmony import */ var _diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../diagram/utility/base-util */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/base-util.js"); +/* harmony import */ var _diagram_utility_connector__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../diagram/utility/connector */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/utility/connector.js"); +/* harmony import */ var _diagram_primitives_point__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../diagram/primitives/point */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/primitives/point.js"); +/* harmony import */ var _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../diagram/rendering/canvas-renderer */ "./ej2-resources/22.1.37/scripts/ej2-diagrams/diagram/rendering/canvas-renderer.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/ban-types */ + + + + + + + + + + + + + + + + + + +// eslint-disable-next-line +var getObjectType = function (obj) { + var conn = obj; + if (conn.sourcePoint || conn.targetPoint || conn.sourceID || conn.targetID + || conn.sourcePortID || conn.targetPortID || conn.sourceDecorator || conn.targetDecorator) { + return _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]; + } + if (obj.shape && (obj.shape instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Shape"] || obj.shape.type)) { + return _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]; + } + return _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]; +}; +/** + * A palette allows to display a group of related symbols and it textually annotates the group with its header. + */ +var Palette = /** @__PURE__ @class */ (function (_super) { + __extends(Palette, _super); + // eslint-disable-next-line + function Palette(parent, propName, defaultValue, isArray) { + return _super.call(this, parent, propName, defaultValue, isArray) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Palette.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Palette.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Palette.prototype, "expanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Palette.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Palette.prototype, "title", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["CollectionFactory"])(getObjectType) + ], Palette.prototype, "symbols", void 0); + return Palette; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * customize the drag size of the individual palette items. + */ +var SymbolDragSize = /** @__PURE__ @class */ (function (_super) { + __extends(SymbolDragSize, _super); + function SymbolDragSize() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolDragSize.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolDragSize.prototype, "height", void 0); + return SymbolDragSize; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * customize the preview size and position of the individual palette items. + */ +var SymbolPreview = /** @__PURE__ @class */ (function (_super) { + __extends(SymbolPreview, _super); + function SymbolPreview() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPreview.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPreview.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, _diagram_primitives_point__WEBPACK_IMPORTED_MODULE_8__["Point"]) + ], SymbolPreview.prototype, "offset", void 0); + return SymbolPreview; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Represents the Symbol Palette Component. + * ```html + *
+ * + * ``` + */ +/** + * The symbol palette control allows to predefine the frequently used nodes and connectors + * and to drag and drop those nodes/connectors to drawing area + */ +var SymbolPalette = /** @__PURE__ @class */ (function (_super) { + __extends(SymbolPalette, _super); + //region - protected methods + /** + * Constructor for creating the symbol palette Component + * + * @param {SymbolPaletteModel} options The symbol palette model. + * @param {string | HTMLElement} element The symbol palette element. + */ + function SymbolPalette(options, element) { + var _this = _super.call(this, options, element) || this; + /** @private */ + _this.symbolTable = {}; + /** @private */ + _this.childTable = {}; + _this.info = 'info'; + _this.oldObject = null; + _this.laneTable = {}; + _this.isExpand = false; + _this.isExpandMode = false; + _this.isMethod = false; + _this.paletteid = 88123; + _this.checkOnRender = false; + _this.symbolTooltipObject = null; + // eslint-disable + _this.helper = function (e) { + var clonedElement; + var id = (_this.selectedSymbol && _this.selectedSymbol.id) || e.sender.target.id.split('_container')[0]; + var symbol = _this.symbolTable["" + id]; + if (symbol && _this.selectedSymbol) { + _this.selectedSymbols = _this.selectedSymbol.id === symbol.id ? symbol : _this.selectedSymbol; + //const position: PointModel = this.getMousePosition(e.sender); + clonedElement = _this.getSymbolPreview(_this.selectedSymbols, e.sender, _this.element); + clonedElement.setAttribute('paletteId', _this.element.id); + } + return clonedElement; + }; + var child; + var node; + for (var i = 0; _this && _this.palettes && i < _this.palettes.length; i++) { + for (var j = 0; j < _this.palettes[parseInt(i.toString(), 10)].symbols.length; j++) { + child = _this.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)]; + node = options.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)]; + if (child && child.shape.type === 'UmlActivity') { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["setUMLActivityDefaults"])(node, child); + } + if (_this.nodeDefaults || _this.connectorDefaults) { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["updateDefaultValues"])(child, node, child instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"] ? _this.nodeDefaults : _this.connectorDefaults); + } + } + } + return _this; + } + /** + * Refreshes the panel when the symbol palette properties are updated\ + * + * @returns { void} Refreshes the panel when the symbol palette properties are updated .\ + * @param {SymbolPaletteModel} newProp - Defines the new values of the changed properties. + * @param {SymbolPaletteModel} oldProp - Defines the old values of the changed properties. + */ + // eslint-disable-next-line + SymbolPalette.prototype.onPropertyChanged = function (newProp, oldProp) { + var refresh = false; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + this.element.style.width = this.width.toString(); + break; + case 'height': + this.element.style.height = this.height.toString(); + break; + case 'symbolPreview': + break; + case 'symbolWidth': + case 'symbolHeight': + case 'getSymbolInfo': + if (this.isReact) { + refresh = false; + } + else { + refresh = true; + } + break; + case 'enableSearch': + if (newProp.enableSearch && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.createTextbox(); + } + else { + var divElement = document.getElementById(this.element.id + '_search'); + if (divElement) { + divElement.parentNode.removeChild(divElement); + } + } + break; + case 'palettes': + for (var _b = 0, _c = Object.keys(newProp.palettes); _b < _c.length; _b++) { + var i = _c[_b]; + var index = Number(i); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.accordionElement.items[parseInt(index.toString(), 10)]) { + this.accordionElement.items[parseInt(index.toString(), 10)] = { + header: newProp.palettes[parseInt(index.toString(), 10)].title || '', + expanded: newProp.palettes[parseInt(index.toString(), 10)].expanded, + iconCss: newProp.palettes[parseInt(index.toString(), 10)].iconCss || '' + }; + } + if (newProp.palettes[parseInt(index.toString(), 10)].height) { + var paletteDiv = document.getElementById(this.palettes[parseInt(index.toString(), 10)].id + '_content'); + paletteDiv.style.height = newProp.palettes[parseInt(index.toString(), 10)].height + 'px'; + } + if (newProp.palettes[parseInt(index.toString(), 10)].iconCss !== undefined) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.items[parseInt(index.toString(), 10)].iconCss = newProp.palettes[parseInt(index.toString(), 10)].iconCss || ''; + refresh = true; + } + } + if (newProp.palettes[parseInt(index.toString(), 10)].expanded !== undefined && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (!this.palettes[parseInt(index.toString(), 10)].isInteraction) { + this.accordionElement.items[parseInt(index.toString(), 10)].expanded = newProp.palettes[parseInt(index.toString(), 10)].expanded; + this.isExpand = true; + } + else { + this.palettes[parseInt(index.toString(), 10)].isInteraction = false; + } + if (!this.isExpandMode && !this.isMethod && !this.isExpand) { + this.isExpand = true; + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && newProp.palettes[parseInt(index.toString(), 10)].symbols !== null) { + refresh = true; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && newProp.palettes[parseInt(index.toString(), 10)].symbols === null) { + this.updateBlazorProperties(newProp); + } + } + break; + case 'enableAnimation': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + if (!this.enableAnimation) { + this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } }; + } + else { + this.accordionElement.animation = { expand: { duration: 400 }, collapse: { duration: 400 } }; + } + } + break; + case 'expandMode': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.expandMode = this.expandMode; + refresh = true; + this.isExpandMode = true; + } + break; + case 'allowDrag': + this.allowDrag = newProp.allowDrag; + if (!this.allowDrag) { + this.draggable.helper = function () { + return null; + }; + } + else { + this.initDraggable(); + this.draggable.helper = this.helper; + } + break; + } + } + if (refresh) { + this.refreshPalettes(); + } + if (this.isExpand && !refresh) { + this.refresh(); + this.isExpand = false; + for (var p = 0; p < this.palettes.length; p++) { + var paletteElement = this.palettes[parseInt(p.toString(), 10)].id; + if (window["" + paletteElement]) { + if (window["" + paletteElement].length > 1) { + window["" + paletteElement][1].parentNode.removeChild(window["" + paletteElement][1]); + window["" + paletteElement][1] = null; + } + } + } + } + this.isMethod = false; + }; + /** + * updateBlazorProperties method\ + * + * @returns {void} updateBlazorProperties method .\ + * @param {SymbolPaletteModel} newProp - provide the scale value. + * + * @private + */ + SymbolPalette.prototype.updateBlazorProperties = function (newProp) { + var blazorInterop = 'sfBlazor'; + var blazor = 'Blazor'; + if (window && window["" + blazor]) { + var palObj = { palette: newProp.palettes }; + var obj = { 'methodName': 'UpdateBlazorProperties', 'paletteobj': palObj }; + window["" + blazorInterop].updateBlazorProperties(obj, this); + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} Get the properties to be maintained in the persisted state. + */ + SymbolPalette.prototype.getPersistData = function () { + var keyEntity = ['loaded']; + return this.addOnPersist(keyEntity); + }; + /** + * Initializes the values of private members. + * + * @returns {void} Initializes the values of private members. + * @private + */ + SymbolPalette.prototype.preRender = function () { + var _this = this; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"](this.getModuleName(), this.defaultLocale(), this.locale); + if (this.element.id === '') { + var collection = document.getElementsByClassName('e-symbolpalette').length; + this.element.id = 'symbolpalette_' + this.paletteid + '_' + collection; + } + this.element.style.overflow = 'auto'; + this.element.style.height = this.height.toString(); + this.element.style.width = this.width.toString(); + if (this.enableSearch && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.createTextbox(); + } + //create accordion element + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var accordionDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { id: this.element.id + '_container' }); + this.accordionElement = new _ej2_navigations__WEBPACK_IMPORTED_MODULE_1__["Accordion"]({ + expandMode: this.expandMode + }); + if (!this.enableAnimation) { + this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } }; + } + this.accordionElement.created = function () { + _this.checkOnRender = true; + }; + this.accordionElement.expanded = function (args) { + var index = _this.accordionElement.items.indexOf(args.item); + var isAllowDatabind = _this.allowServerDataBinding; + _this.allowServerDataBinding = false; + _this.palettes[parseInt(index.toString(), 10)].expanded = args.isExpanded; + _this.palettes[parseInt(index.toString(), 10)].isInteraction = true; + _this.allowServerDataBinding = isAllowDatabind; + }; + this.accordionElement.expanding = function (args) { + if (_this.checkOnRender) { + // eslint-disable-next-line + var diagramArgs = { + element: args.element, content: args.content, index: args.index, cancel: false, + isExpanded: args.isExpanded, palette: _this.palettes[args.index] + }; + var event_1 = 'paletteExpanding'; + _this.trigger(event_1, diagramArgs); + args.cancel = diagramArgs.cancel; + } + }; + this.element.appendChild(accordionDiv); + } + var measureWindowElement = 'measureElement'; + if (window["" + measureWindowElement]) { + window["" + measureWindowElement] = null; + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createMeasureElements"])(); + this.unWireEvents(); + this.wireEvents(); + }; + /** + * EJ2-61531- Localization support for the symbol palette search box placeholder. + * @returns defaultLocale + */ + SymbolPalette.prototype.defaultLocale = function () { + return { SearchShapes: 'Search Shapes' }; + }; + /** + * Renders the rulers. + * + * @returns {void} Renders the rulers. + * @private + */ + SymbolPalette.prototype.render = function () { + this.diagramRenderer = new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["DiagramRenderer"](this.element.id, new _diagram_rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_3__["SvgRenderer"](), false); + this.svgRenderer = new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["DiagramRenderer"](this.element.id, new _diagram_rendering_svg_renderer__WEBPACK_IMPORTED_MODULE_3__["SvgRenderer"](), true); + this.updatePalettes(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.appendTo('#' + this.element.id + '_container'); + } + this.renderComplete(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.element.classList.remove('e-symbolpalette-hidden'); + } + }; + /** + * Core method to return the component name. + * + * @returns {string} Core method to return the component name. + * @private + */ + SymbolPalette.prototype.getModuleName = function () { + return 'SymbolPalette'; + }; + /** + * To provide the array of modules needed for control rendering. + * + * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering . + * @private + */ + SymbolPalette.prototype.requiredModules = function () { + var modules = []; + modules.push({ + member: 'Bpmn', + args: [] + }); + return modules; + }; + /** + *To destroy the ruler + * + * @returns {void} To destroy the ruler + */ + SymbolPalette.prototype.destroy = function () { + if (this.allowDrag) { + this.draggable.destroy(); + this.unWireEvents(); + this.notify('destroy', {}); + _super.prototype.destroy.call(this); + var content = document.getElementById(this.element.id + '_container'); + if (content) { + this.element.removeChild(content); + var measureElemnt = 'measureElement'; + if (window["" + measureElemnt]) { + window["" + measureElemnt].usageCount -= 1; + var measureElementCount = 'measureElementCount'; + window["" + measureElementCount]--; + if (window["" + measureElementCount] === 0) { + window["" + measureElemnt].parentNode.removeChild(window["" + measureElemnt]); + window["" + measureElemnt] = null; + } + } + } + content = document.getElementById(this.element.id + '_search'); + if (content) { + content.parentNode.removeChild(content); + } + this.element.classList.remove('e-symbolpalette'); + } + }; + /** + * Add particular palettes to symbol palette at runtime.\ + * + * @returns { void} Refreshes the ruler when the Ruler properties are updated .\ + * @param { PaletteModel[]} palettes -Defines the collection of palettes to be added. + */ + SymbolPalette.prototype.addPalettes = function (palettes) { + var palette; + for (var i = 0; i < palettes.length; i++) { + var isEnableServerDatabind = this.allowServerDataBinding; + this.isProtectedOnChange = true; + this.allowServerDataBinding = false; + palette = new Palette(this, 'palettes', palettes[parseInt(i.toString(), 10)], true); + this.palettes.push(palette); + this.initSymbols(palette); + this.allowServerDataBinding = isEnableServerDatabind; + this.isProtectedOnChange = false; + this.renderPalette(palette); + } + this.bulkChanges = {}; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.refresh(); + } + }; + /** + * removePalette method\ + * + * @returns {void} removePalette method .\ + * @param {string} paletteId - provide the scale value. + * + * @private + */ + SymbolPalette.prototype.removePalette = function (paletteId) { + for (var i = 0; i < this.palettes.length; i++) { + if (this.palettes[parseInt(i.toString(), 10)].id === paletteId) { + this.palettes.splice(i, 1); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.items.splice(i, 1); + } + break; + } + } + }; + /** + * Remove particular palettes to symbol palette at runtime \ + * + * @returns {void} Remove particular palettes to symbol palette at runtime .\ + * @param {string[]} palettes - provide the scale value. + */ + SymbolPalette.prototype.removePalettes = function (palettes) { + var isEnableServerDatabind = this.allowServerDataBinding; + this.allowServerDataBinding = false; + for (var i = 0; i < palettes.length; i++) { + this.removePalette(palettes[parseInt(i.toString(), 10)]); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.refresh(); + } + else { + this.updatePalettes(); + } + this.allowServerDataBinding = isEnableServerDatabind; + }; + //end region - protected methods + //region - private methods to render symbols + /** + * Method to initialize the items in the symbols \ + * + * @returns {void} Method to initialize the items in the symbols .\ + * @param {PaletteModel} symbolGroup - provide the scale value. + * + */ + SymbolPalette.prototype.initSymbols = function (symbolGroup) { + var group = []; + var laneHeight = 0; + var laneWidth = 0; + for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) { + var symbol = _a[_i]; + if (symbol.shape.type === 'SwimLane') { + var swimLaneObj = symbol; + var swimLaneShape = symbol.shape; + var isHorizontal = (swimLaneShape.orientation === 'Horizontal') ? true : false; + if (swimLaneShape.isLane) { + laneHeight = isHorizontal ? this.symbolHeight - this.symbolHeight / 2 : this.symbolHeight - this.symbolHeight / 4; + laneWidth = isHorizontal ? this.symbolWidth - this.symbolWidth / 4 : this.symbolWidth - this.symbolWidth / 2; + this.laneTable[symbol.id] = { height: laneHeight, width: laneWidth }; + var header = swimLaneShape.lanes[0].header; + var laneStyle = swimLaneShape.lanes[0].style; + var headerStyle = header.style; + var headerObj = { + id: 'header' + Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["randomId"])(), shape: { type: 'Basic', shape: 'Rectangle' }, + width: isHorizontal ? header.width : swimLaneObj.width, + height: isHorizontal ? swimLaneObj.height : header.height, + style: headerStyle, + annotations: [{ content: header.annotation.content }] + }; + headerObj.offsetX = headerObj.width / 2; + headerObj.offsetY = headerObj.height / 2; + this.addPaletteItem(symbolGroup.id, headerObj); + var laneObj = { + id: 'lane' + Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["randomId"])(), shape: { type: 'Basic', shape: 'Rectangle' }, + width: isHorizontal ? (swimLaneObj.width - header.width) : swimLaneObj.width, + height: isHorizontal ? swimLaneObj.height : (swimLaneObj.height - header.height), + style: laneStyle + }; + laneObj.offsetX = isHorizontal ? (headerObj.width + (laneObj.width / 2)) : laneObj.width / 2; + laneObj.offsetY = isHorizontal ? laneObj.height / 2 : (headerObj.height + (laneObj.height / 2)); + this.addPaletteItem(symbolGroup.id, laneObj); + swimLaneObj.children = [headerObj.id, laneObj.id]; + } + else if (swimLaneShape.isPhase) { + laneHeight = swimLaneObj.height ? swimLaneObj.height : this.symbolHeight; + laneWidth = swimLaneObj.width ? swimLaneObj.width : this.symbolWidth; + symbol.shape.type = 'Path'; + if (isHorizontal) { + symbol.shape.data = 'M0,0 L' + laneWidth + ',' + '0'; + } + else { + symbol.shape.data = 'M0,0 L0,' + laneWidth; + } + } + } + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]) { + var getNodeDefaults = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["getFunction"])(this.getNodeDefaults); + if (getNodeDefaults) { + getNodeDefaults(symbol, this); + } + } + else if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + var getConnectorDefaults = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["getFunction"])(this.getConnectorDefaults); + if (getConnectorDefaults) { + getConnectorDefaults(symbol, this); + } + } + this.symbolTable[symbol.id] = symbol; + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"] && symbol.children) { + group.push(symbol); + } + } + for (var i = 0; i < group.length; i++) { + var node = void 0; + for (var j = 0; j < group[parseInt(i.toString(), 10)].children.length; j++) { + node = (this.symbolTable[group[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]]); + if (node) { + this.childTable[node.id] = node; + node.parentId = group[parseInt(i.toString(), 10)].id; + } + } + } + for (var _b = 0, _c = symbolGroup.symbols; _b < _c.length; _b++) { + var symbol = _c[_b]; + if (!(symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"] && symbol.children)) { + this.prepareSymbol(symbol); + } + } + for (var _d = 0, group_1 = group; _d < group_1.length; _d++) { + var symbol = group_1[_d]; + this.prepareSymbol(symbol); + } + }; + SymbolPalette.prototype.renderPalette = function (symbolGroup) { + var style = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) ? 'overflow:auto;' : 'display:none;overflow:auto;'; + if (symbolGroup.height) { + style += 'height:' + symbolGroup.height + 'px'; + } + var paletteParentDiv = document.getElementById(symbolGroup.id); + var paletteDiv; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && paletteParentDiv != null) { + paletteDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'id': symbolGroup.id + '_content', style: style, class: 'e-remove-palette' }); + paletteParentDiv.appendChild(paletteDiv); + } + else { + paletteDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'id': symbolGroup.id, style: style, class: 'e-remove-palette' }); + this.element.appendChild(paletteDiv); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var item = { + header: symbolGroup.title, expanded: symbolGroup.expanded, + content: '#' + symbolGroup.id, iconCss: symbolGroup.iconCss + }; + this.accordionElement.items.push(item); + } + this.renderSymbols(symbolGroup, paletteDiv); + }; + /** + * Used to add the palette item as nodes or connectors in palettes \ + * + * @returns {void} Used to add the palette item as nodes or connectors in palettes .\ + * @param {string} paletteName - provide the scale value. + * @param {NodeModel | ConnectorModel} paletteSymbol - provide the scale value. + * @param {boolean} isChild - provide the scale value. + */ + SymbolPalette.prototype.addPaletteItem = function (paletteName, paletteSymbol, isChild) { + paletteSymbol = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["cloneObject"])(paletteSymbol); + //let refresh: boolean; + for (var i = 0; i < this.palettes.length; i++) { + var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)]; + if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) { + // eslint-disable-next-line + var param = [undefined, symbolPaletteGroup, 'symbols', {}, true]; + // eslint-disable-next-line + var obj = new (Function.prototype.bind.apply(getObjectType(paletteSymbol), param)); + for (var i_1 = 0; i_1 < Object.keys(paletteSymbol).length; i_1++) { + var isEnableServerDatabind_1 = this.allowServerDataBinding; + this.allowServerDataBinding = false; + obj[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]] = paletteSymbol[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]]; + this.allowServerDataBinding = isEnableServerDatabind_1; + } + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["updateDefaultValues"])(obj, paletteSymbol, obj instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"] ? this.nodeDefaults : this.connectorDefaults); + symbolPaletteGroup.symbols.push(obj); + var isEnableServerDatabind = this.allowServerDataBinding; + this.allowServerDataBinding = false; + this.prepareSymbol(obj); + this.allowServerDataBinding = isEnableServerDatabind; + this.symbolTable[obj.id] = obj; + if (isChild) { + this.childTable[obj.id] = obj; + } + else { + var paletteDiv = void 0; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + paletteDiv = document.getElementById(symbolPaletteGroup.id + '_content'); + } + else { + paletteDiv = document.getElementById(symbolPaletteGroup.id); + } + if (paletteDiv) { + paletteDiv.appendChild(this.getSymbolContainer(obj, paletteDiv)); + } + } + break; + } + } + }; + /** + * Used to remove the palette item as nodes or connectors in palettes \ + * + * @returns {void} Used to remove the palette item as nodes or connectors in palettes .\ + * @param {string} paletteName - provide the scale value. + * @param {string} symbolId - provide the scale value. + */ + SymbolPalette.prototype.removePaletteItem = function (paletteName, symbolId) { + var refresh; + for (var i = 0; i < this.palettes.length; i++) { + var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)]; + if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) { + for (var _i = 0, _a = symbolPaletteGroup.symbols; _i < _a.length; _i++) { + var symbol = _a[_i]; + if (symbol.id.indexOf(symbolId) !== -1) { + var index = symbolPaletteGroup.symbols.indexOf(symbol); + symbolPaletteGroup.symbols.splice(index, 1); + if (symbol.children) { + var parentNode = symbol.children; + for (var i_2 = 0; i_2 < parentNode.length; i_2++) { + delete this.symbolTable[(parentNode[parseInt(i_2.toString(), 10)])]; + } + } + delete this.symbolTable[symbol.id]; + var element = document.getElementById(symbol.id + '_container'); + element.parentNode.removeChild(element); + refresh = true; + break; + } + } + } + if (refresh) { + break; + } + } + }; + SymbolPalette.prototype.prepareSymbol = function (symbol) { + var width; + var sw; + var height; + var sh; + var stackPanel = new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["StackPanel"](); + var obj = symbol; + var content; + var symbolContainer = new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Canvas"](); + var container = (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]) ? symbol.initContainer() : null; + if (container && !container.children) { + container.children = []; + } + //preparing objects + var getSymbolTemplate = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["getFunction"])(this.getSymbolTemplate); + if (getSymbolTemplate) { + content = getSymbolTemplate(symbol); + } + if (!content) { + if (obj.children) { + content = this.getContainer(obj, container); + } + else { + content = symbol.init(this); + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"] && symbol.parentId) { + container.children.push(content); + } + } + } + if (!symbol.parentId) { + var symbolInfo = { width: this.symbolWidth, height: this.symbolHeight }; + var getSymbolInfo = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["getFunction"])(this.getSymbolInfo); + if (getSymbolInfo) { + symbolInfo = getSymbolInfo(symbol); + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + symbolInfo = this.getBlazorSymbolInfo(symbol, symbolInfo); + } + symbolInfo = symbolInfo || this.symbolInfo || {}; + if (symbol.shape && symbol.shape.isPhase) { + symbolInfo.width = symbolInfo.width || this.symbolWidth; + symbolInfo.height = symbolInfo.height || this.symbolHeight; + } + //defining custom templates + content.relativeMode = 'Object'; + content.horizontalAlignment = content.verticalAlignment = 'Center'; + symbolContainer.style.strokeColor = symbolContainer.style.fill = 'none'; + symbolContainer.children = [content]; + content.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + content.arrange(content.desiredSize); + width = symbolInfo.width = symbolInfo.width || + (obj.width !== undefined ? content.actualSize.width : undefined) || this.symbolWidth; + height = symbolInfo.height = symbolInfo.height || + (obj.height !== undefined ? content.actualSize.height : undefined) || this.symbolHeight; + if (width !== undefined && height !== undefined) { + var actualWidth = width; + var actualHeight = height; + //let isLane: boolean = (symbol.shape as SwimLane).isLane ? true : false; + var isPhase = symbol.shape.isPhase ? true : false; + if (this.symbolWidth !== undefined) { + actualWidth = this.symbolWidth - this.symbolMargin.left - this.symbolMargin.right; + } + else { + width += obj.style.strokeWidth; + } + if (this.symbolHeight !== undefined) { + actualHeight = this.symbolHeight - this.symbolMargin.top - this.symbolMargin.bottom; + } + else { + height += obj.style.strokeWidth; + } + if (symbolInfo.description && symbolInfo.description.text !== '') { + actualHeight -= 20; // default height of the text have been reduced from the container. + } + sw = actualWidth / ((!isPhase && content.width) || width); + sh = actualHeight / ((!isPhase && content.height) || height); + if (symbolInfo.fit) { + sw = actualWidth / symbolInfo.width; + sh = actualHeight / symbolInfo.height; + } + width = actualWidth; + height = actualHeight; + sw = sh = Math.min(sw, sh); + symbolContainer.width = width; + symbolContainer.height = height; + content.width = symbolInfo.width; + content.height = symbolInfo.height; + this.scaleSymbol(symbol, symbolContainer, sw, sh, width, height); + } + else { + var outerBounds = void 0; + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + outerBounds = Object(_diagram_utility_connector__WEBPACK_IMPORTED_MODULE_7__["getOuterBounds"])(symbol); + } + content.width = symbol.width || (outerBounds) ? outerBounds.width : content.actualSize.width; + content.height = symbol.height || (outerBounds) ? outerBounds.height : content.actualSize.height; + } + symbol.wrapper = stackPanel; + stackPanel.children = [symbolContainer]; + content.pivot = stackPanel.pivot = { x: 0, y: 0 }; + stackPanel.id = content.id + '_symbol'; + stackPanel.style.fill = stackPanel.style.strokeColor = 'transparent'; + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]) { + stackPanel.offsetX = symbol.style.strokeWidth / 2; + stackPanel.offsetY = symbol.style.strokeWidth / 2; + } + else { + stackPanel.offsetX = 0.5; + stackPanel.offsetY = 0.5; + } + //symbol description-textElement + this.getSymbolDescription(symbolInfo, width, stackPanel); + stackPanel.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + stackPanel.arrange(stackPanel.desiredSize); + symbolInfo.width = symbolInfo.width || content.actualSize.width; + symbolInfo.height = symbolInfo.height || content.actualSize.height; + symbol[this.info] = symbolInfo; + } + if (symbol.parentId) { + container.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"](obj.width, obj.height)); + container.arrange(container.desiredSize); + } + }; + SymbolPalette.prototype.getBlazorSymbolInfo = function (symbol, symbolInfo) { + var node = symbol; + var shapeSymbolInfo = node.symbolInfo; + if (shapeSymbolInfo) { + symbolInfo.description = shapeSymbolInfo.description || this.symbolInfo.description; + symbolInfo.fit = shapeSymbolInfo.fit || this.symbolInfo.fit; + symbolInfo.height = shapeSymbolInfo.height || this.symbolInfo.height; + symbolInfo.width = shapeSymbolInfo.width || this.symbolInfo.width; + symbolInfo.tooltip = shapeSymbolInfo.tooltip || this.symbolInfo.tooltip; + symbolInfo.template = shapeSymbolInfo.template || this.symbolInfo.template; + } + return symbolInfo; + }; + SymbolPalette.prototype.getContainer = function (obj, container) { + container.measureChildren = false; + var bounds; + var child = obj.children; + container.children = []; + for (var i = 0; i < child.length; i++) { + if (this.symbolTable[child[parseInt(i.toString(), 10)]]) { + container.children.push(this.symbolTable[child[parseInt(i.toString(), 10)]].wrapper); + } + } + container.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"](obj.width, obj.height)); + container.arrange(container.desiredSize); + if (container.bounds.x !== 0 || container.bounds.y !== 0) { + bounds = container.bounds; + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["arrangeChild"])(obj, bounds.x, bounds.y, this.symbolTable, false, this); + container = this.getContainer(obj, container); + } + return container; + }; + /** + * Feature [EJ2- 47318] - Support for the change of the symbol description + * Feature [EJ2- 50705] - Support to add margin between the text and symbols + */ + SymbolPalette.prototype.getSymbolDescription = function (symbolInfo, width, parent) { + if (symbolInfo && symbolInfo.description && symbolInfo.description.text) { + var textElement = new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["TextElement"](); + //symbol description-textElement + symbolInfo.description.overflow = symbolInfo.description.overflow || 'Ellipsis'; + symbolInfo.description.wrap = symbolInfo.description.wrap || 'WrapWithOverflow'; + textElement.id = parent.id + '_text'; + textElement.content = symbolInfo.description.text; + textElement.width = width; + textElement.height = 20; + textElement.style.strokeColor = 'transparent'; + textElement.style.color = symbolInfo.description.color || 'black'; + textElement.style.fill = symbolInfo.description.fill || 'transparent'; + textElement.style.fontFamily = symbolInfo.description.fontFamily || 'Arial'; + textElement.style.fontSize = symbolInfo.description.fontSize || 12; + textElement.style.bold = symbolInfo.description.bold || false; + textElement.style.italic = symbolInfo.description.italic || false; + textElement.style.textDecoration = symbolInfo.description.textDecoration || 'None'; + textElement.style.strokeWidth = 0; + textElement.style.textWrapping = symbolInfo.description.wrap; + textElement.style.textOverflow = symbolInfo.description.overflow; + textElement.margin = { left: 0, right: 0, top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0, bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : 5 }; + parent.children.push(textElement); + } + }; + SymbolPalette.prototype.renderSymbols = function (symbolGroup, parentDiv) { + for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) { + var symbol = _a[_i]; + if (!symbol.parentId) { + this.getSymbolContainer(symbol, parentDiv); + } + } + }; + SymbolPalette.prototype.getSymbolPreview = function ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + symbol, evt, parentDiv) { + this.allowServerDataBinding = false; + var canvas; + var sw; + var sh; + var symbolPreviewWidth = symbol.wrapper.children[0].desiredSize.width + symbol.style.strokeWidth; + var symbolPreviewHeight = symbol.wrapper.children[0].desiredSize.height + symbol.style.strokeWidth; + var content = symbol.wrapper.children[0].children[0]; + var symbolPreview = symbol.previewSize; + if ((symbol && (symbolPreview.width || symbolPreview.height)) || + this.symbolPreview.width !== undefined || this.symbolPreview.height !== undefined) { + symbolPreviewWidth = (symbolPreview.width || this.symbolPreview.width || symbolPreviewWidth) - symbol.style.strokeWidth; + symbolPreviewHeight = (symbolPreview.height || this.symbolPreview.height || symbolPreviewHeight) - symbol.style.strokeWidth; + // EJ2-56887 - Connector do not get rendered properly in symbol palette. + // Added below code to check if connector width is less than strokewidth means then set symbol width for connector. + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + if (content.actualSize.width <= symbol.style.strokeWidth) { + content.actualSize.width = this.symbolWidth; + } + if (content.actualSize.height <= symbol.style.strokeWidth) { + content.actualSize.height = this.symbolHeight; + } + } + sw = symbolPreviewWidth / content.actualSize.width; + sh = symbolPreviewHeight / content.actualSize.height; + sw = sh = Math.min(sw, sh); + var symbolWidth = content.actualSize.width * sw; + var symbolHeight = content.actualSize.height * sh; + symbol.wrapper.children[0].width = symbolPreviewWidth; + symbol.wrapper.children[0].height = symbolPreviewHeight; + this.measureAndArrangeSymbol(content, symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]); + this.scaleSymbol(symbol, symbol.wrapper.children[0], sw, sh, symbolWidth, symbolHeight, true); + symbolPreviewWidth = symbolWidth; + symbolPreviewHeight = symbolHeight; + } + var prevPosition = { x: content.offsetX, y: content.offsetY }; + content.offsetX = content.offsetY = symbol.style.strokeWidth / 2; + content.pivot = { x: 0, y: 0 }; + this.measureAndArrangeSymbol(content, symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]); + var previewContainer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'draggable': 'true', 'class': 'e-dragclone', 'style': 'pointer-events:none' }); + var div; + document.body.appendChild(previewContainer); + var style = 'margin:5px;'; + if (symbol.shape.type === 'Native') { + canvas = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('svg', { + id: symbol.id + '_preview', + width: Math.ceil(symbolPreviewWidth) + 1, + height: Math.ceil(symbolPreviewHeight) + 1 + }); + var gElement = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('g', { id: symbol.id + '_g' }); + canvas.appendChild(gElement); + previewContainer.appendChild(canvas); + this.svgRenderer.renderElement(content, gElement, undefined, undefined, canvas); + } + else if (symbol.shape.type === 'HTML') { + div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbolPreviewHeight, symbolPreviewWidth, true); + } + else { + if (symbol.children && + symbol.children.length > 0 && Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["groupHasType"])(symbol, 'HTML', this.childTable)) { + div = this.getGroupParent(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true); + } + else { + canvas = _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_9__["CanvasRenderer"].createCanvas(symbol.id + '_preview', (Math.ceil(symbolPreviewWidth) + symbol.style.strokeWidth + 1) * 2, (Math.ceil(symbolPreviewHeight) + symbol.style.strokeWidth + 1) * 2); + previewContainer.appendChild(canvas); + // BLAZ-3223: translate applied only for Basic and Flow now and need to add for remaining shapes in future + if (symbol.shape.type === 'Basic' || symbol.shape.type === 'Flow') { + style += 'transform: scale(0.5) translate(-' + canvas.width / 2 + 'px, -' + canvas.height / 2 + 'px);'; + } + else { + style += 'transform:scale(0.5);'; + } + canvas.setAttribute('transform-origin', '0 0'); + var index = 2; + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + index = 1.9; + } + canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0); + this.diagramRenderer.renderElement(content, canvas, undefined); + } + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["applyStyleAgainstCsp"])(((div && (symbol.shape.type === 'HTML' || symbol.children + && symbol.children.length > 0)) ? div : canvas), style); + content.offsetX = prevPosition.x; + content.offsetY = prevPosition.y; + this.allowServerDataBinding = true; + return previewContainer; + }; + SymbolPalette.prototype.measureAndArrangeSymbol = function (content, isNode) { + if (content.children && !isNode) { + content.children[0].transform = _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Transform"].Self; + } + content.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + content.arrange(content.desiredSize); + if (content.children) { + content.children[0].transform = _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Transform"].Parent; + } + }; + SymbolPalette.prototype.updateSymbolSize = function (symbol, width, height) { + var element = symbol.wrapper.children[0].children[0]; + var strokeWidth = symbol.style.strokeWidth; + element.width = (width || element.width) - (strokeWidth + 1); + element.height = (height || element.height) - (strokeWidth + 1); + symbol.wrapper.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + symbol.wrapper.arrange(symbol.wrapper.desiredSize); + }; + SymbolPalette.prototype.getSymbolContainer = function (symbol, parentDiv, preview) { + var symbolInfo = this.symbolTable[symbol.id][this.info]; + var size = this.getSymbolSize(symbol, symbolInfo); + var width = size.width + 1; + var height = size.height + 1; + var container = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + id: symbol.id + '_container', + style: 'width:' + width + 'px;height:' + height + 'px;float:left;overflow:hidden', + }); + parentDiv.appendChild(container); + var canvas; + var gElement; + var div; + if (symbol.shape.type === 'Native') { + canvas = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('svg', { + id: symbol.id, + width: Math.ceil(symbol.wrapper.actualSize.width) + 1, + height: Math.ceil(symbol.wrapper.actualSize.height) + 1 + }); + gElement = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createSvgElement"])('g', { id: symbol.id + '_g' }); + canvas.appendChild(gElement); + container.appendChild(canvas); + this.updateSymbolSize(symbol); + this.svgRenderer.renderElement(symbol.wrapper, gElement, undefined, undefined, canvas); + } + else if (symbol.shape.type === 'HTML') { + div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false); + } + else { + if (symbol.children && + symbol.children.length > 0 && Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["groupHasType"])(symbol, 'HTML', this.childTable)) { + div = this.getGroupParent(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false); + } + else { + canvas = _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_9__["CanvasRenderer"].createCanvas(symbol.id, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1); + container.appendChild(canvas); + var index = 2; + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + index = 1.9; + } + canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0); + this.diagramRenderer.renderElement(symbol.wrapper, gElement || canvas, undefined, undefined, undefined, undefined, true, undefined, true); + } + } + if (!preview) { + var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth; + var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth; + var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;'; + if (symbol.shape.isPhase) { + if (symbol.shape.orientation === 'Horizontal') { + style += 'margin-left:' + + Math.max(this.symbolMargin.left, ((width - actualWidth) / 2)) + + 'px;margin-top:' + size.height / 2 + + 'px;'; + } + else { + style += 'margin-left:' + + size.width / 2 + + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2)) + + 'px;'; + } + } + else { + style += 'margin-left:' + + Math.max(this.symbolMargin.left, ((width - actualWidth) / 2)) + + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2)) + + 'px;'; + } + if (canvas instanceof HTMLCanvasElement) { + style += 'transform:scale(.5,.5);'; + } + //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible. + if (symbol.shape.type === 'HTML') { + style += 'transform:scale(.5,.5);'; + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["applyStyleAgainstCsp"])(((div && (symbol.shape.type === 'HTML' || symbol.children && + symbol.children.length > 0)) ? div : canvas), style); + container.classList.add('e-symbol-draggable'); + return container; + } + return canvas; + }; + SymbolPalette.prototype.getGroupParent = function (item, canvas, container, height, width, isPreview) { + var div = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'id': item.id + (isPreview ? '_html_div_preview' : '_html_div') }); + var htmlLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': item.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'), + 'style': 'width:' + Math.ceil(width + 1) + 'px;' + + 'height:' + Math.ceil(height + 1) + 'px;position:absolute', + 'class': 'e-html-layer' + }); + var htmlLayerDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': item.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'), + 'style': 'width:' + Math.ceil(width + 1) + 'px;' + + 'height:' + Math.ceil(height + 1) + 'px;position:absolute' + }); + htmlLayer.appendChild(htmlLayerDiv); + div.appendChild(htmlLayer); + canvas = _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_9__["CanvasRenderer"].createCanvas((isPreview ? (item.id + '_preview') : item.id), Math.ceil(width) + 1, Math.ceil(height) + 1); + div.appendChild(canvas); + container.appendChild(div); + this.diagramRenderer.renderElement(item.wrapper.children[0].children[0], canvas, htmlLayer); + return div; + }; + SymbolPalette.prototype.getHtmlSymbol = function (symbol, canvas, container, height, width, isPreview) { + var div = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': symbol.id + (isPreview ? '_html_div_preview' : '_html_div') + }); + var htmlLayer = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': symbol.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'), + 'style': 'width:' + Math.ceil(width + 1) + 'px;' + + 'height:' + Math.ceil(height + 1) + 'px;position:absolute', + 'class': 'e-html-layer' + }); + var htmlLayerDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { + 'id': symbol.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'), + 'style': 'width:' + Math.ceil(width + 1) + 'px;' + + 'height:' + Math.ceil(height + 1) + 'px;position:absolute' + }); + htmlLayer.appendChild(htmlLayerDiv); + div.appendChild(htmlLayer); + canvas = _diagram_rendering_canvas_renderer__WEBPACK_IMPORTED_MODULE_9__["CanvasRenderer"].createCanvas(symbol.id, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1); + container.appendChild(canvas); + canvas.getContext('2d').setTransform(2, 0, 0, 2, 0, 0); + div.appendChild(canvas); + container.appendChild(div); + //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible. + if (isPreview) { + this.diagramRenderer.renderElement(symbol.wrapper.children[0].children[0], canvas, htmlLayer); + } + else { + this.diagramRenderer.renderElement(symbol.wrapper, canvas, htmlLayer); + } + return div; + }; + // eslint-disable-next-line + SymbolPalette.prototype.getSymbolSize = function (symbol, symbolInfo) { + var width = symbol.wrapper.actualSize.width; + var height = symbol.wrapper.actualSize.height; + if (!this.symbolWidth && !this.symbolHeight) { + width += this.symbolMargin.left + this.symbolMargin.right + symbol.style.strokeWidth; + height += this.symbolMargin.top + this.symbolMargin.bottom + symbol.style.strokeWidth; + } + else { + width = this.symbolWidth; + height = Math.max(this.symbolHeight, height); + } + return new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"](width, height); + }; + //end region - rendering symbols + //region event handlers + SymbolPalette.prototype.getMousePosition = function (e) { + var offsetY; + var offsetX; + var touchArg; + if (e.type.indexOf('touch') !== -1) { + touchArg = e; + var pageY = touchArg.changedTouches[0].clientY; + var pageX = touchArg.changedTouches[0].clientX; + offsetY = pageY - this.element.offsetTop; + offsetX = pageX - this.element.offsetLeft; + } + else { + offsetY = e.clientY - this.element.offsetTop; + offsetX = e.clientX - this.element.offsetLeft; + } + return { x: offsetX, y: offsetY }; + }; + /** Gets the default content of the Tooltip*/ + SymbolPalette.prototype.getContent = function (obj) { + var isPrivateTooltip = ((this.hoverElement instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]) && + this.hoverElement.constraints & _diagram_index__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Tooltip) || + ((this.hoverElement instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) && + this.hoverElement.constraints & _diagram_index__WEBPACK_IMPORTED_MODULE_2__["ConnectorConstraints"].Tooltip); + var content = isPrivateTooltip ? this.hoverElement.tooltip.content : + obj.id; + return content; + }; + /** + * Initialize the basic properties of Toolip object + */ + SymbolPalette.prototype.initTooltip = function (element) { + var tooltip; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + var tooltipOption = new _ej2_popups__WEBPACK_IMPORTED_MODULE_10__["Tooltip"]; + tooltipOption = this.updateTooltipContent(this.hoverElement.tooltip, tooltipOption); + tooltip = new _ej2_popups__WEBPACK_IMPORTED_MODULE_10__["Tooltip"](tooltipOption); + tooltip.cssClass = 'e-symbolPalette-tooltip'; + tooltip.opensOn = 'custom'; + tooltip.appendTo('#' + element.id); + tooltip.close(); + } + else { + tooltip = this.updateTooltipContent(this.hoverElement.tooltip, tooltip); + } + return tooltip; + }; + /**Method to update Tooltip Content*/ + SymbolPalette.prototype.updateTooltipContent = function (tooltip, tooltipObject) { + tooltipObject.content = tooltip.content; + tooltipObject.position = 'BottomRight'; + tooltipObject.showTipPointer = tooltip.showTipPointer; + tooltipObject.width = tooltip.width; + tooltipObject.height = tooltip.height; + if (!tooltip.animation) { + tooltipObject.animation = { close: { effect: 'None' } }; + } + else { + tooltipObject.animation = tooltip.animation; + } + return tooltipObject; + }; + /** + * To open the Tooltip element relevant to the target and relative mode */ + SymbolPalette.prototype.elementEnter = function (mousePosition, elementOver) { + if (!elementOver) { + //set the collision target element to given position if enabled + this.symbolTooltipObject.windowCollision = true; + if (this.hoverElement instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Node"]) { + if (!(this.hoverElement.constraints & (_diagram_index__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Default && _diagram_index__WEBPACK_IMPORTED_MODULE_2__["NodeConstraints"].Tooltip))) { + this.hoverElement.tooltip.content = this.hoverElement.id; + this.symbolTooltipObject.content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["initializeCSPTemplate"])(function () { return this.hoverElement.id; }, this); + } + } + else if (this.hoverElement instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + if (!(this.hoverElement.constraints & (_diagram_index__WEBPACK_IMPORTED_MODULE_2__["ConnectorConstraints"].Default && _diagram_index__WEBPACK_IMPORTED_MODULE_2__["ConnectorConstraints"].Tooltip))) { + this.hoverElement.tooltip.content = this.hoverElement.id; + this.symbolTooltipObject.content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["initializeCSPTemplate"])(function () { return this.hoverElement.id; }, this); + } + } + if (this.hoverElement.tooltip.content) { + if (this.hoverElement.tooltip.relativeMode === 'Mouse') { + //To set relative mode only to object for Symbol Palatte + this.hoverElement.tooltip.relativeMode = 'Object'; + this.symbolTooltipObject.offsetX = 0; + this.symbolTooltipObject.offsetY = 0; + } + else { + this.symbolTooltipObject.offsetX = 0; + this.symbolTooltipObject.offsetY = 0; + } + } + var targetEle = document.getElementById(this.hoverElement.id); + if (this.hoverElement.tooltip.openOn === 'Auto' && this.hoverElement.tooltip.content !== '') { + this.symbolTooltipObject.close(); + this.symbolTooltipObject.opensOn = this.hoverElement.tooltip.openOn; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.symbolTooltipObject.open(targetEle, {}); + } + else { + this.symbolTooltipObject.dataBind(); + } + } + if (this.hoverElement.tooltip.openOn === 'Auto') { + this.symbolTooltipObject.target = this.hoverElement.id; + this.symbolTooltipObject.open(targetEle); + } + } + }; + // eslint-disable-next-line + SymbolPalette.prototype.mouseMove = function (e, touches) { + if (this.highlightedSymbol && (!this.selectedSymbol + || this.selectedSymbol.id + '_container' !== this.highlightedSymbol.id)) { + this.highlightedSymbol.classList.remove('e-symbol-hover'); + this.highlightedSymbol.style.backgroundColor = ''; + this.highlightedSymbol = null; + } + var id = e.target.id.split('_container')[0]; + if (this.symbolTable["" + id]) { + var container = document.getElementById(id + '_container'); + container.classList.add('e-symbol-hover'); + this.highlightedSymbol = container; + } + e.preventDefault(); + //EJ2-66311-tooltip support for Symbolpalette + var obj = this.symbolTable["" + id]; + if (this.symbolTable["" + id] && obj !== this.hoverElement) { + this.currentPosition = this.getMousePosition(e); + var content = this.getContent(obj); + if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content !== '') { + this.elementLeave(); + } + this.hoverElement = obj; + this.symbolTooltipObject = this.initTooltip(this.hoverElement); + if (content === '') { + content = this.hoverElement.id; + } + if (this.hoverElement.tooltip && content !== '') { + this.elementEnter(this.currentPosition, false); + } + } + if (obj === undefined && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto') { + this.hoverElement = null; + this.elementLeave(); + } + }; + /** + * When Mouse pointer leaves the symbol palette object Mouse leave event is called and closes Tooltip + */ + SymbolPalette.prototype.elementLeave = function () { + if (this.symbolTooltipObject && this.symbolTooltipObject.opensOn !== 'Custom') { + this.symbolTooltipObject.close(); + } + }; + /** @private + * @param {PointerEvent} evt - provide event name + */ + SymbolPalette.prototype.mouseLeave = function (evt) { + this.elementLeave(); + evt.preventDefault(); + }; + // eslint-enable + SymbolPalette.prototype.mouseUp = function (evt) { + this.isMethod = true; + if (evt && evt.target) { + if (evt.srcElement.id === 'iconSearch') { + var element = document.getElementById('iconSearch'); + if (element.classList.contains('e-clear-searchtext')) { + element.className = 'e-input-group-icon e-search e-icons'; + document.getElementById('textEnter').value = ''; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + document.getElementById(this.element.id + '_search_content').classList.add('e-symbolpalette-search-hidden'); + } + this.searchPalette(''); + } + } + else { + var id = evt.target.id.split('_container')[0]; + if (id && this.selectedSymbol) { + var args = { oldValue: this.oldObject, newValue: id }; + var event_2 = 'paletteSelectionChange'; + this.trigger(event_2, args); + this.oldObject = id; + evt.preventDefault(); + } + else if (this.oldObject !== '') { + this.oldObject = ''; + } + } + } + }; + SymbolPalette.prototype.keyUp = function (evt) { + var _this = this; + if (this.enableSearch) { + // eslint-disable-next-line + var palette_1 = this; + var element = document.getElementById('iconSearch'); + element.className = 'e-input-group-icon e-clear-searchtext e-icons'; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && evt.target instanceof HTMLInputElement) { + if (evt.target.value === '') { + document.getElementById(this.element.id + '_search_content').classList.add('e-symbolpalette-search-hidden'); + } + else { + document.getElementById(this.element.id + '_search_content').classList.remove('e-symbolpalette-search-hidden'); + } + } + if (evt && (evt.key === 'Enter' || evt.keyCode === 13)) { + if (evt.target instanceof HTMLInputElement) { + this.searchPalette(evt.target.value); + } + } + else { + if (this.timer) { + clearTimeout(this.timer); + } + this.timer = setTimeout(function () { + if (evt.target instanceof HTMLInputElement) { + palette_1.searchPalette(evt.target.value); + _this.timer = null; + } + }, 500); + } + } + }; + SymbolPalette.prototype.mouseDown = function (evt) { + var id = evt.target.id.split('_container')[0]; + if (this.selectedSymbol) { + var oldSymbol = document.getElementById(this.selectedSymbol.id + '_container'); + if (id !== this.selectedSymbol.id && oldSymbol) { + oldSymbol.classList.remove('e-symbol-selected'); + } + var container = document.getElementById(this.selectedSymbol.id + '_container'); + if (container) { + container.style.backgroundColor = ''; + } + this.selectedSymbol = null; + } + if (this.symbolTable["" + id]) { + var container = document.getElementById(id + '_container'); + container.classList.add('e-symbol-selected'); + this.selectedSymbol = this.symbolTable["" + id]; + evt.preventDefault(); + } + }; + SymbolPalette.prototype.keyDown = function (evt) { + // eslint-disable-next-line + var palette = this; + var helperElement = 'helperElement'; + var intDestroy = 'intDestroy'; + if (evt && (evt.key === 'Escape')) { + var element = palette.draggable["" + helperElement]; + if (element && element.parentNode) { + element.parentNode.removeChild(element); + palette.draggable["" + intDestroy](); + } + } + }; + //end region - event handlers + // region - draggable + SymbolPalette.prototype.initDraggable = function () { + if (this.allowDrag) { + //let drag: Draggable; + this.draggable = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"](this.element, { + dragTarget: '.e-symbol-draggable', + helper: this.helper, + dragStart: this.dragStart, + preventDefault: false, + dragStop: this.dragStop, + drag: function (args) { + var target = 'target'; + var parent = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["parentsUntil"])(args["" + target], 'e-droppable'); + if (parent && parent.classList.contains('e-diagram')) { + var e2eInstance = 'ej2_instances'; + parent["" + e2eInstance][0].droppable.over(args); + } + }, + cursorAt: { left: this.symbolPreview.offset.x, top: this.symbolPreview.offset.y } + }); + } + }; + // eslint-enable + SymbolPalette.prototype.dragStart = function (e) { + var element = this.helper[0]; + if (element) { + element.setAttribute('paletteId', this.element.id); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + e.bindEvents(e.dragElement); + } + }; + SymbolPalette.prototype.dragStop = function (e) { + if (!Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["parentsUntil"])(e.target, 'e-diagram')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(e.helper); + } + }; + //end region - draggable + //region - helper methods + SymbolPalette.prototype.scaleSymbol = function (symbol, symbolContainer, sw, sh, width, height, preview) { + if (symbol instanceof _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Connector"]) { + var wrapper = symbol.wrapper; + symbol.wrapper = symbolContainer.children[0]; + var point = symbol.scale(sw, sh, width, height, symbolContainer.children[0]); + var difX = width / 2 - symbolContainer.children[0].children[0].offsetX + point.x / 2; + var difY = height / 2 - symbolContainer.children[0].children[0].offsetY + point.y / 2; + for (var _i = 0, _a = symbolContainer.children[0].children; _i < _a.length; _i++) { + var child = _a[_i]; + child.offsetX += difX; + child.offsetY += difY; + child.staticSize = false; + } + symbol.wrapper = wrapper; + } + else if (symbol.shape.type === 'Bpmn' && this.bpmnModule) { + var wrapper = symbol.wrapper; + symbol.wrapper = symbolContainer; + symbolContainer.children[0].width = width; + symbolContainer.children[0].height = height; + this.bpmnModule.updateBPMN({ width: width, height: height }, symbol, symbol, null); + symbol.wrapper = wrapper; + } + else { + if (symbol.children) { + var parentNode = symbol.children; + var w = 0; + var h = 0; + if (!preview) { + var node = void 0; + var container = void 0; + for (var i = 0; i < parentNode.length; i++) { + container = symbolContainer.children[0].children[parseInt(i.toString(), 10)]; + if (container) { + if (container.children[0].children) { + this.measureChild(container); + } + node = this.symbolTable[container.id]; + container.width = node.width; + container.height = node.height; + container.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + container.arrange(container.children[0].desiredSize); + } + } + } + w = width / symbolContainer.children[0].desiredSize.width; + h = height / symbolContainer.children[0].desiredSize.height; + symbolContainer.children[0].measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + symbolContainer.children[0].arrange(symbolContainer.children[0].desiredSize); + if (!preview) { + var children = void 0; + for (var i = 0; i < parentNode.length; i++) { + children = symbolContainer.children[0].children[parseInt(i.toString(), 10)]; + if (children) { + if (children.children[0].children) { + this.scaleChildren(children, w, h, symbol); + } + this.scaleGroup(children, w, h, symbol); + } + } + } + if (preview) { + ///let node: Node; + var scaleWidth = void 0; + var scaleHeight = void 0; + var children = void 0; + for (var i = 0; i < parentNode.length; i++) { + //const node: Node = this.symbolTable[parentNode[i]]; + scaleWidth = width / symbol.wrapper.children[0].desiredSize.width; + scaleHeight = height / symbol.wrapper.children[0].desiredSize.height; + children = symbolContainer.children[0].children[parseInt(i.toString(), 10)]; + if (children) { + if (children.children[0].children) { + this.scaleChildren(children, scaleWidth, scaleHeight, symbol, true); + } + this.scaleGroup(children, scaleWidth, scaleHeight, symbol, true); + } + } + symbol.wrapper.children[0].measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + symbol.wrapper.children[0].arrange(symbol.wrapper.children[0].desiredSize); + } + } + else { + Object(_diagram_utility_diagram_util__WEBPACK_IMPORTED_MODULE_5__["scaleElement"])(symbolContainer.children[0], sw, sh, symbolContainer); + } + } + }; + SymbolPalette.prototype.scaleChildren = function (container, w, h, symbol, preview) { + var child; + for (var i = 0; i < container.children.length; i++) { + child = container.children[parseInt(i.toString(), 10)]; + if (!child.children[0].children) { + this.scaleGroup(child, w, h, symbol, preview); + } + else { + this.scaleChildren(child, w, h, symbol, preview); + } + } + }; + SymbolPalette.prototype.measureChild = function (container) { + var childContainer; + var node; + for (var i = 0; i < container.children.length; i++) { + childContainer = container.children[parseInt(i.toString(), 10)]; + if (!childContainer.children[0].children) { + node = this.symbolTable[childContainer.id]; + childContainer.width = node.width; + childContainer.height = node.height; + childContainer.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + childContainer.arrange(childContainer.children[0].desiredSize); + } + else { + this.measureChild(childContainer); + } + } + }; + SymbolPalette.prototype.scaleGroup = function (child, w, h, symbol, preview) { + child.width = child.width * w; + child.height = (child.height * h); + child.offsetX = preview ? (child.offsetX * w) - symbol.style.strokeWidth : (child.offsetX * w) + symbol.style.strokeWidth / 2; + child.offsetY = preview ? (child.offsetY * h) - symbol.style.strokeWidth : (child.offsetY * h) + symbol.style.strokeWidth / 2; + child.measure(new _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Size"]()); + child.arrange(child.children[0].desiredSize); + }; + SymbolPalette.prototype.refreshPalettes = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.items = []; + } + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["removeElementsByClass"])('e-remove-palette', this.element.id); + this.updatePalettes(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.dataBind(); + } + }; + SymbolPalette.prototype.updatePalettes = function () { + for (var i = 0; i < this.palettes.length; i++) { + var symGroup = this.palettes[parseInt(i.toString(), 10)]; + this.initSymbols(symGroup); + this.renderPalette(symGroup); + } + }; + SymbolPalette.prototype.createTextbox = function () { + var searchDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { id: this.element.id + '_search' }); + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["applyStyleAgainstCsp"])(searchDiv, 'backgroundColor:white;height:30px'); + // searchDiv.setAttribute('style', 'backgroundColor:white;height:30px'); + searchDiv.className = 'e-input-group'; + this.element.appendChild(searchDiv); + var textBox = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('input', {}); + textBox.placeholder = this.l10n.getConstant('SearchShapes'); + textBox.id = 'textEnter'; + Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["applyStyleAgainstCsp"])(textBox, 'width:100%;height:auto'); + //textBox.setAttribute('style', 'width:100%;height:auto'); + textBox.className = 'e-input'; + searchDiv.appendChild(textBox); + var span = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('span', { id: 'iconSearch', className: 'e-input-group-icon e-search e-icons' }); + searchDiv.appendChild(span); + }; + SymbolPalette.prototype.getFilterSymbol = function (symbol) { + var items = []; + for (var i = 0; i < symbol.length; i++) { + for (var j = 0; j < this.ignoreSymbolsOnSearch.length; j++) { + if (this.ignoreSymbolsOnSearch[parseInt(j.toString(), 10)] !== symbol[parseInt(i.toString(), 10)].id) { + items.push(symbol[0]); + } + } + } + return items; + }; + SymbolPalette.prototype.searchPalette = function (value) { + var symbolGroup = []; + var element = document.getElementById('SearchPalette'); + var paletteDiv; + //remove the existing child in palette + if (element) { + for (var k = element.children.length - 1; k >= 0; k--) { + element.removeChild(element.children[parseInt(k.toString(), 10)]); + } + } + //add the searched item in array collection + for (var i = 0; i < this.palettes.length; i++) { + var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)]; + for (var j = 0; j < symbolPaletteGroup.symbols.length; j++) { + var item = symbolPaletteGroup.symbols[parseInt(j.toString(), 10)]; + if (value !== '' && item.id.toLowerCase().indexOf(value.toLowerCase()) !== -1) { + symbolGroup.push(item); + } + } + } + var filterSymbols = Object(_diagram_utility_base_util__WEBPACK_IMPORTED_MODULE_6__["getFunction"])(this.filterSymbols); + if (filterSymbols) { + symbolGroup = filterSymbols(symbolGroup) || []; + } + if (this.ignoreSymbolsOnSearch && this.ignoreSymbolsOnSearch.length > 0) { + symbolGroup = this.getFilterSymbol(symbolGroup); + } + //create a palette collection + if (!element && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + paletteDiv = this.createSearchPalette(paletteDiv); + element = paletteDiv; + } + //add the symbols into search palette + if (symbolGroup.length > 0) { + for (var _i = 0, symbolGroup_1 = symbolGroup; _i < symbolGroup_1.length; _i++) { + var symbol = symbolGroup_1[_i]; + if (symbol.parentId === '') { + this.getSymbolContainer(symbol, element); + } + } + } + else if (value !== '') { + var emptyDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'id': 'EmptyDiv', 'style': 'text-align:center;font-style:italic' }); + emptyDiv.innerHTML = 'No Items To Display'; + element.appendChild(emptyDiv); + } + else { + var element_1 = document.getElementById('iconSearch'); + element_1.className = 'e-input-group-icon e-search e-icons'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.accordionElement.removeItem(0); + var searchPalette = document.getElementById('SearchPalette'); + if (searchPalette) { + searchPalette.remove(); + } + } + } + }; + SymbolPalette.prototype.createSearchPalette = function (paletteDiv) { + paletteDiv = Object(_diagram_utility_dom_util__WEBPACK_IMPORTED_MODULE_4__["createHtmlElement"])('div', { 'id': 'SearchPalette', 'style': 'display:none;overflow:auto;' }); + this.element.appendChild(paletteDiv); + var paletteCollection = { + header: 'Search Results', expanded: true, + content: '#SearchPalette' + }; + this.accordionElement.addItem(paletteCollection, 0); + return paletteDiv; + }; + SymbolPalette.prototype.wireEvents = function () { + var startEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent; + var stopEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent; + var moveEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent; + var cancelEvent = 'mouseleave'; + var keyEvent = 'keyup'; + var keyDownEvent = 'keydown'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, startEvent, this.mouseDown, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, moveEvent, this.mouseMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, stopEvent, this.mouseUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, cancelEvent, this.mouseLeave, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, keyEvent, this.keyUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, keyDownEvent, this.keyDown, this); + // initialize the draggable component + this.initDraggable(); + }; + SymbolPalette.prototype.unWireEvents = function () { + var startEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent; + var stopEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent; + var moveEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent; + var cancelEvent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isPointer ? 'pointerleave' : 'mouseleave'; + var keyEvent = 'keyup'; + var keyDownEvent = 'keydown'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, startEvent, this.mouseDown); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, moveEvent, this.mouseMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, stopEvent, this.mouseUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, cancelEvent, this.mouseLeave); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, keyEvent, this.keyUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, keyDownEvent, this.keyDown); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('S') + ], SymbolPalette.prototype, "accessKey", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], SymbolPalette.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], SymbolPalette.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Palette) + ], SymbolPalette.prototype, "palettes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "getSymbolInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ fit: true }) + ], SymbolPalette.prototype, "symbolInfo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "filterSymbols", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "ignoreSymbolsOnSearch", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "getSymbolTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "symbolWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "symbolHeight", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ left: 10, right: 10, top: 10, bottom: 10 }, _diagram_index__WEBPACK_IMPORTED_MODULE_2__["Margin"]) + ], SymbolPalette.prototype, "symbolMargin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], SymbolPalette.prototype, "allowDrag", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, SymbolPreview) + ], SymbolPalette.prototype, "symbolPreview", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, SymbolDragSize) + ], SymbolPalette.prototype, "symbolDragSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SymbolPalette.prototype, "enableSearch", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], SymbolPalette.prototype, "enableAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Multiple') + ], SymbolPalette.prototype, "expandMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SymbolPalette.prototype, "paletteSelectionChange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SymbolPalette.prototype, "paletteExpanding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "getNodeDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "nodeDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "getConnectorDefaults", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], SymbolPalette.prototype, "connectorDefaults", void 0); + return SymbolPalette; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/color-picker.js": +/*!*******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/color-picker.js ***! + \*******************************************************************************/ +/*! exports provided: ColorPicker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return ColorPicker; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_splitbuttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-splitbuttons */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _input_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../input/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/index.js"); +/* harmony import */ var _numerictextbox_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../numerictextbox/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/index.js"); +/* harmony import */ var _slider_slider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../slider/slider */ "./ej2-resources/22.1.37/scripts/ej2-inputs/slider/slider.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable prefer-spread */ + + + + + + + + + + +var APPLY = 'e-apply'; +var CANCEL = 'e-cancel'; +var CURRENT = 'e-current'; +var CONTAINER = 'e-container'; +var CTRLBTN = 'e-ctrl-btn'; +var CTRLSWITCH = 'e-switch-ctrl-btn'; +var DISABLED = 'e-disabled'; +var FORMATSWITCH = 'e-value-switch-btn'; +var HANDLER = 'e-handler'; +var HEX = 'e-hex'; +var HIDEHEX = 'e-hide-hex-value'; +var HIDEOPACITY = 'e-hide-opacity'; +var HIDERGBA = 'e-hide-switchable-value'; +var HIDEVALUE = 'e-hide-value'; +var HIDEVALUESWITCH = 'e-hide-valueswitcher'; +var HSVAREA = 'e-hsv-color'; +var HSVCONTAINER = 'e-hsv-container'; +var INPUTWRAPPER = 'e-selected-value'; +var MODESWITCH = 'e-mode-switch-btn'; +var NOCOLOR = 'e-nocolor-item'; +var OPACITY = 'e-opacity-value'; +var PALETTES = 'e-palette'; +var PALETTECONTENT = 'e-color-palette'; +var PICKERCONTENT = 'e-color-picker'; +var PREVIEW = 'e-preview-container'; +var PREVIOUS = 'e-previous'; +var RTL = 'e-rtl'; +var SHOWVALUE = 'e-show-value'; +var SELECT = 'e-selected'; +var SPLITPREVIEW = 'e-split-preview'; +var TILE = 'e-tile'; +var presets = { + default: ['#000000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#ffeb3b', + '#ffffff', '#ffebee', '#fce4ec', '#f3e5f5', '#ede7f6', '#e3f2fd', '#e1f5fe', '#e0f7fa', '#e0f2f1', '#fffde7', + '#f2f2f2', '#ffcdd2', '#f8bbd0', '#e1bee7', '#d1c4e9', '#bbdefb', '#b3e5fc', '#b2ebf2', '#b2dfdb', '#fff9c4', + '#e6e6e6', '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#fff59d', + '#cccccc', '#e57373', '#f06292', '#ba68c8', '#9575cd', '#64b5f6', '#4fc3f7', '#4dd0e1', '#4db6ac', '#fff176', + '#b3b3b3', '#ef5350', '#ec407a', '#ab47bc', '#7e57c2', '#42a5f5', '#29b6f6', '#26c6da', '#26a69a', '#ffee58', + '#999999', '#e53935', '#d81b60', '#8e24aa', '#5e35b1', '#1e88e5', '#039be5', '#00acc1', '#00897b', '#fdd835', + '#808080', '#d32f2f', '#c2185b', '#7b1fa2', '#512da8', '#1976d2', '#0288d1', '#0097a7', '#00796b', '#fbc02d', + '#666666', '#c62828', '#ad1457', '#6a1b9a', '#4527a0', '#1565c0', '#0277bd', '#00838f', '#00695c', '#f9a825', + '#4d4d4d', '#b71c1c', '#880e4f', '#4a148c', '#311b92', '#0d47a1', '#01579b', '#006064', '#004d40', '#f57f17'] +}; +/** + * ColorPicker component is a user interface to select and adjust color values. It provides supports for various + * color specification like Red Green Blue, Hue Saturation Value and Hex codes. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var ColorPicker = /** @__PURE__ @class */ (function (_super) { + __extends(ColorPicker, _super); + function ColorPicker(options, element) { + return _super.call(this, options, element) || this; + } + ColorPicker.prototype.preRender = function () { + var ele = this.element; + this.formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.formResetHandler, this); + } + var localeText = { Apply: 'Apply', Cancel: 'Cancel', ModeSwitcher: 'Switch Mode' }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('colorpicker', localeText, this.locale); + if (ele.getAttribute('ejs-for') && !ele.getAttribute('name')) { + ele.setAttribute('name', ele.id); + } + }; + /** + * To Initialize the component rendering + * + * @private + * @returns {void} + */ + ColorPicker.prototype.render = function () { + this.initWrapper(); + if (this.inline) { + this.createWidget(); + } + else { + this.createSplitBtn(); + } + if (!this.enableOpacity) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.container.parentElement], HIDEOPACITY); + } + this.renderComplete(); + }; + ColorPicker.prototype.initWrapper = function () { + var wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' }); + this.element.parentNode.insertBefore(wrapper, this.element); + wrapper.appendChild(this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'tabindex': '-1', 'spellcheck': 'false', 'aria-label': 'colorpicker' }); + this.container = this.createElement('div', { className: CONTAINER }); + this.getWrapper().appendChild(this.container); + var value = this.value ? this.roundValue(this.value).toLowerCase() : '#008000ff'; + if (this.noColor && this.mode === 'Palette' && this.value === '') { + value = ''; + } + var slicedValue = value.slice(0, 7); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initialInputValue)) { + this.initialInputValue = slicedValue; + } + this.element.value = slicedValue; + if (this.enableOpacity) { + this.setProperties({ 'value': value }, true); + } + else { + this.setProperties({ 'value': slicedValue }, true); + } + if (this.enableRtl) { + wrapper.classList.add(RTL); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + this.tileRipple = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.container, { selector: '.' + TILE }); + this.ctrlBtnRipple = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.container, { selector: '.e-btn' }); + }; + ColorPicker.prototype.getWrapper = function () { + return this.element.parentElement; + }; + ColorPicker.prototype.createWidget = function () { + if (this.mode === 'Palette') { + this.createPalette(); + if (!this.inline) { + this.firstPaletteFocus(); + } + } + else { + this.createPicker(); + if (!this.inline) { + this.getDragHandler().focus(); + } + } + this.isRgb = true; + this.createInput(); + this.createCtrlBtn(); + if (!this.disabled) { + this.wireEvents(); + } + if (this.inline && this.disabled) { + this.toggleDisabled(true); + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.refreshPopupPos(); + } + }; + ColorPicker.prototype.createSplitBtn = function () { + var _this = this; + var splitButton = this.createElement('button', { className: 'e-split-colorpicker' }); + this.getWrapper().appendChild(splitButton); + this.splitBtn = new _ej2_splitbuttons__WEBPACK_IMPORTED_MODULE_1__["SplitButton"]({ + iconCss: 'e-selected-color', + target: this.container, + disabled: this.disabled, + enableRtl: this.enableRtl, + createPopupOnClick: this.createPopupOnClick, + open: this.onOpen.bind(this), + click: function () { + _this.trigger('change', { + currentValue: { hex: _this.value.slice(0, 7), rgba: _this.convertToRgbString(_this.hexToRgb(_this.value)) }, + previousValue: { hex: null, rgba: null }, value: _this.value + }); + } + }); + this.splitBtn.createElement = this.createElement; + this.splitBtn.appendTo(splitButton); + var preview = this.createElement('span', { className: SPLITPREVIEW }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-selected-color', splitButton).appendChild(preview); + preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(this.value)); + var popupEle = this.getPopupEle(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([popupEle], 'e-colorpicker-popup'); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([popupEle], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + var popupInst = this.getPopupInst(); + popupInst.relateTo = document.body; + popupInst.position = { X: 'center', Y: 'center' }; + popupInst.targetType = 'container'; + popupInst.collision = { X: 'fit', Y: 'fit' }; + popupInst.offsetY = 4; + popupEle.style.zIndex = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["getZindexPartial"])(this.splitBtn.element).toString(); + } + this.bindCallBackEvent(); + }; + ColorPicker.prototype.onOpen = function () { + this.trigger('open', { element: this.container }); + }; + ColorPicker.prototype.getPopupInst = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(this.getPopupEle(), _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Popup"]); + }; + ColorPicker.prototype.bindCallBackEvent = function () { + var _this = this; + this.splitBtn.beforeOpen = function (args) { + var callBackPromise = new _ej2_splitbuttons__WEBPACK_IMPORTED_MODULE_1__["Deferred"](); + _this.trigger('beforeOpen', args, function (observeOpenArgs) { + if (!observeOpenArgs.cancel) { + var popupEle = _this.getPopupEle(); + popupEle.style.top = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(0 + pageYOffset); + popupEle.style.left = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(0 + pageXOffset); + popupEle.style.display = 'block'; + _this.createWidget(); + popupEle.style.display = ''; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _this.modal = _this.createElement('div'); + _this.modal.className = 'e-' + _this.getModuleName() + ' e-modal'; + _this.modal.style.display = 'none'; + document.body.insertBefore(_this.modal, popupEle); + document.body.className += ' e-colorpicker-overflow'; + _this.modal.style.display = 'block'; + _this.modal.style.zIndex = (Number(popupEle.style.zIndex) - 1).toString(); + } + } + args.cancel = observeOpenArgs.cancel; + callBackPromise.resolve(observeOpenArgs); + }); + return callBackPromise; + }; + this.splitBtn.beforeClose = function (args) { + var callBackPromise = new _ej2_splitbuttons__WEBPACK_IMPORTED_MODULE_1__["Deferred"](); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.event)) { + var beforeCloseArgs = { element: _this.container, event: args.event, cancel: false }; + _this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && args.event.target === _this.modal) { + observedCloseArgs.cancel = true; + } + if (!observedCloseArgs.cancel) { + _this.onPopupClose(); + } + args.cancel = observedCloseArgs.cancel; + callBackPromise.resolve(observedCloseArgs); + }); + } + else { + callBackPromise.resolve(args); + } + return callBackPromise; + }; + }; + ColorPicker.prototype.onPopupClose = function () { + this.unWireEvents(); + this.destroyOtherComp(); + this.container.style.width = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SPLITPREVIEW, this.splitBtn.element).style.backgroundColor + = this.convertToRgbString(this.hexToRgb(this.value)); + this.container.innerHTML = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.container], [PICKERCONTENT, PALETTECONTENT]); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && this.modal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([document.body], 'e-colorpicker-overflow'); + this.modal.style.display = 'none'; + this.modal.outerHTML = ''; + this.modal = null; + } + }; + ColorPicker.prototype.createPalette = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(this.container, [PALETTECONTENT], [PICKERCONTENT]); + if (this.presetColors) { + var paletteGroup = this.createElement('div', { className: 'e-custom-palette' }); + this.appendElement(paletteGroup); + var keys = Object.keys(this.presetColors); + if (keys.length === 1) { + this.appendPalette(this.presetColors[keys[0]], keys[0], paletteGroup); + } + else { + for (var i = 0, len = keys.length; i < len; i++) { + this.appendPalette(this.presetColors[keys[i]], keys[i], paletteGroup); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-row', paletteGroup).length > 10) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([paletteGroup], 'e-palette-group'); + } + } + else { + this.appendPalette(presets.default, 'default'); + } + if (this.mode === 'Palette' && !this.modeSwitcher && this.noColor) { + this.setNoColor(); + } + var width = parseInt(getComputedStyle(this.container).borderBottomWidth, 10); + this.container.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.container.children[0].offsetWidth + width + width); + this.rgb = this.hexToRgb(this.roundValue(this.value)); + this.hsv = this.rgbToHsv.apply(this, this.rgb); + }; + ColorPicker.prototype.firstPaletteFocus = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SELECT, this.container.children[0])) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + PALETTES, this.container)[0].focus(); + } + }; + ColorPicker.prototype.appendPalette = function (colors, key, refEle) { + var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } }); + if (refEle) { + refEle.appendChild(palette); + } + else { + this.appendElement(palette); + } + var row; + var tile; + var roundedColor; + for (var i = 0, len = colors.length; i < len; i++) { + if (i === 0 || i % this.columns === 0) { + row = this.createElement('div', { + className: 'e-row', attrs: { 'role': 'row' } + }); + palette.appendChild(row); + } + roundedColor = this.roundValue(colors[i]).toLowerCase(); + tile = this.createElement('span', { + className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false', 'tabindex': '0' } + }); + this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] }); + row.appendChild(tile); + if (this.value === roundedColor) { + this.addTileSelection(tile); + palette.focus(); + } + tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor)); + } + }; + ColorPicker.prototype.setNoColor = function () { + var noColorEle = this.container.querySelector('.e-row').children[0]; + noColorEle.classList.add(NOCOLOR); + if (!this.value) { + noColorEle.classList.add(SELECT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(noColorEle, '.' + PALETTES).focus(); + } + ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); }); + noColorEle.style.backgroundColor = ''; + }; + ColorPicker.prototype.appendElement = function (ele, insertPos) { + if (insertPos === void 0) { insertPos = 0; } + var refEle = this.container.children[insertPos]; + if (refEle) { + this.container.insertBefore(ele, refEle); + } + else { + this.container.appendChild(ele); + } + }; + ColorPicker.prototype.addTileSelection = function (ele) { + ele.classList.add(SELECT); + ele.setAttribute('aria-selected', 'true'); + }; + ColorPicker.prototype.createPicker = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(this.container, [PICKERCONTENT], [PALETTECONTENT]); + var hsvContainer = this.createElement('div', { className: HSVCONTAINER }); + this.appendElement(hsvContainer); + hsvContainer.appendChild(this.createElement('div', { className: HSVAREA })); + var dragHandler = this.createElement('span', { className: HANDLER, attrs: { 'tabindex': '0' } }); + hsvContainer.appendChild(dragHandler); + if (this.value === null || this.value === '') { + this.value = '#008000ff'; + } + this.rgb = this.hexToRgb(this.value); + this.hsv = this.rgbToHsv.apply(this, this.rgb); + this.setHsvContainerBg(); + this.setHandlerPosition(); + this.createSlider(); + this.createDragTooltip(); + }; + ColorPicker.prototype.setHsvContainerBg = function (h) { + if (h === void 0) { h = this.hsv[0]; } + this.getHsvContainer().style.backgroundColor = this.convertToRgbString(this.hsvToRgb(h, 100, 100, 1)); + }; + ColorPicker.prototype.getHsvContainer = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HSVCONTAINER, this.container); + }; + ColorPicker.prototype.setHandlerPosition = function () { + var dragHandler = this.getDragHandler(); + var hsvArea = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HSVAREA, this.container); + if (this.enableRtl) { + dragHandler.style.left = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(hsvArea.offsetWidth * Math.abs(100 - this.hsv[1]) / 100); + } + else { + dragHandler.style.left = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(hsvArea.offsetWidth * this.hsv[1] / 100); + } + dragHandler.style.top = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(hsvArea.offsetHeight * (100 - this.hsv[2]) / 100); + }; + ColorPicker.prototype.createSlider = function () { + var sliderPreviewWrapper = this.createElement('div', { className: 'e-slider-preview' }); + this.appendElement(sliderPreviewWrapper, 1); + this.createPreview(sliderPreviewWrapper); + var sliderWrapper = this.createElement('div', { className: 'e-colorpicker-slider' }); + sliderPreviewWrapper.insertBefore(sliderWrapper, sliderPreviewWrapper.children[0]); + var slider = this.createElement('div', { className: 'e-hue-slider' }); + sliderWrapper.appendChild(slider); + this.hueSlider = new _slider_slider__WEBPACK_IMPORTED_MODULE_5__["Slider"]({ + value: this.hsv[0], + min: 0, + max: 359, + enableRtl: this.enableRtl, + enabled: !this.disabled, + change: this.hueChange.bind(this) + }); + this.hueSlider.createElement = this.createElement; + this.hueSlider.appendTo(slider); + if (this.enableOpacity) { + slider = this.createElement('div', { className: 'e-opacity-slider' }); + sliderWrapper.appendChild(slider); + this.createOpacitySlider(slider); + } + }; + ColorPicker.prototype.createOpacitySlider = function (slider) { + this.opacitySlider = new _slider_slider__WEBPACK_IMPORTED_MODULE_5__["Slider"]({ + value: this.rgb[3] * 100, + min: 0, + max: 100, + enableRtl: this.enableRtl, + enabled: !this.disabled, + change: this.opacityChange.bind(this) + }); + this.opacitySlider.createElement = this.createElement; + this.opacitySlider.appendTo(slider); + var opacityBgTrack = this.createElement('div', { className: 'e-opacity-empty-track' }); + slider.appendChild(opacityBgTrack); + this.updateOpacitySliderBg(); + }; + ColorPicker.prototype.updateOpacitySliderBg = function () { + var direction = this.enableRtl ? 'to left' : 'to right'; + var opacityEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-opacity-empty-track', this.opacitySlider.element); + if (opacityEle) { + opacityEle.style.background = + 'linear-gradient(' + direction + ', rgba(' + this.rgb.slice(0, 3) + ', 0) 0%, ' + + this.convertToRgbString(this.rgb.slice(0, 3)) + ' 100%)'; + } + }; + ColorPicker.prototype.hueChange = function (args) { + this.hsv[0] = args.value; + this.setHsvContainerBg(); + this.convertToOtherFormat(); + }; + ColorPicker.prototype.opacityChange = function (args) { + var value = args.value; + var pValue = this.rgbToHex(this.rgb); + this.hsv[3] = value / 100; + this.rgb[3] = value / 100; + var cValue = this.rgbToHex(this.rgb); + this.updateOpacityInput(value); + var rgb = this.convertToRgbString(this.rgb); + this.updatePreview(rgb); + this.triggerEvent(cValue, pValue, rgb); + }; + ColorPicker.prototype.updateOpacityInput = function (value) { + if (this.enableOpacity && !this.getWrapper().classList.contains(HIDEVALUE)) { + var opacityTextBoxInst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + OPACITY, this.container), _numerictextbox_index__WEBPACK_IMPORTED_MODULE_4__["NumericTextBox"]); + opacityTextBoxInst.value = value; + opacityTextBoxInst.dataBind(); + } + }; + ColorPicker.prototype.createPreview = function (parentEle) { + var previewContainer = this.createElement('div', { className: PREVIEW }); + parentEle.appendChild(previewContainer); + var preview = this.createElement('span', { className: 'e-preview ' + CURRENT }); + previewContainer.appendChild(preview); + var colorValue = this.convertToRgbString(this.rgb); + preview.style.backgroundColor = colorValue; + preview = this.createElement('span', { className: 'e-preview ' + PREVIOUS }); + previewContainer.appendChild(preview); + preview.style.backgroundColor = colorValue; + }; + ColorPicker.prototype.isPicker = function () { + return !this.container.classList.contains(PALETTECONTENT); + }; + ColorPicker.prototype.getPopupEle = function () { + return this.container.parentElement; + }; + ColorPicker.prototype.createNumericInput = function (element, value, label, max) { + var _this = this; + var numericInput = new _numerictextbox_index__WEBPACK_IMPORTED_MODULE_4__["NumericTextBox"]({ + value: value, + placeholder: label, + min: 0, + max: max, + format: '###.##', + showSpinButton: false, + floatLabelType: 'Always', + enableRtl: this.enableRtl, + enabled: !this.disabled, + readonly: this.isPicker() ? false : true, + change: function (args) { + if (args.event) { + _this.inputHandler(args.event); + } + } + }); + numericInput.createElement = this.createElement; + numericInput.appendTo(element); + }; + ColorPicker.prototype.createInput = function () { + var isPicker = this.isPicker(); + var wrapper = this.getWrapper(); + if ((isPicker && !wrapper.classList.contains(HIDEVALUE)) || (!isPicker && wrapper.classList.contains(SHOWVALUE))) { + var inputWrap = this.createElement('div', { className: INPUTWRAPPER }); + if (isPicker) { + this.appendElement(inputWrap, 2); + } + else { + this.appendElement(inputWrap, 1); + } + var container = this.createElement('div', { className: 'e-input-container' }); + inputWrap.appendChild(container); + if (!wrapper.classList.contains(HIDEVALUESWITCH)) { + this.appendValueSwitchBtn(inputWrap); + } + if (!wrapper.classList.contains(HIDEHEX)) { + var hexInput = this.createElement('input', { + className: HEX, + attrs: { 'maxlength': '7', 'spellcheck': 'false', 'aria-label': 'HEX' } + }); + container.appendChild(hexInput); + _input_index__WEBPACK_IMPORTED_MODULE_3__["Input"].createInput({ + element: hexInput, + floatLabelType: 'Always', + properties: { + placeholder: 'HEX', + enableRtl: this.enableRtl, + enabled: !this.disabled, + readonly: this.isPicker() ? false : true + } + }, this.createElement); + _input_index__WEBPACK_IMPORTED_MODULE_3__["Input"].setValue(this.value.slice(0, 7), hexInput); + hexInput.addEventListener('input', this.inputHandler.bind(this)); + } + if (!wrapper.classList.contains(HIDERGBA)) { + var label = void 0; + var value = void 0; + if (this.isRgb) { + label = 'RGB'; + value = this.rgb; + } + else { + label = 'HSV'; + value = this.hsv; + } + var clsName = ['rh', 'gs', 'bv']; + for (var i = 0; i < 3; i++) { + this.createNumericInput(container.appendChild(this.createElement('input', { className: 'e-' + clsName[i] + '-value' })), value[i], label[i], 255); + } + if (this.enableOpacity) { + this.appendOpacityValue(container); + } + } + } + }; + ColorPicker.prototype.appendOpacityValue = function (container) { + this.createNumericInput(container.appendChild(this.createElement('input', { className: OPACITY })), this.rgb[3] * 100, 'A', 100); + }; + ColorPicker.prototype.appendValueSwitchBtn = function (targetEle) { + var valueSwitchBtn = this.createElement('button', { + className: 'e-icons e-css e-btn e-flat e-icon-btn ' + FORMATSWITCH, + attrs: { 'title': 'Toggle format' } + }); + targetEle.appendChild(valueSwitchBtn); + if (this.isPicker() && !this.getWrapper().classList.contains(HIDERGBA)) { + valueSwitchBtn.addEventListener('click', this.formatSwitchHandler.bind(this)); + } + }; + ColorPicker.prototype.createCtrlBtn = function () { + if (this.modeSwitcher || this.showButtons) { + this.l10n.setLocale(this.locale); + var btnWrapper = this.createElement('div', { className: CTRLSWITCH }); + this.container.appendChild(btnWrapper); + if (this.showButtons) { + var controlBtnWrapper = this.createElement('div', { className: CTRLBTN }); + btnWrapper.appendChild(controlBtnWrapper); + var apply = this.l10n.getConstant('Apply'); + controlBtnWrapper.appendChild(this.createElement('button', { + innerHTML: apply, + className: 'e-btn e-css e-flat e-primary e-small ' + APPLY, + attrs: { 'title': apply } + })); + var cancel = this.l10n.getConstant('Cancel'); + controlBtnWrapper.appendChild(this.createElement('button', { + innerHTML: cancel, + className: 'e-btn e-css e-flat e-small ' + CANCEL, + attrs: { 'title': cancel } + })); + } + if (this.modeSwitcher) { + this.appendModeSwitchBtn(); + } + } + }; + ColorPicker.prototype.appendModeSwitchBtn = function () { + var modeSwitcher = this.createElement('button', { + className: 'e-icons e-btn e-flat e-icon-btn ' + MODESWITCH, attrs: { title: this.l10n.getConstant('ModeSwitcher') } + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLSWITCH, this.container).insertBefore(modeSwitcher, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLBTN, this.container)); + }; + ColorPicker.prototype.createDragTooltip = function () { + var _this = this; + var tooltip = new _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Tooltip"]({ + opensOn: 'Custom', + showTipPointer: false, + cssClass: 'e-color-picker-tooltip', + beforeOpen: function (args) { + _this.tooltipEle = args.element; + }, + animation: { open: { effect: 'None' }, close: { effect: 'None' } } + }); + tooltip.createElement = this.createElement; + tooltip.appendTo(this.container); + // eslint-disable-next-line + tooltip.open(this.container); + this.tooltipEle.style.zIndex = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["getZindexPartial"])(this.tooltipEle).toString(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' })); + }; + ColorPicker.prototype.getTooltipInst = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(this.container, _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Tooltip"]); + }; + ColorPicker.prototype.setTooltipOffset = function (value) { + this.getTooltipInst().offsetY = value; + }; + ColorPicker.prototype.toggleDisabled = function (enable) { + if (enable) { + this.getWrapper().classList.add(DISABLED); + } + else { + this.getWrapper().classList.remove(DISABLED); + } + if (this.showButtons) { + ([].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-btn', this.container))).forEach(function (ele) { + if (enable) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(ele, { 'disabled': '' }); + } + else { + ele.removeAttribute('disabled'); + } + }); + } + }; + ColorPicker.prototype.convertToRgbString = function (rgb) { + return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : ''; + }; + ColorPicker.prototype.convertToHsvString = function (hsv) { + return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')'; + }; + ColorPicker.prototype.updateHsv = function () { + this.hsv[1] = this.hsv[1] > 100 ? 100 : this.hsv[1]; + this.hsv[2] = this.hsv[2] > 100 ? 100 : this.hsv[2]; + this.setHandlerPosition(); + }; + ColorPicker.prototype.convertToOtherFormat = function (isKey) { + if (isKey === void 0) { isKey = false; } + var pValue = this.rgbToHex(this.rgb); + this.rgb = this.hsvToRgb.apply(this, this.hsv); + var cValue = this.rgbToHex(this.rgb); + var rgba = this.convertToRgbString(this.rgb); + this.updatePreview(rgba); + this.updateInput(cValue); + this.triggerEvent(cValue, pValue, rgba, isKey); + }; + ColorPicker.prototype.updateInput = function (value) { + var wrapper = this.getWrapper(); + if (!wrapper.classList.contains(HIDEVALUE)) { + if (!wrapper.classList.contains(HIDEHEX)) { + _input_index__WEBPACK_IMPORTED_MODULE_3__["Input"].setValue(value.substr(0, 7), Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HEX, this.container)); + } + if (!wrapper.classList.contains(HIDERGBA)) { + if (this.isRgb) { + this.updateValue(this.rgb, false); + } + else { + this.updateValue(this.hsv, false); + } + } + } + }; + ColorPicker.prototype.updatePreview = function (value) { + if (this.enableOpacity) { + this.updateOpacitySliderBg(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-tip-transparent', this.tooltipEle).style.backgroundColor = value; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = value; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PREVIEW + ' .' + PREVIOUS, this.container).style.backgroundColor + = this.convertToRgbString(this.hexToRgb(this.value)); + }; + ColorPicker.prototype.getDragHandler = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HANDLER, this.container); + }; + ColorPicker.prototype.removeTileSelection = function () { + var selectedEle = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SELECT, this.container.children[0])); + selectedEle.forEach(function (ele) { + ele.classList.remove(SELECT); + ele.setAttribute('aria-selected', 'false'); + }); + }; + ColorPicker.prototype.convertRgbToNumberArray = function (value) { + return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) { + return (i !== 3) ? parseInt(n, 10) : parseFloat(n); + }); + }; + /** + * To get color value in specified type. + * + * @param {string} value - Specify the color value. + * @param {string} type - Specify the type to which the specified color needs to be converted. + * @method getValue + * @returns {string} - Color value + */ + ColorPicker.prototype.getValue = function (value, type) { + if (!value) { + value = this.value; + } + type = !type ? 'hex' : type.toLowerCase(); + if (value[0] === 'r') { + var cValue = this.convertRgbToNumberArray(value); + if (type === 'hex' || type === 'hexa') { + var hex = this.rgbToHex(cValue); + return type === 'hex' ? hex.slice(0, 7) : hex; + } + else { + if (type === 'hsv') { + return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3))); + } + else { + if (type === 'hsva') { + return this.convertToHsvString(this.rgbToHsv.apply(this, cValue)); + } + else { + return 'null'; + } + } + } + } + else { + if (value[0] === 'h') { + var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value)); + if (type === 'rgba') { + return this.convertToRgbString(cValue); + } + else { + if (type === 'hex' || type === 'hexa') { + var hex = this.rgbToHex(cValue); + return type === 'hex' ? hex.slice(0, 7) : hex; + } + else { + if (type === 'rgb') { + return this.convertToRgbString(cValue.slice(0, 3)); + } + else { + return 'null'; + } + } + } + } + else { + value = this.roundValue(value); + var rgb = this.hexToRgb(value); + if (type === 'rgb' || type === 'hsv') { + rgb = rgb.slice(0, 3); + } + if (type === 'rgba' || type === 'rgb') { + return this.convertToRgbString(rgb); + } + else { + if (type === 'hsva' || type === 'hsv') { + return this.convertToHsvString(this.rgbToHsv.apply(this, rgb)); + } + else { + if (type === 'hex') { + return value.slice(0, 7); + } + else { + if (type === 'a') { + return rgb[3].toString(); + } + else { + return 'null'; + } + } + } + } + } + } + }; + /** + * To show/hide ColorPicker popup based on current state of the SplitButton. + * + * @method toggle + * @returns {void} + */ + ColorPicker.prototype.toggle = function () { + if (this.container.parentElement.classList.contains('e-popup-close')) { + this.splitBtn.toggle(); + } + else { + this.closePopup(null); + } + }; + /** + * Get component name. + * + * @returns {string} - Module Name + * @private + */ + ColorPicker.prototype.getModuleName = function () { + return 'colorpicker'; + }; + /** + * Gets the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + ColorPicker.prototype.getPersistData = function () { + return this.addOnPersist(['value']); + }; + ColorPicker.prototype.wireEvents = function () { + if (this.isPicker()) { + var dragHandler = this.getDragHandler(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(dragHandler, 'keydown', this.pickerKeyDown, this); + var ctrlBtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLBTN, this.container); + if (ctrlBtn) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(ctrlBtn, 'keydown', this.ctrlBtnKeyDown, this); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown, this); + if (this.modeSwitcher || this.showButtons) { + this.addCtrlSwitchEvent(); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PREVIOUS, this.container), 'click', this.previewHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.container, 'click', this.paletteClickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.container, 'keydown', this.paletteKeyDown, this); + } + }; + ColorPicker.prototype.formResetHandler = function () { + this.value = this.initialInputValue; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'value': this.initialInputValue }); + }; + ColorPicker.prototype.addCtrlSwitchEvent = function () { + var ctrlSwitchBtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLSWITCH, this.container); + if (ctrlSwitchBtn) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(ctrlSwitchBtn, 'click', this.btnClickHandler, this); + } + }; + ColorPicker.prototype.ctrlBtnKeyDown = function (e) { + if (e.keyCode === 13) { + var applyBtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + APPLY, this.container); + if (applyBtn) { + var cValue = this.rgbToHex(this.rgb); + this.triggerChangeEvent(cValue); + } + this.splitBtn.element.focus(); + } + }; + ColorPicker.prototype.pickerKeyDown = function (e) { + switch (e.keyCode) { + case 39: + this.handlerDragPosition(1, this.enableRtl ? -1 : 1, e); + break; + case 37: + this.handlerDragPosition(1, this.enableRtl ? 1 : -1, e); + break; + case 38: + this.handlerDragPosition(2, 1, e); + break; + case 40: + this.handlerDragPosition(2, -1, e); + break; + case 13: { + e.preventDefault(); + var cValue = this.rgbToHex(this.rgb); + this.enterKeyHandler(cValue, e); + } + } + }; + ColorPicker.prototype.enterKeyHandler = function (value, e) { + this.triggerChangeEvent(value); + if (!this.inline) { + this.splitBtn.element.focus(); + } + }; + ColorPicker.prototype.closePopup = function (e) { + var _this = this; + var beforeCloseArgs = { element: this.container, event: e, cancel: false }; + this.trigger('beforeClose', beforeCloseArgs, function (observedcloseArgs) { + if (!observedcloseArgs.cancel) { + _this.splitBtn.toggle(); + _this.onPopupClose(); + } + }); + }; + ColorPicker.prototype.triggerChangeEvent = function (value) { + var hex = value.slice(0, 7); + this.trigger('change', { + currentValue: { hex: hex, rgba: this.convertToRgbString(this.rgb) }, + previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, + value: this.enableOpacity ? value : hex + }); + if (this.enableOpacity) { + this.setProperties({ 'value': value }, true); + } + else { + this.setProperties({ 'value': hex }, true); + } + this.element.value = hex ? hex : '#000000'; + }; + ColorPicker.prototype.handlerDragPosition = function (prob, value, e) { + e.preventDefault(); + this.hsv[prob] += value * (e.ctrlKey ? 1 : 3); + if (this.hsv[prob] < 0) { + this.hsv[prob] = 0; + } + this.updateHsv(); + this.convertToOtherFormat(true); + }; + ColorPicker.prototype.handlerDown = function (e) { + e.preventDefault(); + if (e.type === 'mousedown') { + this.clientX = Math.abs(e.pageX - pageXOffset); + this.clientY = Math.abs(e.pageY - pageYOffset); + this.setTooltipOffset(8); + } + else { + this.clientX = Math.abs(e.changedTouches[0].pageX - pageXOffset); + this.clientY = Math.abs(e.changedTouches[0].pageY - pageYOffset); + this.setTooltipOffset(-8); + } + this.setHsv(this.clientX, this.clientY); + this.getDragHandler().style.transition = 'left .4s cubic-bezier(.25, .8, .25, 1), top .4s cubic-bezier(.25, .8, .25, 1)'; + this.updateHsv(); + this.convertToOtherFormat(); + this.getDragHandler().focus(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousemove touchmove', this.handlerMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup touchend', this.handlerEnd, this); + }; + ColorPicker.prototype.handlerMove = function (e) { + if (e.type !== 'touchmove') { + e.preventDefault(); + } + var x; + var y; + if (e.type === 'mousemove') { + x = Math.abs(e.pageX - pageXOffset); + y = Math.abs(e.pageY - pageYOffset); + } + else { + x = Math.abs(e.changedTouches[0].pageX - pageXOffset); + y = Math.abs(e.changedTouches[0].pageY - pageYOffset); + } + this.setHsv(x, y); + var dragHandler = this.getDragHandler(); + this.updateHsv(); + this.convertToOtherFormat(); + this.getTooltipInst().refresh(dragHandler); + if (!this.tooltipEle.style.transform) { + if (Math.abs(this.clientX - x) > 8 || Math.abs(this.clientY - y) > 8) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HSVAREA, this.container).style.cursor = 'pointer'; + dragHandler.style.transition = 'none'; + if (!this.inline) { + this.tooltipEle.style.zIndex = (parseInt(this.getPopupEle().style.zIndex, 10) + 1).toString(); + } + this.tooltipEle.style.transform = 'rotate(45deg)'; + dragHandler.classList.add('e-hide-handler'); + } + } + }; + ColorPicker.prototype.setHsv = function (clientX, clientY) { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HSVAREA, this.container); + var position = ele.getBoundingClientRect(); + if (this.enableRtl) { + clientX = clientX > position.right ? 0 : Math.abs(clientX - position.right); + } + else { + clientX = clientX > position.left ? Math.abs(clientX - position.left) : 0; + } + clientY = clientY > position.top ? Math.abs(clientY - position.top) : 0; + this.hsv[2] = Math.round(Number(100 * (ele.offsetHeight - + Math.max(0, Math.min(ele.offsetHeight, (clientY - ele.offsetTop)))) / ele.offsetHeight) * 10) / 10; + this.hsv[1] = + Math.round(Number(100 * (Math.max(0, Math.min(ele.offsetWidth, (clientX - ele.offsetLeft)))) / ele.offsetWidth) * 10) / 10; + }; + ColorPicker.prototype.handlerEnd = function (e) { + if (e.type !== 'touchend') { + e.preventDefault(); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousemove touchmove', this.handlerMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup touchend', this.handlerEnd); + var dragHandler = this.getDragHandler(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + HSVAREA, this.container).style.cursor = ''; + if (this.tooltipEle.style.transform) { + this.tooltipEle.style.transform = ''; + dragHandler.classList.remove('e-hide-handler'); + } + if (!this.inline && !this.showButtons) { + this.closePopup(e); + } + }; + ColorPicker.prototype.btnClickHandler = function (e) { + var target = e.target; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + MODESWITCH)) { + e.stopPropagation(); + this.switchToPalette(); + } + else { + if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) { + this.ctrlBtnClick(target, e); + } + } + }; + ColorPicker.prototype.switchToPalette = function () { + this.trigger('beforeModeSwitch', { element: this.container, mode: 'Palette' }); + this.unWireEvents(); + this.destroyOtherComp(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-slider-preview', this.container)); + if (!this.getWrapper().classList.contains(HIDEVALUE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INPUTWRAPPER, this.container)); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.getHsvContainer()); + this.createPalette(); + this.firstPaletteFocus(); + this.createInput(); + this.refreshPopupPos(); + this.wireEvents(); + this.trigger('onModeSwitch', { element: this.container, mode: 'Palette' }); + }; + ColorPicker.prototype.refreshPopupPos = function () { + if (!this.inline) { + var popupEle = this.getPopupEle(); + popupEle.style.left = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(0 + pageXOffset); + popupEle.style.top = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(0 + pageYOffset); + this.getPopupInst().refreshPosition(this.splitBtn.element.parentElement); + } + }; + ColorPicker.prototype.formatSwitchHandler = function () { + if (this.isRgb) { + this.updateValue(this.hsv, true, 3, [360, 100, 100]); + this.isRgb = false; + } + else { + this.updateValue(this.rgb, true, 2); + this.isRgb = true; + } + }; + ColorPicker.prototype.updateValue = function (value, format, idx, max) { + var clsName = ['e-rh-value', 'e-gs-value', 'e-bv-value']; + var inst; + for (var i = 0, len = clsName.length; i < len; i++) { + inst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + clsName[i], this.container), _numerictextbox_index__WEBPACK_IMPORTED_MODULE_4__["NumericTextBox"]); + inst.value = Math.round(value[i]); + if (format) { + inst.placeholder = clsName[i].substr(idx, 1).toUpperCase(); + inst.max = max ? max[i] : 255; + } + inst.dataBind(); + } + }; + ColorPicker.prototype.previewHandler = function (e) { + var target = e.target; + var pValue = this.rgbToHex(this.rgb); + this.rgb = this.convertRgbToNumberArray(target.style.backgroundColor); + if (!this.rgb[3]) { + this.rgb[3] = 1; + } + var cValue = this.rgbToHex(this.rgb); + var hsv = this.rgbToHsv.apply(this, this.rgb); + if (hsv[0] !== this.hsv[0]) { + this.hueSlider.setProperties({ 'value': hsv[0] }, true); + this.hueSlider.refresh(); + } + this.setHsvContainerBg(hsv[0]); + if (this.enableOpacity && hsv[3] !== this.hsv[3]) { + this.opacitySlider.setProperties({ 'value': hsv[3] * 100 }, true); + this.opacitySlider.refresh(); + this.updateOpacitySliderBg(); + } + this.hsv = hsv; + this.setHandlerPosition(); + this.updateInput(cValue); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = this.convertToRgbString(this.rgb); + this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb)); + }; + ColorPicker.prototype.paletteClickHandler = function (e) { + e.preventDefault(); + var target = e.target; + if (target.classList.contains(TILE)) { + this.removeTileSelection(); + this.addTileSelection(target); + if (target.classList.contains(NOCOLOR)) { + this.noColorTile(); + } + else { + var cValue = target.getAttribute('aria-label'); + var pValue = this.rgbToHex(this.rgb); + this.rgb = this.hexToRgb(this.roundValue(cValue)); + this.hsv = this.rgbToHsv.apply(this, this.rgb); + if (this.getWrapper().classList.contains(SHOWVALUE)) { + this.updateInput(cValue); + } + this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb)); + } + if (!this.inline && !this.showButtons) { + this.closePopup(e); + } + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + MODESWITCH)) { + this.switchToPicker(); + } + else { + if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) { + this.ctrlBtnClick(target, e); + } + else { + if (this.getWrapper().classList.contains(SHOWVALUE) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + FORMATSWITCH)) { + this.formatSwitchHandler(); + } + } + } + } + }; + ColorPicker.prototype.noColorTile = function (isKey) { + if (isKey === void 0) { isKey = false; } + var pValue = this.rgbToHex(this.rgb); + this.rgb = []; + this.hsv = []; + this.triggerEvent('', pValue, '', isKey); + }; + ColorPicker.prototype.switchToPicker = function () { + var wrapper = this.getWrapper(); + this.trigger('beforeModeSwitch', { element: this.container, mode: 'Picker' }); + this.unWireEvents(); + ([].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + PALETTES, this.container))).forEach(function (ele) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + }); + if (wrapper.classList.contains(SHOWVALUE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INPUTWRAPPER, this.container)); + } + this.container.style.width = ''; + var grpEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-custom-palette', this.container); + if (this.presetColors) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(grpEle); + } + this.createPicker(); + this.getDragHandler().focus(); + this.createInput(); + this.refreshPopupPos(); + this.wireEvents(); + this.trigger('onModeSwitch', { element: this.container, mode: 'Picker' }); + }; + ColorPicker.prototype.ctrlBtnClick = function (ele, e) { + if (ele.classList.contains(APPLY)) { + var cValue = this.rgbToHex(this.rgb); + this.triggerChangeEvent(cValue); + } + if (!this.inline) { + this.closePopup(e); + this.splitBtn.element.focus(); + } + }; + ColorPicker.prototype.paletteKeyDown = function (e) { + var target = e.target; + if (!target.classList.contains(PALETTES)) { + return; + } + var selectedEle; + var idx; + var tiles = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + TILE, target)); + var prevSelectedEle = (tiles.filter(function (tile) { return tile.classList.contains('e-selected'); })).pop(); + switch (!e.altKey && e.keyCode) { + case 39: + e.preventDefault(); + selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? -1 : 1)] + : tiles[this.enableRtl ? tiles.length - 1 : 0]; + this.keySelectionChanges(selectedEle); + break; + case 37: + e.preventDefault(); + selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? 1 : -1)] + : tiles[this.enableRtl ? 0 : tiles.length - 1]; + this.keySelectionChanges(selectedEle); + break; + case 38: + e.preventDefault(); + idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, -this.columns) : 0; + selectedEle = tiles[idx] ? tiles[idx] : tiles[idx - this.columns]; + this.keySelectionChanges(selectedEle); + break; + case 40: + e.preventDefault(); + idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, this.columns) : tiles.length - 1; + if (tiles[idx]) { + selectedEle = tiles[idx]; + } + else { + idx %= tiles.length; + idx += tiles[tiles.length - 1].parentElement.childElementCount; + selectedEle = tiles[idx]; + } + this.keySelectionChanges(selectedEle); + break; + case 13: + e.preventDefault(); + if (prevSelectedEle) { + var cValue = prevSelectedEle.getAttribute('aria-label'); + this.enterKeyHandler(cValue ? cValue : '', e); + } + } + }; + ColorPicker.prototype.keySelectionChanges = function (newEle) { + this.removeTileSelection(); + this.addTileSelection(newEle); + if (newEle.classList.contains(NOCOLOR)) { + this.noColorTile(true); + } + else { + var cValue = newEle.getAttribute('aria-label'); + var pValue = this.rgbToHex(this.rgb); + this.rgb = this.hexToRgb(cValue); + this.hsv = this.rgbToHsv.apply(this, this.rgb); + if (this.getWrapper().classList.contains(SHOWVALUE)) { + this.updateInput(cValue); + } + this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true); + } + }; + ColorPicker.prototype.tilePosition = function (items, element, cIdx) { + items = Array.prototype.slice.call(items); + var n = items.length; + var emptyCount = this.columns - items[n - 1].parentElement.childElementCount; + var idx = items.indexOf(element); + idx += cIdx; + if (idx < 0) { + idx += n + emptyCount; + } + else { + idx %= n + emptyCount; + } + return idx; + }; + ColorPicker.prototype.inputHandler = function (e) { + var target = e.target; + if (!target.value.length) { + return; + } + var hsv; + var pValue; + var label = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-float-text', target.parentElement).textContent; + switch (label) { + case 'HEX': { + var value = ''; + if ((target.value[0] === '#' && target.value.length !== 5) || (target.value[0] !== '#' && target.value.length !== 4)) { + value = this.roundValue(target.value); + } + if (value.length === 9) { + pValue = this.rgbToHex(this.rgb); + this.rgb = this.hexToRgb(value + value.substr(-2)); + this.inputValueChange(this.rgbToHsv.apply(this, this.rgb), pValue, target.value); + } + else { + return; + } + break; + } + case 'R': + if (this.rgb[0] !== Number(target.value)) { + pValue = this.rgbToHex(this.rgb); + this.rgb[0] = Number(target.value); + hsv = this.rgbToHsv.apply(this, this.rgb); + this.inputValueChange(hsv, pValue); + } + break; + case 'G': + if (this.rgb[1] !== Number(target.value)) { + pValue = this.rgbToHex(this.rgb); + this.rgb[1] = Number(target.value); + hsv = this.rgbToHsv.apply(this, this.rgb); + this.inputValueChange(hsv, pValue); + } + break; + case 'B': + if (this.rgb[2] !== Number(target.value)) { + pValue = this.rgbToHex(this.rgb); + this.rgb[2] = Number(target.value); + hsv = this.rgbToHsv.apply(this, this.rgb); + this.inputValueChange(hsv, pValue); + } + break; + case 'H': + this.hueSlider.value = Number(target.value); + break; + case 'S': + if (this.hsv[1] !== Number(target.value)) { + this.hsv[1] = Number(target.value); + this.updateHsv(); + this.convertToOtherFormat(); + } + break; + case 'V': + if (this.hsv[2] !== Number(target.value)) { + this.hsv[2] = Number(target.value); + this.updateHsv(); + this.convertToOtherFormat(); + } + break; + case 'A': + this.opacitySlider.value = Number(target.value); + break; + } + }; + ColorPicker.prototype.inputValueChange = function (hsv, pValue, value) { + if (hsv[0] !== this.hsv[0]) { + this.hueSlider.setProperties({ 'value': hsv[0] }, true); + this.hueSlider.refresh(); + this.setHsvContainerBg(hsv[0]); + } + this.hsv = hsv; + var cValue = this.rgbToHex(this.rgb); + this.setHandlerPosition(); + this.updateInput(value ? value : cValue); + var rgba = this.convertToRgbString(this.rgb); + this.updatePreview(rgba); + this.triggerEvent(cValue, pValue, rgba); + }; + ColorPicker.prototype.triggerEvent = function (cValue, pValue, rgba, isKey) { + if (isKey === void 0) { isKey = false; } + var hex = cValue.slice(0, 7); + if (!this.showButtons && !isKey) { + this.trigger('change', { currentValue: { hex: hex, rgba: rgba }, + previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, value: cValue }); + if (this.enableOpacity) { + this.setProperties({ 'value': cValue }, true); + } + else { + this.setProperties({ 'value': hex }, true); + } + this.element.value = hex ? hex : '#000000'; + } + else { + this.trigger('select', { + currentValue: { hex: hex, rgba: rgba }, + previousValue: { hex: pValue.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(pValue)) } + }); + } + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also it maintains the initial input element from the DOM. + * + * @method destroy + * @returns {void} + */ + ColorPicker.prototype.destroy = function () { + var _this = this; + var wrapper = this.getWrapper(); + _super.prototype.destroy.call(this); + ['tabindex', 'spellcheck'].forEach(function (attr) { _this.element.removeAttribute(attr); }); + if (this.inline) { + this.unWireEvents(); + this.destroyOtherComp(); + } + else { + if (this.isPopupOpen()) { + this.unWireEvents(); + this.destroyOtherComp(); + } + this.splitBtn.destroy(); + this.splitBtn = null; + } + this.tileRipple(); + this.tileRipple = null; + this.ctrlBtnRipple(); + this.ctrlBtnRipple = null; + if (this.element.nextElementSibling) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element.nextElementSibling); + } + if (wrapper) { + wrapper.parentElement.insertBefore(this.element, wrapper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(wrapper); + } + this.container = null; + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', this.formResetHandler); + } + }; + ColorPicker.prototype.destroyOtherComp = function () { + if (this.isPicker()) { + var popup = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.hueSlider.element, '.e-color-picker'); + var numericElemColl = popup.querySelectorAll('.e-numerictextbox'); + for (var i = 0; i < numericElemColl.length; i++) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(numericElemColl[i], _numerictextbox_index__WEBPACK_IMPORTED_MODULE_4__["NumericTextBox"]).destroy(); + } + this.hueSlider.destroy(); + if (this.enableOpacity) { + this.opacitySlider.destroy(); + this.opacitySlider = null; + } + this.hueSlider = null; + var tooltipInst = this.getTooltipInst(); + tooltipInst.close(); + tooltipInst.destroy(); + this.tooltipEle = null; + } + }; + ColorPicker.prototype.isPopupOpen = function () { + return this.getPopupEle().classList.contains('e-popup-open'); + }; + ColorPicker.prototype.unWireEvents = function () { + if (this.isPicker()) { + var dragHandler = this.getDragHandler(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(dragHandler, 'keydown', this.pickerKeyDown); + var ctrlBtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLBTN, this.container); + if (ctrlBtn) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(ctrlBtn, 'keydown', this.ctrlBtnKeyDown); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown); + if (this.modeSwitcher || this.showButtons) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLSWITCH, this.container), 'click', this.btnClickHandler); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PREVIOUS, this.container), 'click', this.previewHandler); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.container, 'click', this.paletteClickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.container, 'keydown', this.paletteKeyDown); + } + }; + ColorPicker.prototype.roundValue = function (value) { + if (!value) { + return ''; + } + if (value[0] !== '#') { + value = '#' + value; + } + var len = value.length; + if (len === 4) { + value += 'f'; + len = 5; + } + if (len === 5) { + var tempValue = ''; + for (var i = 1, len_1 = value.length; i < len_1; i++) { + tempValue += (value.charAt(i) + value.charAt(i)); + } + value = '#' + tempValue; + len = 9; + } + if (len === 7) { + value += 'ff'; + } + return value; + }; + ColorPicker.prototype.hexToRgb = function (hex) { + if (!hex) { + return []; + } + hex = hex.trim(); + if (hex.length !== 9) { + hex = this.roundValue(hex); + } + var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2)); + hex = hex.slice(1, 7); + var bigInt = parseInt(hex, 16); + var h = []; + h.push((bigInt >> 16) & 255); + h.push((bigInt >> 8) & 255); + h.push(bigInt & 255); + h.push(opacity); + return h; + }; + ColorPicker.prototype.rgbToHsv = function (r, g, b, opacity) { + if (this.rgb && !this.rgb.length) { + return []; + } + r /= 255; + g /= 255; + b /= 255; + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var h; + var v = max; + var d = max - min; + var s = max === 0 ? 0 : d / max; + if (max === min) { + h = 0; + } + else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; + } + var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(opacity)) { + hsv.push(opacity); + } + return hsv; + }; + ColorPicker.prototype.hsvToRgb = function (h, s, v, opacity) { + var r; + var g; + var b; + s /= 100; + v /= 100; + if (s === 0) { + r = g = b = v; + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity]; + } + h /= 60; + var i = Math.floor(h); + var f = h - i; + var p = v * (1 - s); + var q = v * (1 - s * f); + var t = v * (1 - s * (1 - f)); + switch (i) { + case 0: + r = v; + g = t; + b = p; + break; + case 1: + r = q; + g = v; + b = p; + break; + case 2: + r = p; + g = v; + b = t; + break; + case 3: + r = p; + g = q; + b = v; + break; + case 4: + r = t; + g = p; + b = v; + break; + default: + r = v; + g = p; + b = q; + } + var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(opacity)) { + rgb.push(opacity); + } + return rgb; + }; + ColorPicker.prototype.rgbToHex = function (rgb) { + return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) + + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : ''; + }; + ColorPicker.prototype.hex = function (x) { + return ('0' + x.toString(16)).slice(-2); + }; + ColorPicker.prototype.changeModeSwitcherProp = function (prop) { + var ctrlSwitchWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLSWITCH, this.container); + if (prop) { + if (ctrlSwitchWrapper) { + this.appendModeSwitchBtn(); + } + else { + this.createCtrlBtn(); + if (this.isPicker() && !this.disabled) { + this.addCtrlSwitchEvent(); + } + } + } + else { + if (ctrlSwitchWrapper) { + if (this.showButtons) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + MODESWITCH, ctrlSwitchWrapper)); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(ctrlSwitchWrapper); + } + } + } + }; + ColorPicker.prototype.changeShowBtnProps = function (prop) { + var ctrlBtnWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLSWITCH, this.container); + if (prop) { + if (ctrlBtnWrapper) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(ctrlBtnWrapper); + } + this.createCtrlBtn(); + if (this.isPicker() && !this.disabled) { + this.addCtrlSwitchEvent(); + } + } + else { + if (this.modeSwitcher) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CTRLBTN, ctrlBtnWrapper)); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(ctrlBtnWrapper); + } + } + }; + ColorPicker.prototype.changeValueProp = function (newProp) { + if (this.isPicker()) { + this.rgb = this.hexToRgb(newProp); + this.hsv = this.rgbToHsv.apply(this, this.rgb); + this.setHandlerPosition(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.hueSlider.element, '.e-slider-preview')); + this.createSlider(); + this.setHsvContainerBg(); + this.updateInput(newProp); + if (this.rgb.length === 4) { + this.updateOpacityInput(this.rgb[3] * 100); + } + } + else { + this.removeTileSelection(); + var ele = this.container.querySelector('span[aria-label="' + this.roundValue(newProp) + '"]'); + if (ele) { + this.addTileSelection(ele); + } + } + }; + ColorPicker.prototype.setInputEleProps = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INPUTWRAPPER, this.container)); + this.createInput(); + }; + ColorPicker.prototype.changeDisabledProp = function (newProp) { + if (this.isPicker()) { + this.hueSlider.enabled = !newProp; + this.opacitySlider.enabled = !newProp; + this.setInputEleProps(); + } + if (newProp) { + this.toggleDisabled(true); + this.unWireEvents(); + } + else { + this.toggleDisabled(false); + this.wireEvents(); + } + }; + ColorPicker.prototype.changeCssClassProps = function (newProp, oldProp) { + var wrapper = this.getWrapper(); + var popupWrapper = this.getPopupEle(); + if (oldProp) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([wrapper, popupWrapper], oldProp.split(' ')); + } + if (newProp) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper, popupWrapper], newProp.replace(/\s+/g, ' ').trim().split(' ')); + } + }; + ColorPicker.prototype.changeRtlProps = function (newProp) { + if (newProp) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.getWrapper()], 'e-rtl'); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.getWrapper()], 'e-rtl'); + } + }; + ColorPicker.prototype.changePaletteProps = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.container.children[0]); + this.container.style.width = ''; + this.createPalette(); + }; + ColorPicker.prototype.changeOpacityProps = function (newProp) { + var wrapper = this.getWrapper(); + if (newProp) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.container.parentElement], HIDEOPACITY); + this.createOpacitySlider(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-colorpicker-slider', this.container).appendChild(this.createElement('div', { className: 'e-opacity-slider' }))); + if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) { + this.appendOpacityValue(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-input-container', this.container)); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.container.parentElement], HIDEOPACITY); + this.opacitySlider.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.opacitySlider.element); + this.opacitySlider = null; + if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + OPACITY, this.container).parentElement); + } + } + }; + /** + * Called internally if any of the property value changed. + * + * @param {ColorPickerModel} newProp - Specifies new properties + * @param {ColorPickerModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + ColorPicker.prototype.onPropertyChanged = function (newProp, oldProp) { + var _this = this; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.value)) { + var value = this.roundValue(newProp.value); + if (value.length === 9) { + this.element.value = this.roundValue(value).slice(0, 7); + var preview = this.splitBtn && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SPLITPREVIEW, this.splitBtn.element); + if (preview) { + preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(newProp.value)); + } + } + else if (this.noColor && this.mode === 'Palette' && this.value === '') { + var preview = this.splitBtn && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SPLITPREVIEW, this.splitBtn.element); + preview.style.backgroundColor = ''; + } + else { + this.value = oldProp.value; + } + } + if (!this.inline && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.inline)) { + var otherCompModel = ['disabled', 'enableRtl']; + this.splitBtn.setProperties(Object(_ej2_splitbuttons__WEBPACK_IMPORTED_MODULE_1__["getModel"])(newProp, otherCompModel)); + if (!this.isPopupOpen()) { + this.changeCssClassProps(newProp.cssClass, oldProp.cssClass); + this.changeRtlProps(newProp.enableRtl); + return; + } + } + var _loop_1 = function (prop) { + switch (prop) { + case 'inline': + if (newProp.inline) { + this_1.getWrapper().appendChild(this_1.container); + this_1.splitBtn.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this_1.element.nextElementSibling); + if (!this_1.container.children.length) { + this_1.createWidget(); + } + } + else { + this_1.destroyOtherComp(); + this_1.unWireEvents(); + this_1.container.innerHTML = ''; + this_1.createSplitBtn(); + } + break; + case 'cssClass': { + this_1.changeCssClassProps(newProp.cssClass, oldProp.cssClass); + var props = newProp.cssClass.split(' ').concat(oldProp.cssClass.split(' ')); + props = props.reduce(function (a, b) { if (a.indexOf(b) < 0) { + a.push(b); + } return a; }, []); + var count_1 = 0; + props.forEach(function (cls) { + if (count_1 === 0 && + (cls === HIDEVALUE || cls === HIDEVALUESWITCH || cls === SHOWVALUE || cls === HIDEHEX || cls === HIDERGBA)) { + var inputWrap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INPUTWRAPPER, _this.container); + if (inputWrap) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INPUTWRAPPER, _this.container)); + } + _this.createInput(); + count_1++; + } + }); + break; + } + case 'enableRtl': + if (this_1.isPicker()) { + this_1.hueSlider.enableRtl = newProp.enableRtl; + if (this_1.enableOpacity) { + this_1.opacitySlider.enableRtl = newProp.enableRtl; + } + this_1.setInputEleProps(); + } + this_1.changeRtlProps(newProp.enableRtl); + break; + case 'disabled': + this_1.changeDisabledProp(newProp.disabled); + break; + case 'value': + if (this_1.value !== oldProp.value) { + this_1.changeValueProp(newProp.value); + } + break; + case 'showButtons': + this_1.changeShowBtnProps(newProp.showButtons); + break; + case 'mode': + if (newProp.mode === 'Picker') { + this_1.switchToPicker(); + } + else { + this_1.switchToPalette(); + } + break; + case 'modeSwitcher': + this_1.changeModeSwitcherProp(newProp.modeSwitcher); + break; + case 'columns': + case 'presetColors': + if (!this_1.isPicker()) { + this_1.changePaletteProps(); + } + break; + case 'noColor': + if (newProp.noColor) { + if (this_1.mode === 'Palette' && !this_1.modeSwitcher) { + this_1.setNoColor(); + } + } + else { + this_1.changePaletteProps(); + } + break; + case 'enableOpacity': + this_1.changeOpacityProps(newProp.enableOpacity); + break; + } + }; + var this_1 = this; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + _loop_1(prop); + } + }; + /** + * Sets the focus to Colorpicker + * its native method + * + * @public + * @returns {void} + */ + ColorPicker.prototype.focusIn = function () { + this.element.parentElement.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#008000ff') + ], ColorPicker.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ColorPicker.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ColorPicker.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Picker') + ], ColorPicker.prototype, "mode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ColorPicker.prototype, "modeSwitcher", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ColorPicker.prototype, "presetColors", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ColorPicker.prototype, "showButtons", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], ColorPicker.prototype, "columns", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ColorPicker.prototype, "inline", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ColorPicker.prototype, "noColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ColorPicker.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ColorPicker.prototype, "enableOpacity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ColorPicker.prototype, "createPopupOnClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "select", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "beforeTileRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "beforeModeSwitch", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "onModeSwitch", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ColorPicker.prototype, "created", void 0); + ColorPicker = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], ColorPicker); + return ColorPicker; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/index.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/index.js ***! + \************************************************************************/ +/*! exports provided: ColorPicker */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _color_picker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./color-picker */ "./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/color-picker.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _color_picker__WEBPACK_IMPORTED_MODULE_0__["ColorPicker"]; }); + +/** + * ColorPicker modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/common/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/common/index.js ***! + \******************************************************************/ +/*! exports provided: SignatureBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _signature_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./signature-base */ "./ej2-resources/22.1.37/scripts/ej2-inputs/common/signature-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SignatureBase", function() { return _signature_base__WEBPACK_IMPORTED_MODULE_0__["SignatureBase"]; }); + +/** + * Signature base modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/common/signature-base.js": +/*!***************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/common/signature-base.js ***! + \***************************************************************************/ +/*! exports provided: SignatureBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignatureBase", function() { return SignatureBase; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); + + +var SignatureBase = /** @__PURE__ @class */ (function (_super) { + __extends(SignatureBase, _super); + function SignatureBase() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /* minDistance(distance between the two point) was calaculated for smoothness.*/ + _this.minDistance = 5; + _this.previous = 0; + /* interval handles for the smoothness in the mouse move event.*/ + _this.interval = 30; + _this.timeout = null; + _this.isSignatureEmpty = true; + _this.backgroundLoaded = null; + _this.clearArray = []; + _this.isBlazor = false; + _this.isResponsive = false; + _this.signPointsColl = []; + _this.signRatioPointsColl = []; + return _this; + } + /** + * To Initialize the component rendering + * + * @private + * @param {HTMLCanvasElement} element - Specifies the canvas element. + * @param {BlazorDotnetObject} dotnetRef - Specifies for blazor client to server communication. + * @returns {void} + */ + SignatureBase.prototype.initialize = function (element, dotnetRef) { + this.element = element; + this.canvasContext = this.element.getContext('2d'); + this.canvasContext.canvas.tabIndex = -1; + if (dotnetRef) { + this.dotnetRef = dotnetRef; + this.isBlazor = true; + if (this.signatureValue) { + this.loadPersistedSignature(); + } + } + this.setHTMLProperties(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.signatureValue)) { + this.updateSnapCollection(true); + } + this.wireEvents(); + if (!this.isBlazor) { + this.trigger('created', null); + } + }; + SignatureBase.prototype.wireEvents = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.pointColl) && !this.isReadOnly && !this.disabled) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.canvasContext.canvas, 'keydown', this.keyboardHandler, this); + window.addEventListener('resize', this.resizeHandler.bind(this)); + } + else if (this.pointColl) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.canvasContext.canvas, 'mousemove touchmove', this.mouseMoveHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.canvasContext.canvas, 'mouseup touchend', this.mouseUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup', this.mouseUpHandler, this); + } + }; + SignatureBase.prototype.unwireEvents = function (type) { + if (type === 'mouseup' || type === 'touchend') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.canvasContext.canvas, 'mousemove touchmove', this.mouseMoveHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.canvasContext.canvas, 'mouseup touchend', this.mouseUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup', this.mouseUpHandler); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.canvasContext.canvas, 'keydown', this.keyboardHandler); + window.removeEventListener('resize', this.resizeHandler); + } + }; + SignatureBase.prototype.setHTMLProperties = function () { + if (this.element.height === 150 && this.element.width === 300) { + this.element.height = this.element.offsetHeight; + this.element.width = this.element.offsetWidth; + this.isResponsive = true; + } + else if (this.element.height !== this.element.offsetHeight - 1 || this.element.width !== this.element.offsetWidth - 1) { + this.element.height = this.element.offsetHeight; + this.element.width = this.element.offsetWidth; + } + this.canvasContext.scale(1, 1); + this.canvasContext.fillStyle = this.strokeColor; + if (this.backgroundImage) { + this.canvasContext.canvas.style.backgroundImage = 'url(' + this.backgroundImage + ')'; + this.canvasContext.canvas.style.backgroundRepeat = 'no-repeat'; + } + else if (this.backgroundColor) { + this.canvasContext.canvas.style.backgroundColor = this.backgroundColor; + } + }; + // eslint-disable-next-line + SignatureBase.prototype.mouseDownHandler = function (e) { + if (e.buttons === 1 || e.buttons === 2 || e.type === 'touchstart') { + if (e.type === 'touchstart') { + e.preventDefault(); + e.stopPropagation(); + } + this.beginStroke(e); + this.wireEvents(); + } + }; + SignatureBase.prototype.mouseMoveHandler = function (e) { + if (e.buttons === 1 || e.buttons === 2 || e.type === 'touchmove') { + if (e.type === 'touchmove') { + e.preventDefault(); + e.stopPropagation(); + } + if (this.interval) { + this.updateStrokeWithThrottle(e); + } + else { + this.updateStroke(e); + } + } + }; + SignatureBase.prototype.mouseUpHandler = function (e) { + var args = { actionName: 'strokeUpdate' }; + if (e.type === 'touchstart') { + e.preventDefault(); + e.stopPropagation(); + } + this.endDraw(); + this.updateSnapCollection(); + this.unwireEvents(e.type); + if (!this.isBlazor) { + this.trigger('change', args); + } + else { + this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'mouseUp'); + } + this.signatureValue = this.snapColl[this.incStep]; + for (var i = 0; i < this.signPointsColl.length; i++) { + this.signRatioPointsColl.push({ x: (this.signPointsColl[i].x / this.canvasContext.canvas.width), + y: (this.signPointsColl[i].y / this.canvasContext.canvas.height) }); + } + this.signPointsColl = []; + }; + SignatureBase.prototype.keyboardHandler = function (e) { + var _this = this; + var args = { fileName: 'Signature', type: 'Png', cancel: false }; + switch (e.key) { + case 'Delete': + this.clear(); + break; + case (e.ctrlKey && 's'): + if (!this.isBlazor) { + this.trigger('beforeSave', args, function (observableSaveArgs) { + if (!args.cancel) { + _this.save(observableSaveArgs.type, observableSaveArgs.fileName); + } + }); + } + else { + this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'beforeSave'); + } + e.preventDefault(); + e.stopImmediatePropagation(); + break; + case (e.ctrlKey && 'z'): + this.undo(); + break; + case (e.ctrlKey && 'y'): + this.redo(); + break; + } + }; + SignatureBase.prototype.resizeHandler = function () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + if (this.isResponsive) { + this.canvasContext.canvas.width = this.element.offsetWidth; + this.canvasContext.canvas.height = this.element.offsetHeight; + this.canvasContext.scale(1, 1); + var pointSize = (this.minStrokeWidth + this.maxStrokeWidth) / 2; + for (var i = 0; i < this.signRatioPointsColl.length; i++) { + this.arcDraw((this.signRatioPointsColl[i].x * this.canvasContext.canvas.width), (this.signRatioPointsColl[i].y * this.canvasContext.canvas.height), pointSize); + } + this.signPointsColl = []; + this.canvasContext.closePath(); + this.canvasContext.fill(); + } + else { + var restoreImg_1 = new Image(); + restoreImg_1.src = this.snapColl[this.incStep]; + restoreImg_1.onload = function () { + proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height); + proxy.canvasContext.drawImage(restoreImg_1, 0, 0, proxy.element.width, proxy.element.height); + }; + } + }; + SignatureBase.prototype.beginStroke = function (e) { + this.refresh(); + this.updateStroke(e); + }; + SignatureBase.prototype.updateStroke = function (e) { + var point = this.createPoint(e); + this.addPoint(point); + }; + SignatureBase.prototype.updateStrokeWithThrottle = function (args) { + var now = Date.now(); + var remaining = this.interval - (now - this.previous); + this.storedArgs = args; + if (remaining <= 0 || remaining > this.interval) { + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.previous = now; + this.updateStroke(this.storedArgs); + if (!this.timeout) { + this.storedArgs = null; + } + } + else if (!this.timeout) { + this.timeout = window.setTimeout(this.delay.bind(this), remaining); + } + }; + SignatureBase.prototype.delay = function () { + this.previous = Date.now(); + this.timeout = null; + this.updateStroke(this.storedArgs); + if (!this.timeout) { + this.storedArgs = null; + } + }; + SignatureBase.prototype.createPoint = function (e) { + var rect = this.canvasContext.canvas.getBoundingClientRect(); + if (e.type === 'mousedown' || e.type === 'mousemove') { + return this.point(e.clientX - rect.left, e.clientY - rect.top, new Date().getTime()); + } + else { + return this.point(e.touches[0].clientX - rect.left, e.touches[0].clientY - rect.top, new Date().getTime()); + } + }; + /* Returns the current point corrdinates(x, y) and time.*/ + SignatureBase.prototype.point = function (pointX, pointY, time) { + this.pointX = pointX; + this.pointY = pointY; + this.time = time || new Date().getTime(); + return { x: this.pointX, y: this.pointY, time: this.time }; + }; + SignatureBase.prototype.addPoint = function (point) { + var points = this.pointColl; + var controlPoint1; + var controlPoint2; + var lastPoint = points.length > 0 && points[points.length - 1]; + var isLastPointTooClose = lastPoint ? this.distanceTo(lastPoint) <= this.minDistance : false; + if (!lastPoint || !(lastPoint && isLastPointTooClose)) { + points.push(point); + if (points.length > 2) { + if (points.length === 3) { + points.unshift(points[0]); + } + controlPoint1 = (this.calculateCurveControlPoints(points[0], points[1], points[2])).controlPoint2; + controlPoint2 = (this.calculateCurveControlPoints(points[1], points[2], points[3])).controlPoint1; + this.startPoint = points[1]; + this.controlPoint1 = controlPoint1; + this.controlPoint2 = controlPoint2; + this.endPoint = points[2]; + this.startDraw(); + points.shift(); + } + } + }; + SignatureBase.prototype.startDraw = function () { + var velocity; + velocity = this.pointVelocityCalc(this.startPoint); + velocity = this.velocity * velocity + (1 - this.velocity) * this.lastVelocity; + var newWidth = Math.max(this.maxStrokeWidth / (velocity + 1), this.minStrokeWidth); + this.curveDraw(this.lastWidth, newWidth); + this.lastVelocity = velocity; + this.lastWidth = newWidth; + }; + SignatureBase.prototype.endDraw = function () { + var canDrawCurve = this.pointColl.length > 2; + var point = this.pointColl[0]; + if (!canDrawCurve && point) { + this.strokeDraw(point); + } + }; + /* Calculate the Bezier (x, y) coordinate of the curve. */ + SignatureBase.prototype.curveDraw = function (startWidth, endWidth) { + var context = this.canvasContext; + var width; + var i; + var t1; + var t2; + var t3; + var u1; + var u2; + var u3; + var x; + var y; + var widthValue = endWidth - startWidth; + var bezierLength = this.bezierLengthCalc(); + var drawSteps = Math.ceil(bezierLength) * 2; + context.beginPath(); + for (i = 0; i < drawSteps; i++) { + t1 = i / drawSteps; + t2 = t1 * t1; + t3 = t2 * t1; + u1 = 1 - t1; + u2 = u1 * u1; + u3 = u2 * u1; + x = u3 * this.startPoint.x; + x += 3 * u2 * t1 * this.controlPoint1.x; + x += 3 * u1 * t2 * this.controlPoint2.x; + x += t3 * this.endPoint.x; + y = u3 * this.startPoint.y; + y += 3 * u2 * t1 * this.controlPoint1.y; + y += 3 * u1 * t2 * this.controlPoint2.y; + y += t3 * this.endPoint.y; + width = Math.min(startWidth + t3 * widthValue, this.maxStrokeWidth); + this.arcDraw(x, y, width); + } + context.closePath(); + context.fill(); + this.isSignatureEmpty = false; + }; + SignatureBase.prototype.strokeDraw = function (point) { + var context = this.canvasContext; + var pointSize = (this.minStrokeWidth + this.maxStrokeWidth) / 2; + context.beginPath(); + this.arcDraw(point.x, point.y, pointSize); + context.closePath(); + context.fill(); + this.isSignatureEmpty = false; + }; + SignatureBase.prototype.arcDraw = function (x, y, size) { + this.signPointsColl.push({ x: x, y: y }); + var context = this.canvasContext; + context.moveTo(x, y); + context.arc(x, y, size, 0, 2 * Math.PI, false); + }; + /* Utility functions for Bezier algorithm*/ + SignatureBase.prototype.calculateCurveControlPoints = function (p1, p2, p3) { + var dx1 = p1.x - p2.x; + var dy1 = p1.y - p2.y; + var dx2 = p2.x - p3.x; + var dy2 = p2.y - p3.y; + var m1 = { x: (p1.x + p2.x) / 2.0, y: (p1.y + p2.y) / 2.0 }; + var m2 = { x: (p2.x + p3.x) / 2.0, y: (p2.y + p3.y) / 2.0 }; + var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1); + var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2); + var dxm = (m1.x - m2.x); + var dym = (m1.y - m2.y); + var k = l2 / (l1 + l2); + var cm = { x: m2.x + dxm * k, y: m2.y + dym * k }; + var tx = p2.x - cm.x; + var ty = p2.y - cm.y; + return { + controlPoint1: this.point(m1.x + tx, m1.y + ty, 0), + controlPoint2: this.point(m2.x + tx, m2.y + ty, 0) + }; + }; + /* Returns approximated bezier length of the curuve.*/ + SignatureBase.prototype.bezierLengthCalc = function () { + var steps = 10; + var length = 0; + var i; + var t; + var pointx1; + var pointy1; + var pointx2; + var pointy2; + var pointx3; + var pointy3; + for (i = 0; i <= steps; i++) { + t = i / steps; + pointx1 = this.bezierPointCalc(t, this.startPoint.x, this.controlPoint1.x, this.controlPoint2.x, this.endPoint.x); + pointy1 = this.bezierPointCalc(t, this.startPoint.y, this.controlPoint1.y, this.controlPoint2.y, this.endPoint.y); + if (i > 0) { + pointx3 = pointx1 - pointx2; + pointy3 = pointy1 - pointy2; + length += Math.sqrt(pointx3 * pointx3 + pointy3 * pointy3); + } + pointx2 = pointx1; + pointy2 = pointy1; + } + return length; + }; + /* Calculate parametric value of x or y given t and the + four point(startpoint, controlpoint1, controlpoint2, endpoint) coordinates of a cubic bezier curve.*/ + SignatureBase.prototype.bezierPointCalc = function (t, startpoint, cp1, cp2, endpoint) { + return startpoint * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * cp1 * (1.0 - t) * (1.0 - t) * t + 3.0 * + cp2 * (1.0 - t) * t * t + endpoint * t * t * t; + }; + /* Velocity between the current point and last point.*/ + SignatureBase.prototype.pointVelocityCalc = function (startPoint) { + return (this.time !== startPoint.time) ? this.distanceTo(startPoint) / (this.time - startPoint.time) : 0; + }; + /* Distance between the current point and last point.*/ + SignatureBase.prototype.distanceTo = function (start) { + return Math.sqrt(Math.pow(this.pointX - start.x, 2) + Math.pow(this.pointY - start.y, 2)); + }; + SignatureBase.prototype.isRead = function (isRead) { + if (isRead) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler); + } + else if (!this.disabled) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler, this); + } + }; + SignatureBase.prototype.enableOrDisable = function (isDisable) { + this.disabled = isDisable; + if (isDisable) { + this.canvasContext.canvas.style.filter = 'opacity(0.5)'; + this.isRead(true); + } + else { + this.canvasContext.canvas.style.filter = ''; + this.isRead(false); + } + }; + SignatureBase.prototype.updateSnapCollection = function (isClear) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.incStep)) { + this.incStep = -1; + this.incStep++; + this.snapColl = []; + this.clearArray = []; + } + else { + this.incStep++; + } + if (this.incStep < this.snapColl.length) { + this.snapColl.length = this.incStep; + } + if (this.incStep > 0) { + var canvasNew = this.createElement('canvas', { className: 'e-' + this.getModuleName() + '-wrapper' }); + var canvasContextNew = canvasNew.getContext('2d'); + canvasNew.width = this.canvasContext.canvas.width; + canvasNew.height = this.canvasContext.canvas.height; + canvasContextNew.drawImage(this.canvasContext.canvas, 0, 0, canvasNew.width, canvasNew.height); + this.snapColl.push(canvasNew.toDataURL()); + } + else { + this.snapColl.push(this.canvasContext.canvas.toDataURL()); + } + if (isClear) { + this.clearArray.push(this.incStep); + } + }; + SignatureBase.prototype.setBackgroundImage = function (imageSrc) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + var imageObj = new Image(); + imageObj.crossOrigin = 'anonymous'; + imageObj.src = imageSrc; + imageObj.onload = function () { + proxy.canvasContext.globalCompositeOperation = 'source-over'; + proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height); + proxy.updateSnapCollection(); + proxy.saveBackground(true); + }; + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + }; + SignatureBase.prototype.setBackgroundColor = function (color) { + var canvasEle = this.canvasContext; + canvasEle.strokeStyle = color; + var i; + var j; + for (i = 1; i <= canvasEle.canvas.width; i++) { + for (j = 1; j <= canvasEle.canvas.height; j++) { + canvasEle.strokeRect(0, 0, i, j); + } + } + this.updateSnapCollection(); + }; + SignatureBase.prototype.loadPersistedSignature = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.signatureValue)) { + return; + } + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + var lastImage = new Image(); + lastImage.src = this.signatureValue; + lastImage.onload = function () { + proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height); + proxy.canvasContext.drawImage(lastImage, 0, 0); + proxy.updateSnapCollection(); + }; + this.isSignatureEmpty = false; + }; + /** + * To get the signature as Blob. + * + * @param {string} url - specify the url/base 64 string to get blob of the signature. + * @returns {Blob}. + */ + SignatureBase.prototype.getBlob = function (url) { + var arr = url.split(','); + var type = arr[0].match(/:(.*?);/)[1]; + var bstr = atob(arr[1]); + var n = bstr.length; + var u8arr = new Uint8Array(n); + while (n--) { + u8arr[n] = bstr.charCodeAt(n); + } + return new Blob([u8arr], { type: type }); + }; + SignatureBase.prototype.download = function (blob, fileName) { + var blobUrl = URL.createObjectURL(blob); + var a = document.createElement('a'); + a.href = blobUrl; + a.target = '_parent'; + a.download = fileName; + (document.body || document.documentElement).appendChild(a); + a.click(); + a.parentNode.removeChild(a); + }; + /** + * To refresh the signature. + * + * @private + * @returns {void}. + */ + SignatureBase.prototype.refresh = function () { + this.pointColl = []; + this.lastVelocity = 0; + this.lastWidth = (this.minStrokeWidth + this.maxStrokeWidth) / 2; + }; + /** + * Erases all the signature strokes signed by user. + * + * @returns {void}. + */ + SignatureBase.prototype.clear = function () { + var args = { actionName: 'clear' }; + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + this.refresh(); + this.signRatioPointsColl = []; + this.updateSnapCollection(true); + this.isSignatureEmpty = true; + if (!this.isBlazor) { + this.trigger('change', args); + } + else { + this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Clear'); + } + }; + /** + * Undo the last user action. + * + * @returns {void}. + */ + SignatureBase.prototype.undo = function () { + var args = { actionName: 'undo' }; + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + if (this.incStep > 0) { + this.incStep--; + var undoImg_1 = new Image(); + undoImg_1.src = this.snapColl[this.incStep]; + undoImg_1.onload = function () { + proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height); + proxy.canvasContext.drawImage(undoImg_1, 0, 0, proxy.element.width, proxy.element.height); + }; + } + this.isClear(); + if (!this.isBlazor) { + this.trigger('change', args); + } + else { + this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Undo'); + } + }; + /** + * Redo the last user action. + * + * @returns {void}. + */ + SignatureBase.prototype.redo = function () { + var args = { actionName: 'redo' }; + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + if (this.incStep < this.snapColl.length - 1) { + this.incStep++; + var redoImg_1 = new Image(); + redoImg_1.src = this.snapColl[this.incStep]; + redoImg_1.onload = function () { + proxy.canvasContext.clearRect(0, 0, proxy.element.width, proxy.element.height); + proxy.canvasContext.drawImage(redoImg_1, 0, 0, proxy.element.width, proxy.element.height); + }; + } + this.isClear(); + if (!this.isBlazor) { + this.trigger('change', args); + } + else { + this.dotnetRef.invokeMethodAsync('TriggerEventAsync', 'Redo'); + } + }; + SignatureBase.prototype.isClear = function () { + if (this.clearArray) { + var empty = false; + for (var i = 0; i < this.clearArray.length; i++) { + if (this.clearArray[i] === this.incStep) { + this.isSignatureEmpty = true; + empty = true; + } + } + if (!empty) { + this.isSignatureEmpty = false; + } + } + }; + /** + * To check whether the signature is empty or not. + * + * @returns {boolean}. + */ + SignatureBase.prototype.isEmpty = function () { + return this.isSignatureEmpty; + }; + /** + * To check whether the undo collection is empty or not. + * + * @returns {boolean}. + */ + SignatureBase.prototype.canUndo = function () { + return this.incStep > 0; + }; + /** + * To check whether the redo collection is empty or not. + * + * @returns {boolean}. + */ + SignatureBase.prototype.canRedo = function () { + return this.incStep < this.snapColl.length - 1; + }; + /** + * To draw the signature based on the given text, with the font family and font size. + * + * @param {string} text - specify text to be drawn as signature. + * @param {string} fontFamily - specify font family of a signature. + * @param {number} fontSize - specify font size of a signature. + * + * @returns {void}. + */ + SignatureBase.prototype.draw = function (text, fontFamily, fontSize) { + var args = { actionName: 'draw-text' }; + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + fontFamily = fontFamily || 'Arial'; + fontSize = fontSize || 30; + this.canvasContext.font = fontSize + 'px ' + fontFamily; + this.canvasContext.textAlign = 'center'; + this.canvasContext.textBaseline = 'middle'; + this.canvasContext.fillText(text, this.element.width / 2, this.element.height / 2); + this.updateSnapCollection(); + this.isSignatureEmpty = false; + this.trigger('change', args); + }; + /** + * To load the signature with the given base 64 string, height and width. + * + * @param {string} signature - specify the url/base 64 string to be drawn as signature. + * @param {number} width - specify the width of the loaded signature image. + * @param {number} height - specify the height of the loaded signature image. + * @returns {void}. + */ + SignatureBase.prototype.load = function (signature, width, height) { + height = height || this.element.height; + width = width || this.element.width; + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + var bitmapImage = new Image(); + bitmapImage.src = signature; + if (signature.slice(0, 4) !== 'data') { + bitmapImage.crossOrigin = 'anonymous'; + } + bitmapImage.onload = function () { + Promise.all([ + createImageBitmap(bitmapImage, 0, 0, width, height) + ]).then(function (results) { + var tempCanvas = document.createElement('canvas'); + tempCanvas.width = width; + tempCanvas.height = height; + tempCanvas.getContext('2d').drawImage(results[0], 0, 0); + if (signature.slice(0, 4) !== 'data') { + proxy.canvasContext.globalCompositeOperation = 'source-over'; + } + proxy.canvasContext.drawImage(tempCanvas, 0, 0, width, height, 0, 0, proxy.element.width, proxy.element.height); + proxy.updateSnapCollection(); + }); + }; + this.isSignatureEmpty = false; + }; + SignatureBase.prototype.saveBackground = function (savebg) { + var imageSrc; + if (savebg && this.backgroundImage) { + imageSrc = this.snapColl[this.incStep - 1]; + } + else { + imageSrc = this.snapColl[this.incStep]; + } + if (!savebg) { + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + if (this.backgroundImage) { + this.setBackgroundImage(this.backgroundImage); + } + else if (this.backgroundColor) { + this.setBackgroundColor(this.backgroundColor); + savebg = true; + } + } + if (savebg) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy_1 = this; + var imageObj_1 = new Image(); + imageObj_1.crossOrigin = 'anonymous'; + imageObj_1.src = imageSrc; + imageObj_1.onload = function () { + proxy_1.backgroundLoaded = true; + proxy_1.canvasContext.globalCompositeOperation = 'source-over'; + proxy_1.canvasContext.drawImage(imageObj_1, 0, 0, proxy_1.element.width, proxy_1.element.height); + proxy_1.save(proxy_1.fileType, proxy_1.fileName); + }; + } + }; + /** + * To save the signature with the given file type and file name. + * + * @param {SignatureFileType} type - specify type of the file to be saved a signature. + * @param {string} fileName - specify name of the file to be saved a signature. + * + * @returns {void}. + */ + SignatureBase.prototype.save = function (type, fileName) { + if (this.saveWithBackground && this.backgroundLoaded == null && (this.backgroundImage || this.backgroundColor)) { + this.backgroundLoaded = false; + this.fileType = type; + this.fileName = fileName; + this.saveBackground(false); + } + else if (type === 'Svg') { + fileName = fileName || 'Signature'; + this.toSVG(fileName); + } + else if (type === 'Jpeg') { + fileName = fileName || 'Signature'; + if (!this.saveWithBackground || this.saveWithBackground && !(this.backgroundImage || this.backgroundColor)) { + this.toJPEG(fileName); + } + else { + var dataURL = this.canvasContext.canvas.toDataURL('image/jpeg'); + this.download(this.getBlob(dataURL), fileName + '.' + 'jpeg'); + } + } + else { + fileName = fileName || 'Signature'; + var dataURL = this.canvasContext.canvas.toDataURL('image/png'); + this.download(this.getBlob(dataURL), fileName + '.' + 'png'); + } + if (this.saveWithBackground && this.backgroundLoaded) { + this.resetSnap(); + } + }; + SignatureBase.prototype.resetSnap = function () { + this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height); + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + var restoreObj = new Image(); + restoreObj.src = this.snapColl[this.incStep - 1]; + restoreObj.onload = function () { + proxy.canvasContext.drawImage(restoreObj, 0, 0, proxy.element.width, proxy.element.height); + proxy.updateSnapCollection(); + }; + this.backgroundLoaded = null; + this.snapColl.pop(); + this.incStep--; + this.snapColl.pop(); + this.incStep--; + }; + SignatureBase.prototype.toJPEG = function (fileName) { + var _this = this; + var imageSrc = this.snapColl[this.incStep]; + this.setBackgroundColor('#ffffff'); + // eslint-disable-next-line @typescript-eslint/no-this-alias + var proxy = this; + var imageObj = new Image(); + imageObj.crossOrigin = 'anonymous'; + imageObj.src = imageSrc; + imageObj.onload = function () { + proxy.canvasContext.globalCompositeOperation = 'source-over'; + proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height); + var dataURL = proxy.canvasContext.canvas.toDataURL('image/jpeg'); + proxy.download(proxy.getBlob(dataURL), fileName + '.' + 'jpeg'); + proxy.canvasContext.clearRect(0, 0, proxy.canvasContext.canvas.width, proxy.canvasContext.canvas.height); + _this.resizeHandler(); + }; + this.snapColl.pop(); + this.incStep--; + }; + SignatureBase.prototype.toSVG = function (fileName) { + var dataUrl = this.canvasContext.canvas.toDataURL(); + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svg.setAttribute('width', this.canvasContext.canvas.width.toString()); + svg.setAttribute('height', this.canvasContext.canvas.height.toString()); + var XLinkNS = 'http://www.w3.org/1999/xlink'; + var img = document.createElementNS('http://www.w3.org/2000/svg', 'image'); + img.setAttributeNS(null, 'height', this.canvasContext.canvas.height.toString()); + img.setAttributeNS(null, 'width', this.canvasContext.canvas.width.toString()); + img.setAttributeNS(XLinkNS, 'xlink:href', dataUrl); + svg.appendChild(img); + var prefix = 'data:image/svg+xml;base64,'; + var header = ''; + var footer = ''; + var body = svg.innerHTML; + var data = header + body + footer; + var svgDataUrl = prefix + btoa(data); + if (fileName == null) { + return svgDataUrl; + } + else { + this.download(this.getBlob(svgDataUrl), fileName + '.' + 'svg'); + return null; + } + }; + /** + * To save the signature as Blob. + * + * @returns {Blob}. + */ + SignatureBase.prototype.saveAsBlob = function () { + return this.getBlob(this.canvasContext.canvas.toDataURL('image/png')); + }; + /** + * To get the signature as Base 64. + * + * @private + * @param {SignatureFileType} type - Specifies the type of the image format. + * @returns {string}. + */ + SignatureBase.prototype.getSignature = function (type) { + if (type === 'Jpeg') { + var imgData = this.canvasContext.getImageData(0, 0, this.element.width, this.element.height); + var data = imgData.data; + for (var i = 0; i < data.length; i += 4) { + if (data[i + 3] < 255) { + data[i] = 255 - data[i]; + data[i + 1] = 255 - data[i + 1]; + data[i + 2] = 255 - data[i + 2]; + data[i + 3] = 255 - data[i + 3]; + } + } + this.canvasContext.putImageData(imgData, 0, 0); + var dataURL = this.canvasContext.canvas.toDataURL('image/jpeg'); + this.resizeHandler(); + return dataURL; + } + else if (type === 'Svg') { + return this.toSVG(null); + } + else { + return this.canvasContext.canvas.toDataURL('image/png'); + } + }; + /** + * Get component name. + * + * @returns {string} - Module Name + * @private + */ + SignatureBase.prototype.getModuleName = function () { + return 'signature'; + }; + /** + * To get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + SignatureBase.prototype.getPersistData = function () { + this.signatureValue = this.snapColl[this.incStep]; + return this.addOnPersist(['signatureValue']); + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also it maintains the initial input element from the DOM. + * + * @method destroy + * @returns {void} + */ + SignatureBase.prototype.destroy = function () { + if (this.getModuleName() !== 'image-editor') { + this.unwireEvents(null); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], 'e-' + this.getModuleName()); + this.element.removeAttribute('tabindex'); + this.pointColl = null; + } + _super.prototype.destroy.call(this); + }; + /** + * Modified onPropertyChanged method for both blazor and EJ2 signature component. + * + * @private + * @param {string} key - Specifies the property, which changed. + * @param {string} value - Specifies the property value changed. + * @returns {void} + */ + SignatureBase.prototype.propertyChanged = function (key, value) { + var canvasNew = this.canvasContext; + switch (key) { + case 'backgroundColor': + canvasNew.canvas.style.backgroundColor = value; + this.backgroundColor = value; + break; + case 'backgroundImage': + canvasNew.canvas.style.backgroundImage = 'url(' + value + ')'; + this.backgroundImage = value; + break; + case 'strokeColor': + canvasNew.fillStyle = value; + this.strokeColor = value; + break; + case 'saveWithBackground': + this.saveWithBackground = value; + break; + case 'maxStrokeWidth': + this.maxStrokeWidth = value; + break; + case 'minStrokeWidth': + this.minStrokeWidth = value; + break; + case 'velocity': + this.velocity = value; + break; + case 'isReadOnly': + this.isRead(value); + break; + case 'disabled': + this.enableOrDisable(value); + break; + } + }; + return SignatureBase; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/form-validator.js": +/*!***********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/form-validator.js ***! + \***********************************************************************************/ +/*! exports provided: regex, ErrorOption, FormValidator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regex", function() { return regex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorOption", function() { return ErrorOption; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormValidator", function() { return FormValidator; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +/** + * global declarations + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +var regex = { + /* eslint-disable no-useless-escape */ + EMAIL: new RegExp('^[A-Za-z0-9._%+-]{1,}@[A-Za-z0-9._%+-]{1,}([.]{1}[a-zA-Z0-9]{2,}' + + '|[.]{1}[a-zA-Z0-9]{2,4}[.]{1}[a-zA-Z0-9]{2,4})$'), + /* eslint-disable-next-line security/detect-unsafe-regex */ + URL: /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/m, + DATE_ISO: new RegExp('^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$'), + DIGITS: new RegExp('^[0-9]*$'), + PHONE: new RegExp('^[+]?[0-9]{9,13}$'), + CREDITCARD: new RegExp('^\\d{13,16}$') + /* eslint-enable no-useless-escape */ +}; +/** + * ErrorOption values + * + * @private + */ +var ErrorOption; +(function (ErrorOption) { + /** + * Defines the error message. + */ + ErrorOption[ErrorOption["Message"] = 0] = "Message"; + /** + * Defines the error element type. + */ + ErrorOption[ErrorOption["Label"] = 1] = "Label"; +})(ErrorOption || (ErrorOption = {})); +/** + * FormValidator class enables you to validate the form fields based on your defined rules + * ```html + *
+ * + * + *
+ * + * ``` + */ +var FormValidator = /** @__PURE__ @class */ (function (_super) { + __extends(FormValidator, _super); + /** + * Initializes the FormValidator. + * + * @param {string | HTMLFormElement} element - Specifies the element to render as component. + * @param {FormValidatorModel} options - Specifies the FormValidator model. + * @private + */ + function FormValidator(element, options) { + var _this = _super.call(this, options, element) || this; + _this.validated = []; + _this.errorRules = []; + _this.allowSubmit = false; + _this.required = 'required'; + _this.infoElement = null; + _this.inputElement = null; + _this.selectQuery = 'input:not([type=reset]):not([type=button]), select, textarea'; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + _this.localyMessage = {}; + /** + * Specifies the default messages for validation rules. + * + * @default { List of validation message } + */ + _this.defaultMessages = { + required: 'This field is required.', + email: 'Please enter a valid email address.', + url: 'Please enter a valid URL.', + date: 'Please enter a valid date.', + dateIso: 'Please enter a valid date ( ISO ).', + creditcard: 'Please enter valid card number', + number: 'Please enter a valid number.', + digits: 'Please enter only digits.', + maxLength: 'Please enter no more than {0} characters.', + minLength: 'Please enter at least {0} characters.', + rangeLength: 'Please enter a value between {0} and {1} characters long.', + range: 'Please enter a value between {0} and {1}.', + max: 'Please enter a value less than or equal to {0}.', + min: 'Please enter a value greater than or equal to {0}.', + regex: 'Please enter a correct value.', + tel: 'Please enter a valid phone number.', + pattern: 'Please enter a correct pattern value.', + equalTo: 'Please enter the valid match text' + }; + if (typeof _this.rules === 'undefined') { + _this.rules = {}; + } + _this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('formValidator', _this.defaultMessages, _this.locale); + if (_this.locale) { + _this.localeFunc(); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["onIntlChange"].on('notifyExternalChange', _this.afterLocalization, _this); + element = typeof element === 'string' ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(element, document) : element; + // Set novalidate to prevent default HTML5 form validation + if (_this.element != null) { + _this.element.setAttribute('novalidate', ''); + _this.inputElements = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(_this.selectQuery, _this.element); + _this.createHTML5Rules(); + _this.wireEvents(); + } + else { + return undefined; + } + return _this; + } + FormValidator_1 = FormValidator; + /* eslint-enable @typescript-eslint/no-explicit-any */ + /** + * Add validation rules to the corresponding input element based on `name` attribute. + * + * @param {string} name `name` of form field. + * @param {Object} rules Validation rules for the corresponding element. + * @returns {void} + */ + FormValidator.prototype.addRules = function (name, rules) { + if (name) { + // eslint-disable-next-line no-prototype-builtins + if (this.rules.hasOwnProperty(name)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(this.rules["" + name], rules, {}); + } + else { + this.rules["" + name] = rules; + } + } + }; + /** + * Remove validation to the corresponding field based on name attribute. + * When no parameter is passed, remove all the validations in the form. + * + * @param {string} name Input name attribute value. + * @param {string[]} rules List of validation rules need to be remove from the corresponding element. + * @returns {void} + */ + FormValidator.prototype.removeRules = function (name, rules) { + if (!name && !rules) { + this.rules = {}; + } + else if (this.rules["" + name] && !rules) { + delete this.rules["" + name]; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.rules["" + name] && rules)) { + for (var i = 0; i < rules.length; i++) { + delete this.rules["" + name][rules[parseInt(i.toString())]]; + } + } + else { + return; + } + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Validate the current form values using defined rules. + * Returns `true` when the form is valid otherwise `false` + * + * @param {string} selected - Optional parameter to validate specified element. + * @returns {boolean} + */ + FormValidator.prototype.validate = function (selected) { + var rules = Object.keys(this.rules); + if (selected && rules.length) { + this.validateRules(selected); + //filter the selected element it don't have any valid input element + return rules.indexOf(selected) !== -1 && this.errorRules.filter(function (data) { + return data.name === selected; + }).length === 0; + } + else { + this.errorRules = []; + for (var _i = 0, rules_1 = rules; _i < rules_1.length; _i++) { + var name_1 = rules_1[_i]; + this.validateRules(name_1); + } + return this.errorRules.length === 0; + } + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Reset the value of all the fields in form. + * + * @returns {void} + */ + FormValidator.prototype.reset = function () { + this.element.reset(); + this.clearForm(); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Get input element by name. + * + * @param {string} name - Input element name attribute value. + * @returns {HTMLInputElement} + */ + FormValidator.prototype.getInputElement = function (name) { + this.inputElement = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[name="' + name + '"]', this.element)); + return this.inputElement; + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Destroy the form validator object and error elements. + * + * @returns {void} + */ + FormValidator.prototype.destroy = function () { + this.reset(); + this.unwireEvents(); + this.rules = {}; + var elements = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + this.errorClass + ', .' + this.validClass, this.element); + for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { + var element = elements_1[_i]; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(element); + } + _super.prototype.destroy.call(this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["onIntlChange"].off('notifyExternalChange', this.afterLocalization); + }; + /** + * @param {FormValidatorModel} newProp - Returns the dynamic property value of the component. + * @param {FormValidatorModel} oldProp - Returns the previous property value of the component. + * @returns {void} + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + FormValidator.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'locale': + this.localeFunc(); + break; + } + } + }; + /** + * @private + * @returns {void} + */ + FormValidator.prototype.localeFunc = function () { + for (var _i = 0, _a = Object.keys(this.defaultMessages); _i < _a.length; _i++) { + var key = _a[_i]; + this.l10n.setLocale(this.locale); + var value = this.l10n.getConstant(key); + this.localyMessage["" + key] = value; + } + }; + /** + * @private + * @returns {string} - Returns the component name. + */ + FormValidator.prototype.getModuleName = function () { + return 'formValidator'; + }; + /** + * @param {any} args - Specifies the culture name. + * @private + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types + FormValidator.prototype.afterLocalization = function (args) { + this.locale = args.locale; + this.localeFunc(); + }; + /** + * Allows you to refresh the form validator base events to the elements inside the form. + * + * @returns {void} + */ + FormValidator.prototype.refresh = function () { + this.unwireEvents(); + this.inputElements = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.selectQuery, this.element); + this.wireEvents(); + }; + FormValidator.prototype.clearForm = function () { + this.errorRules = []; + this.validated = []; + var elements = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.selectQuery, this.element); + for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) { + var element = elements_2[_i]; + var input = element; + input.removeAttribute('aria-invalid'); + input.classList.remove(this.errorClass); + if (input.name.length > 0) { + this.getInputElement(input.name); + this.getErrorElement(input.name); + this.hideMessage(input.name); + } + input.classList.remove(this.validClass); + } + }; + FormValidator.prototype.createHTML5Rules = function () { + var defRules = ['required', 'validateHidden', 'regex', 'rangeLength', 'maxLength', 'minLength', 'dateIso', 'digits', + 'pattern', 'data-val-required', 'type', 'data-validation', 'min', 'max', 'range', 'equalTo', 'data-val-minlength-min', + 'data-val-equalto-other', 'data-val-maxlength-max', 'data-val-range-min', 'data-val-regex-pattern', 'data-val-length-max', + 'data-val-creditcard', 'data-val-phone']; + var acceptedTypes = ['hidden', 'email', 'url', 'date', 'number', 'tel']; + for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) { + var input = _a[_i]; + // Default attribute rules + var allRule = {}; + for (var _b = 0, defRules_1 = defRules; _b < defRules_1.length; _b++) { + var rule = defRules_1[_b]; + if (input.getAttribute(rule) !== null) { + switch (rule) { + case 'required': + this.defRule(input, allRule, rule, input.required); + break; + case 'data-validation': + rule = input.getAttribute(rule); + this.defRule(input, allRule, rule, true); + break; + case 'type': + if (acceptedTypes.indexOf(input.type) !== -1) { + this.defRule(input, allRule, input.type, true); + } + break; + case 'rangeLength': + case 'range': + this.defRule(input, allRule, rule, JSON.parse(input.getAttribute(rule))); + break; + case 'equalTo': + { + var id = input.getAttribute(rule); + this.defRule(input, allRule, rule, id); + } + break; + default: + if (input.getAttribute('data-val') === 'true') { + this.annotationRule(input, allRule, rule, input.getAttribute(rule)); + } + else { + this.defRule(input, allRule, rule, input.getAttribute(rule)); + } + } + } + } + //adding pattern type validation + if (Object.keys(allRule).length !== 0) { + this.addRules(input.name, allRule); + } + } + }; + FormValidator.prototype.annotationRule = function (input, ruleCon, ruleName, value) { + var annotationRule = ruleName.split('-'); + var rulesList = ['required', 'creditcard', 'phone', 'maxlength', 'minlength', 'range', 'regex', 'equalto']; + var ruleFirstName = annotationRule[annotationRule.length - 1]; + var ruleSecondName = annotationRule[annotationRule.length - 2]; + if (rulesList.indexOf(ruleFirstName) !== -1) { + switch (ruleFirstName) { + case 'required': + this.defRule(input, ruleCon, 'required', value); + break; + case 'creditcard': + this.defRule(input, ruleCon, 'creditcard', value); + break; + case 'phone': + this.defRule(input, ruleCon, 'tel', value); + break; + } + } + else if (rulesList.indexOf(ruleSecondName) !== -1) { + switch (ruleSecondName) { + case 'maxlength': + this.defRule(input, ruleCon, 'maxLength', value); + break; + case 'minlength': + this.defRule(input, ruleCon, 'minLength', value); + break; + case 'range': + { + var minvalue = input.getAttribute('data-val-range-min'); + var maxvalue = input.getAttribute('data-val-range-max'); + this.defRule(input, ruleCon, 'range', [minvalue, maxvalue]); + } + break; + case 'equalto': + { + var id = input.getAttribute(ruleName).split('.'); + this.defRule(input, ruleCon, 'equalTo', id[id.length - 1]); + } + break; + case 'regex': + this.defRule(input, ruleCon, 'regex', value); + break; + } + } + }; + FormValidator.prototype.defRule = function (input, ruleCon, ruleName, value) { + var message = input.getAttribute('data-' + ruleName + '-message'); + var annotationMessage = input.getAttribute('data-val-' + ruleName); + var customMessage; + if (this.rules[input.name] && ruleName !== 'validateHidden' && ruleName !== 'hidden') { + this.getInputElement(input.name); + customMessage = this.getErrorMessage(this.rules[input.name]["" + ruleName], ruleName); + } + if (message) { + value = [value, message]; + } + else if (annotationMessage) { + value = [value, annotationMessage]; + } + else if (customMessage) { + value = [value, customMessage]; + } + ruleCon["" + ruleName] = value; + }; + // Wire events to the form elements + FormValidator.prototype.wireEvents = function () { + for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) { + var input = _a[_i]; + if (FormValidator_1.isCheckable(input)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(input, 'click', this.clickHandler, this); + } + else if (input.tagName === 'SELECT') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(input, 'change', this.changeHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(input, 'focusout', this.focusOutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(input, 'keyup', this.keyUpHandler, this); + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'submit', this.submitHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'reset', this.resetHandler, this); + }; + // UnWire events to the form elements + FormValidator.prototype.unwireEvents = function () { + for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) { + var input = _a[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].clearEvents(input); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'submit', this.submitHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'reset', this.resetHandler); + }; + // Handle input element focusout event + FormValidator.prototype.focusOutHandler = function (e) { + this.trigger('focusout', e); + //FormValidator.triggerCallback(this.focusout, e); + var element = e.target; + if (this.rules[element.name]) { + if (this.rules[element.name][this.required] || element.value.length > 0) { + this.validate(element.name); + } + else if (this.validated.indexOf(element.name) === -1) { + this.validated.push(element.name); + } + } + }; + // Handle input element keyup event + FormValidator.prototype.keyUpHandler = function (e) { + this.trigger('keyup', e); + var element = e.target; + // List of keys need to prevent while validation + var excludeKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]; + if (e.which === 9 && (!this.rules[element.name] || (this.rules[element.name] && !this.rules[element.name][this.required]))) { + return; + } + if (this.validated.indexOf(element.name) !== -1 && this.rules[element.name] && excludeKeys.indexOf(e.which) === -1) { + this.validate(element.name); + } + }; + // Handle input click event + FormValidator.prototype.clickHandler = function (e) { + this.trigger('click', e); + var element = e.target; + // If element type is not submit allow validation + if (element.type !== 'submit') { + this.validate(element.name); + } + else if (element.getAttribute('formnovalidate') !== null) { + // Prevent form validation, if submit button has formnovalidate attribute + this.allowSubmit = true; + } + }; + // Handle input change event + FormValidator.prototype.changeHandler = function (e) { + this.trigger('change', e); + var element = e.target; + this.validate(element.name); + }; + // Handle form submit event + FormValidator.prototype.submitHandler = function (e) { + this.trigger('submit', e); + //FormValidator.triggerCallback(this.submit, e); + // Prevent form submit if validation failed + if (!this.allowSubmit && !this.validate()) { + e.preventDefault(); + } + else { + this.allowSubmit = false; + } + }; + // Handle form reset + FormValidator.prototype.resetHandler = function () { + this.clearForm(); + }; + // Validate each rule based on input element name + FormValidator.prototype.validateRules = function (name) { + if (!this.rules["" + name]) { + return; + } + var rules = Object.keys(this.rules["" + name]); + var hiddenType = false; + var validateHiddenType = false; + var vhPos = rules.indexOf('validateHidden'); + var hPos = rules.indexOf('hidden'); + this.getInputElement(name); + if (hPos !== -1) { + hiddenType = true; + } + if (vhPos !== -1) { + validateHiddenType = true; + } + if (!hiddenType || (hiddenType && validateHiddenType)) { + if (vhPos !== -1) { + rules.splice(vhPos, 1); + } + if (hPos !== -1) { + rules.splice((hPos - 1), 1); + } + this.getErrorElement(name); + for (var _i = 0, rules_2 = rules; _i < rules_2.length; _i++) { + var rule = rules_2[_i]; + var errorMessage = this.getErrorMessage(this.rules["" + name]["" + rule], rule); + var errorRule = { name: name, message: errorMessage }; + var eventArgs = { + inputName: name, + element: this.inputElement, + message: errorMessage + }; + if (!this.isValid(name, rule) && !this.inputElement.classList.contains(this.ignore)) { + this.removeErrorRules(name); + this.errorRules.push(errorRule); + // Set aria attributes to invalid elements + this.inputElement.setAttribute('aria-invalid', 'true'); + this.inputElement.setAttribute('aria-describedby', this.inputElement.id + '-info'); + this.inputElement.classList.add(this.errorClass); + this.inputElement.classList.remove(this.validClass); + if (!this.infoElement) { + this.createErrorElement(name, errorRule.message, this.inputElement); + } + else { + this.showMessage(errorRule); + } + eventArgs.errorElement = this.infoElement; + eventArgs.status = 'failure'; + this.inputElement.classList.add(this.errorClass); + this.inputElement.classList.remove(this.validClass); + this.optionalValidationStatus(name, eventArgs); + this.trigger('validationComplete', eventArgs); + // Set aria-required to required rule elements + if (rule === 'required') { + this.inputElement.setAttribute('aria-required', 'true'); + } + break; + } + else { + this.hideMessage(name); + eventArgs.status = 'success'; + this.trigger('validationComplete', eventArgs); + } + } + } + else { + return; + } + }; + // Update the optional validation status + FormValidator.prototype.optionalValidationStatus = function (name, refer) { + if (!this.rules["" + name][this.required] && !this.inputElement.value.length && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.infoElement)) { + this.infoElement.innerHTML = this.inputElement.value; + this.infoElement.setAttribute('aria-invalid', 'false'); + refer.status = ''; + this.hideMessage(name); + } + }; + // Check the input element whether it's value satisfy the validation rule or not + FormValidator.prototype.isValid = function (name, rule) { + var params = this.rules["" + name]["" + rule]; + var param = (params instanceof Array && typeof params[1] === 'string') ? params[0] : params; + var currentRule = this.rules["" + name]["" + rule]; + var args = { value: this.inputElement.value, param: param, element: this.inputElement, formElement: this.element }; + this.trigger('validationBegin', args); + if (!args.param && rule === 'required') { + return true; + } + if (currentRule && typeof currentRule[0] === 'function') { + var fn = currentRule[0]; + return fn.call(this, { element: this.inputElement, value: this.inputElement.value }); + } + else if (FormValidator_1.isCheckable(this.inputElement)) { + if (rule !== 'required') { + return true; + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('input[name="' + name + '"]:checked', this.element).length > 0; + } + else { + return FormValidator_1.checkValidator["" + rule](args); + } + }; + // Return default error message or custom error message + FormValidator.prototype.getErrorMessage = function (ruleValue, rule) { + var message = this.inputElement.getAttribute('data-' + rule + '-message') ? + this.inputElement.getAttribute('data-' + rule + '-message') : + (ruleValue instanceof Array && typeof ruleValue[1] === 'string') ? ruleValue[1] : + (Object.keys(this.localyMessage).length !== 0) ? this.localyMessage["" + rule] : this.defaultMessages["" + rule]; + var formats = message.match(/{(\d)}/g); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(formats)) { + for (var i = 0; i < formats.length; i++) { + var value = ruleValue instanceof Array ? ruleValue[parseInt(i.toString())] : ruleValue; + message = message.replace(formats[parseInt(i.toString())], value); + } + } + return message; + }; + // Create error element based on name and error message + FormValidator.prototype.createErrorElement = function (name, message, input) { + var errorElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])(this.errorElement, { + className: this.errorClass, + innerHTML: message, + attrs: { for: name } + }); + // Create message design if errorOption is message + if (this.errorOption === ErrorOption.Message) { + errorElement.classList.remove(this.errorClass); + errorElement.classList.add('e-message'); + errorElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])(this.errorContainer, { className: this.errorClass, innerHTML: errorElement.outerHTML }); + } + errorElement.id = this.inputElement.name + '-info'; + // Append error message into MVC error message element + if (this.element.querySelector('[data-valmsg-for="' + input.id + '"]')) { + this.element.querySelector('[data-valmsg-for="' + input.id + '"]').appendChild(errorElement); + } + else if (input.hasAttribute('data-msg-containerid') === true) { + // Append error message into custom div element + var containerId = input.getAttribute('data-msg-containerid'); + var divElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + containerId, this.element); + divElement.appendChild(errorElement); + } + else if (this.customPlacement != null) { + // Call custom placement function if customPlacement is not null + this.customPlacement.call(this, this.inputElement, errorElement); + } + else { + var inputParent = this.inputElement.parentElement; + var grandParent = inputParent.parentElement; + if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) { + grandParent.insertBefore(errorElement, inputParent.nextSibling); + } + else if (grandParent.classList.contains('e-control-wrapper') || grandParent.classList.contains('e-wrapper')) { + grandParent.parentElement.insertBefore(errorElement, grandParent.nextSibling); + } + else { + inputParent.insertBefore(errorElement, this.inputElement.nextSibling); + } + } + errorElement.style.display = 'block'; + this.getErrorElement(name); + this.validated.push(name); + this.checkRequired(name); + }; + // Get error element by name + FormValidator.prototype.getErrorElement = function (name) { + this.infoElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.errorElement + '.' + this.errorClass, this.inputElement.parentElement); + if (!this.infoElement) { + this.infoElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.errorElement + '.' + this.errorClass + '[for="' + name + '"]', this.element); + } + return this.infoElement; + }; + // Remove existing rule from errorRules object + FormValidator.prototype.removeErrorRules = function (name) { + for (var i = 0; i < this.errorRules.length; i++) { + var rule = this.errorRules[parseInt(i.toString())]; + if (rule.name === name) { + this.errorRules.splice(i, 1); + } + } + }; + // Show error message to the input element + FormValidator.prototype.showMessage = function (errorRule) { + this.infoElement.style.display = 'block'; + this.infoElement.innerHTML = errorRule.message; + this.checkRequired(errorRule.name); + }; + // Hide error message based on input name + FormValidator.prototype.hideMessage = function (name) { + if (this.infoElement) { + this.infoElement.style.display = 'none'; + this.removeErrorRules(name); + this.inputElement.classList.add(this.validClass); + this.inputElement.classList.remove(this.errorClass); + this.inputElement.setAttribute('aria-invalid', 'false'); + } + }; + // Check whether the input element have required rule and its value is not empty + FormValidator.prototype.checkRequired = function (name) { + if (!this.rules["" + name][this.required] && !this.inputElement.value.length && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.infoElement)) { + this.infoElement.innerHTML = this.inputElement.value; + this.infoElement.setAttribute('aria-invalid', 'false'); + this.hideMessage(name); + } + }; + // Return boolean result if the input have chekcable or submit types + FormValidator.isCheckable = function (input) { + var inputType = input.getAttribute('type'); + return inputType && (inputType === 'checkbox' || inputType === 'radio' || inputType === 'submit'); + }; + var FormValidator_1; + // List of function to validate the rules + FormValidator.checkValidator = { + required: function (option) { + return !isNaN(Date.parse(option.value)) ? !isNaN(new Date(option.value).getTime()) : option.value.toString().length > 0; + }, + email: function (option) { + return regex.EMAIL.test(option.value); + }, + url: function (option) { + return regex.URL.test(option.value); + }, + dateIso: function (option) { + return regex.DATE_ISO.test(option.value); + }, + tel: function (option) { + return regex.PHONE.test(option.value); + }, + creditcard: function (option) { + return regex.CREDITCARD.test(option.value); + }, + number: function (option) { + return !isNaN(Number(option.value)) && option.value.indexOf(' ') === -1; + }, + digits: function (option) { + return regex.DIGITS.test(option.value); + }, + maxLength: function (option) { + return option.value.length <= option.param; + }, + minLength: function (option) { + return option.value.length >= option.param; + }, + rangeLength: function (option) { + var param = option.param; + return option.value.length >= param[0] && option.value.length <= param[1]; + }, + range: function (option) { + var param = option.param; + return !isNaN(Number(option.value)) && Number(option.value) >= param[0] && Number(option.value) <= param[1]; + }, + date: function (option) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.param) && (typeof (option.param) === 'string' && option.param !== '')) { + var globalize = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Internationalization"]; + var dateOptions = { format: option.param.toString(), type: 'dateTime', skeleton: 'yMd' }; + var dateValue = globalize.parseDate(option.value, dateOptions); + return (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dateValue) && dateValue instanceof Date && !isNaN(+dateValue)); + } + else { + return !isNaN(new Date(option.value).getTime()); + } + }, + max: function (option) { + if (!isNaN(Number(option.value))) { + // Maximum rule validation for number + return +option.value <= option.param; + } + // Maximum rule validation for date + return new Date(option.value).getTime() <= new Date(JSON.parse(JSON.stringify(option.param))).getTime(); + }, + min: function (option) { + if (!isNaN(Number(option.value))) { + // Minimum rule validation for number + return +option.value >= option.param; + } + else if ((option.value).indexOf(',') !== -1) { + var uNum = (option.value).replace(/,/g, ''); + return parseFloat(uNum) >= option.param; + } + else { + // Minimum rule validation for date + return new Date(option.value).getTime() >= new Date(JSON.parse(JSON.stringify(option.param))).getTime(); + } + }, + regex: function (option) { + /* eslint-disable-next-line security/detect-non-literal-regexp */ + return new RegExp(option.param).test(option.value); + }, + equalTo: function (option) { + var compareTo = option.formElement.querySelector('#' + option.param); + option.param = compareTo.value; + return option.param === option.value; + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], FormValidator.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('e-hidden') + ], FormValidator.prototype, "ignore", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], FormValidator.prototype, "rules", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('e-error') + ], FormValidator.prototype, "errorClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('e-valid') + ], FormValidator.prototype, "validClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('label') + ], FormValidator.prototype, "errorElement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('div') + ], FormValidator.prototype, "errorContainer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(ErrorOption.Label) + ], FormValidator.prototype, "errorOption", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "focusout", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "keyup", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "click", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "submit", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "validationBegin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "validationComplete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], FormValidator.prototype, "customPlacement", void 0); + FormValidator = FormValidator_1 = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], FormValidator); + return FormValidator; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Base"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/index.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/index.js ***! + \**************************************************************************/ +/*! exports provided: regex, ErrorOption, FormValidator */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _form_validator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./form-validator */ "./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/form-validator.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "regex", function() { return _form_validator__WEBPACK_IMPORTED_MODULE_0__["regex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorOption", function() { return _form_validator__WEBPACK_IMPORTED_MODULE_0__["ErrorOption"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FormValidator", function() { return _form_validator__WEBPACK_IMPORTED_MODULE_0__["FormValidator"]; }); + +/** + * Input box Component + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/index.js": +/*!***********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/index.js ***! + \***********************************************************/ +/*! exports provided: NumericTextBox, regularExpressions, createMask, applyMask, wireEvents, unwireEvents, bindClearEvent, unstrippedValue, strippedValue, maskInputMouseDownHandler, maskInputMouseUpHandler, maskInputFocusHandler, triggerFocus, escapeRegExp, maskInputBlurHandler, maskInputDropHandler, mobileRemoveFunction, setMaskValue, setElementValue, maskInput, getVal, getMaskedVal, MaskUndo, MaskedTextBox, Input, TicksData, ColorRangeData, LimitData, TooltipData, Slider, regex, ErrorOption, FormValidator, FilesProp, ButtonsProps, AsyncSettings, Uploader, ColorPicker, TextBox, Signature, LabelPosition, PrecisionType, Rating, SignatureBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _numerictextbox_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numerictextbox/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumericTextBox", function() { return _numerictextbox_index__WEBPACK_IMPORTED_MODULE_0__["NumericTextBox"]; }); + +/* harmony import */ var _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maskedtextbox/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "regularExpressions", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["regularExpressions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createMask", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["createMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMask", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["applyMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wireEvents", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["wireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unwireEvents", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["unwireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindClearEvent", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["bindClearEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unstrippedValue", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["unstrippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "strippedValue", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["strippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseDownHandler", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInputMouseDownHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseUpHandler", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInputMouseUpHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputFocusHandler", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInputFocusHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerFocus", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["triggerFocus"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "escapeRegExp", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["escapeRegExp"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputBlurHandler", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInputBlurHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputDropHandler", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInputDropHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mobileRemoveFunction", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["mobileRemoveFunction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMaskValue", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["setMaskValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setElementValue", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["setElementValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInput", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["maskInput"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVal", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["getVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaskedVal", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["getMaskedVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskUndo", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["MaskUndo"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextBox", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["MaskedTextBox"]; }); + +/* harmony import */ var _input_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./input/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return _input_index__WEBPACK_IMPORTED_MODULE_2__["Input"]; }); + +/* harmony import */ var _slider_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slider/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/slider/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TicksData", function() { return _slider_index__WEBPACK_IMPORTED_MODULE_3__["TicksData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorRangeData", function() { return _slider_index__WEBPACK_IMPORTED_MODULE_3__["ColorRangeData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LimitData", function() { return _slider_index__WEBPACK_IMPORTED_MODULE_3__["LimitData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipData", function() { return _slider_index__WEBPACK_IMPORTED_MODULE_3__["TooltipData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _slider_index__WEBPACK_IMPORTED_MODULE_3__["Slider"]; }); + +/* harmony import */ var _form_validator_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./form-validator/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/form-validator/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "regex", function() { return _form_validator_index__WEBPACK_IMPORTED_MODULE_4__["regex"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorOption", function() { return _form_validator_index__WEBPACK_IMPORTED_MODULE_4__["ErrorOption"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FormValidator", function() { return _form_validator_index__WEBPACK_IMPORTED_MODULE_4__["FormValidator"]; }); + +/* harmony import */ var _uploader_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./uploader/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesProp", function() { return _uploader_index__WEBPACK_IMPORTED_MODULE_5__["FilesProp"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonsProps", function() { return _uploader_index__WEBPACK_IMPORTED_MODULE_5__["ButtonsProps"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSettings", function() { return _uploader_index__WEBPACK_IMPORTED_MODULE_5__["AsyncSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Uploader", function() { return _uploader_index__WEBPACK_IMPORTED_MODULE_5__["Uploader"]; }); + +/* harmony import */ var _color_picker_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./color-picker/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/color-picker/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorPicker", function() { return _color_picker_index__WEBPACK_IMPORTED_MODULE_6__["ColorPicker"]; }); + +/* harmony import */ var _textbox_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./textbox/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextBox", function() { return _textbox_index__WEBPACK_IMPORTED_MODULE_7__["TextBox"]; }); + +/* harmony import */ var _signature_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./signature/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/signature/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Signature", function() { return _signature_index__WEBPACK_IMPORTED_MODULE_8__["Signature"]; }); + +/* harmony import */ var _rating_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./rating/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/rating/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelPosition", function() { return _rating_index__WEBPACK_IMPORTED_MODULE_9__["LabelPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrecisionType", function() { return _rating_index__WEBPACK_IMPORTED_MODULE_9__["PrecisionType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _rating_index__WEBPACK_IMPORTED_MODULE_9__["Rating"]; }); + +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SignatureBase", function() { return _common_index__WEBPACK_IMPORTED_MODULE_10__["SignatureBase"]; }); + +/** + * NumericTextBox all modules + */ + + + + + + + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/index.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/input/index.js ***! + \*****************************************************************/ +/*! exports provided: Input */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _input__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./input */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return _input__WEBPACK_IMPORTED_MODULE_0__["Input"]; }); + +/** + * Input box Component + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js ***! + \*****************************************************************/ +/*! exports provided: Input */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Input", function() { return Input; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */ + + +var CLASSNAMES = { + RTL: 'e-rtl', + DISABLE: 'e-disabled', + INPUT: 'e-input', + TEXTAREA: 'e-multi-line-input', + INPUTGROUP: 'e-input-group', + FLOATINPUT: 'e-float-input', + FLOATLINE: 'e-float-line', + FLOATTEXT: 'e-float-text', + FLOATTEXTCONTENT: 'e-float-text-content', + CLEARICON: 'e-clear-icon', + CLEARICONHIDE: 'e-clear-icon-hide', + LABELTOP: 'e-label-top', + LABELBOTTOM: 'e-label-bottom', + NOFLOATLABEL: 'e-no-float-label', + INPUTCUSTOMTAG: 'e-input-custom-tag', + FLOATCUSTOMTAG: 'e-float-custom-tag' +}; +/** + * Base for Input creation through util methods. + */ +// eslint-disable-next-line @typescript-eslint/no-namespace +var Input; +(function (Input) { + var privateInputObj = { + container: null, + buttons: [], + clearButton: null + }; + var floatType; + var isBindClearAction = true; + /** + * Create a wrapper to input element with multiple span elements and set the basic properties to input based components. + * ``` + * E.g : Input.createInput({ element: element, floatLabelType : "Auto", properties: { placeholder: 'Search' } }); + * ``` + * + */ + function createInput(args, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var inputObject = { container: null, buttons: [], clearButton: null }; + floatType = args.floatLabelType; + isBindClearAction = args.bindClearAction; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.floatLabelType) || args.floatLabelType === 'Never') { + inputObject.container = createInputContainer(args, CLASSNAMES.INPUTGROUP, CLASSNAMES.INPUTCUSTOMTAG, 'span', makeElement); + args.element.parentNode.insertBefore(inputObject.container, args.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.element], CLASSNAMES.INPUT); + inputObject.container.appendChild(args.element); + } + else { + createFloatingInput(args, inputObject, makeElement); + } + bindInitialEvent(args); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.properties) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.properties.showClearButton) && + args.properties.showClearButton) { + setClearButton(args.properties.showClearButton, args.element, inputObject, true, makeElement); + inputObject.clearButton.setAttribute('role', 'button'); + if (inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([inputObject.container], CLASSNAMES.INPUTGROUP); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.buttons)) { + for (var i = 0; i < args.buttons.length; i++) { + inputObject.buttons.push(appendSpan(args.buttons[i], inputObject.container, makeElement)); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.element) && args.element.tagName === 'TEXTAREA') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([inputObject.container], CLASSNAMES.TEXTAREA); + } + validateInputType(inputObject.container, args.element); + inputObject = setPropertyValue(args, inputObject); + createSpanElement(inputObject.container, makeElement); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + privateInputObj = inputObject; + return inputObject; + } + Input.createInput = createInput; + function bindInitialEvent(args) { + checkInputValue(args.floatLabelType, args.element); + args.element.addEventListener('focus', function () { + var parent = getParentNode(this); + if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline') + || parent.classList.contains('e-filled')) { + parent.classList.add('e-input-focus'); + } + if (args.floatLabelType === 'Auto') { + setTimeout(function () { + Input.calculateWidth(args.element, parent); + }, 80); + } + }); + args.element.addEventListener('blur', function () { + var parent = getParentNode(this); + if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline') + || parent.classList.contains('e-filled')) { + parent.classList.remove('e-input-focus'); + } + if (args.floatLabelType === 'Auto' && args.element.value === '') { + setTimeout(function () { + Input.calculateWidth(args.element, parent); + }, 80); + } + }); + args.element.addEventListener('input', function () { + checkInputValue(floatType, args.element); + }); + } + Input.bindInitialEvent = bindInitialEvent; + function checkInputValue(floatLabelType, inputElement) { + var inputValue = inputElement.value; + if (inputValue !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(inputValue) && inputElement.parentElement) { + inputElement.parentElement.classList.add('e-valid-input'); + } + else if (floatLabelType !== 'Always' && inputElement.parentElement) { + inputElement.parentElement.classList.remove('e-valid-input'); + } + } + function _focusFn() { + var label = getParentNode(this).getElementsByClassName('e-float-text')[0]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(label)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([label], CLASSNAMES.LABELTOP); + if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([label], CLASSNAMES.LABELBOTTOM); + } + } + } + function _blurFn() { + var parent = getParentNode(this); + if ((parent.getElementsByTagName('textarea')[0]) ? parent.getElementsByTagName('textarea')[0].value === '' : + parent.getElementsByTagName('input')[0].value === '') { + var label = parent.getElementsByClassName('e-float-text')[0]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(label)) { + if (label.classList.contains(CLASSNAMES.LABELTOP)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([label], CLASSNAMES.LABELTOP); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([label], CLASSNAMES.LABELBOTTOM); + } + } + } + function wireFloatingEvents(element) { + element.addEventListener('focus', _focusFn); + element.addEventListener('blur', _blurFn); + } + Input.wireFloatingEvents = wireFloatingEvents; + function unwireFloatingEvents(element) { + element.removeEventListener('focus', _focusFn); + element.removeEventListener('blur', _blurFn); + } + function createFloatingInput(args, inputObject, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + if (args.floatLabelType === 'Auto') { + wireFloatingEvents(args.element); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(inputObject.container)) { + inputObject.container = createInputContainer(args, CLASSNAMES.FLOATINPUT, CLASSNAMES.FLOATCUSTOMTAG, 'div', makeElement); + if (args.element.parentNode) { + args.element.parentNode.insertBefore(inputObject.container, args.element); + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.customTag)) { + inputObject.container.classList.add(CLASSNAMES.FLOATCUSTOMTAG); + } + inputObject.container.classList.add(CLASSNAMES.FLOATINPUT); + } + var floatLinelement = makeElement('span', { className: CLASSNAMES.FLOATLINE }); + var floatLabelElement = makeElement('label', { className: CLASSNAMES.FLOATTEXT }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.element.id) && args.element.id !== '') { + floatLabelElement.id = 'label_' + args.element.id.replace(/ /g, '_'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(args.element, { 'aria-labelledby': floatLabelElement.id }); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.element.placeholder) && args.element.placeholder !== '') { + floatLabelElement.innerText = encodePlaceHolder(args.element.placeholder); + args.element.removeAttribute('placeholder'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.properties) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.properties.placeholder) && + args.properties.placeholder !== '') { + floatLabelElement.innerText = encodePlaceHolder(args.properties.placeholder); + } + if (!floatLabelElement.innerText) { + inputObject.container.classList.add(CLASSNAMES.NOFLOATLABEL); + } + if (inputObject.container.classList.contains('e-float-icon-left')) { + var inputWrap = inputObject.container.querySelector('.e-input-in-wrap'); + inputWrap.appendChild(args.element); + inputWrap.appendChild(floatLinelement); + inputWrap.appendChild(floatLabelElement); + } + else { + inputObject.container.appendChild(args.element); + inputObject.container.appendChild(floatLinelement); + inputObject.container.appendChild(floatLabelElement); + } + updateLabelState(args.element.value, floatLabelElement); + if (args.floatLabelType === 'Always') { + if (floatLabelElement.classList.contains(CLASSNAMES.LABELBOTTOM)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([floatLabelElement], CLASSNAMES.LABELBOTTOM); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([floatLabelElement], CLASSNAMES.LABELTOP); + } + if (args.floatLabelType === 'Auto') { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + args.element.addEventListener('input', function (event) { + updateLabelState(args.element.value, floatLabelElement, args.element); + }); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + args.element.addEventListener('blur', function (event) { + updateLabelState(args.element.value, floatLabelElement); + }); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.element.getAttribute('id'))) { + floatLabelElement.setAttribute('for', args.element.getAttribute('id')); + } + } + function checkFloatLabelType(type, container) { + if (type === 'Always' && container.classList.contains('e-outline')) { + container.classList.add('e-valid-input'); + } + } + function setPropertyValue(args, inputObject) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.properties)) { + for (var _i = 0, _a = Object.keys(args.properties); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'cssClass': + setCssClass(args.properties.cssClass, [inputObject.container]); + checkFloatLabelType(args.floatLabelType, inputObject.container); + break; + case 'enabled': + setEnabled(args.properties.enabled, args.element, args.floatLabelType, inputObject.container); + break; + case 'enableRtl': + setEnableRtl(args.properties.enableRtl, [inputObject.container]); + break; + case 'placeholder': + setPlaceholder(args.properties.placeholder, args.element); + break; + case 'readonly': + setReadonly(args.properties.readonly, args.element); + break; + } + } + } + return inputObject; + } + function updateIconState(value, button, readonly) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(button)) { + if (value && !readonly) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([button], CLASSNAMES.CLEARICONHIDE); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([button], CLASSNAMES.CLEARICONHIDE); + } + } + } + function updateLabelState(value, label, element) { + if (element === void 0) { element = null; } + if (value) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([label], CLASSNAMES.LABELTOP); + if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([label], CLASSNAMES.LABELBOTTOM); + } + } + else { + var isNotFocused = element != null ? element !== document.activeElement : true; + if (isNotFocused) { + if (label.classList.contains(CLASSNAMES.LABELTOP)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([label], CLASSNAMES.LABELTOP); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([label], CLASSNAMES.LABELBOTTOM); + } + } + } + function getParentNode(element) { + var parentNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element.parentNode) ? element + : element.parentNode; + if (parentNode && parentNode.classList.contains('e-input-in-wrap')) { + parentNode = parentNode.parentNode; + } + return parentNode; + } + /** + * To create clear button. + */ + function createClearButton(element, inputObject, initial, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var button = makeElement('span', { className: CLASSNAMES.CLEARICON }); + var container = inputObject.container; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(initial)) { + container.appendChild(button); + } + else { + var baseElement = inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT) ? + inputObject.container.querySelector('.' + CLASSNAMES.FLOATTEXT) : element; + baseElement.insertAdjacentElement('afterend', button); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container) && + container.classList.contains(CLASSNAMES.FLOATINPUT)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([container], CLASSNAMES.INPUTGROUP); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([button], CLASSNAMES.CLEARICONHIDE); + wireClearBtnEvents(element, button, container); + button.setAttribute('aria-label', 'close'); + return button; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + function wireClearBtnEvents(element, button, container) { + if (isBindClearAction === undefined || isBindClearAction) { + button.addEventListener('click', function (event) { + if (!(element.classList.contains(CLASSNAMES.DISABLE) || element.readOnly)) { + event.preventDefault(); + if (element !== document.activeElement) { + element.focus(); + } + element.value = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([button], CLASSNAMES.CLEARICONHIDE); + } + }); + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + element.addEventListener('input', function (event) { + updateIconState(element.value, button); + }); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + element.addEventListener('focus', function (event) { + updateIconState(element.value, button, element.readOnly); + }); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + element.addEventListener('blur', function (event) { + setTimeout(function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(button)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([button], CLASSNAMES.CLEARICONHIDE); + button = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element) && element.classList.contains('e-combobox') ? null : button; + } + }, 200); + }); + } + Input.wireClearBtnEvents = wireClearBtnEvents; + function destroy() { + privateInputObj = null; + } + Input.destroy = destroy; + function validateLabel(element, floatLabelType) { + var parent = getParentNode(element); + if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') { + var label = getParentNode(element).getElementsByClassName('e-float-text')[0]; + updateLabelState(element.value, label, element); + } + } + /** + * To create input box contianer. + */ + function createInputContainer(args, className, tagClass, tag, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var container; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.customTag)) { + container = makeElement(args.customTag, { className: className }); + container.classList.add(tagClass); + } + else { + container = makeElement(tag, { className: className }); + } + container.classList.add('e-control-wrapper'); + return container; + } + function encodePlaceHolder(placeholder) { + var result = ''; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(placeholder) && placeholder !== '') { + var spanEle = document.createElement('span'); + spanEle.innerHTML = ''; + var hiddenInput = (spanEle.children[0]); + result = hiddenInput.placeholder; + } + return result; + } + /** + * Sets the value to the input element. + * ``` + * E.g : Input.setValue('content', element, "Auto", true ); + * ``` + * + * @param {string} value - Specify the value of the input element. + * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the specified value is updated. + * @param {string} floatLabelType - Specify the float label type of the input element. + * @param {boolean} clearButton - Boolean value to specify whether the clear icon is enabled / disabled on the input. + */ + function setValue(value, element, floatLabelType, clearButton) { + element.value = value; + if (floatLabelType === 'Auto' && value === '') { + calculateWidth(element, element.parentElement); + } + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(floatLabelType)) && floatLabelType === 'Auto') { + validateLabel(element, floatLabelType); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(clearButton) && clearButton) { + var parentElement = getParentNode(element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentElement)) { + var button = parentElement.getElementsByClassName(CLASSNAMES.CLEARICON)[0]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(button)) { + if (element.value && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentElement) && parentElement.classList.contains('e-input-focus')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([button], CLASSNAMES.CLEARICONHIDE); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([button], CLASSNAMES.CLEARICONHIDE); + } + } + } + } + checkInputValue(floatLabelType, element); + } + Input.setValue = setValue; + /** + * Sets the single or multiple cssClass to wrapper of input element. + * ``` + * E.g : Input.setCssClass('e-custom-class', [element]); + * ``` + * + * @param {string} cssClass - Css class names which are needed to add. + * @param {Element[] | NodeList} elements - The elements which are needed to add / remove classes. + * @param {string} oldClass + * - Css class names which are needed to remove. If old classes are need to remove, can give this optional parameter. + */ + function setCssClass(cssClass, elements, oldClass) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldClass) && oldClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(elements, oldClass.split(' ')); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cssClass) && cssClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(elements, cssClass.split(' ')); + } + } + Input.setCssClass = setCssClass; + /** + * Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc + * ``` + * E.g : Input.calculateWidth(element, container); + * ``` + * + * @param {any} element - Input element which is need to add. + * @param {HTMLElement} container - The parent element which is need to get the label span to calculate width + */ + function calculateWidth(element, container, moduleName) { + var elementWidth = moduleName === 'multiselect' ? element : element.clientWidth - parseInt(getComputedStyle(element, null).getPropertyValue('padding-left'), 10); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.getElementsByClassName('e-float-text-content')[0])) { + if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) { + container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow'); + } + if (elementWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || elementWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) { + container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow'); + } + } + } + Input.calculateWidth = calculateWidth; + /** + * Set the width to the wrapper of input element. + * ``` + * E.g : Input.setWidth('200px', container); + * ``` + * + * @param {number | string} width - Width value which is need to add. + * @param {HTMLElement} container - The element on which the width is need to add. + */ + function setWidth(width, container) { + if (typeof width === 'number') { + container.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else if (typeof width === 'string') { + container.style.width = (width.match(/px|%|em/)) ? (width) : (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width)); + } + calculateWidth(container.firstChild, container); + } + Input.setWidth = setWidth; + /** + * Set the placeholder attribute to the input element. + * ``` + * E.g : Input.setPlaceholder('Search here', element); + * ``` + * + * @param {string} placeholder - Placeholder value which is need to add. + * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add. + */ + function setPlaceholder(placeholder, element) { + placeholder = encodePlaceHolder(placeholder); + var parentElement = getParentNode(element); + if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(placeholder) && placeholder !== '') { + parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder; + parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL); + element.removeAttribute('placeholder'); + } + else { + parentElement.classList.add(CLASSNAMES.NOFLOATLABEL); + parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = ''; + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(placeholder) && placeholder !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'placeholder': placeholder }); + } + else { + element.removeAttribute('placeholder'); + } + } + } + Input.setPlaceholder = setPlaceholder; + /** + * Set the read only attribute to the input element + * ``` + * E.g : Input.setReadonly(true, element); + * ``` + * + * @param {boolean} isReadonly + * - Boolean value to specify whether to set read only. Setting "True" value enables read only. + * @param {HTMLInputElement | HTMLTextAreaElement} element + * - The element which is need to enable read only. + */ + function setReadonly(isReadonly, element, floatLabelType) { + if (isReadonly) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { readonly: '' }); + } + else { + element.removeAttribute('readonly'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(floatLabelType)) { + validateLabel(element, floatLabelType); + } + } + Input.setReadonly = setReadonly; + /** + * Displays the element direction from right to left when its enabled. + * ``` + * E.g : Input.setEnableRtl(true, [inputObj.container]); + * ``` + * + * @param {boolean} isRtl + * - Boolean value to specify whether to set RTL. Setting "True" value enables the RTL mode. + * @param {Element[] | NodeList} elements + * - The elements that are needed to enable/disable RTL. + */ + function setEnableRtl(isRtl, elements) { + if (isRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(elements, CLASSNAMES.RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(elements, CLASSNAMES.RTL); + } + } + Input.setEnableRtl = setEnableRtl; + /** + * Enables or disables the given input element. + * ``` + * E.g : Input.setEnabled(false, element); + * ``` + * + * @param {boolean} isEnable + * - Boolean value to specify whether to enable or disable. + * @param {HTMLInputElement | HTMLTextAreaElement} element + * - Element to be enabled or disabled. + */ + function setEnabled(isEnable, element, floatLabelType, inputContainer) { + var disabledAttrs = { 'disabled': 'disabled', 'aria-disabled': 'true' }; + var considerWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(inputContainer) ? false : true; + if (isEnable) { + element.classList.remove(CLASSNAMES.DISABLE); + removeAttributes(disabledAttrs, element); + if (considerWrapper) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([inputContainer], CLASSNAMES.DISABLE); + } + } + else { + element.classList.add(CLASSNAMES.DISABLE); + addAttributes(disabledAttrs, element); + if (considerWrapper) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([inputContainer], CLASSNAMES.DISABLE); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(floatLabelType)) { + validateLabel(element, floatLabelType); + } + } + Input.setEnabled = setEnabled; + function setClearButton(isClear, element, inputObject, initial, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + if (isClear) { + inputObject.clearButton = createClearButton(element, inputObject, initial, makeElement); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(inputObject.clearButton); + inputObject.clearButton = null; + } + } + Input.setClearButton = setClearButton; + /** + * Removing the multiple attributes from the given element such as "disabled","id" , etc. + * ``` + * E.g : Input.removeAttributes({ 'disabled': 'disabled', 'aria-disabled': 'true' }, element); + * ``` + * + * @param {string} attrs + * - Array of attributes which are need to removed from the element. + * @param {HTMLInputElement | HTMLElement} element + * - Element on which the attributes are needed to be removed. + */ + function removeAttributes(attrs, element) { + for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) { + var key = _a[_i]; + var parentElement = getParentNode(element); + if (key === 'disabled') { + element.classList.remove(CLASSNAMES.DISABLE); + } + if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) { + parentElement.classList.remove(CLASSNAMES.DISABLE); + } + if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) { + parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = ''; + } + else { + element.removeAttribute(key); + } + } + } + Input.removeAttributes = removeAttributes; + /** + * Adding the multiple attributes to the given element such as "disabled","id" , etc. + * ``` + * E.g : Input.addAttributes({ 'id': 'inputpopup' }, element); + * ``` + * + * @param {string} attrs + * - Array of attributes which is added to element. + * @param {HTMLInputElement | HTMLElement} element + * - Element on which the attributes are needed to be added. + */ + function addAttributes(attrs, element) { + for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) { + var key = _a[_i]; + var parentElement = getParentNode(element); + if (key === 'disabled') { + element.classList.add(CLASSNAMES.DISABLE); + } + if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) { + parentElement.classList.add(CLASSNAMES.DISABLE); + } + if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) { + parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = attrs["" + key]; + } + else { + element.setAttribute(key, attrs["" + key]); + } + } + } + Input.addAttributes = addAttributes; + function removeFloating(input) { + var container = input.container; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container) && container.classList.contains(CLASSNAMES.FLOATINPUT)) { + var inputEle = container.querySelector('textarea') ? container.querySelector('textarea') : + container.querySelector('input'); + var placeholder = container.querySelector('.' + CLASSNAMES.FLOATTEXT).textContent; + var clearButton = container.querySelector('.e-clear-icon') !== null; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(container.querySelector('.' + CLASSNAMES.FLOATLINE)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(container.querySelector('.' + CLASSNAMES.FLOATTEXT)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(container, [CLASSNAMES.INPUTGROUP], [CLASSNAMES.FLOATINPUT]); + unwireFloatingEvents(inputEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(inputEle, { 'placeholder': placeholder }); + inputEle.classList.add(CLASSNAMES.INPUT); + if (!clearButton && inputEle.tagName === 'INPUT') { + inputEle.removeAttribute('required'); + } + } + } + Input.removeFloating = removeFloating; + function addFloating(input, type, placeholder, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var container = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(input, '.' + CLASSNAMES.INPUTGROUP); + floatType = type; + if (type !== 'Never') { + var customTag = container.tagName; + customTag = customTag !== 'DIV' && customTag !== 'SPAN' ? customTag : null; + var args = { element: input, floatLabelType: type, + customTag: customTag, properties: { placeholder: placeholder } }; + var iconEle = container.querySelector('.e-clear-icon'); + var inputObj = { container: container }; + input.classList.remove(CLASSNAMES.INPUT); + createFloatingInput(args, inputObj, makeElement); + createSpanElement(inputObj.container, makeElement); + calculateWidth(args.element, inputObj.container); + var isPrependIcon = container.classList.contains('e-float-icon-left'); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconEle)) { + if (isPrependIcon) { + var inputWrap = container.querySelector('.e-input-in-wrap'); + iconEle = inputWrap.querySelector('.e-input-group-icon'); + } + else { + iconEle = container.querySelector('.e-input-group-icon'); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconEle)) { + if (isPrependIcon) { + iconEle = container.querySelector('.e-input-group-icon'); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconEle)) { + container.classList.remove(CLASSNAMES.INPUTGROUP); + } + } + else { + var floatLine = container.querySelector('.' + CLASSNAMES.FLOATLINE); + var floatText = container.querySelector('.' + CLASSNAMES.FLOATTEXT); + var wrapper = isPrependIcon ? container.querySelector('.e-input-in-wrap') : container; + wrapper.insertBefore(input, iconEle); + wrapper.insertBefore(floatLine, iconEle); + wrapper.insertBefore(floatText, iconEle); + } + } + checkFloatLabelType(type, input.parentElement); + } + Input.addFloating = addFloating; + /** + * Create the span inside the label and add the label text into the span textcontent + * ``` + * E.g : Input.createSpanElement(inputObject, makeElement); + * ``` + * + * @param {InputObject} inputObject + * - Element which is need to get the label + * @param {createElementParams} makeElement + * - Element which is need to create the span + */ + function createSpanElement(inputObject, makeElement) { + if (inputObject.classList.contains('e-outline') && inputObject.getElementsByClassName('e-float-text')[0]) { + var labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT }); + labelSpanElement.innerHTML = inputObject.getElementsByClassName('e-float-text')[0].innerHTML; + inputObject.getElementsByClassName('e-float-text')[0].innerHTML = ''; + inputObject.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement); + } + } + Input.createSpanElement = createSpanElement; + /** + * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme. + * ``` + * E.g : Input.setRipple(true, [inputObjects]); + * ``` + * + * @param {boolean} isRipple + * - Boolean value to specify whether to enable the ripple effect. + * @param {InputObject[]} inputObj + * - Specify the collection of input objects. + */ + function setRipple(isRipple, inputObj) { + for (var i = 0; i < inputObj.length; i++) { + _internalRipple(isRipple, inputObj[parseInt(i.toString())].container); + } + } + Input.setRipple = setRipple; + function _internalRipple(isRipple, container, button) { + var argsButton = []; + argsButton.push(button); + var buttons = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(button) ? + container.querySelectorAll('.e-input-group-icon') : argsButton; + if (isRipple && buttons.length > 0) { + for (var index = 0; index < buttons.length; index++) { + buttons[parseInt(index.toString())].addEventListener('mousedown', _onMouseDownRipple, false); + buttons[parseInt(index.toString())].addEventListener('mouseup', _onMouseUpRipple, false); + } + } + else if (buttons.length > 0) { + for (var index = 0; index < buttons.length; index++) { + buttons[parseInt(index.toString())].removeEventListener('mousedown', _onMouseDownRipple, this); + buttons[parseInt(index.toString())].removeEventListener('mouseup', _onMouseUpRipple, this); + } + } + } + function _onMouseRipple(container, button) { + if (!container.classList.contains('e-disabled') && !container.querySelector('input').readOnly) { + button.classList.add('e-input-btn-ripple'); + } + } + function _onMouseDownRipple() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var ele = this; + var parentEle = this.parentElement; + while (!parentEle.classList.contains('e-input-group')) { + parentEle = parentEle.parentElement; + } + _onMouseRipple(parentEle, ele); + } + function _onMouseUpRipple() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var ele = this; + setTimeout(function () { + ele.classList.remove('e-input-btn-ripple'); + }, 500); + } + function createIconEle(iconClass, makeElement) { + var button = makeElement('span', { className: iconClass }); + button.classList.add('e-input-group-icon'); + return button; + } + /** + * Creates a new span element with the given icons added and append it in container element. + * ``` + * E.g : Input.addIcon('append', 'e-icon-spin', inputObj.container, inputElement); + * ``` + * + * @param {string} position - Specify the icon placement on the input.Possible values are append and prepend. + * @param {string | string[]} icons - Icon classes which are need to add to the span element which is going to created. + * Span element acts as icon or button element for input. + * @param {HTMLElement} container - The container on which created span element is going to append. + * @param {HTMLElement} input - The inputElement on which created span element is going to prepend. + */ + /* eslint-disable @typescript-eslint/indent */ + function addIcon(position, icons, container, input, internalCreate) { + /* eslint-enable @typescript-eslint/indent */ + var result = typeof (icons) === 'string' ? icons.split(',') + : icons; + if (position.toLowerCase() === 'append') { + for (var _i = 0, result_1 = result; _i < result_1.length; _i++) { + var icon = result_1[_i]; + appendSpan(icon, container, internalCreate); + } + } + else { + for (var _a = 0, result_2 = result; _a < result_2.length; _a++) { + var icon = result_2[_a]; + prependSpan(icon, container, input, internalCreate); + } + } + if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) { + container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon'); + } + } + Input.addIcon = addIcon; + /** + * Creates a new span element with the given icons added and prepend it in input element. + * ``` + * E.g : Input.prependSpan('e-icon-spin', inputObj.container, inputElement); + * ``` + * + * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created. + * Span element acts as icon or button element for input. + * @param {HTMLElement} container - The container on which created span element is going to append. + * @param {HTMLElement} inputElement - The inputElement on which created span element is going to prepend. + */ + /* eslint-disable @typescript-eslint/indent */ + function prependSpan(iconClass, container, inputElement, internalCreateElement) { + /* eslint-enable @typescript-eslint/indent */ + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var button = createIconEle(iconClass, makeElement); + container.classList.add('e-float-icon-left'); + var innerWrapper = container.querySelector('.e-input-in-wrap'); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(innerWrapper)) { + innerWrapper = makeElement('span', { className: 'e-input-in-wrap' }); + inputElement.parentNode.insertBefore(innerWrapper, inputElement); + var result = container.querySelectorAll(inputElement.tagName + ' ~ *'); + innerWrapper.appendChild(inputElement); + for (var i = 0; i < result.length; i++) { + innerWrapper.appendChild(result[parseInt(i.toString())]); + } + } + innerWrapper.parentNode.insertBefore(button, innerWrapper); + if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) { + container.classList.add(CLASSNAMES.INPUTGROUP); + } + _internalRipple(true, container, button); + return button; + } + Input.prependSpan = prependSpan; + /** + * Creates a new span element with the given icons added and append it in container element. + * ``` + * E.g : Input.appendSpan('e-icon-spin', inputObj.container); + * ``` + * + * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created. + * Span element acts as icon or button element for input. + * @param {HTMLElement} container - The container on which created span element is going to append. + */ + function appendSpan(iconClass, container, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + var button = createIconEle(iconClass, makeElement); + if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) { + container.classList.add(CLASSNAMES.INPUTGROUP); + } + var wrap = (container.classList.contains('e-float-icon-left')) ? container.querySelector('.e-input-in-wrap') : + container; + wrap.appendChild(button); + _internalRipple(true, container, button); + return button; + } + Input.appendSpan = appendSpan; + function validateInputType(containerElement, input) { + if (input.type === 'hidden') { + containerElement.classList.add('e-hidden'); + } + else if (containerElement.classList.contains('e-hidden')) { + containerElement.classList.remove('e-hidden'); + } + } + Input.validateInputType = validateInputType; +})(Input || (Input = {})); +/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/index.js": +/*!******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/index.js ***! + \******************************************************************************/ +/*! exports provided: regularExpressions, createMask, applyMask, wireEvents, unwireEvents, bindClearEvent, unstrippedValue, strippedValue, maskInputMouseDownHandler, maskInputMouseUpHandler, maskInputFocusHandler, triggerFocus, escapeRegExp, maskInputBlurHandler, maskInputDropHandler, mobileRemoveFunction, setMaskValue, setElementValue, maskInput, getVal, getMaskedVal, MaskUndo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mask_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mask-base */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/mask-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "regularExpressions", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["regularExpressions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createMask", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["createMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMask", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["applyMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wireEvents", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["wireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unwireEvents", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["unwireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindClearEvent", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["bindClearEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unstrippedValue", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["unstrippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "strippedValue", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["strippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseDownHandler", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInputMouseDownHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseUpHandler", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInputMouseUpHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputFocusHandler", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInputFocusHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerFocus", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["triggerFocus"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "escapeRegExp", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["escapeRegExp"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputBlurHandler", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInputBlurHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputDropHandler", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInputDropHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mobileRemoveFunction", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["mobileRemoveFunction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMaskValue", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["setMaskValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setElementValue", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["setElementValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInput", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["maskInput"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVal", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["getVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaskedVal", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["getMaskedVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskUndo", function() { return _mask_base__WEBPACK_IMPORTED_MODULE_0__["MaskUndo"]; }); + +/** + * MaskedTextbox base modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/mask-base.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/mask-base.js ***! + \**********************************************************************************/ +/*! exports provided: regularExpressions, createMask, applyMask, wireEvents, unwireEvents, bindClearEvent, unstrippedValue, strippedValue, maskInputMouseDownHandler, maskInputMouseUpHandler, maskInputFocusHandler, triggerFocus, escapeRegExp, maskInputBlurHandler, maskInputDropHandler, mobileRemoveFunction, setMaskValue, setElementValue, maskInput, getVal, getMaskedVal, MaskUndo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "regularExpressions", function() { return regularExpressions; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createMask", function() { return createMask; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyMask", function() { return applyMask; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wireEvents", function() { return wireEvents; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unwireEvents", function() { return unwireEvents; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindClearEvent", function() { return bindClearEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unstrippedValue", function() { return unstrippedValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "strippedValue", function() { return strippedValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseDownHandler", function() { return maskInputMouseDownHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseUpHandler", function() { return maskInputMouseUpHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInputFocusHandler", function() { return maskInputFocusHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "triggerFocus", function() { return triggerFocus; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeRegExp", function() { return escapeRegExp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInputBlurHandler", function() { return maskInputBlurHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInputDropHandler", function() { return maskInputDropHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mobileRemoveFunction", function() { return mobileRemoveFunction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMaskValue", function() { return setMaskValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementValue", function() { return setElementValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maskInput", function() { return maskInput; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVal", function() { return getVal; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaskedVal", function() { return getMaskedVal; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaskUndo", function() { return MaskUndo; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _input_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../input/input */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js"); +/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */ +/** + * MaskedTextBox base module + */ + + +var ERROR = 'e-error'; +var INPUTGROUP = 'e-input-group'; +var FLOATINPUT = 'e-float-input'; +var UTILMASK = 'e-utility-mask'; +var TOPLABEL = 'e-label-top'; +var BOTTOMLABEL = 'e-label-bottom'; +/** + * @hidden + * Built-in masking elements collection. + */ +var regularExpressions = { + '0': '[0-9]', + '9': '[0-9 ]', + '#': '[0-9 +-]', + 'L': '[A-Za-z]', + '?': '[A-Za-z ]', + '&': '[^\x7f ]+', + 'C': '[^\x7f]+', + 'A': '[A-Za-z0-9]', + 'a': '[A-Za-z0-9 ]' +}; +/** + * Generate required masking elements to the MaskedTextBox from user mask input. + * + * @hidden + */ +function createMask() { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { + 'role': 'textbox', 'autocomplete': 'off', 'autocapitalize': 'off', + 'spellcheck': 'false', 'aria-live': 'assertive' + }); + if (this.mask) { + var splitMask = this.mask.split(']'); + for (var i = 0; i < splitMask.length; i++) { + if (splitMask[i][splitMask[i].length - 1] === '\\') { + splitMask[i] = splitMask[i] + ']'; + var splitInnerMask = splitMask[i].split('['); + for (var j = 0; j < splitInnerMask.length; j++) { + if (splitInnerMask[j][splitInnerMask[j].length - 1] === '\\') { + splitInnerMask[j] = splitInnerMask[j] + '['; + } + pushIntoRegExpCollec.call(this, splitInnerMask[j]); + } + } + else { + var splitInnerMask = splitMask[i].split('['); + if (splitInnerMask.length > 1) { + var chkSpace = false; + for (var j = 0; j < splitInnerMask.length; j++) { + if (splitInnerMask[j] === '\\') { + this.customRegExpCollec.push('['); + this.hiddenMask += splitInnerMask[j] + '['; + } + else if (splitInnerMask[j] === '') { + chkSpace = true; + } + else if ((splitInnerMask[j] !== '' && chkSpace) || j === splitInnerMask.length - 1) { + this.customRegExpCollec.push('[' + splitInnerMask[j] + ']'); + this.hiddenMask += this.promptChar; + chkSpace = false; + } + else { + pushIntoRegExpCollec.call(this, splitInnerMask[j]); + } + } + } + else { + pushIntoRegExpCollec.call(this, splitInnerMask[0]); + } + } + } + this.escapeMaskValue = this.hiddenMask; + this.promptMask = this.hiddenMask.replace(/[09?LCAa#&]/g, this.promptChar); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters)) { + for (var i = 0; i < this.promptMask.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters[this.promptMask[i]])) { + /* eslint-disable-next-line security/detect-non-literal-regexp */ + this.promptMask = this.promptMask.replace(new RegExp(this.promptMask[i], 'g'), this.promptChar); + } + } + } + var escapeNumber = 0; + if (this.hiddenMask.match(new RegExp(/\\/))) { + for (var i = 0; i < this.hiddenMask.length; i++) { + var j = 0; + if (i >= 1) { + j = i; + } + escapeNumber = this.hiddenMask.length - this.promptMask.length; + j = j - escapeNumber; + if ((i > 0 && this.hiddenMask[i - 1] !== '\\') && (this.hiddenMask[i] === '>' || + this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|')) { + this.promptMask = this.promptMask.substring(0, j) + + this.promptMask.substring((i + 1) - escapeNumber, this.promptMask.length); + this.escapeMaskValue = this.escapeMaskValue.substring(0, j) + + this.escapeMaskValue.substring((i + 1) - escapeNumber, this.escapeMaskValue.length); + } + if (this.hiddenMask[i] === '\\') { + this.promptMask = this.promptMask.substring(0, j) + this.hiddenMask[i + 1] + + this.promptMask.substring((i + 2) - escapeNumber, this.promptMask.length); + this.escapeMaskValue = this.escapeMaskValue.substring(0, j) + this.escapeMaskValue[i + 1] + + this.escapeMaskValue.substring((i + 2) - escapeNumber, this.escapeMaskValue.length); + } + } + } + else { + this.promptMask = this.promptMask.replace(/[>|<]/g, ''); + this.escapeMaskValue = this.hiddenMask.replace(/[>|<]/g, ''); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-invalid': 'false' }); + } +} +/** + * Apply mask ability with masking elements to the MaskedTextBox. + * + * @hidden + */ +function applyMask() { + setElementValue.call(this, this.promptMask); + setMaskValue.call(this, this.value); +} +/** + * To wire required events to the MaskedTextBox. + * + * @hidden + */ +function wireEvents() { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', maskInputKeyDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keypress', maskInputKeyPressHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', maskInputKeyUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'input', maskInputHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', maskInputFocusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'blur', maskInputBlurHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'paste', maskInputPasteHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'cut', maskInputCutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'drop', maskInputDropHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mousedown', maskInputMouseDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseup', maskInputMouseUpHandler, this); + if (this.enabled) { + bindClearEvent.call(this); + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', resetFormHandler, this); + } + } +} +/** + * To unwire events attached to the MaskedTextBox. + * + * @hidden + */ +function unwireEvents() { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', maskInputKeyDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keypress', maskInputKeyPressHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', maskInputKeyUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'input', maskInputHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', maskInputFocusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'blur', maskInputBlurHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'paste', maskInputPasteHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'cut', maskInputCutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mousedown', maskInputMouseDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseup', maskInputMouseUpHandler); + if (this.formElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', resetFormHandler); + } +} +/** + * To bind required events to the MaskedTextBox clearButton. + * + * @hidden + */ +function bindClearEvent() { + if (this.showClearButton) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.inputObj.clearButton, 'mousedown touchstart', resetHandler, this); + } +} +function resetHandler(e) { + e.preventDefault(); + if (!this.inputObj.clearButton.classList.contains('e-clear-icon-hide') || (this.inputObj.container.classList.contains('e-static-clear'))) { + clear.call(this, e); + this.value = ''; + } +} +function clear(event) { + var value = this.element.value; + setElementValue.call(this, this.promptMask); + this.redoCollec.unshift({ + value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd + }); + triggerMaskChangeEvent.call(this, event, value); + this.element.setSelectionRange(0, 0); +} +function resetFormHandler() { + if (this.element.tagName === 'EJS-MASKEDTEXTBOX') { + setElementValue.call(this, this.promptMask); + } + else { + this.value = this.initInputValue; + } +} +/** + * To get masked value from the MaskedTextBox. + * + * @hidden + */ +function unstrippedValue(element) { + return element.value; +} +/** + * To extract raw value from the MaskedTextBox. + * + * @hidden + */ +function strippedValue(element, maskValues) { + var value = ''; + var k = 0; + var checkMask = false; + var maskValue = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(maskValues)) ? maskValues : (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element) && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this)) ? element.value : maskValues; + if (maskValue !== this.promptMask) { + for (var i = 0; i < this.customRegExpCollec.length; i++) { + if (checkMask) { + checkMask = false; + } + if (this.customRegExpCollec[k] === '>' || this.customRegExpCollec[k] === '<' || + this.customRegExpCollec[k] === '|' || this.customRegExpCollec[k] === '\\') { + --i; + checkMask = true; + } + if (!checkMask) { + if ((maskValue[i] !== this.promptChar) && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customRegExpCollec[k]) && + ((this._callPasteHandler || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.regExpCollec[this.customRegExpCollec[k]])) || + (this.customRegExpCollec[k].length > 2 && this.customRegExpCollec[k][0] === '[' && + this.customRegExpCollec[k][this.customRegExpCollec[k].length - 1] === ']') || + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters) && + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters[this.customRegExpCollec[k]]))))) && (maskValue !== '')) { + value += maskValue[i]; + } + } + ++k; + } + } + if (this.mask === null || this.mask === '' && this.value !== undefined) { + value = maskValue; + } + return value; +} +function pushIntoRegExpCollec(value) { + for (var k = 0; k < value.length; k++) { + this.hiddenMask += value[k]; + if (value[k] !== '\\') { + this.customRegExpCollec.push(value[k]); + } + } +} +function maskInputMouseDownHandler() { + this.isClicked = true; +} +function maskInputMouseUpHandler() { + this.isClicked = false; +} +function maskInputFocusHandler(event) { + var _this = this; + var inputElement = this.element; + var startIndex = 0; + var modelValue = strippedValue.call(this, inputElement); + var toAllowForward = false; + var toAllowBackward = false; + var eventArgs = { + selectionStart: inputElement.selectionStart, + event: event, + value: this.value, + maskedValue: inputElement.value, + container: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.inputObj) ? this.inputObj.container : this.inputObj, + selectionEnd: inputElement.selectionEnd + }; + if (!this.isClicked) { + triggerFocus.call(this, eventArgs, inputElement); + } + if (this.mask) { + if (!(!(modelValue === null || modelValue === '') || this.floatLabelType === 'Always' || + this.placeholder === null || this.placeholder === '')) { + inputElement.value = this.promptMask; + } + setTimeout(function () { + if (inputElement.selectionStart === _this.promptMask.length || + inputElement.value[inputElement.selectionStart] === _this.promptChar) { + toAllowForward = true; + } + else { + for (var i = inputElement.selectionStart; i < _this.promptMask.length; i++) { + if (inputElement.value[i] !== _this.promptChar) { + if ((inputElement.value[i] !== _this.promptMask[i])) { + toAllowForward = false; + break; + } + } + else { + toAllowForward = true; + break; + } + } + } + }); + setTimeout(function () { + var backSelectionStart = inputElement.selectionStart - 1; + if (backSelectionStart === _this.promptMask.length - 1 || + inputElement.value[backSelectionStart] === _this.promptChar) { + toAllowBackward = true; + } + else { + for (var i = backSelectionStart; i >= 0; i--) { + if (inputElement.value[i] !== _this.promptChar) { + if ((inputElement.value[i] !== _this.promptMask[i])) { + toAllowBackward = false; + break; + } + } + else { + toAllowBackward = true; + break; + } + } + } + }); + if ((this.isClicked || (this.floatLabelType !== 'Always' && + ((modelValue === null || modelValue === '') && + (this.placeholder !== null && this.placeholder !== ''))))) { + for (startIndex = 0; startIndex < this.promptMask.length; startIndex++) { + if (inputElement.value[startIndex] === this.promptChar) { + setTimeout(function () { + if (toAllowForward || toAllowBackward) { + inputElement.selectionEnd = startIndex; + inputElement.selectionStart = startIndex; + } + eventArgs = { + selectionStart: inputElement.selectionStart, + event: event, + value: _this.value, + maskedValue: inputElement.value, + container: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.inputObj) ? _this.inputObj.container : _this.inputObj, + selectionEnd: inputElement.selectionEnd + }; + triggerFocus.call(_this, eventArgs, inputElement); + }, 110); + break; + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(inputElement.value.match(escapeRegExp(this.promptChar)))) { + eventArgs = { + selectionStart: inputElement.selectionStart, + event: event, + value: this.value, + maskedValue: inputElement.value, + container: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.inputObj) ? this.inputObj.container : this.inputObj, + selectionEnd: inputElement.selectionEnd + }; + triggerFocus.call(this, eventArgs, inputElement); + } + this.isClicked = false; + } + } +} +function triggerFocus(eventArgs, inputElement) { + this.trigger('focus', eventArgs, function (eventArgs) { + inputElement.selectionStart = eventArgs.selectionStart; + inputElement.selectionEnd = eventArgs.selectionEnd; + }); +} +function escapeRegExp(text) { + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(text) ? text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&') : text; +} +function maskInputBlurHandler(event) { + this.blurEventArgs = { + event: event, + value: this.value, + maskedValue: this.element.value, + container: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.inputObj) ? this.inputObj.container : this.inputObj + }; + this.trigger('blur', this.blurEventArgs); + if (this.mask) { + this.isFocus = false; + if (this.placeholder && this.element.value === this.promptMask && this.floatLabelType !== 'Always') { + setElementValue.call(this, ''); + var labelElement = this.element.parentNode.querySelector('.e-float-text'); + if (this.floatLabelType === 'Auto' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(labelElement) && labelElement.classList.contains(TOPLABEL)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([labelElement], TOPLABEL); + } + } + } +} +function maskInputPasteHandler(event) { + var _this = this; + if (this.mask && !this.readonly) { + var sIndex_1 = this.element.selectionStart; + var eIndex_1 = this.element.selectionEnd; + var oldValue_1 = this.element.value; + setElementValue.call(this, ''); + this._callPasteHandler = true; + setTimeout(function () { + var value = _this.element.value.replace(/ /g, ''); + if (_this.redoCollec.length > 0 && _this.redoCollec[0].value === _this.element.value) { + value = strippedValue.call(_this, _this.element); + } + setElementValue.call(_this, oldValue_1); + _this.element.selectionStart = sIndex_1; + _this.element.selectionEnd = eIndex_1; + var i = 0; + _this.maskKeyPress = true; + do { + validateValue.call(_this, value[i], false, null); + ++i; + } while (i < value.length); + _this.maskKeyPress = false; + _this._callPasteHandler = false; + if (_this.element.value === oldValue_1) { + var i_1 = 0; + _this.maskKeyPress = true; + do { + validateValue.call(_this, value[i_1], false, null); + ++i_1; + } while (i_1 < value.length); + _this.maskKeyPress = false; + } + else { + triggerMaskChangeEvent.call(_this, event, oldValue_1); + } + }, 1); + } +} +function maskInputCutHandler(event) { + var _this = this; + if (this.mask && !this.readonly) { + var preValue_1 = this.element.value; + var sIndex_2 = this.element.selectionStart; + var eIndex = this.element.selectionEnd; + this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd }); + var value_1 = this.element.value.substring(0, sIndex_2) + this.promptMask.substring(sIndex_2, eIndex) + + this.element.value.substring(eIndex); + setTimeout(function () { + setElementValue.call(_this, value_1); + _this.element.selectionStart = _this.element.selectionEnd = sIndex_2; + if (_this.element.value !== preValue_1) { + triggerMaskChangeEvent.call(_this, event, null); + } + }, 0); + } +} +function maskInputDropHandler(event) { + event.preventDefault(); +} +function maskInputHandler(event) { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIE === true && this.element.value === '' && this.floatLabelType === 'Never') { + return; + } + var eventArgs = { ctrlKey: false, keyCode: 229 }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(event, eventArgs); + if (this.mask) { + if (this.element.value === '') { + this.redoCollec.unshift({ + value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd + }); + } + if (this.element.value.length === 1) { + this.element.value = this.element.value + this.promptMask; + this.element.setSelectionRange(1, 1); + } + if (!this._callPasteHandler) { + removeMaskInputValues.call(this, event); + } + if (this.element.value.length > this.promptMask.length) { + var startIndex = this.element.selectionStart; + var addedValues = this.element.value.length - this.promptMask.length; + var value = this.element.value.substring(startIndex - addedValues, startIndex); + this.maskKeyPress = false; + var i = 0; + do { + validateValue.call(this, value[i], event.ctrlKey, event); + ++i; + } while (i < value.length); + if (this.element.value !== this.preEleVal) { + triggerMaskChangeEvent.call(this, event, null); + } + } + var val = strippedValue.call(this, this.element); + this.prevValue = val; + this.value = val; + if (val === '') { + setElementValue.call(this, this.promptMask); + this.element.setSelectionRange(0, 0); + } + } +} +function maskInputKeyDownHandler(event) { + if (this.mask && !this.readonly) { + if (event.keyCode !== 229) { + if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) { + event.preventDefault(); + } + removeMaskInputValues.call(this, event); + } + var startValue = this.element.value; + if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) { + var collec = void 0; + if (event.keyCode === 90 && this.undoCollec.length > 0 && startValue !== this.undoCollec[this.undoCollec.length - 1].value) { + collec = this.undoCollec[this.undoCollec.length - 1]; + this.redoCollec.unshift({ + value: this.element.value, startIndex: this.element.selectionStart, + endIndex: this.element.selectionEnd + }); + setElementValue.call(this, collec.value); + this.element.selectionStart = collec.startIndex; + this.element.selectionEnd = collec.endIndex; + this.undoCollec.splice(this.undoCollec.length - 1, 1); + } + else if (event.keyCode === 89 && this.redoCollec.length > 0 && startValue !== this.redoCollec[0].value) { + collec = this.redoCollec[0]; + this.undoCollec.push({ + value: this.element.value, startIndex: this.element.selectionStart, + endIndex: this.element.selectionEnd + }); + setElementValue.call(this, collec.value); + this.element.selectionStart = collec.startIndex; + this.element.selectionEnd = collec.endIndex; + this.redoCollec.splice(0, 1); + } + } + } +} +function mobileRemoveFunction() { + var collec; + var sIndex = this.element.selectionStart; + var eIndex = this.element.selectionEnd; + if (this.redoCollec.length > 0) { + collec = this.redoCollec[0]; + setElementValue.call(this, collec.value); + if ((collec.startIndex - sIndex) === 1) { + this.element.selectionStart = collec.startIndex; + this.element.selectionEnd = collec.endIndex; + } + else { + this.element.selectionStart = sIndex + 1; + this.element.selectionEnd = eIndex + 1; + } + } + else { + setElementValue.call(this, this.promptMask); + this.element.selectionStart = this.element.selectionEnd = sIndex; + } +} +function autoFillMaskInputValues(isRemove, oldEventVal, event) { + if (event.type === 'input') { + isRemove = false; + oldEventVal = this.element.value; + setElementValue.call(this, this.promptMask); + setMaskValue.call(this, oldEventVal); + } + return isRemove; +} +function removeMaskInputValues(event) { + var isRemove = false; + var oldEventVal; + var isDeleted = false; + if (this.element.value.length < this.promptMask.length) { + isRemove = true; + oldEventVal = this.element.value; + isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event); + mobileRemoveFunction.call(this); + } + if (this.element.value.length >= this.promptMask.length && event.type === 'input') { + isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event); + } + var initStartIndex = this.element.selectionStart; + var initEndIndex = this.element.selectionEnd; + var startIndex = this.element.selectionStart; + var endIndex = this.element.selectionEnd; + var maskValue = this.hiddenMask.replace(/[>|\\<]/g, ''); + var curMask = maskValue[startIndex - 1]; + var deleteEndIndex = this.element.selectionEnd; + if (isRemove || event.keyCode === 8 || event.keyCode === 46) { + this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: endIndex }); + var multipleDel = false; + var preValue = this.element.value; + if (startIndex > 0 || ((event.keyCode === 8 || event.keyCode === 46) && startIndex < this.element.value.length + && ((this.element.selectionEnd - startIndex) !== this.element.value.length))) { + var index = startIndex; + if (startIndex !== endIndex) { + startIndex = endIndex; + if (event.keyCode === 46) { + multipleDel = true; + } + } + else if (event.keyCode === 46) { + ++index; + } + else { + --index; + } + for (var k = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? k > index : k < index; (event.keyCode === 8 || isRemove || multipleDel) ? k-- : k++) { + for (var i = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? i > 0 : i < this.element.value.length; (event.keyCode === 8 || isRemove || multipleDel) ? i-- : i++) { + var sIndex = void 0; + if (((event.keyCode === 8 || multipleDel) && ((initStartIndex !== initEndIndex && initStartIndex !== startIndex) || + (initStartIndex === initEndIndex))) || isRemove) { + curMask = maskValue[i - 1]; + sIndex = startIndex - 1; + } + else { + curMask = maskValue[i]; + sIndex = startIndex; + ++startIndex; + } + var oldValue = this.element.value[sIndex]; + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.regExpCollec["" + curMask]) && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters) + && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters["" + curMask])) + && ((this.hiddenMask[sIndex] !== this.promptChar && this.customRegExpCollec[sIndex][0] !== '[' + && this.customRegExpCollec[sIndex][this.customRegExpCollec[sIndex].length - 1] !== ']'))) + || (this.promptMask[sIndex] !== this.promptChar && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters))) { + this.element.selectionStart = this.element.selectionEnd = sIndex; + event.preventDefault(); + if (event.keyCode === 46 && !multipleDel) { + ++this.element.selectionStart; + } + } + else { + var value = this.element.value; + var prompt_1 = this.promptChar; + var elementValue = value.substring(0, sIndex) + prompt_1 + value.substring(startIndex, value.length); + setElementValue.call(this, elementValue); + event.preventDefault(); + if (event.keyCode === 46 && !multipleDel) { + sIndex++; + } + this.element.selectionStart = this.element.selectionEnd = sIndex; + isDeleted = true; + } + startIndex = this.element.selectionStart; + if ((!isDeleted && event.keyCode === 8) || multipleDel || (!isDeleted && !(event.keyCode === 46))) { + sIndex = startIndex - 1; + } + else { + sIndex = startIndex; + isDeleted = false; + } + oldValue = this.element.value[sIndex]; + if (((initStartIndex !== initEndIndex) && (this.element.selectionStart === initStartIndex)) + || (this.promptMask[sIndex] === this.promptChar) || ((oldValue !== this.promptMask[sIndex]) && + (this.promptMask[sIndex] !== this.promptChar) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters))) { + break; + } + } + } + } + if (event.keyCode === 46 && multipleDel && isDeleted) { + this.element.selectionStart = this.element.selectionEnd = deleteEndIndex; + } + if (this.element.selectionStart === 0 && (this.element.selectionEnd === this.element.value.length)) { + setElementValue.call(this, this.promptMask); + event.preventDefault(); + this.element.selectionStart = this.element.selectionEnd = startIndex; + } + this.redoCollec.unshift({ + value: this.element.value, startIndex: this.element.selectionStart, + endIndex: this.element.selectionEnd + }); + if (this.element.value !== preValue) { + triggerMaskChangeEvent.call(this, event, oldEventVal); + } + } +} +function maskInputKeyPressHandler(event) { + if (this.mask && !this.readonly) { + var oldValue = this.element.value; + if (!(event.ctrlKey || event.metaKey) || ((event.ctrlKey || event.metaKey) && event.code !== 'KeyA' && event.code !== 'KeyY' + && event.code !== 'KeyZ' && event.code !== 'KeyX' && event.code !== 'KeyC' && event.code !== 'KeyV')) { + this.maskKeyPress = true; + var key = event.key; + if (key === 'Spacebar') { + key = String.fromCharCode(event.keyCode); + } + if (!key) { + this.isIosInvalid = true; + validateValue.call(this, String.fromCharCode(event.keyCode), event.ctrlKey, event); + event.preventDefault(); + this.isIosInvalid = false; + } + else if (key && key.length === 1) { + validateValue.call(this, key, event.ctrlKey, event); + event.preventDefault(); + } + if (event.keyCode === 32 && key === ' ' && this.promptChar === ' ') { + this.element.selectionStart = this.element.selectionEnd = this.element.selectionStart - key.length; + } + } + if (this.element.value !== oldValue) { + triggerMaskChangeEvent.call(this, event, oldValue); + } + } +} +// eslint-disable-next-line @typescript-eslint/no-unused-vars +function triggerMaskChangeEvent(event, oldValue) { + var prevOnChange = this.isProtectedOnChange; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.changeEventArgs) && !this.isInitial) { + var eventArgs = {}; + this.changeEventArgs = { value: this.element.value, maskedValue: this.element.value, isInteraction: false, isInteracted: false }; + if (this.mask) { + this.changeEventArgs.value = strippedValue.call(this, this.element); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(event)) { + this.changeEventArgs.isInteracted = true; + this.changeEventArgs.isInteraction = true; + this.changeEventArgs.event = event; + } + this.isProtectedOnChange = true; + this.value = this.changeEventArgs.value; + this.isProtectedOnChange = prevOnChange; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, this.changeEventArgs); + /* istanbul ignore next */ + if (this.isAngular && this.preventChange) { + this.preventChange = false; + } + else { + this.trigger('change', eventArgs); + } + } + this.preEleVal = this.element.value; + this.prevValue = strippedValue.call(this, this.element); +} +function maskInputKeyUpHandler(event) { + if (this.mask && !this.readonly) { + var collec = void 0; + if (!this.maskKeyPress && event.keyCode === 229) { + var oldEventVal = void 0; + if (this.element.value.length === 1) { + this.element.value = this.element.value + this.promptMask; + this.element.setSelectionRange(1, 1); + } + if (this.element.value.length > this.promptMask.length) { + var startIndex = this.element.selectionStart; + var addedValues = this.element.value.length - this.promptMask.length; + var val_1 = this.element.value.substring(startIndex - addedValues, startIndex); + if (this.undoCollec.length > 0) { + collec = this.undoCollec[this.undoCollec.length - 1]; + var startIndex_1 = this.element.selectionStart; + oldEventVal = collec.value; + var oldVal = collec.value.substring(startIndex_1 - addedValues, startIndex_1); + collec = this.redoCollec[0]; + val_1 = val_1.trim(); + var isSpace = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isAndroid && val_1 === ''; + if (!isSpace && oldVal !== val_1 && collec.value.substring(startIndex_1 - addedValues, startIndex_1) !== val_1) { + validateValue.call(this, val_1, event.ctrlKey, event); + } + else if (isSpace) { + preventUnsupportedValues.call(this, event, startIndex_1 - 1, this.element.selectionEnd - 1, val_1, event.ctrlKey, false); + } + } + else { + oldEventVal = this.promptMask; + validateValue.call(this, val_1, event.ctrlKey, event); + } + this.maskKeyPress = false; + triggerMaskChangeEvent.call(this, event, oldEventVal); + } + } + else { + removeMaskError.call(this); + } + var val = strippedValue.call(this, this.element); + if (!((this.element.selectionStart === 0) && (this.promptMask === this.element.value) && val === '') + || (val === '' && this.value !== val)) { + this.prevValue = val; + this.value = val; + } + } + else { + triggerMaskChangeEvent.call(this, event); + } + if (this.element.selectionStart === 0 && this.element.selectionEnd === 0) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var temp_1 = this.element; + setTimeout(function () { + temp_1.setSelectionRange(0, 0); + }, 0); + } +} +function mobileSwipeCheck(key) { + if (key.length > 1 && ((this.promptMask.length + key.length) < this.element.value.length)) { + var elementValue = this.redoCollec[0].value.substring(0, this.redoCollec[0].startIndex) + key + + this.redoCollec[0].value.substring(this.redoCollec[0].startIndex, this.redoCollec[0].value.length); + setElementValue.call(this, elementValue); + this.element.selectionStart = this.element.selectionEnd = this.redoCollec[0].startIndex + key.length; + } + this.element.selectionStart = this.element.selectionStart - key.length; + this.element.selectionEnd = this.element.selectionEnd - key.length; +} +function mobileValidation(key) { + if (!this.maskKeyPress) { + mobileSwipeCheck.call(this, key); + } +} +function validateValue(key, isCtrlKey, event) { + mobileValidation.call(this, key); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(key)) { + return; + } + var startIndex = this.element.selectionStart; + var initStartIndex = startIndex; + var curMask; + var allowText = false; + var value = this.element.value; + var eventOldVal; + var prevSupport = false; + var isEqualVal = false; + for (var k = 0; k < key.length; k++) { + var keyValue = key[k]; + startIndex = this.element.selectionStart; + if (!this.maskKeyPress && initStartIndex === startIndex) { + startIndex = startIndex + k; + } + if ((!this.maskKeyPress || startIndex < this.promptMask.length)) { + for (var i = startIndex; i < this.promptMask.length; i++) { + var maskValue = this.escapeMaskValue; + curMask = maskValue[startIndex]; + if (this.hiddenMask[startIndex] === '\\' && this.hiddenMask[startIndex + 1] === key) { + isEqualVal = true; + } + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.regExpCollec["" + curMask]) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters) + || (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters["" + curMask]))) + && ((this.hiddenMask[startIndex] !== this.promptChar && this.customRegExpCollec[startIndex][0] !== '[' + && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] !== ']'))) + || ((this.promptMask[startIndex] !== this.promptChar) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters)) + || (this.promptChar === curMask && this.escapeMaskValue === this.mask)) { + this.element.selectionStart = this.element.selectionEnd = startIndex + 1; + startIndex = this.element.selectionStart; + curMask = this.hiddenMask[startIndex]; + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customCharacters["" + curMask])) { + var customValStr = this.customCharacters["" + curMask]; + var customValArr = customValStr.split(','); + for (var i = 0; i < customValArr.length; i++) { + /* eslint-disable-next-line security/detect-non-literal-regexp */ + if (keyValue.match(new RegExp('[' + customValArr[i] + ']'))) { + allowText = true; + break; + } + } + /* eslint-disable-next-line security/detect-non-literal-regexp */ + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.regExpCollec["" + curMask]) && keyValue.match(new RegExp(this.regExpCollec["" + curMask])) + && this.promptMask[startIndex] === this.promptChar) { + allowText = true; + } + else if (this.promptMask[startIndex] === this.promptChar && this.customRegExpCollec[startIndex][0] === '[' + && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] === ']' + /* eslint-disable-next-line security/detect-non-literal-regexp */ + && keyValue.match(new RegExp(this.customRegExpCollec[startIndex]))) { + allowText = true; + } + if ((!this.maskKeyPress || startIndex < this.hiddenMask.length) && allowText) { + if (k === 0) { + if (this.maskKeyPress) { + this.undoCollec.push({ value: value, startIndex: startIndex, endIndex: startIndex }); + } + else { + var sIndex = this.element.selectionStart; + var eIndex = this.element.selectionEnd; + if (this.redoCollec.length > 0) { + eventOldVal = this.redoCollec[0].value; + setElementValue.call(this, eventOldVal); + this.undoCollec.push(this.redoCollec[0]); + } + else { + this.undoCollec.push({ value: this.promptMask, startIndex: startIndex, endIndex: startIndex }); + eventOldVal = this.promptMask; + setElementValue.call(this, eventOldVal); + } + this.element.selectionStart = sIndex; + this.element.selectionEnd = eIndex; + } + } + startIndex = this.element.selectionStart; + applySupportedValues.call(this, event, startIndex, keyValue, eventOldVal, isEqualVal); + prevSupport = true; + if (k === key.length - 1) { + this.redoCollec.unshift({ + value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd + }); + } + allowText = false; + } + else { + startIndex = this.element.selectionStart; + preventUnsupportedValues.call(this, event, startIndex, initStartIndex, key, isCtrlKey, prevSupport); + } + if (k === key.length - 1 && !allowText) { + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isAndroid || (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isAndroid && startIndex < this.promptMask.length)) { + this.redoCollec.unshift({ + value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd + }); + } + } + } + else { + if (key.length === 1 && !isCtrlKey && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(event)) { + addMaskErrorClass.call(this); + } + } + } +} +function applySupportedValues(event, startIndex, keyValue, eventOldVal, isEqualVal) { + if (this.hiddenMask.length > this.promptMask.length) { + keyValue = changeToLowerUpperCase.call(this, keyValue, this.element.value); + } + if (!isEqualVal) { + var value = this.element.value; + var elementValue = value.substring(0, startIndex) + keyValue + value.substring(startIndex + 1, value.length); + setElementValue.call(this, elementValue); + this.element.selectionStart = this.element.selectionEnd = startIndex + 1; + } +} +function preventUnsupportedValues(event, sIdx, idx, key, ctrl, chkSupport) { + if (!this.maskKeyPress) { + var value = this.element.value; + if (sIdx >= this.promptMask.length) { + setElementValue.call(this, value.substring(0, sIdx)); + } + else { + if (idx === sIdx) { + setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx + 1, value.length)); + } + else { + if (this.promptMask.length === this.element.value.length) { + setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx, value.length)); + } + else { + setElementValue.call(this, value.substring(0, idx) + value.substring(idx + 1, value.length)); + } + } + this.element.selectionStart = this.element.selectionEnd = (chkSupport || + this.element.value[idx] !== this.promptChar) ? sIdx : idx; + } + addMaskErrorClass.call(this); + } + if (key.length === 1 && !ctrl && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(event)) { + addMaskErrorClass.call(this); + } +} +function addMaskErrorClass() { + var _this = this; + var parentElement = this.element.parentNode; + var timer = 200; + if (parentElement.classList.contains(INPUTGROUP) || parentElement.classList.contains(FLOATINPUT)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([parentElement], ERROR); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], ERROR); + } + if (this.isIosInvalid === true) { + timer = 400; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-invalid': 'true' }); + setTimeout(function () { + if (!_this.maskKeyPress) { + removeMaskError.call(_this); + } + }, timer); +} +function removeMaskError() { + var parentElement = this.element.parentNode; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentElement)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([parentElement], ERROR); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], ERROR); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-invalid': 'false' }); +} +/** + * Validates user input using masking elements '<' , '>' and '|'. + * + * @hidden + */ +function changeToLowerUpperCase(key, value) { + var promptMask; + var i; + var curVal = value; + var caseCount = 0; + for (i = 0; i < this.hiddenMask.length; i++) { + if (this.hiddenMask[i] === '\\') { + promptMask = curVal.substring(0, i) + '\\' + curVal.substring(i, curVal.length); + } + if (this.hiddenMask[i] === '>' || this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|') { + if (this.hiddenMask[i] !== curVal[i]) { + promptMask = curVal.substring(0, i) + this.hiddenMask[i] + curVal.substring(i, curVal.length); + } + ++caseCount; + } + if (promptMask) { + if (((promptMask[i] === this.promptChar) && (i > this.element.selectionStart)) || + (this.element.value.indexOf(this.promptChar) < 0 && (this.element.selectionStart + caseCount) === i)) { + caseCount = 0; + break; + } + curVal = promptMask; + } + } + while (i >= 0 && promptMask) { + if (i === 0 || promptMask[i - 1] !== '\\') { + if (promptMask[i] === '>') { + key = key.toUpperCase(); + break; + } + else if (promptMask[i] === '<') { + key = key.toLowerCase(); + break; + } + else if (promptMask[i] === '|') { + break; + } + } + --i; + } + return key; +} +/** + * To set updated values in the MaskedTextBox. + * + * @hidden + */ +function setMaskValue(val) { + if (this.mask && val !== undefined && (this.prevValue === undefined || this.prevValue !== val)) { + this.maskKeyPress = true; + setElementValue.call(this, this.promptMask); + if (val !== '' && !(val === null && this.floatLabelType === 'Never' && this.placeholder)) { + this.element.selectionStart = 0; + this.element.selectionEnd = 0; + } + if (val !== null) { + for (var i = 0; i < val.length; i++) { + validateValue.call(this, val[i], false, null); + } + } + var newVal = strippedValue.call(this, this.element); + this.prevValue = newVal; + this.value = newVal; + triggerMaskChangeEvent.call(this, null, null); + this.maskKeyPress = false; + var labelElement = this.element.parentNode.querySelector('.e-float-text'); + if (this.element.value === this.promptMask && this.floatLabelType === 'Auto' && this.placeholder && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(labelElement) && labelElement.classList.contains(TOPLABEL) && !this.isFocus) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([labelElement], TOPLABEL); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([labelElement], BOTTOMLABEL); + setElementValue.call(this, ''); + } + } + if (this.mask === null || this.mask === '' && this.value !== undefined) { + setElementValue.call(this, this.value); + } +} +/** + * To set updated values in the input element. + * + * @hidden + */ +function setElementValue(val, element) { + if (!this.isFocus && this.floatLabelType === 'Auto' && this.placeholder && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value)) { + val = ''; + } + var value = strippedValue.call(this, (element ? element : this.element), val); + if (value === null || value === '') { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue(val, (element ? element : this.element), this.floatLabelType, false); + if (this.showClearButton) { + this.inputObj.clearButton.classList.add('e-clear-icon-hide'); + } + } + else { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton); + } +} +/** + * Provide mask support to input textbox through utility method. + * + * @hidden + */ +function maskInput(args) { + var inputEle = getMaskInput(args); + applyMask.call(inputEle); + var val = strippedValue.call(this, this.element); + this.prevValue = val; + this.value = val; + if (args.mask) { + unwireEvents.call(inputEle); + wireEvents.call(inputEle); + } +} +function getMaskInput(args) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.element], UTILMASK); + var inputEle = { + element: args.element, + mask: args.mask, + promptMask: '', + hiddenMask: '', + escapeMaskValue: '', + promptChar: args.promptChar ? (args.promptChar.length > 1) ? args.promptChar = args.promptChar[0] + : args.promptChar : '_', + value: args.value ? args.value : null, + regExpCollec: regularExpressions, + customRegExpCollec: [], + customCharacters: args.customCharacters, + undoCollec: [], + redoCollec: [], + maskKeyPress: false, + prevValue: '' + }; + createMask.call(inputEle); + return inputEle; +} +/** + * Gets raw value of the textbox which has been masked through utility method. + * + * @hidden + */ +function getVal(args) { + return strippedValue.call(getUtilMaskEle(args), args.element); +} +/** + * Gets masked value of the textbox which has been masked through utility method. + * + * @hidden + */ +function getMaskedVal(args) { + return unstrippedValue.call(getUtilMaskEle(args), args.element); +} +function getUtilMaskEle(args) { + var inputEle; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args) && args.element.classList.contains(UTILMASK)) { + inputEle = getMaskInput(args); + } + return inputEle; +} +/** + * Arguments to perform undo and redo functionalities. + * + * @hidden + */ +var MaskUndo = /** @__PURE__ @class */ (function () { + function MaskUndo() { + } + return MaskUndo; +}()); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var maskUndo = new MaskUndo(); +/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/index.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/index.js ***! + \*************************************************************************/ +/*! exports provided: regularExpressions, createMask, applyMask, wireEvents, unwireEvents, bindClearEvent, unstrippedValue, strippedValue, maskInputMouseDownHandler, maskInputMouseUpHandler, maskInputFocusHandler, triggerFocus, escapeRegExp, maskInputBlurHandler, maskInputDropHandler, mobileRemoveFunction, setMaskValue, setElementValue, maskInput, getVal, getMaskedVal, MaskUndo, MaskedTextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _base_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "regularExpressions", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["regularExpressions"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createMask", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["createMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMask", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["applyMask"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "wireEvents", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["wireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unwireEvents", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["unwireEvents"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindClearEvent", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["bindClearEvent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "unstrippedValue", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["unstrippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "strippedValue", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["strippedValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseDownHandler", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInputMouseDownHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputMouseUpHandler", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInputMouseUpHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputFocusHandler", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInputFocusHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "triggerFocus", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["triggerFocus"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "escapeRegExp", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["escapeRegExp"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputBlurHandler", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInputBlurHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInputDropHandler", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInputDropHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mobileRemoveFunction", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["mobileRemoveFunction"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setMaskValue", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["setMaskValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setElementValue", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["setElementValue"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maskInput", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["maskInput"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getVal", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["getVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaskedVal", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["getMaskedVal"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskUndo", function() { return _base_index__WEBPACK_IMPORTED_MODULE_0__["MaskUndo"]; }); + +/* harmony import */ var _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./maskedtextbox/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextBox", function() { return _maskedtextbox_index__WEBPACK_IMPORTED_MODULE_1__["MaskedTextBox"]; }); + +/** + * MaskedTextbox modules + */ + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/index.js": +/*!***************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/index.js ***! + \***************************************************************************************/ +/*! exports provided: MaskedTextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _maskedtextbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./maskedtextbox */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/maskedtextbox.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaskedTextBox", function() { return _maskedtextbox__WEBPACK_IMPORTED_MODULE_0__["MaskedTextBox"]; }); + +/** + * MaskedTextbox modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/maskedtextbox.js": +/*!***********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/maskedtextbox/maskedtextbox.js ***! + \***********************************************************************************************/ +/*! exports provided: MaskedTextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaskedTextBox", function() { return MaskedTextBox; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _input_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../input/input */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js"); +/* harmony import */ var _base_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../base/index */ "./ej2-resources/22.1.37/scripts/ej2-inputs/maskedtextbox/base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +var ROOT = 'e-control-wrapper e-mask'; +var INPUT = 'e-input'; +var COMPONENT = 'e-maskedtextbox'; +var CONTROL = 'e-control'; +var MASKINPUT_FOCUS = 'e-input-focus'; +var wrapperAttr = ['title', 'style', 'class']; +/** + * The MaskedTextBox allows the user to enter the valid input only based on the provided mask. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var MaskedTextBox = /** @__PURE__ @class */ (function (_super) { + __extends(MaskedTextBox, _super); + /** + * + * @param {MaskedTextBoxModel} options - Specifies the MaskedTextBox model. + * @param {string | HTMLElement | HTMLInputElement} element - Specifies the element to render as component. + * @private + */ + function MaskedTextBox(options, element) { + var _this = _super.call(this, options, element) || this; + _this.initInputValue = ''; + _this.isAngular = false; + _this.preventChange = false; + _this.isClicked = false; + _this.maskOptions = options; + return _this; + } + /** + * Gets the component name. + * + * @returns {string} Returns the component name. + * @private + */ + MaskedTextBox.prototype.getModuleName = function () { + return 'maskedtextbox'; + }; + /** + * Initializes the event handler + * + * @returns {void} + * @private + */ + MaskedTextBox.prototype.preRender = function () { + this.promptMask = ''; + this.hiddenMask = ''; + this.escapeMaskValue = ''; + this.regExpCollec = _base_index__WEBPACK_IMPORTED_MODULE_2__["regularExpressions"]; + this.customRegExpCollec = []; + this.undoCollec = []; + this.redoCollec = []; + this.changeEventArgs = {}; + this.focusEventArgs = {}; + this.blurEventArgs = {}; + this.maskKeyPress = false; + this.isFocus = false; + this.isInitial = false; + this.isIosInvalid = false; + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + this.cloneElement = this.element.cloneNode(true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']); + this.angularTagName = null; + this.formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (this.element.tagName === 'EJS-MASKEDTEXTBOX') { + this.angularTagName = this.element.tagName; + var input = this.createElement('input'); + for (var i = 0; i < this.element.attributes.length; i++) { + input.setAttribute(this.element.attributes[i].nodeName, this.element.attributes[i].nodeValue); + input.innerHTML = this.element.innerHTML; + } + if (this.element.hasAttribute('id')) { + this.element.removeAttribute('id'); + } + this.element.classList.remove('e-control', 'e-maskedtextbox'); + this.element.classList.add('e-mask-container'); + this.element.appendChild(input); + this.element = input; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, this.element); + } + this.updateHTMLAttrToElement(); + this.checkHtmlAttributes(false); + if (this.formElement) { + this.initInputValue = this.value; + } + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Gets the properties to be maintained in the persisted state. + * + * @returns {string} + */ + MaskedTextBox.prototype.getPersistData = function () { + var keyEntity = ['value']; + return this.addOnPersist(keyEntity); + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Initializes the component rendering. + * + * @returns {void} + * @private + */ + MaskedTextBox.prototype.render = function () { + if (this.element.tagName.toLowerCase() === 'input') { + if (this.floatLabelType === 'Never') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], INPUT); + } + this.createWrapper(); + this.updateHTMLAttrToWrapper(); + if (this.element.name === '') { + this.element.setAttribute('name', this.element.id); + } + this.isInitial = true; + this.resetMaskedTextBox(); + this.isInitial = false; + this.setMaskPlaceholder(true, false); + this.setWidth(this.width); + this.preEleVal = this.element.value; + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.version === '11.0' || _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'edge')) { + this.element.blur(); + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos) { + this.element.blur(); + } + if (this.element.getAttribute('value') || this.value) { + this.element.setAttribute('value', this.element.value); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, "fieldset")) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, "fieldset").disabled) { + this.enabled = false; + } + this.renderComplete(); + } + }; + MaskedTextBox.prototype.updateHTMLAttrToElement = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (wrapperAttr.indexOf(key) < 0) { + this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + }; + MaskedTextBox.prototype.updateCssClass = function (newClass, oldClass) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setCssClass(this.getValidClassList(newClass), [this.inputObj.container], this.getValidClassList(oldClass)); + }; + MaskedTextBox.prototype.getValidClassList = function (maskClassName) { + var result = maskClassName; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(maskClassName) && maskClassName !== '') { + result = (maskClassName.replace(/\s+/g, ' ')).trim(); + } + return result; + }; + MaskedTextBox.prototype.updateHTMLAttrToWrapper = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (wrapperAttr.indexOf(key) > -1) { + if (key === 'class') { + var updatedClassValues = (this.htmlAttributes["" + key].replace(/\s+/g, ' ')).trim(); + if (updatedClassValues !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.inputObj.container], updatedClassValues.split(' ')); + } + } + else if (key === 'style') { + var maskStyle = this.inputObj.container.getAttribute(key); + maskStyle = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(maskStyle) ? (maskStyle + this.htmlAttributes["" + key]) : + this.htmlAttributes["" + key]; + this.inputObj.container.setAttribute(key, maskStyle); + } + else { + this.inputObj.container.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + } + }; + MaskedTextBox.prototype.resetMaskedTextBox = function () { + this.promptMask = ''; + this.hiddenMask = ''; + this.escapeMaskValue = ''; + this.customRegExpCollec = []; + this.undoCollec = []; + this.redoCollec = []; + if (this.promptChar.length > 1) { + this.promptChar = this.promptChar[0]; + } + _base_index__WEBPACK_IMPORTED_MODULE_2__["createMask"].call(this); + _base_index__WEBPACK_IMPORTED_MODULE_2__["applyMask"].call(this); + if (this.mask === null || this.mask === '' && this.value !== undefined) { + _base_index__WEBPACK_IMPORTED_MODULE_2__["setElementValue"].call(this, this.value); + } + var val = _base_index__WEBPACK_IMPORTED_MODULE_2__["strippedValue"].call(this, this.element); + this.prevValue = val; + this.value = val; + if (!this.isInitial) { + _base_index__WEBPACK_IMPORTED_MODULE_2__["unwireEvents"].call(this); + } + _base_index__WEBPACK_IMPORTED_MODULE_2__["wireEvents"].call(this); + }; + MaskedTextBox.prototype.setMaskPlaceholder = function (setVal, dynamicPlaceholder) { + if (dynamicPlaceholder || this.placeholder) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.element); + if ((this.element.value === this.promptMask && setVal && this.floatLabelType !== 'Always') || + this.element.value === this.promptMask && this.floatLabelType === 'Never') { + _base_index__WEBPACK_IMPORTED_MODULE_2__["setElementValue"].call(this, ''); + } + } + }; + MaskedTextBox.prototype.setWidth = function (width) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(width)) { + if (typeof width === 'number') { + this.inputObj.container.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + this.element.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else if (typeof width === 'string') { + var elementWidth = (width.match(/px|%|em/)) ? (width) : (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width)); + this.inputObj.container.style.width = elementWidth; + this.element.style.width = elementWidth; + } + } + }; + MaskedTextBox.prototype.checkHtmlAttributes = function (isDynamic) { + var attributes = isDynamic ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) + : ['placeholder', 'disabled', 'value', 'readonly']; + for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) { + var key = attributes_1[_i]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute(key))) { + switch (key) { + case 'placeholder': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.maskOptions) || (this.maskOptions['placeholder'] === undefined)) || isDynamic) { + this.setProperties({ placeholder: this.element.placeholder }, !isDynamic); + } + break; + case 'disabled': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.maskOptions) || (this.maskOptions['enabled'] === undefined)) || isDynamic) { + var isEnabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' || + this.element.getAttribute(key) === 'true' ? false : true; + this.setProperties({ enabled: isEnabled }, !isDynamic); + } + break; + case 'value': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.maskOptions) || (this.maskOptions['value'] === undefined)) || isDynamic) { + this.setProperties({ value: this.element.value }, !isDynamic); + } + break; + case 'readonly': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.maskOptions) || (this.maskOptions['readonly'] === undefined)) || isDynamic) { + var isReadonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === '' + || this.element.getAttribute(key) === 'true' ? true : false; + this.setProperties({ readonly: isReadonly }, !isDynamic); + } + break; + } + } + } + }; + MaskedTextBox.prototype.createWrapper = function () { + var updatedCssClassValues = this.cssClass; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && this.cssClass !== '') { + updatedCssClassValues = this.getValidClassList(this.cssClass); + } + this.inputObj = _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].createInput({ + element: this.element, + floatLabelType: this.floatLabelType, + properties: { + enableRtl: this.enableRtl, + cssClass: updatedCssClassValues, + enabled: this.enabled, + readonly: this.readonly, + placeholder: this.placeholder, + showClearButton: this.showClearButton + } + }, this.createElement); + this.inputObj.container.setAttribute('class', ROOT + ' ' + this.inputObj.container.getAttribute('class')); + }; + /** + * Calls internally if any of the property value is changed. + * + * @param {MaskedTextBoxModel} newProp - Returns the dynamic property value of the component. + * @param {MaskedTextBoxModel} oldProp - Returns the previous property value of the component. + * @returns {void} + * @hidden + */ + MaskedTextBox.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'value': + _base_index__WEBPACK_IMPORTED_MODULE_2__["setMaskValue"].call(this, this.value); + if (this.placeholder && !this.isFocus) { + this.setMaskPlaceholder(false, false); + } + if (this.value === "") { + this.element.selectionStart = 0; + this.element.selectionEnd = 0; + } + break; + case 'placeholder': + this.setMaskPlaceholder(true, true); + break; + case 'width': + this.setWidth(newProp.width); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].calculateWidth(this.element, this.inputObj.container); + break; + case 'cssClass': + this.updateCssClass(newProp.cssClass, oldProp.cssClass); + break; + case 'enabled': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnabled(newProp.enabled, this.element, this.floatLabelType, this.inputObj.container); + break; + case 'readonly': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setReadonly(newProp.readonly, this.element); + break; + case 'enableRtl': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnableRtl(newProp.enableRtl, [this.inputObj.container]); + break; + case 'customCharacters': + this.customCharacters = newProp.customCharacters; + this.resetMaskedTextBox(); + break; + case 'showClearButton': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setClearButton(newProp.showClearButton, this.element, this.inputObj, undefined, this.createElement); + _base_index__WEBPACK_IMPORTED_MODULE_2__["bindClearEvent"].call(this); + break; + case 'floatLabelType': + this.floatLabelType = newProp.floatLabelType; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].removeFloating(this.inputObj); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement); + break; + case 'htmlAttributes': + this.updateHTMLAttrToElement(); + this.updateHTMLAttrToWrapper(); + this.checkHtmlAttributes(true); + break; + case 'mask': + { + var strippedValue_1 = this.value; + this.mask = newProp.mask; + this.updateValue(strippedValue_1); + } + break; + case 'promptChar': { + if (newProp.promptChar.length > 1) { + newProp.promptChar = newProp.promptChar[0]; + } + if (newProp.promptChar) { + this.promptChar = newProp.promptChar; + } + else { + this.promptChar = '_'; + } + /* eslint-disable-next-line security/detect-non-literal-regexp */ + var value = this.element.value.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar); + if (this.promptMask === this.element.value) { + /* eslint-disable-next-line security/detect-non-literal-regexp */ + value = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar); + } + /* eslint-disable-next-line security/detect-non-literal-regexp */ + this.promptMask = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar); + this.undoCollec = this.redoCollec = []; + _base_index__WEBPACK_IMPORTED_MODULE_2__["setElementValue"].call(this, value); + break; + } + } + } + this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange; + }; + MaskedTextBox.prototype.updateValue = function (strippedVal) { + this.resetMaskedTextBox(); + _base_index__WEBPACK_IMPORTED_MODULE_2__["setMaskValue"].call(this, strippedVal); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Gets the value of the MaskedTextBox with the masked format. + * By using `value` property, you can get the raw value of maskedtextbox without literals and prompt characters. + * + * @returns {string} + */ + MaskedTextBox.prototype.getMaskedValue = function () { + return _base_index__WEBPACK_IMPORTED_MODULE_2__["unstrippedValue"].call(this, this.element); + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Sets the focus to widget for interaction. + * + * @returns {void} + */ + MaskedTextBox.prototype.focusIn = function () { + if (document.activeElement !== this.element && this.enabled) { + this.isFocus = true; + this.element.focus(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.inputObj.container], [MASKINPUT_FOCUS]); + } + }; + /** + * Remove the focus from widget, if the widget is in focus state. + * + * @returns {void} + */ + MaskedTextBox.prototype.focusOut = function () { + if (document.activeElement === this.element && this.enabled) { + this.isFocus = false; + this.element.blur(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.inputObj.container], [MASKINPUT_FOCUS]); + } + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also it maintains the initial input element from the DOM. + * + * @method destroy + * @returns {void} + */ + MaskedTextBox.prototype.destroy = function () { + _base_index__WEBPACK_IMPORTED_MODULE_2__["unwireEvents"].call(this); + var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly', + 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-invalid']; + for (var i = 0; i < attrArray.length; i++) { + this.element.removeAttribute(attrArray[i]); + } + this.element.classList.remove('e-input'); + if (this.inputObj) { + this.inputObj.container.insertAdjacentElement('afterend', this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.inputObj.container); + } + this.blurEventArgs = null; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].destroy(); + this.changeEventArgs = null; + this.inputObj = null; + _super.prototype.destroy.call(this); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "placeholder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Never') + ], MaskedTextBox.prototype, "floatLabelType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], MaskedTextBox.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], MaskedTextBox.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MaskedTextBox.prototype, "readonly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MaskedTextBox.prototype, "showClearButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MaskedTextBox.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "mask", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('_') + ], MaskedTextBox.prototype, "promptChar", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MaskedTextBox.prototype, "customCharacters", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MaskedTextBox.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MaskedTextBox.prototype, "destroyed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MaskedTextBox.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MaskedTextBox.prototype, "focus", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MaskedTextBox.prototype, "blur", void 0); + MaskedTextBox = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], MaskedTextBox); + return MaskedTextBox; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/index.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/index.js ***! + \**************************************************************************/ +/*! exports provided: NumericTextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _numerictextbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numerictextbox */ "./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/numerictextbox.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumericTextBox", function() { return _numerictextbox__WEBPACK_IMPORTED_MODULE_0__["NumericTextBox"]; }); + +/** + * NumericTextBox modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/numerictextbox.js": +/*!***********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/numerictextbox/numerictextbox.js ***! + \***********************************************************************************/ +/*! exports provided: NumericTextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumericTextBox", function() { return NumericTextBox; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _input_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../input/input */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +var ROOT = 'e-control-wrapper e-numeric'; +var SPINICON = 'e-input-group-icon'; +var SPINUP = 'e-spin-up'; +var SPINDOWN = 'e-spin-down'; +var ERROR = 'e-error'; +var INCREMENT = 'increment'; +var DECREMENT = 'decrement'; +var INTREGEXP = new RegExp('^(-)?(\\d*)$'); +var DECIMALSEPARATOR = '.'; +var COMPONENT = 'e-numerictextbox'; +var CONTROL = 'e-control'; +var NUMERIC_FOCUS = 'e-input-focus'; +var HIDDENELEMENT = 'e-numeric-hidden'; +var wrapperAttributes = ['title', 'style', 'class']; +var selectionTimeOut = 0; +/** + * Represents the NumericTextBox component that allows the user to enter only numeric values. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var NumericTextBox = /** @__PURE__ @class */ (function (_super) { + __extends(NumericTextBox, _super); + /** + * + * @param {NumericTextBoxModel} options - Specifies the NumericTextBox model. + * @param {string | HTMLInputElement} element - Specifies the element to render as component. + * @private + */ + function NumericTextBox(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isVue = false; + _this.preventChange = false; + _this.isAngular = false; + _this.isDynamicChange = false; + _this.numericOptions = options; + return _this; + } + NumericTextBox.prototype.preRender = function () { + this.isPrevFocused = false; + this.decimalSeparator = '.'; + // eslint-disable-next-line no-useless-escape + this.intRegExp = new RegExp('/^(-)?(\d*)$/'); + this.isCalled = false; + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + this.cloneElement = this.element.cloneNode(true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']); + this.angularTagName = null; + this.formEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (this.element.tagName === 'EJS-NUMERICTEXTBOX') { + this.angularTagName = this.element.tagName; + var input = this.createElement('input'); + var index = 0; + for (index; index < this.element.attributes.length; index++) { + var attributeName = this.element.attributes[index].nodeName; + if (attributeName !== 'id' && attributeName !== 'class') { + input.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue); + input.innerHTML = this.element.innerHTML; + } + else if (attributeName === 'class') { + input.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' ')); + } + } + if (this.element.hasAttribute('name')) { + this.element.removeAttribute('name'); + } + this.element.classList.remove('e-control', 'e-numerictextbox'); + this.element.appendChild(input); + this.element = input; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, this.element); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'role': 'spinbutton', 'tabindex': '0', 'autocomplete': 'off' }); + var localeText = { + incrementTitle: 'Increment value', decrementTitle: 'Decrement value', placeholder: this.placeholder + }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('numerictextbox', localeText, this.locale); + if (this.l10n.getConstant('placeholder') !== '') { + this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true); + } + if (!this.element.hasAttribute('id')) { + this.element.setAttribute('id', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('numerictextbox')); + } + this.isValidState = true; + this.inputStyle = null; + this.inputName = null; + this.cultureInfo = {}; + this.initCultureInfo(); + this.initCultureFunc(); + this.prevValue = this.value; + this.updateHTMLAttrToElement(); + this.checkAttributes(false); + if (this.formEle) { + this.inputEleValue = this.value; + } + this.validateMinMax(); + this.validateStep(); + if (this.placeholder === null) { + this.updatePlaceholder(); + } + }; + /** + * To Initialize the control rendering + * + * @returns {void} + * @private + */ + NumericTextBox.prototype.render = function () { + if (this.element.tagName.toLowerCase() === 'input') { + this.createWrapper(); + if (this.showSpinButton) { + this.spinBtnCreation(); + } + this.setElementWidth(this.width); + if (!this.container.classList.contains('e-input-group')) { + this.container.classList.add('e-input-group'); + } + this.changeValue(this.value === null || isNaN(this.value) ? + null : this.strictMode ? this.trimValue(this.value) : this.value); + this.wireEvents(); + if (this.value !== null && !isNaN(this.value)) { + if (this.decimals) { + this.setProperties({ value: this.roundNumber(this.value, this.decimals) }, true); + } + } + if (this.element.getAttribute('value') || this.value) { + this.element.setAttribute('value', this.element.value); + this.hiddenInput.setAttribute('value', this.hiddenInput.value); + } + this.elementPrevValue = this.element.value; + if (this.element.hasAttribute('data-val')) { + this.element.setAttribute('data-val', 'false'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'fieldset')) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'fieldset').disabled) { + this.enabled = false; + } + this.renderComplete(); + } + }; + NumericTextBox.prototype.checkAttributes = function (isDynamic) { + var attributes = isDynamic ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) : + ['value', 'min', 'max', 'step', 'disabled', 'readonly', 'style', 'name', 'placeholder']; + for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) { + var prop = attributes_1[_i]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute(prop))) { + switch (prop) { + case 'disabled': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['enabled'] === undefined)) || isDynamic) { + var enabled = this.element.getAttribute(prop) === 'disabled' || this.element.getAttribute(prop) === '' + || this.element.getAttribute(prop) === 'true' ? false : true; + this.setProperties({ enabled: enabled }, !isDynamic); + } + break; + case 'readonly': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['readonly'] === undefined)) || isDynamic) { + var readonly = this.element.getAttribute(prop) === 'readonly' || this.element.getAttribute(prop) === '' + || this.element.getAttribute(prop) === 'true' ? true : false; + this.setProperties({ readonly: readonly }, !isDynamic); + } + break; + case 'placeholder': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['placeholder'] === undefined)) || isDynamic) { + this.setProperties({ placeholder: this.element.placeholder }, !isDynamic); + } + break; + case 'value': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['value'] === undefined)) || isDynamic) { + var setNumber = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop)); + this.setProperties(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, setNumber, {}), !isDynamic); + } + break; + case 'min': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['min'] === undefined)) || isDynamic) { + var minValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop)); + if (minValue !== null && !isNaN(minValue)) { + this.setProperties(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, minValue, {}), !isDynamic); + } + } + break; + case 'max': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['max'] === undefined)) || isDynamic) { + var maxValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop)); + if (maxValue !== null && !isNaN(maxValue)) { + this.setProperties(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, maxValue, {}), !isDynamic); + } + } + break; + case 'step': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.numericOptions) || (this.numericOptions['step'] === undefined)) || isDynamic) { + var stepValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop)); + if (stepValue !== null && !isNaN(stepValue)) { + this.setProperties(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, stepValue, {}), !isDynamic); + } + } + break; + case 'style': + this.inputStyle = this.element.getAttribute(prop); + break; + case 'name': + this.inputName = this.element.getAttribute(prop); + break; + default: + { + var value = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop)); + if ((value !== null && !isNaN(value)) || (prop === 'value')) { + this.setProperties(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, value, {}), true); + } + } + break; + } + } + } + }; + NumericTextBox.prototype.updatePlaceholder = function () { + this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true); + }; + NumericTextBox.prototype.initCultureFunc = function () { + this.instance = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Internationalization"](this.locale); + }; + NumericTextBox.prototype.initCultureInfo = function () { + this.cultureInfo.format = this.format; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('currency', this) !== null) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('currency', this.currency, this.cultureInfo); + this.setProperties({ currencyCode: this.currency }, true); + } + }; + /* Wrapper creation */ + NumericTextBox.prototype.createWrapper = function () { + var updatedCssClassValue = this.cssClass; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && this.cssClass !== '') { + updatedCssClassValue = this.getNumericValidClassList(this.cssClass); + } + var inputObj = _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].createInput({ + element: this.element, + floatLabelType: this.floatLabelType, + properties: { + readonly: this.readonly, + placeholder: this.placeholder, + cssClass: updatedCssClassValue, + enableRtl: this.enableRtl, + showClearButton: this.showClearButton, + enabled: this.enabled + } + }, this.createElement); + this.inputWrapper = inputObj; + this.container = inputObj.container; + this.container.setAttribute('class', ROOT + ' ' + this.container.getAttribute('class')); + this.updateHTMLAttrToWrapper(); + if (this.readonly) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-readonly': 'true' }); + } + this.hiddenInput = (this.createElement('input', { attrs: { type: 'text', + 'validateHidden': 'true', 'class': HIDDENELEMENT } })); + this.inputName = this.inputName !== null ? this.inputName : this.element.id; + this.element.removeAttribute('name'); + if (this.isAngular && this.angularTagName === 'EJS-NUMERICTEXTBOX' && this.cloneElement.id.length > 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.hiddenInput, { 'name': this.cloneElement.id }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.hiddenInput, { 'name': this.inputName }); + } + this.container.insertBefore(this.hiddenInput, this.container.childNodes[1]); + this.updateDataAttribute(false); + if (this.inputStyle !== null) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.container, { 'style': this.inputStyle }); + } + }; + NumericTextBox.prototype.updateDataAttribute = function (isDynamic) { + var attr = {}; + if (!isDynamic) { + for (var a = 0; a < this.element.attributes.length; a++) { + attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name); + } + } + else { + attr = this.htmlAttributes; + } + for (var _i = 0, _a = Object.keys(attr); _i < _a.length; _i++) { + var key = _a[_i]; + if (key.indexOf('data') === 0) { + this.hiddenInput.setAttribute(key, attr["" + key]); + } + } + }; + NumericTextBox.prototype.updateHTMLAttrToElement = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var pro = _a[_i]; + if (wrapperAttributes.indexOf(pro) < 0) { + this.element.setAttribute(pro, this.htmlAttributes["" + pro]); + } + } + } + }; + NumericTextBox.prototype.updateCssClass = function (newClass, oldClass) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setCssClass(this.getNumericValidClassList(newClass), [this.container], this.getNumericValidClassList(oldClass)); + }; + NumericTextBox.prototype.getNumericValidClassList = function (numericClassName) { + var result = numericClassName; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(numericClassName) && numericClassName !== '') { + result = (numericClassName.replace(/\s+/g, ' ')).trim(); + } + return result; + }; + NumericTextBox.prototype.updateHTMLAttrToWrapper = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var pro = _a[_i]; + if (wrapperAttributes.indexOf(pro) > -1) { + if (pro === 'class') { + var updatedClassValue = this.getNumericValidClassList(this.htmlAttributes["" + pro]); + if (updatedClassValue !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.container], updatedClassValue.split(' ')); + } + } + else if (pro === 'style') { + var numericStyle = this.container.getAttribute(pro); + numericStyle = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(numericStyle) ? (numericStyle + this.htmlAttributes["" + pro]) : + this.htmlAttributes["" + pro]; + this.container.setAttribute(pro, numericStyle); + } + else { + this.container.setAttribute(pro, this.htmlAttributes["" + pro]); + } + } + } + } + }; + NumericTextBox.prototype.setElementWidth = function (width) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(width)) { + if (typeof width === 'number') { + this.container.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else if (typeof width === 'string') { + this.container.style.width = (width.match(/px|%|em/)) ? (width) : (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width)); + } + } + }; + /* Spinner creation */ + NumericTextBox.prototype.spinBtnCreation = function () { + this.spinDown = _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].appendSpan(SPINICON + ' ' + SPINDOWN, this.container, this.createElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.spinDown, { + 'title': this.l10n.getConstant('decrementTitle') + }); + this.spinUp = _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].appendSpan(SPINICON + ' ' + SPINUP, this.container, this.createElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.spinUp, { + 'title': this.l10n.getConstant('incrementTitle') + }); + this.wireSpinBtnEvents(); + }; + NumericTextBox.prototype.validateMinMax = function () { + if (!(typeof (this.min) === 'number' && !isNaN(this.min))) { + this.setProperties({ min: -(Number.MAX_VALUE) }, true); + } + if (!(typeof (this.max) === 'number' && !isNaN(this.max))) { + this.setProperties({ max: Number.MAX_VALUE }, true); + } + if (this.decimals !== null) { + if (this.min !== -(Number.MAX_VALUE)) { + this.setProperties({ min: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.min)) }, true); + } + if (this.max !== (Number.MAX_VALUE)) { + this.setProperties({ max: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.max)) }, true); + } + } + this.setProperties({ min: this.min > this.max ? this.max : this.min }, true); + if (this.min !== -(Number.MAX_VALUE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-valuemin': this.min.toString() }); + } + if (this.max !== (Number.MAX_VALUE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-valuemax': this.max.toString() }); + } + }; + NumericTextBox.prototype.formattedValue = function (decimals, value) { + return this.instance.getNumberFormat({ + maximumFractionDigits: decimals, + minimumFractionDigits: decimals, useGrouping: false + })(value); + }; + NumericTextBox.prototype.validateStep = function () { + if (this.decimals !== null) { + this.setProperties({ step: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.step)) }, true); + } + }; + NumericTextBox.prototype.action = function (operation, event) { + this.isInteract = true; + var value = this.isFocused ? this.instance.getNumberParser({ format: 'n' })(this.element.value) : this.value; + this.changeValue(this.performAction(value, this.step, operation)); + this.raiseChangeEvent(event); + }; + NumericTextBox.prototype.checkErrorClass = function () { + if (this.isValidState) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.container], ERROR); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.container], ERROR); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-invalid': this.isValidState ? 'false' : 'true' }); + }; + NumericTextBox.prototype.bindClearEvent = function () { + if (this.showClearButton) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this); + } + }; + NumericTextBox.prototype.resetHandler = function (e) { + e.preventDefault(); + if (!(this.inputWrapper.clearButton.classList.contains('e-clear-icon-hide')) || this.inputWrapper.container.classList.contains('e-static-clear')) { + this.clear(e); + } + this.isInteract = true; + this.raiseChangeEvent(e); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + NumericTextBox.prototype.clear = function (event) { + this.setProperties({ value: null }, true); + this.setElementValue(''); + this.hiddenInput.value = ''; + var formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElement) { + var element = this.element.nextElementSibling; + var keyupEvent = document.createEvent('KeyboardEvent'); + keyupEvent.initEvent('keyup', false, true); + element.dispatchEvent(keyupEvent); + } + }; + NumericTextBox.prototype.resetFormHandler = function () { + if (this.element.tagName === 'EJS-NUMERICTEXTBOX') { + this.updateValue(null); + } + else { + this.updateValue(this.inputEleValue); + } + }; + NumericTextBox.prototype.setSpinButton = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.spinDown)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.spinDown, { + 'title': this.l10n.getConstant('decrementTitle'), + 'aria-label': this.l10n.getConstant('decrementTitle') + }); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.spinUp)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.spinUp, { + 'title': this.l10n.getConstant('incrementTitle'), + 'aria-label': this.l10n.getConstant('incrementTitle') + }); + } + }; + NumericTextBox.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', this.focusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'blur', this.focusOutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.keyDownHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keyup', this.keyUpHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'input', this.inputHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keypress', this.keyPressHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'change', this.changeHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'paste', this.pasteHandler, this); + if (this.enabled) { + this.bindClearEvent(); + if (this.formEle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formEle, 'reset', this.resetFormHandler, this); + } + } + }; + NumericTextBox.prototype.wireSpinBtnEvents = function () { + /* bind spin button events */ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.mouseDownOnSpinner, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.mouseDownOnSpinner, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.mouseUpOnSpinner, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.mouseUpOnSpinner, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent, this.touchMoveOnSpinner, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent, this.touchMoveOnSpinner, this); + }; + NumericTextBox.prototype.unwireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', this.focusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'blur', this.focusOutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keyup', this.keyUpHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'input', this.inputHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', this.keyDownHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keypress', this.keyPressHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'change', this.changeHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'paste', this.pasteHandler); + if (this.formEle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formEle, 'reset', this.resetFormHandler); + } + }; + NumericTextBox.prototype.unwireSpinBtnEvents = function () { + /* unbind spin button events */ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.mouseDownOnSpinner); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.mouseDownOnSpinner); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.mouseUpOnSpinner); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.mouseUpOnSpinner); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinUp, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent, this.touchMoveOnSpinner); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinDown, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchMoveEvent, this.touchMoveOnSpinner); + }; + NumericTextBox.prototype.changeHandler = function (event) { + event.stopPropagation(); + if (!this.element.value.length) { + this.setProperties({ value: null }, true); + } + var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value); + this.updateValue(parsedInput, event); + }; + NumericTextBox.prototype.raiseChangeEvent = function (event) { + if (this.prevValue !== this.value || this.prevValue !== this.inputValue) { + var eventArgs = {}; + this.changeEventArgs = { value: this.value, previousValue: this.prevValue, isInteracted: this.isInteract, + isInteraction: this.isInteract, event: event }; + if (event) { + this.changeEventArgs.event = event; + } + if (this.changeEventArgs.event === undefined) { + this.changeEventArgs.isInteracted = false; + this.changeEventArgs.isInteraction = false; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, this.changeEventArgs); + this.prevValue = this.value; + this.isInteract = false; + this.elementPrevValue = this.element.value; + this.preventChange = false; + this.trigger('change', eventArgs); + } + }; + NumericTextBox.prototype.pasteHandler = function () { + var _this = this; + if (!this.enabled || this.readonly) { + return; + } + var beforeUpdate = this.element.value; + setTimeout(function () { + if (!_this.numericRegex().test(_this.element.value)) { + _this.setElementValue(beforeUpdate); + } + }); + }; + NumericTextBox.prototype.preventHandler = function () { + var _this = this; + var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform); + setTimeout(function () { + if (_this.element.selectionStart > 0) { + var currentPos = _this.element.selectionStart; + var prevPos = _this.element.selectionStart - 1; + var start = 0; + var valArray = _this.element.value.split(''); + var numericObject = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getNumericObject"])(_this.locale); + var decimalSeparator = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('decimal', numericObject); + var ignoreKeyCode = decimalSeparator.charCodeAt(0); + if (_this.element.value[prevPos] === ' ' && _this.element.selectionStart > 0 && !iOS) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.prevVal)) { + _this.element.value = _this.element.value.trim(); + } + else if (prevPos !== 0) { + _this.element.value = _this.prevVal; + } + else if (prevPos === 0) { + _this.element.value = _this.element.value.trim(); + } + _this.element.setSelectionRange(prevPos, prevPos); + } + else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && + _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== 45) { + if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 1]) !== + valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 1]) && + _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === ignoreKeyCode) || + _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== ignoreKeyCode) { + _this.element.value = _this.element.value.substring(0, prevPos) + + _this.element.value.substring(currentPos, _this.element.value.length); + _this.element.setSelectionRange(prevPos, prevPos); + if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && _this.element.selectionStart > 0 + && _this.element.value.length) { + _this.preventHandler(); + } + } + } + else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 2])) && _this.element.selectionStart > 1 && + _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== 45) { + if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 2]) !== + valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 2]) && + _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) === ignoreKeyCode) || + _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== ignoreKeyCode) { + _this.element.setSelectionRange(prevPos, prevPos); + _this.nextEle = _this.element.value[_this.element.selectionStart]; + _this.cursorPosChanged = true; + _this.preventHandler(); + } + } + if (_this.cursorPosChanged === true && _this.element.value[_this.element.selectionStart] === _this.nextEle && + isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1]))) { + _this.element.setSelectionRange(_this.element.selectionStart + 1, _this.element.selectionStart + 1); + _this.cursorPosChanged = false; + _this.nextEle = null; + } + if (_this.element.value.trim() === '') { + _this.element.setSelectionRange(start, start); + } + if (_this.element.selectionStart > 0) { + if ((_this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === 45) && _this.element.selectionStart > 1) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.prevVal)) { + // eslint-disable-next-line no-self-assign + _this.element.value = _this.element.value; + } + else { + _this.element.value = _this.prevVal; + } + _this.element.setSelectionRange(_this.element.selectionStart, _this.element.selectionStart); + } + if (_this.element.value[_this.element.selectionStart - 1] === decimalSeparator && _this.decimals === 0 && _this.validateDecimalOnType) { + _this.element.value = _this.element.value.substring(0, prevPos) + + _this.element.value.substring(currentPos, _this.element.value.length); + } + } + _this.prevVal = _this.element.value; + } + }); + }; + NumericTextBox.prototype.keyUpHandler = function () { + if (!this.enabled || this.readonly) { + return; + } + var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform); + if (!iOS && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.preventHandler(); + } + var parseValue = this.instance.getNumberParser({ format: 'n' })(this.element.value); + parseValue = parseValue === null || isNaN(parseValue) ? null : parseValue; + this.hiddenInput.value = parseValue || parseValue === 0 ? parseValue.toString() : null; + var formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElement) { + var element = this.element.nextElementSibling; + var keyupEvent = document.createEvent('KeyboardEvent'); + keyupEvent.initEvent('keyup', false, true); + element.dispatchEvent(keyupEvent); + } + }; + NumericTextBox.prototype.inputHandler = function (event) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias + var numerictextboxObj = this; + if (!this.enabled || this.readonly) { + return; + } + var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform); + var fireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; + if ((fireFox || iOS) && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.preventHandler(); + } + /* istanbul ignore next */ + if (this.isAngular + && this.element.value !== Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('decimal', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getNumericObject"])(this.locale)) + && this.element.value !== Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('minusSign', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getNumericObject"])(this.locale))) { + var parsedValue = this.instance.getNumberParser({ format: 'n' })(this.element.value); + parsedValue = isNaN(parsedValue) ? null : parsedValue; + numerictextboxObj.localChange({ value: parsedValue }); + this.preventChange = true; + } + if (this.isVue) { + var current = this.instance.getNumberParser({ format: 'n' })(this.element.value); + var previous = this.instance.getNumberParser({ format: 'n' })(this.elementPrevValue); + //EJ2-54963-if type "." or ".0" or "-.0" it converts to "0" automatically when binding v-model + var nonZeroRegex = new RegExp('[^0-9]+$'); + if (nonZeroRegex.test(this.element.value) || ((this.elementPrevValue.indexOf('.') !== -1 || this.elementPrevValue.indexOf('-') !== -1) && this.element.value[this.element.value.length - 1] === '0')) { + current = this.value; + } + var eventArgs = { + event: event, + value: (current === null || isNaN(current) ? null : current), + previousValue: (previous === null || isNaN(previous) ? null : previous) + }; + this.preventChange = true; + this.elementPrevValue = this.element.value; + this.trigger('input', eventArgs); + } + }; + NumericTextBox.prototype.keyDownHandler = function (event) { + if (!this.readonly) { + switch (event.keyCode) { + case 38: + event.preventDefault(); + this.action(INCREMENT, event); + break; + case 40: + event.preventDefault(); + this.action(DECREMENT, event); + break; + default: break; + } + } + }; + NumericTextBox.prototype.performAction = function (value, step, operation) { + if (value === null || isNaN(value)) { + value = 0; + } + var updatedValue = operation === INCREMENT ? value + step : value - step; + updatedValue = this.correctRounding(value, step, updatedValue); + return this.strictMode ? this.trimValue(updatedValue) : updatedValue; + }; + NumericTextBox.prototype.correctRounding = function (value, step, result) { + var floatExp = new RegExp('[,.](.*)'); + var floatValue = floatExp.test(value.toString()); + var floatStep = floatExp.test(step.toString()); + if (floatValue || floatStep) { + var valueCount = floatValue ? floatExp.exec(value.toString())[0].length : 0; + var stepCount = floatStep ? floatExp.exec(step.toString())[0].length : 0; + var max = Math.max(valueCount, stepCount); + return value = this.roundValue(result, max); + } + return result; + }; + NumericTextBox.prototype.roundValue = function (result, precision) { + precision = precision || 0; + var divide = Math.pow(10, precision); + return result *= divide, result = Math.round(result) / divide; + }; + NumericTextBox.prototype.updateValue = function (value, event) { + if (event) { + this.isInteract = true; + } + if (value !== null && !isNaN(value)) { + if (this.decimals) { + value = this.roundNumber(value, this.decimals); + } + } + this.inputValue = value; + this.changeValue(value === null || isNaN(value) ? null : this.strictMode ? this.trimValue(value) : value); + /* istanbul ignore next */ + if (!this.isDynamicChange) { + this.raiseChangeEvent(event); + } + }; + NumericTextBox.prototype.updateCurrency = function (prop, propVal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, propVal, this.cultureInfo); + this.updateValue(this.value); + }; + NumericTextBox.prototype.changeValue = function (value) { + if (!(value || value === 0)) { + value = null; + this.setProperties({ value: value }, true); + } + else { + var numberOfDecimals = this.getNumberOfDecimals(value); + this.setProperties({ value: this.roundNumber(value, numberOfDecimals) }, true); + } + this.modifyText(); + if (!this.strictMode) { + this.validateState(); + } + }; + NumericTextBox.prototype.modifyText = function () { + if (this.value || this.value === 0) { + var value = this.formatNumber(); + var elementValue = this.isFocused ? value : this.instance.getNumberFormat(this.cultureInfo)(this.value); + this.setElementValue(elementValue); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-valuenow': value }); + this.hiddenInput.value = this.value.toString(); + if (this.value !== null && this.serverDecimalSeparator) { + this.hiddenInput.value = this.hiddenInput.value.replace('.', this.serverDecimalSeparator); + } + } + else { + this.setElementValue(''); + this.element.removeAttribute('aria-valuenow'); + this.hiddenInput.value = null; + } + }; + NumericTextBox.prototype.setElementValue = function (val, element) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton); + }; + NumericTextBox.prototype.validateState = function () { + this.isValidState = true; + if (this.value || this.value === 0) { + this.isValidState = !(this.value > this.max || this.value < this.min); + } + this.checkErrorClass(); + }; + NumericTextBox.prototype.getNumberOfDecimals = function (value) { + var numberOfDecimals; + // eslint-disable-next-line no-useless-escape + var EXPREGEXP = new RegExp('[eE][\-+]?([0-9]+)'); + var valueString = value.toString(); + if (EXPREGEXP.test(valueString)) { + var result = EXPREGEXP.exec(valueString); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(result)) { + valueString = value.toFixed(Math.min(parseInt(result[1], 10), 20)); + } + } + var decimalPart = valueString.split('.')[1]; + numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length; + if (this.decimals !== null) { + numberOfDecimals = numberOfDecimals < this.decimals ? numberOfDecimals : this.decimals; + } + return numberOfDecimals; + }; + NumericTextBox.prototype.formatNumber = function () { + var numberOfDecimals = this.getNumberOfDecimals(this.value); + return this.instance.getNumberFormat({ + maximumFractionDigits: numberOfDecimals, + minimumFractionDigits: numberOfDecimals, useGrouping: false + })(this.value); + }; + NumericTextBox.prototype.trimValue = function (value) { + if (value > this.max) { + return this.max; + } + if (value < this.min) { + return this.min; + } + return value; + }; + NumericTextBox.prototype.roundNumber = function (value, precision) { + var result = value; + var decimals = precision || 0; + var result1 = result.toString().split('e'); + result = Math.round(Number(result1[0] + 'e' + (result1[1] ? (Number(result1[1]) + decimals) : decimals))); + var result2 = result.toString().split('e'); + result = Number(result2[0] + 'e' + (result2[1] ? (Number(result2[1]) - decimals) : -decimals)); + return Number(result.toFixed(decimals)); + }; + NumericTextBox.prototype.cancelEvent = function (event) { + event.preventDefault(); + return false; + }; + NumericTextBox.prototype.keyPressHandler = function (event) { + if (!this.enabled || this.readonly) { + return true; + } + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.version === '11.0' && event.keyCode === 13) { + var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value); + this.updateValue(parsedInput, event); + return true; + } + if (event.which === 0 || event.metaKey || event.ctrlKey || event.keyCode === 8 || event.keyCode === 13) { + return true; + } + var currentChar = String.fromCharCode(event.which); + var decimalSeparator = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('decimal', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getNumericObject"])(this.locale)); + var isAlterNumPadDecimalChar = event.code === 'NumpadDecimal' && currentChar !== decimalSeparator; + //EJ2-59813-replace the culture decimal separator value with numberpad decimal separator value when culture decimal separator and numberpad decimal separator are different + if (isAlterNumPadDecimalChar) { + currentChar = decimalSeparator; + } + var text = this.element.value; + text = text.substring(0, this.element.selectionStart) + currentChar + text.substring(this.element.selectionEnd); + if (!this.numericRegex().test(text)) { + event.preventDefault(); + event.stopPropagation(); + return false; + } + else { + //EJ2-59813-update the numberpad decimal separator and update the cursor position + if (isAlterNumPadDecimalChar) { + var start = this.element.selectionStart + 1; + this.element.value = text; + this.element.setSelectionRange(start, start); + event.preventDefault(); + event.stopPropagation(); + } + return true; + } + }; + NumericTextBox.prototype.numericRegex = function () { + var numericObject = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getNumericObject"])(this.locale); + var decimalSeparator = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('decimal', numericObject); + var fractionRule = '*'; + if (decimalSeparator === DECIMALSEPARATOR) { + decimalSeparator = '\\' + decimalSeparator; + } + if (this.decimals === 0 && this.validateDecimalOnType) { + return INTREGEXP; + } + if (this.decimals && this.validateDecimalOnType) { + fractionRule = '{0,' + this.decimals + '}'; + } + /* eslint-disable-next-line security/detect-non-literal-regexp */ + return new RegExp('^(-)?(((\\d+(' + decimalSeparator + '\\d' + fractionRule + + ')?)|(' + decimalSeparator + '\\d' + fractionRule + ')))?$'); + }; + NumericTextBox.prototype.mouseWheel = function (event) { + event.preventDefault(); + var delta; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var rawEvent = event; + if (rawEvent.wheelDelta) { + delta = rawEvent.wheelDelta / 120; + } + else if (rawEvent.detail) { + delta = -rawEvent.detail / 3; + } + if (delta > 0) { + this.action(INCREMENT, event); + } + else if (delta < 0) { + this.action(DECREMENT, event); + } + this.cancelEvent(event); + }; + NumericTextBox.prototype.focusHandler = function (event) { + var _this = this; + clearTimeout(selectionTimeOut); + this.focusEventArgs = { event: event, value: this.value, container: this.container }; + this.trigger('focus', this.focusEventArgs); + if (!this.enabled || this.readonly) { + return; + } + this.isFocused = true; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.container], ERROR); + this.prevValue = this.value; + if ((this.value || this.value === 0)) { + var formatValue_1 = this.formatNumber(); + this.setElementValue(formatValue_1); + if (!this.isPrevFocused) { + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.version === '11.0') { + this.element.setSelectionRange(0, formatValue_1.length); + } + else { + var delay = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos) ? 600 : 0; + selectionTimeOut = setTimeout(function () { + _this.element.setSelectionRange(0, formatValue_1.length); + }, delay); + } + } + } + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel, this); + } + }; + NumericTextBox.prototype.focusOutHandler = function (event) { + var _this = this; + this.blurEventArgs = { event: event, value: this.value, container: this.container }; + this.trigger('blur', this.blurEventArgs); + if (!this.enabled || this.readonly) { + return; + } + if (this.isPrevFocused) { + event.preventDefault(); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + var value_1 = this.element.value; + this.element.focus(); + this.isPrevFocused = false; + var ele_1 = this.element; + setTimeout(function () { + _this.setElementValue(value_1, ele_1); + }, 200); + } + } + else { + this.isFocused = false; + if (!this.element.value.length) { + this.setProperties({ value: null }, true); + } + var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value); + this.updateValue(parsedInput); + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel); + } + } + var formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElement) { + var element = this.element.nextElementSibling; + var focusEvent = document.createEvent('FocusEvent'); + focusEvent.initEvent('focusout', false, true); + element.dispatchEvent(focusEvent); + } + }; + NumericTextBox.prototype.mouseDownOnSpinner = function (event) { + var _this = this; + if (this.isFocused) { + this.isPrevFocused = true; + event.preventDefault(); + } + if (!this.getElementData(event)) { + return; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + var result = this.getElementData(event); + var target = event.currentTarget; + var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'mouseleave', this.mouseUpClick, this); + this.timeOut = setInterval(function () { + _this.isCalled = true; + _this.action(action, event); + }, 150); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup', this.mouseUpClick, this); + }; + NumericTextBox.prototype.touchMoveOnSpinner = function (event) { + var target; + if (event.type === 'touchmove') { + var touchEvent = event.touches; + target = touchEvent.length && document.elementFromPoint(touchEvent[0].pageX, touchEvent[0].pageY); + } + else { + target = document.elementFromPoint(event.clientX, event.clientY); + } + if (!(target.classList.contains(SPINICON))) { + clearInterval(this.timeOut); + } + }; + NumericTextBox.prototype.mouseUpOnSpinner = function (event) { + this.prevValue = this.value; + if (this.isPrevFocused) { + this.element.focus(); + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.isPrevFocused = false; + } + } + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + event.preventDefault(); + } + if (!this.getElementData(event)) { + return; + } + var target = event.currentTarget; + var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mouseleave', this.mouseUpClick); + if (!this.isCalled) { + this.action(action, event); + } + this.isCalled = false; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup', this.mouseUpClick); + var formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElement) { + var element = this.element.nextElementSibling; + var keyupEvent = document.createEvent('KeyboardEvent'); + keyupEvent.initEvent('keyup', false, true); + element.dispatchEvent(keyupEvent); + } + }; + NumericTextBox.prototype.getElementData = function (event) { + if ((event.which && event.which === 3) || (event.button && event.button === 2) + || !this.enabled || this.readonly) { + return false; + } + clearInterval(this.timeOut); + return true; + }; + NumericTextBox.prototype.floatLabelTypeUpdate = function () { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].removeFloating(this.inputWrapper); + var hiddenInput = this.hiddenInput; + this.hiddenInput.remove(); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement); + this.container.insertBefore(hiddenInput, this.container.childNodes[1]); + }; + NumericTextBox.prototype.mouseUpClick = function (event) { + event.stopPropagation(); + clearInterval(this.timeOut); + this.isCalled = false; + if (this.spinUp) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinUp, 'mouseleave', this.mouseUpClick); + } + if (this.spinDown) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.spinDown, 'mouseleave', this.mouseUpClick); + } + }; + /** + * Increments the NumericTextBox value with the specified step value. + * + * @param {number} step - Specifies the value used to increment the NumericTextBox value. + * if its not given then numeric value will be incremented based on the step property value. + * @returns {void} + */ + NumericTextBox.prototype.increment = function (step) { + if (step === void 0) { step = this.step; } + this.isInteract = false; + this.changeValue(this.performAction(this.value, step, INCREMENT)); + this.raiseChangeEvent(); + }; + /** + * Decrements the NumericTextBox value with specified step value. + * + * @param {number} step - Specifies the value used to decrement the NumericTextBox value. + * if its not given then numeric value will be decremented based on the step property value. + * @returns {void} + */ + NumericTextBox.prototype.decrement = function (step) { + if (step === void 0) { step = this.step; } + this.isInteract = false; + this.changeValue(this.performAction(this.value, step, DECREMENT)); + this.raiseChangeEvent(); + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also it maintains the initial input element from the DOM. + * + * @method destroy + * @returns {void} + */ + NumericTextBox.prototype.destroy = function () { + this.unwireEvents(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.hiddenInput); + if (this.showSpinButton) { + this.unwireSpinBtnEvents(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.spinUp); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.spinDown); + } + var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly', + 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'tabindex', + 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'aria-invalid']; + for (var i = 0; i < attrArray.length; i++) { + this.element.removeAttribute(attrArray[i]); + } + this.element.classList.remove('e-input'); + this.container.insertAdjacentElement('afterend', this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.container); + this.spinUp = null; + this.spinDown = null; + this.container = null; + this.hiddenInput = null; + this.changeEventArgs = null; + this.blurEventArgs = null; + this.focusEventArgs = null; + this.inputWrapper = null; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].destroy(); + _super.prototype.destroy.call(this); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns */ + /** + * Returns the value of NumericTextBox with the format applied to the NumericTextBox. + * + */ + NumericTextBox.prototype.getText = function () { + return this.element.value; + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns */ + /** + * Sets the focus to widget for interaction. + * + * @returns {void} + */ + NumericTextBox.prototype.focusIn = function () { + if (document.activeElement !== this.element && this.enabled) { + this.element.focus(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.container], [NUMERIC_FOCUS]); + } + }; + /** + * Remove the focus from widget, if the widget is in focus state. + * + * @returns {void} + */ + NumericTextBox.prototype.focusOut = function () { + if (document.activeElement === this.element && this.enabled) { + this.element.blur(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.container], [NUMERIC_FOCUS]); + } + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Gets the properties to be maintained in the persisted state. + * + * @returns {string} + */ + NumericTextBox.prototype.getPersistData = function () { + var keyEntity = ['value']; + return this.addOnPersist(keyEntity); + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Calls internally if any of the property value is changed. + * + * @param {NumericTextBoxModel} newProp - Returns the dynamic property value of the component. + * @param {NumericTextBoxModel} oldProp - Returns the previous property value of the component. + * @returns {void} + * @private + */ + NumericTextBox.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + this.setElementWidth(newProp.width); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].calculateWidth(this.element, this.container); + break; + case 'cssClass': + this.updateCssClass(newProp.cssClass, oldProp.cssClass); + break; + case 'enabled': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnabled(newProp.enabled, this.element); + this.bindClearEvent(); + break; + case 'enableRtl': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnableRtl(newProp.enableRtl, [this.container]); + break; + case 'readonly': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setReadonly(newProp.readonly, this.element); + if (this.readonly) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-readonly': 'true' }); + } + else { + this.element.removeAttribute('aria-readonly'); + } + break; + case 'htmlAttributes': + this.updateHTMLAttrToElement(); + this.updateHTMLAttrToWrapper(); + this.updateDataAttribute(true); + this.checkAttributes(true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].validateInputType(this.container, this.element); + break; + case 'placeholder': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(newProp.placeholder, this.element); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].calculateWidth(this.element, this.container); + break; + case 'step': + this.step = newProp.step; + this.validateStep(); + break; + case 'showSpinButton': + this.updateSpinButton(newProp); + break; + case 'showClearButton': + this.updateClearButton(newProp); + break; + case 'floatLabelType': + this.floatLabelType = newProp.floatLabelType; + this.floatLabelTypeUpdate(); + break; + case 'value': + this.isDynamicChange = (this.isAngular || this.isVue) && this.preventChange; + this.updateValue(newProp.value); + if (this.isDynamicChange) { + this.preventChange = false; + this.isDynamicChange = false; + } + break; + case 'min': + case 'max': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(prop, newProp), this); + this.validateMinMax(); + this.updateValue(this.value); + break; + case 'strictMode': + this.strictMode = newProp.strictMode; + this.updateValue(this.value); + this.validateState(); + break; + case 'locale': + this.initCultureFunc(); + this.l10n.setLocale(this.locale); + this.setSpinButton(); + this.updatePlaceholder(); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.element); + this.updateValue(this.value); + break; + case 'currency': + { + var propVal = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(prop, newProp); + this.setProperties({ currencyCode: propVal }, true); + this.updateCurrency(prop, propVal); + } + break; + case 'currencyCode': + { + var propValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(prop, newProp); + this.setProperties({ currency: propValue }, true); + this.updateCurrency('currency', propValue); + } + break; + case 'format': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(prop, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(prop, newProp), this); + this.initCultureInfo(); + this.updateValue(this.value); + break; + case 'decimals': + this.decimals = newProp.decimals; + this.updateValue(this.value); + } + } + }; + NumericTextBox.prototype.updateClearButton = function (newProp) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setClearButton(newProp.showClearButton, this.element, this.inputWrapper, undefined, this.createElement); + this.bindClearEvent(); + }; + NumericTextBox.prototype.updateSpinButton = function (newProp) { + if (newProp.showSpinButton) { + this.spinBtnCreation(); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.spinUp); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.spinDown); + } + }; + /** + * Gets the component name + * + * @returns {string} Returns the component name. + * @private + */ + NumericTextBox.prototype.getModuleName = function () { + return 'numerictextbox'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], NumericTextBox.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-(Number.MAX_VALUE)) + ], NumericTextBox.prototype, "min", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(Number.MAX_VALUE) + ], NumericTextBox.prototype, "max", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], NumericTextBox.prototype, "step", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "placeholder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], NumericTextBox.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], NumericTextBox.prototype, "showSpinButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], NumericTextBox.prototype, "readonly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], NumericTextBox.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], NumericTextBox.prototype, "showClearButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], NumericTextBox.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('n2') + ], NumericTextBox.prototype, "format", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "decimals", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "currency", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], NumericTextBox.prototype, "currencyCode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], NumericTextBox.prototype, "strictMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], NumericTextBox.prototype, "validateDecimalOnType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Never') + ], NumericTextBox.prototype, "floatLabelType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], NumericTextBox.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], NumericTextBox.prototype, "destroyed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], NumericTextBox.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], NumericTextBox.prototype, "focus", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], NumericTextBox.prototype, "blur", void 0); + NumericTextBox = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], NumericTextBox); + return NumericTextBox; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/rating/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/rating/index.js ***! + \******************************************************************/ +/*! exports provided: LabelPosition, PrecisionType, Rating */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _rating__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rating */ "./ej2-resources/22.1.37/scripts/ej2-inputs/rating/rating.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LabelPosition", function() { return _rating__WEBPACK_IMPORTED_MODULE_0__["LabelPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PrecisionType", function() { return _rating__WEBPACK_IMPORTED_MODULE_0__["PrecisionType"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return _rating__WEBPACK_IMPORTED_MODULE_0__["Rating"]; }); + +/** + * Rating modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/rating/rating.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/rating/rating.js ***! + \*******************************************************************/ +/*! exports provided: LabelPosition, PrecisionType, Rating */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LabelPosition", function() { return LabelPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PrecisionType", function() { return PrecisionType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Rating", function() { return Rating; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var ICONCSS = 'e-rating-icon e-icons e-star-filled'; +var ITEMLIST = 'e-rating-item-list'; +var ITEMCONTAINER = 'e-rating-item-container'; +var SELECTED = 'e-rating-selected'; +var INTERMEDIATE = 'e-rating-intermediate'; +var LABEL = 'e-rating-label'; +var RESET = 'e-icons e-reset'; +var HIDDEN = 'e-rating-hidden'; +var DISABLED = 'e-disabled'; +var READONLY = 'e-rating-readonly'; +var RTL = 'e-rtl'; +var ANIMATION = 'e-rating-animation'; +var FULLTEMPLATE = 'e-rating-full'; +var EMPTYTEMPLATE = 'e-rating-empty'; +var SELECTEDVALUE = 'e-selected-value'; +var RATINGVALUE = '--rating-value'; +/** + * Defines where to position the label in rating + */ +var LabelPosition; +(function (LabelPosition) { + /** + * The label is positioned at the top center of the rating component. + */ + LabelPosition["Top"] = "Top"; + /** + * The label is positioned at the bottom center of the rating component. + */ + LabelPosition["Bottom"] = "Bottom"; + /** + * The label is positioned at the left side of the rating component. + */ + LabelPosition["Left"] = "Left"; + /** + * The label is positioned at the right side of the rating component. + */ + LabelPosition["Right"] = "Right"; +})(LabelPosition || (LabelPosition = {})); +/** + * Defines the precision type of the rating. + * It is used to component the granularity of the rating, allowing users to provide ratings with varying levels of precision. + */ +var PrecisionType; +(function (PrecisionType) { + /** + * The rating is increased in whole number increments. + */ + PrecisionType["Full"] = "Full"; + /** + * The rating is increased in increments of 0.5 (half). + */ + PrecisionType["Half"] = "Half"; + /** + * The rating is increased in increments of 0.25 (quarter). + */ + PrecisionType["Quarter"] = "Quarter"; + /** + * The rating is increased in increments of 0.1. + */ + PrecisionType["Exact"] = "Exact"; +})(PrecisionType || (PrecisionType = {})); +/** + * The Rating component allows the user to rate something by clicking on a set of symbols on a numeric scale. + * This allows users to provide feedback or ratings for products, services, or content. + * + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Rating = /** @__PURE__ @class */ (function (_super) { + __extends(Rating, _super); + /** + * Constructor for creating the widget + * + * @param {RatingModel} options - Specifies the rating model + * @param {string|HTMLButtonElement} element - Specifies the target element + */ + function Rating(options, element) { + var _this = _super.call(this, options, element) || this; + _this.itemElements = []; + return _this; + } + Rating.prototype.preRender = function () { + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + this.keyConfigs = { + downarrow: 'downarrow', + leftarrow: 'leftarrow', + rightarrow: 'rightarrow', + uparrow: 'uparrow', + space: 'space' + }; + this.tooltipOpen = false; + }; + Rating.prototype.render = function () { + this.initialize(); + this.updateMinValue(); + this.updateTemplateFunction(); + this.triggerChange(null, this.value, false); + this.renderItems(); + this.displayLabel(); + }; + Rating.prototype.initialize = function () { + this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-container ' }); + this.element.parentNode.insertBefore(this.wrapper, this.element); + this.wrapper.appendChild(this.element); + if ((this.element.getAttribute('name') == null)) { + this.element.setAttribute('name', this.element.id); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-label': 'rating' }); + this.renderItemList(); + this.updateReset(); + if (this.readOnly) { + this.wrapper.classList.add(READONLY); + } + if (!this.visible) { + this.wrapper.classList.add(HIDDEN); + } + if (this.enableRtl) { + this.wrapper.classList.add(RTL); + } + if (this.enableAnimation) { + this.wrapper.classList.add(ANIMATION); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], this.cssClass.split(' ')); + } + this.updateTooltip(); + this.wireKeyboardEvent(); + this.updateDisabled(); + }; + Rating.prototype.updateDisabled = function () { + this.wrapper.classList[this.disabled ? 'add' : 'remove'](DISABLED); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.ratingItemList, { 'tabindex': (this.disabled) ? '-1' : '0' }); + this.updateResetButton(); + }; + Rating.prototype.updateResetButton = function () { + if (this.allowReset) { + var isDisabled = (this.value <= this.min) || this.disabled; + this.resetElement.classList[isDisabled ? 'add' : 'remove'](DISABLED); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.resetElement, { 'tabindex': (isDisabled ? '-1' : '0'), 'aria-hidden': isDisabled.toString() }); + } + }; + Rating.prototype.renderItemList = function () { + var _this = this; + this.ratingItemList = this.createElement('div', { + className: ITEMLIST, + id: this.element.id + '_item-list' + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.ratingItemList, { 'aria-label': 'rating', 'role': 'slider' }); + this.wrapper.appendChild(this.ratingItemList); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.ratingItemList, 'touchmove', function (e) { return _this.touchMoveHandler(e); }, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.ratingItemList, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.touchEndHandler, this); + }; + Rating.prototype.touchMoveHandler = function (e) { + var rect = this.ratingItemList.getBoundingClientRect(); + var x = e.touches[0].clientX - rect.x; + var currValue = (x / rect.width) * this.itemsCount; + currValue = (this.enableRtl) ? (this.itemsCount - currValue) : currValue; + currValue = currValue < this.min ? this.min : currValue > this.itemsCount ? this.itemsCount : currValue; + currValue = this.validateValue(currValue); + var element = currValue === 0 ? null : this.itemElements[parseInt((Math.ceil(currValue) - 1).toString(), 10)]; + if (currValue === this.currentValue) { + if (this.showTooltip && element) { + this.openRatingTooltip(element, false); + } + return; + } + var previousValue = this.currentValue; + this.triggerChange(e, currValue); + this.updateCurrentValue(currValue); + if (this.showTooltip) { + if (element) { + if (Math.ceil(currValue) !== Math.ceil(previousValue)) { + this.closeRatingTooltip(); + } + this.openRatingTooltip(element, true); + } + else { + this.closeRatingTooltip(); + } + } + }; + Rating.prototype.touchEndHandler = function () { + this.closeRatingTooltip(); + }; + Rating.prototype.updateTemplateFunction = function () { + this.emptyTemplateFunction = this.emptyTemplate ? this.getTemplateString(this.emptyTemplate) : null; + this.fullTemplateFunction = this.fullTemplate ? this.getTemplateString(this.fullTemplate) : null; + }; + Rating.prototype.renderItems = function () { + var _this = this; + for (var i = 0; i < this.itemsCount; i++) { + var ratingItemContainer = this.createElement('span', { className: ITEMCONTAINER }); + var spanItem = this.createElement('span', { className: 'e-rating-item' }); + var ratingValue = this.getRatingValue(this.value, i); + this.renderItemContent(spanItem, ratingValue, i, false); + ratingItemContainer.appendChild(spanItem); + this.wireItemsEvents(ratingItemContainer, i + 1); + this.itemElements.push(ratingItemContainer); + var eventArgs = { element: ratingItemContainer, value: i + 1 }; + this.trigger('beforeItemRender', eventArgs, function (args) { + _this.ratingItemList.appendChild(args.element); + }); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.ratingItemList, { 'aria-valuemax': this.itemsCount.toString() }); + this.updateItemValue(false); + }; + Rating.prototype.renderItemContent = function (spanEle, val, index, isrerender) { + if (isrerender) { + this.removeItemContent(spanEle); + } + if (this.fullTemplate && val === 1) { + spanEle.classList.add(FULLTEMPLATE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.fullTemplateFunction({ index: index, ratingValue: val }, this, 'ratingFullTemplate', (this.element.id + 'fullTemplate'), this.isStringTemplate), spanEle); + } + else if (this.emptyTemplate) { + spanEle.classList.add(EMPTYTEMPLATE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.emptyTemplateFunction({ index: index, ratingValue: val }, this, 'ratingEmptyTemplate', (this.element.id + 'emptyTemplate'), this.isStringTemplate), spanEle); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([spanEle], ICONCSS.split(' ')); + } + }; + Rating.prototype.removeItemContent = function (spanEle) { + spanEle.classList.remove(FULLTEMPLATE, EMPTYTEMPLATE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([spanEle], ICONCSS.split(' ')); + if (spanEle.firstChild) { + spanEle.innerHTML = ''; + } + }; + Rating.prototype.updateTooltip = function () { + if (this.showTooltip) { + this.tooltipObj = new _ej2_popups__WEBPACK_IMPORTED_MODULE_1__["Tooltip"]({ + target: '.e-rating-item-container', windowCollision: true, + opensOn: 'Custom', cssClass: this.cssClass ? ('e-rating-tooltip ' + this.cssClass) : 'e-rating-tooltip' + }); + this.tooltipObj.appendTo(this.ratingItemList); + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltipObj)) { + this.tooltipObj.destroy(); + this.tooltipObj = null; + } + } + }; + Rating.prototype.updateMinValue = function () { + this.setProperties({ min: this.validateValue(this.min) }, true); + if (this.min > 0 && this.value < this.min) { + this.triggerChange(null, this.min, false); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.ratingItemList, { 'aria-valuemin': this.min.toString() }); + }; + Rating.prototype.validateValue = function (currentValue) { + if (currentValue > this.itemsCount) { + currentValue = this.itemsCount; + } + else if (currentValue < 0) { + currentValue = 0; + } + else { + currentValue = ((this.precision === PrecisionType.Full) || this.enableSingleSelection) ? Math.round(currentValue) : + (this.precision === PrecisionType.Half) ? (Math.round(currentValue * 2) / 2) : + (this.precision === PrecisionType.Quarter) ? (Math.round(currentValue * 4) / 4) : (Math.round(currentValue * 10) / 10); + } + return currentValue; + }; + Rating.prototype.getRatingValue = function (value, i) { + return (this.enableSingleSelection) ? (((value > i) && (value <= i + 1)) ? 1 : 0) : + (value >= i + 1) ? 1 : ((value < i) ? 0 : (value - i)); + }; + Rating.prototype.updateItemValue = function (isUpdate) { + if (isUpdate === void 0) { isUpdate = true; } + if (isUpdate && this.isReact) { + this.clearTemplate(['ratingEmptyTemplate', 'ratingFullTemplate']); + } + for (var i = 0; i < this.itemsCount; i++) { + var itemElement = this.itemElements[parseInt(i.toString(), 10)]; + itemElement.classList.remove(SELECTED, INTERMEDIATE, SELECTEDVALUE); + var ratingValue = this.getRatingValue(this.currentValue, i); + if (ratingValue === 1) { + itemElement.classList.add(SELECTED); + } + else if (ratingValue > 0) { + itemElement.classList.add(INTERMEDIATE); + } + else if ((this.precision === PrecisionType.Full) && (i + 1 <= this.value) && (!this.enableSingleSelection)) { + itemElement.classList.add(SELECTEDVALUE); + } + if (isUpdate) { + this.updateItemContent(ratingValue, i); + } + itemElement.style.setProperty(RATINGVALUE, (ratingValue * 100) + '%'); + itemElement.classList[((this.value === 0) && (i === 0)) || (this.value === i + 1) || ((ratingValue > 0) && (ratingValue < 1)) ? 'add' : 'remove']('e-rating-focus'); + } + if (isUpdate) { + this.renderReactTemplates(); + } + this.updateResetButton(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.ratingItemList, { 'aria-valuenow': this.currentValue.toString() }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'value': this.value.toString() }); + }; + Rating.prototype.updateItemContent = function (ratingValue, index) { + if (!this.fullTemplate && !this.emptyTemplate) { + return; + } + var spanEle = this.itemElements[parseInt(index.toString(), 10)].querySelector('.e-rating-item'); + if (this.fullTemplate && ratingValue === 1) { + if (!this.isReact && spanEle.classList.contains(FULLTEMPLATE)) { + return; + } + this.removeItemContent(spanEle); + spanEle.classList.add(FULLTEMPLATE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.fullTemplateFunction({ ratingValue: ratingValue, index: index }, this, 'ratingFullTemplate', (this.element.id + 'fullTemplate' + index), this.isStringTemplate), spanEle); + } + else if (this.emptyTemplate) { + if (!this.isReact && spanEle.classList.contains(EMPTYTEMPLATE)) { + return; + } + this.removeItemContent(spanEle); + spanEle.classList.add(EMPTYTEMPLATE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.emptyTemplateFunction({ ratingValue: ratingValue, index: index }, this, 'ratingEmptyTemplate', (this.element.id + 'emptyTemplate' + index), this.isStringTemplate), spanEle); + } + else { + this.removeItemContent(spanEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([spanEle], ICONCSS.split(' ')); + } + }; + Rating.prototype.updateTooltipContent = function (isChange) { + if (this.showTooltip) { + if (this.isReact) { + this.clearTemplate(['ratingTooltipTemplate']); + } + var content_1; + if (this.tooltipTemplate) { + content_1 = this.createElement('span', { className: 'e-rating-tooltip-content' }); + var templateFunction = this.getTemplateString(this.tooltipTemplate); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(templateFunction({ value: this.currentValue }, this, 'ratingTooltipTemplate', (this.element.id + 'tooltipTemplate'), this.isStringTemplate), content_1); + this.tooltipObj.setProperties({ content: content_1 }, isChange); + } + else { + content_1 = this.currentValue.toString(); + this.tooltipObj.setProperties({ content: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["initializeCSPTemplate"])(function () { return content_1; }) }, isChange); + } + this.renderReactTemplates(); + } + }; + Rating.prototype.getTemplateString = function (template) { + var stringContent = ''; + try { + if (typeof template !== 'function') { + var tempEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(template); + if (tempEle) { + //Return innerHTML incase of jsrenderer script else outerHTML + stringContent = tempEle.tagName === 'SCRIPT' ? tempEle.innerHTML : tempEle.outerHTML; + } + else { + stringContent = template; + } + } + else { + stringContent = template; + } + } + catch (e) { + stringContent = template; + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(stringContent); + }; + Rating.prototype.displayLabel = function () { + if (this.showLabel) { + this.spanLabel = this.createElement('span', { className: LABEL }); + this.updateLabel(); + this.updateLabelPosition(); + } + else { + if (this.wrapper.contains(this.spanLabel)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.spanLabel); + this.spanLabel = null; + } + } + }; + Rating.prototype.updateLabel = function () { + if (this.showLabel) { + if (this.labelTemplate) { + if (this.isReact) { + this.clearTemplate(['ratingLabelTemplate']); + } + if (this.spanLabel.firstChild) { + this.spanLabel.innerHTML = ''; + } + var templateFunction = this.getTemplateString(this.labelTemplate); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(templateFunction({ value: this.currentValue }, this, 'ratingLabelTemplate', (this.element.id + 'labelTemplate'), this.isStringTemplate), this.spanLabel); + this.renderReactTemplates(); + } + else { + this.spanLabel.textContent = this.currentValue + ' / ' + this.itemsCount; + } + } + }; + Rating.prototype.updateReset = function () { + if (this.allowReset) { + this.resetElement = this.createElement('span', { + className: RESET, + attrs: { 'aria-label': 'resetbutton', 'role': 'button' } + }); + this.updateResetButton(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.resetElement, 'click', this.resetClicked, this); + this.wrapper.insertBefore(this.resetElement, this.ratingItemList); + } + else { + if (this.wrapper.contains(this.resetElement)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.resetElement); + this.resetElement = null; + } + } + }; + Rating.prototype.updateLabelPosition = function () { + this.clearLabelPosition(); + this.spanLabel.classList.add('e-label-' + this.labelPosition.toLowerCase()); + if (this.labelPosition === 'Left' || this.labelPosition === 'Top') { + this.wrapper.firstChild.after(this.spanLabel); + } + else { + this.wrapper.appendChild(this.spanLabel); + } + }; + Rating.prototype.clearLabelPosition = function () { + var removeCss = this.spanLabel.classList.value.match(/(e-label-[top|bottom|right|left]+)/g); + if (removeCss) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.spanLabel], removeCss); + } + }; + Rating.prototype.wireItemsEvents = function (itemElement, index) { + var _this = this; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(itemElement, 'click', function (e) { return _this.clickHandler(e); }, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(itemElement, 'mousemove', function (e) { return _this.mouseMoveHandler(index, e); }, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(itemElement, 'mouseleave', this.mouseLeaveHandler, this); + }; + Rating.prototype.clickHandler = function (e) { + this.currentValue = (this.min > 0 && this.currentValue < this.min) ? this.min : this.currentValue; + this.triggerChange(e, this.currentValue); + this.updateItemValue(); + this.updateLabel(); + this.updateResetButton(); + }; + Rating.prototype.updateValueChange = function (e, val, isInteracted) { + if (isInteracted === void 0) { isInteracted = true; } + this.triggerChange(e, val, isInteracted); + this.updateItemValue(); + this.updateLabel(); + }; + Rating.prototype.triggerChange = function (e, val, isInteracted) { + if (isInteracted === void 0) { isInteracted = true; } + val = this.validateValue(val); + this.currentValue = val; + if (this.currentValue === this.value) { + return; + } + var eventArgs = { event: e, isInteracted: isInteracted, value: val, previousValue: this.value }; + this.setProperties({ value: val }, true); + this.trigger('valueChanged', eventArgs); + }; + Rating.prototype.mouseMoveHandler = function (index, e) { + var currValue = this.calculateCurrentValue(index, e); + currValue = this.validateValue(currValue); + var element = this.itemElements[parseInt((index - 1).toString(), 10)]; + if (currValue === this.currentValue) { + this.openRatingTooltip(element, false); + return; + } + this.updateCurrentValue(currValue); + this.openRatingTooltip(element, true); + var eventArgs = { element: element, event: e, value: currValue }; + this.trigger('onItemHover', eventArgs); + }; + Rating.prototype.openRatingTooltip = function (element, isChange) { + if (this.showTooltip) { + if (!this.tooltipOpen) { + this.updateTooltipContent(false); + this.tooltipObj.open(element); + this.tooltipOpen = true; + } + else if (isChange) { + this.updateTooltipContent(true); + this.tooltipObj.refresh(element); + } + } + }; + Rating.prototype.closeRatingTooltip = function () { + if (this.tooltipOpen) { + this.tooltipObj.close(); + this.tooltipOpen = false; + } + }; + Rating.prototype.updateCurrentValue = function (currValue) { + this.currentValue = currValue; + this.updateItemValue(); + this.updateLabel(); + }; + Rating.prototype.mouseLeaveHandler = function () { + this.closeRatingTooltip(); + this.updateCurrentValue(this.value); + }; + Rating.prototype.calculateCurrentValue = function (index, args) { + var currentValue = index; + if (!(this.enableSingleSelection || (this.precision === PrecisionType.Full))) { + currentValue = args.offsetX / this.itemElements[index - 1].clientWidth; + currentValue = (this.enableRtl) ? (1 - currentValue) : currentValue; + if (this.precision === PrecisionType.Quarter) { + currentValue = currentValue <= 0.25 ? 0.25 : currentValue <= 0.5 ? 0.5 : currentValue < 0.75 ? 0.75 : 1.0; + } + else if (this.precision === PrecisionType.Half) { + currentValue = currentValue <= 0.5 ? 0.5 : 1; + } + currentValue = currentValue + index - 1; + } + return currentValue; + }; + /** + * Reset’s the value to minimum. + * + * {% codeBlock src='rating/reset/index.md' %}{% endcodeBlock %} + * + * @returns {void} + */ + Rating.prototype.reset = function () { + this.resetClicked(null, false); + }; + Rating.prototype.resetClicked = function (e, isInteracted) { + if (isInteracted === void 0) { isInteracted = true; } + this.updateValueChange(e, this.min, isInteracted); + this.updateResetButton(); + }; + Rating.prototype.wireKeyboardEvent = function () { + this.keyboardModuleRating = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.wrapper, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs, + eventName: 'keydown' + }); + }; + Rating.prototype.keyActionHandler = function (e) { + if (this.disabled || this.readOnly) { + return; + } + if (e.target.classList.contains(ITEMLIST)) { + switch (e.action) { + case 'uparrow': + this.handleNavigation(e, true); + break; + case 'downarrow': + this.handleNavigation(e, false); + break; + case 'leftarrow': + this.handleNavigation(e, this.enableRtl); + break; + case 'rightarrow': + this.handleNavigation(e, !this.enableRtl); + break; + } + } + if (this.allowReset && e.target.classList.contains('e-reset')) { + switch (e.action) { + case 'space': + this.resetClicked(e); + break; + } + } + }; + Rating.prototype.handleNavigation = function (e, isIncrease) { + if ((!isIncrease && (this.value > this.min)) || (isIncrease && (this.value < this.itemsCount))) { + var currentValue = (this.precision === PrecisionType.Full || this.enableSingleSelection) ? 1 : + (this.precision === PrecisionType.Half) ? 0.5 : (this.precision === PrecisionType.Quarter) ? 0.25 : + Math.round(0.1 * 10) / 10; + currentValue = isIncrease ? this.value + currentValue : this.value - currentValue; + this.updateValueChange(e, (currentValue)); + this.updateResetButton(); + } + }; + Rating.prototype.updateContent = function () { + if (this.isReact) { + this.clearTemplate(['ratingEmptyTemplate', 'ratingFullTemplate']); + } + for (var i = 0; i < this.itemsCount; i++) { + var itemElement = this.itemElements[parseInt(i.toString(), 10)].firstElementChild; + this.renderItemContent(itemElement, this.getRatingValue(this.value, i), i, true); + } + }; + /** + * To get component name. + * + * @returns {string} - Module Name + * @private + */ + Rating.prototype.getModuleName = function () { + return 'rating'; + }; + /** + * To get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + Rating.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + Rating.prototype.removeItemElements = function () { + for (var i = 0; i < this.itemElements.length; i++) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.itemElements[parseInt(i.toString(), 10)]); + } + this.itemElements = []; + }; + /** + * Destroys the Rating instance. + * + * @returns {void} + */ + Rating.prototype.destroy = function () { + var _this = this; + _super.prototype.destroy.call(this); + // unwires the events and detach the li elements + this.removeItemElements(); + this.clearTemplate(); + if (this.spanLabel) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.spanLabel); + this.spanLabel = null; + } + if (this.resetElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.resetElement); + this.resetElement = null; + } + if (this.showTooltip) { + this.tooltipObj.destroy(); + this.tooltipObj = null; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.ratingItemList); + this.ratingItemList = null; + this.wrapper.parentNode.insertBefore(this.element, this.wrapper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.wrapper); + this.wrapper = null; + this.keyboardModuleRating.destroy(); + this.keyboardModuleRating = null; + ['value', 'aria-label', 'name'].forEach(function (attr) { + _this.element.removeAttribute(attr); + }); + }; + /** + * Called internally if any of the property value changed. + * + * @param {RatingModel} newProp - Specifies new properties + * @param {RatingModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + Rating.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'value': + this.updateValueChange(null, (this.value > this.min) ? this.value : this.min, false); + break; + case 'min': + this.updateMinValue(); + this.updateItemValue(); + this.updateLabel(); + break; + case 'showLabel': + this.displayLabel(); + break; + case 'visible': + this.wrapper.classList[!this.visible ? 'add' : 'remove'](HIDDEN); + break; + case 'disabled': + this.updateDisabled(); + break; + case 'readOnly': + this.wrapper.classList[this.readOnly ? 'add' : 'remove'](READONLY); + break; + case 'allowReset': + this.updateReset(); + break; + case 'enableRtl': + this.wrapper.classList[this.enableRtl ? 'add' : 'remove'](RTL); + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], newProp.cssClass.split(' ')); + } + if (this.tooltipObj) { + this.tooltipObj.setProperties({ cssClass: this.cssClass ? ('e-rating-tooltip ' + this.cssClass) : 'e-rating-tooltip' }); + } + break; + case 'labelPosition': + this.updateLabelPosition(); + break; + case 'showTooltip': + this.updateTooltip(); + break; + case 'precision': + this.updateMinValue(); + this.triggerChange(null, this.value, false); + this.updateItemValue(); + this.updateLabel(); + break; + case 'enableSingleSelection': + //To validate the value against single selection and update the items, label + trigger change event if value changed + this.updateValueChange(null, this.currentValue, false); + break; + case 'enableAnimation': + this.wrapper.classList[this.enableAnimation ? 'add' : 'remove'](ANIMATION); + break; + case 'emptyTemplate': + case 'fullTemplate': + this.updateTemplateFunction(); + this.updateContent(); + break; + case 'labelTemplate': + this.updateLabel(); + break; + case 'itemsCount': + this.removeItemElements(); + this.renderItems(); + this.updateLabel(); + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Rating.prototype, "allowReset", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Rating.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Rating.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Rating.prototype, "emptyTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Rating.prototype, "enableAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Rating.prototype, "enableSingleSelection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Rating.prototype, "fullTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5) + ], Rating.prototype, "itemsCount", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(LabelPosition.Right) + ], Rating.prototype, "labelPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Rating.prototype, "labelTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.0) + ], Rating.prototype, "min", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(PrecisionType.Full) + ], Rating.prototype, "precision", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Rating.prototype, "readOnly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Rating.prototype, "showLabel", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Rating.prototype, "showTooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Rating.prototype, "tooltipTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.0) + ], Rating.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Rating.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Rating.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Rating.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Rating.prototype, "onItemHover", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Rating.prototype, "valueChanged", void 0); + Rating = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Rating); + return Rating; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/signature/index.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/signature/index.js ***! + \*********************************************************************/ +/*! exports provided: Signature */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _signature__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./signature */ "./ej2-resources/22.1.37/scripts/ej2-inputs/signature/signature.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Signature", function() { return _signature__WEBPACK_IMPORTED_MODULE_0__["Signature"]; }); + +/** + * Signature modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/signature/signature.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/signature/signature.js ***! + \*************************************************************************/ +/*! exports provided: Signature */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Signature", function() { return Signature; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_signature_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/signature-base */ "./ej2-resources/22.1.37/scripts/ej2-inputs/common/signature-base.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * The Signature component allows user to draw smooth signatures as vector outline of strokes using variable width bezier curve interpolation. + * It allows to save signature as image. + * You can use your finger, pen, or mouse on a tablet, touchscreen, etc., to draw your own signature on this Signature component. + * Signature component is a user interface to draw the Signature or Text. + * It provides supports for various Background color, Stroke color and Background Image. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Signature = /** @__PURE__ @class */ (function (_super) { + __extends(Signature, _super); + /** + * Constructor for creating the widget. + * + * @param {SignatureModel} options - Specifies the Signature model. + * @param {string | HTMLCanvasElement} element - Specifies the element. + * @private + */ + function Signature(options, element) { + return _super.call(this, options, element) || this; + } + Signature.prototype.preRender = function () { + // pre render code snippets + }; + /** + * To Initialize the component rendering + * + * @private + * @returns {void} + */ + Signature.prototype.render = function () { + this.initialize(); + }; + Signature.prototype.initialize = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], 'e-' + this.getModuleName()); + _super.prototype.initialize.call(this, this.element); + if (this.enablePersistence) { + this.loadPersistedSignature(); + } + }; + /** + * To get component name. + * + * @returns {string} - Module Name + * @private + */ + Signature.prototype.getModuleName = function () { + return 'signature'; + }; + /** + * To get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + Signature.prototype.getPersistData = function () { + return this.addOnPersist(['signatureValue']); + }; + /** + * Called internally if any of the property value changed. + * + * @param {SignatureModel} newProp - Specifies new properties + * @param {SignatureModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + Signature.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'backgroundColor': + _super.prototype.propertyChanged.call(this, prop, newProp.backgroundColor); + break; + case 'backgroundImage': + _super.prototype.propertyChanged.call(this, prop, newProp.backgroundImage); + break; + case 'strokeColor': + if (newProp.strokeColor !== oldProp.strokeColor) { + _super.prototype.propertyChanged.call(this, prop, newProp.strokeColor); + } + break; + case 'saveWithBackground': + _super.prototype.propertyChanged.call(this, prop, newProp.saveWithBackground); + break; + case 'isReadOnly': + _super.prototype.propertyChanged.call(this, prop, newProp.isReadOnly); + break; + case 'disabled': + _super.prototype.propertyChanged.call(this, prop, newProp.disabled); + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Signature.prototype, "backgroundColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Signature.prototype, "backgroundImage", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Signature.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Signature.prototype, "isReadOnly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Signature.prototype, "saveWithBackground", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('#000000') + ], Signature.prototype, "strokeColor", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.5) + ], Signature.prototype, "minStrokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(2) + ], Signature.prototype, "maxStrokeWidth", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0.7) + ], Signature.prototype, "velocity", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('en-US') + ], Signature.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Signature.prototype, "enableRtl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Signature.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Signature.prototype, "beforeSave", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Signature.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Signature.prototype, "created", void 0); + Signature = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Signature); + return Signature; +}(_common_signature_base__WEBPACK_IMPORTED_MODULE_1__["SignatureBase"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/slider/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/slider/index.js ***! + \******************************************************************/ +/*! exports provided: TicksData, ColorRangeData, LimitData, TooltipData, Slider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _slider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slider */ "./ej2-resources/22.1.37/scripts/ej2-inputs/slider/slider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TicksData", function() { return _slider__WEBPACK_IMPORTED_MODULE_0__["TicksData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColorRangeData", function() { return _slider__WEBPACK_IMPORTED_MODULE_0__["ColorRangeData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LimitData", function() { return _slider__WEBPACK_IMPORTED_MODULE_0__["LimitData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipData", function() { return _slider__WEBPACK_IMPORTED_MODULE_0__["TooltipData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return _slider__WEBPACK_IMPORTED_MODULE_0__["Slider"]; }); + +/** + * Slider modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/slider/slider.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/slider/slider.js ***! + \*******************************************************************/ +/*! exports provided: TicksData, ColorRangeData, LimitData, TooltipData, Slider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TicksData", function() { return TicksData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColorRangeData", function() { return ColorRangeData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LimitData", function() { return LimitData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipData", function() { return TooltipData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Slider", function() { return Slider; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + +/** + * Configures the ticks data of the Slider. + */ +var TicksData = /** @__PURE__ @class */ (function (_super) { + __extends(TicksData, _super); + function TicksData() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], TicksData.prototype, "placement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(10) + ], TicksData.prototype, "largeStep", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], TicksData.prototype, "smallStep", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TicksData.prototype, "showSmallTicks", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TicksData.prototype, "format", void 0); + return TicksData; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * It illustrates the color track data in slider. + * {% codeBlock src='slider/colorrange/index.md' %}{% endcodeBlock %} + */ +var ColorRangeData = /** @__PURE__ @class */ (function (_super) { + __extends(ColorRangeData, _super); + function ColorRangeData() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ColorRangeData.prototype, "color", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ColorRangeData.prototype, "start", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ColorRangeData.prototype, "end", void 0); + return ColorRangeData; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * It illustrates the limit data in slider. + * {% codeBlock src='slider/limits/index.md' %}{% endcodeBlock %} + */ +var LimitData = /** @__PURE__ @class */ (function (_super) { + __extends(LimitData, _super); + function LimitData() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], LimitData.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], LimitData.prototype, "minStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], LimitData.prototype, "minEnd", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], LimitData.prototype, "maxStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], LimitData.prototype, "maxEnd", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], LimitData.prototype, "startHandleFixed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], LimitData.prototype, "endHandleFixed", void 0); + return LimitData; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * It illustrates the tooltip data in slider. + */ +var TooltipData = /** @__PURE__ @class */ (function (_super) { + __extends(TooltipData, _super); + function TooltipData() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], TooltipData.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Before') + ], TooltipData.prototype, "placement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Focus') + ], TooltipData.prototype, "showOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TooltipData.prototype, "isVisible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TooltipData.prototype, "format", void 0); + return TooltipData; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var bootstrapTooltipOffset = 6; +var bootstrap4TooltipOffset = 3; +var classNames = { + root: 'e-slider', + rtl: 'e-rtl', + sliderHiddenInput: 'e-slider-input', + controlWrapper: 'e-control-wrapper', + sliderHandle: 'e-handle', + rangeBar: 'e-range', + sliderButton: 'e-slider-button', + firstButton: 'e-first-button', + secondButton: 'e-second-button', + scale: 'e-scale', + tick: 'e-tick', + large: 'e-large', + tickValue: 'e-tick-value', + sliderTooltip: 'e-slider-tooltip', + sliderHover: 'e-slider-hover', + sliderFirstHandle: 'e-handle-first', + sliderSecondHandle: 'e-handle-second', + sliderDisabled: 'e-disabled', + sliderContainer: 'e-slider-container', + horizontalTooltipBefore: 'e-slider-horizontal-before', + horizontalTooltipAfter: 'e-slider-horizontal-after', + verticalTooltipBefore: 'e-slider-vertical-before', + verticalTooltipAfter: 'e-slider-vertical-after', + materialTooltip: 'e-material-tooltip', + materialTooltipOpen: 'e-material-tooltip-open', + materialTooltipActive: 'e-tooltip-active', + materialSlider: 'e-material-slider', + sliderTrack: 'e-slider-track', + sliderHorizantalColor: 'e-slider-horizantal-color', + sliderVerticalColor: 'e-slider-vertical-color', + sliderHandleFocused: 'e-handle-focused', + verticalSlider: 'e-vertical', + horizontalSlider: 'e-horizontal', + sliderHandleStart: 'e-handle-start', + sliderTooltipStart: 'e-material-tooltip-start', + sliderTabHandle: 'e-tab-handle', + sliderButtonIcon: 'e-button-icon', + sliderSmallSize: 'e-small-size', + sliderTickPosition: 'e-tick-pos', + sliderFirstTick: 'e-first-tick', + sliderLastTick: 'e-last-tick', + sliderButtonClass: 'e-slider-btn', + sliderTooltipWrapper: 'e-tooltip-wrap', + sliderTabTrack: 'e-tab-track', + sliderTabRange: 'e-tab-range', + sliderActiveHandle: 'e-handle-active', + sliderMaterialHandle: 'e-material-handle', + sliderMaterialRange: 'e-material-range', + sliderMaterialDefault: 'e-material-default', + materialTooltipShow: 'e-material-tooltip-show', + materialTooltipHide: 'e-material-tooltip-hide', + readonly: 'e-read-only', + limits: 'e-limits', + limitBarDefault: 'e-limit-bar', + limitBarFirst: 'e-limit-first', + limitBarSecond: 'e-limit-second', + dragHorizontal: 'e-drag-horizontal', + dragVertical: 'e-drag-vertical' +}; +/** + * The Slider component allows the user to select a value or range + * of values in-between a min and max range, by dragging the handle over the slider bar. + * ```html + *
+ * ``` + * ```typescript + * + * ``` + */ +var Slider = /** @__PURE__ @class */ (function (_super) { + __extends(Slider, _super); + function Slider(options, element) { + var _this = _super.call(this, options, element) || this; + _this.horDir = 'left'; + _this.verDir = 'bottom'; + _this.transition = { + handle: 'left .4s cubic-bezier(.25, .8, .25, 1), right .4s cubic-bezier(.25, .8, .25, 1), ' + + 'top .4s cubic-bezier(.25, .8, .25, 1) , bottom .4s cubic-bezier(.25, .8, .25, 1)', + rangeBar: 'all .4s cubic-bezier(.25, .8, .25, 1)' + }; + _this.transitionOnMaterialTooltip = { + handle: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, top 1ms ease-out', + rangeBar: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, width 1ms ease-out, height 1ms ease-out' + }; + _this.scaleTransform = 'transform .4s cubic-bezier(.25, .8, .25, 1)'; + _this.customAriaText = null; + _this.drag = true; + _this.isDragComplete = false; + _this.initialTooltip = true; + return _this; + } + Slider.prototype.preRender = function () { + // eslint-disable-next-line + var localeText = { incrementTitle: 'Increase', decrementTitle: 'Decrease' }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('slider', localeText, this.locale); + this.isElementFocused = false; + this.tickElementCollection = []; + this.tooltipFormatInfo = {}; + this.ticksFormatInfo = {}; + this.initCultureInfo(); + this.initCultureFunc(); + this.formChecker(); + }; + Slider.prototype.formChecker = function () { + var formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (formElement) { + this.isForm = true; + // this condition needs to be checked, if the slider is going to be refreshed by `refresh()` + // then we need to revert the slider `value` back to `formResetValue` to preserve the initial value + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.formResetValue)) { + this.setProperties({ 'value': this.formResetValue }, true); + } + this.formResetValue = this.value; + if (this.type === 'Range' && + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.formResetValue) || typeof (this.formResetValue) !== 'object')) { + this.formResetValue = [parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)), parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))]; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.formResetValue)) { + this.formResetValue = parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)); + } + this.formElement = formElement; + } + else { + this.isForm = false; + } + }; + Slider.prototype.initCultureFunc = function () { + this.internationalization = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Internationalization"](this.locale); + }; + Slider.prototype.initCultureInfo = function () { + this.tooltipFormatInfo.format = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip.format)) ? this.tooltip.format : null; + this.ticksFormatInfo.format = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks.format)) ? this.ticks.format : null; + }; + Slider.prototype.formatString = function (value, formatInfo) { + var formatValue = null; + var formatString = null; + if ((value || value === 0)) { + formatValue = this.formatNumber(value); + var numberOfDecimals = this.numberOfDecimals(value); + formatString = this.internationalization.getNumberFormat(formatInfo)(this.makeRoundNumber(value, numberOfDecimals)); + } + return { elementVal: formatValue, formatString: formatString }; + }; + Slider.prototype.formatNumber = function (value) { + var numberOfDecimals = this.numberOfDecimals(value); + return this.internationalization.getNumberFormat({ + maximumFractionDigits: numberOfDecimals, + minimumFractionDigits: numberOfDecimals, useGrouping: false + })(value); + }; + Slider.prototype.numberOfDecimals = function (value) { + var decimalPart = value.toString().split('.')[1]; + var numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length; + return numberOfDecimals; + }; + Slider.prototype.makeRoundNumber = function (value, precision) { + var decimals = precision || 0; + return Number(value.toFixed(decimals)); + }; + Slider.prototype.fractionalToInteger = function (value) { + value = (this.numberOfDecimals(value) === 0) ? Number(value).toFixed(this.noOfDecimals) : value; + var tens = 1; + for (var i = 0; i < this.noOfDecimals; i++) { + tens *= 10; + } + value = Number((value * tens).toFixed(0)); + return value; + }; + /** + * To Initialize the control rendering + * + * @private + */ + Slider.prototype.render = function () { + var _this = this; + this.initialize(); + this.initRender(); + this.wireEvents(); + this.setZindex(); + this.renderComplete(); + if (this.element.tagName === 'EJS-SLIDER') { + if (this.getTheme(this.sliderContainer) == 'none') { + setTimeout(function () { + _this.refresh(); + }, 0); + } + } + }; + Slider.prototype.initialize = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], classNames.root); + this.setCSSClass(); + }; + Slider.prototype.setElementWidth = function (width) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(width)) { + if (typeof width === 'number') { + this.sliderContainer.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else if (typeof width === 'string') { + this.sliderContainer.style.width = (width.match(/px|%|em/)) ? (width) : (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width)); + } + } + }; + Slider.prototype.setCSSClass = function (oldCSSClass) { + if (oldCSSClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldCSSClass.split(' ')); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.split(' ')); + } + }; + Slider.prototype.setEnabled = function () { + if (!this.enabled) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.sliderContainer], [classNames.sliderDisabled]); + if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') { + this.tooltipElement.classList.add(classNames.sliderDisabled); + } + this.unwireEvents(); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.sliderContainer], [classNames.sliderDisabled]); + if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') { + this.tooltipElement.classList.remove(classNames.sliderDisabled); + } + this.wireEvents(); + } + }; + Slider.prototype.getTheme = function (container) { + var theme = window.getComputedStyle(container, ':after').getPropertyValue('content'); + return theme.replace(/['"]+/g, ''); + }; + /** + * Initialize the rendering + * + * @private + */ + Slider.prototype.initRender = function () { + this.sliderContainer = this.createElement('div', { className: classNames.sliderContainer + ' ' + classNames.controlWrapper }); + this.element.parentNode.insertBefore(this.sliderContainer, this.element); + this.sliderContainer.appendChild(this.element); + this.sliderTrack = this.createElement('div', { className: classNames.sliderTrack }); + this.element.appendChild(this.sliderTrack); + this.setElementWidth(this.width); + this.element.tabIndex = -1; + this.getThemeInitialization(); + this.setHandler(); + this.createRangeBar(); + if (this.limits.enabled) { + this.createLimitBar(); + } + this.setOrientClass(); + this.hiddenInput = (this.createElement('input', { + attrs: { + type: 'hidden', value: (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value) ? this.min.toString() : this.value.toString()), + name: this.element.getAttribute('name') || this.element.getAttribute('id') || + '_' + (Math.random() * 1000).toFixed(0) + 'slider', class: classNames.sliderHiddenInput + } + })); + this.hiddenInput.tabIndex = -1; + this.sliderContainer.appendChild(this.hiddenInput); + if (this.showButtons) { + this.setButtons(); + } + this.setEnableRTL(); + if (this.type === 'Range') { + this.rangeValueUpdate(); + } + else { + this.value = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value) ? parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min.toString())) : this.value; + } + this.previousVal = this.type !== 'Range' ? this.checkHandleValue(parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.value.toString()))) : + [this.checkHandleValue(parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.value[0].toString()))), + this.checkHandleValue(parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.value[1].toString())))]; + this.previousChanged = this.previousVal; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.hasAttribute('name'))) { + this.element.removeAttribute('name'); + } + this.setValue(); + if (this.limits.enabled) { + this.setLimitBar(); + } + if (this.ticks.placement !== 'None') { + this.renderScale(); + } + if (this.tooltip.isVisible) { + this.renderTooltip(); + } + if (!this.enabled) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.sliderContainer], [classNames.sliderDisabled]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.sliderContainer], [classNames.sliderDisabled]); + } + if (this.readonly) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.sliderContainer], [classNames.readonly]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.sliderContainer], [classNames.readonly]); + } + }; + Slider.prototype.getThemeInitialization = function () { + this.isMaterial = this.getTheme(this.sliderContainer) === 'material' + || this.getTheme(this.sliderContainer) === 'material-dark'; + this.isMaterial3 = this.getTheme(this.sliderContainer) === 'Material3' + || this.getTheme(this.sliderContainer) === 'Material3-dark'; + this.isBootstrap = this.getTheme(this.sliderContainer) === 'bootstrap' + || this.getTheme(this.sliderContainer) === 'bootstrap-dark'; + this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4'; + this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark'; + this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5'; + this.isFluent = this.getTheme(this.sliderContainer) === 'FluentUI'; + this.isMaterialTooltip = (this.isMaterial || this.isMaterial3) && this.type !== 'Range' && this.tooltip.isVisible; + }; + Slider.prototype.createRangeBar = function () { + if (this.type !== 'Default') { + this.rangeBar = (this.createElement('div', { attrs: { class: classNames.rangeBar } })); + this.element.appendChild(this.rangeBar); + if (this.drag && this.type === 'Range') { + if (this.orientation === 'Horizontal') { + this.rangeBar.classList.add(classNames.dragHorizontal); + } + else { + this.rangeBar.classList.add(classNames.dragVertical); + } + } + } + }; + Slider.prototype.createLimitBar = function () { + var firstElementClassName = this.type !== 'Range' ? classNames.limitBarDefault : + classNames.limitBarFirst; + firstElementClassName += ' ' + classNames.limits; + this.limitBarFirst = (this.createElement('div', { + attrs: { class: firstElementClassName } + })); + this.element.appendChild(this.limitBarFirst); + if (this.type === 'Range') { + this.limitBarSecond = (this.createElement('div', { + attrs: { + class: classNames.limitBarSecond + ' ' + classNames.limits + } + })); + this.element.appendChild(this.limitBarSecond); + } + }; + Slider.prototype.setOrientClass = function () { + if (this.orientation !== 'Vertical') { + this.sliderContainer.classList.remove(classNames.verticalSlider); + this.sliderContainer.classList.add(classNames.horizontalSlider); + this.firstHandle.setAttribute('aria-orientation', 'horizontal'); + if (this.type === 'Range') { + this.secondHandle.setAttribute('aria-orientation', 'horizontal'); + } + } + else { + this.sliderContainer.classList.remove(classNames.horizontalSlider); + this.sliderContainer.classList.add(classNames.verticalSlider); + this.firstHandle.setAttribute('aria-orientation', 'vertical'); + if (this.type === 'Range') { + this.secondHandle.setAttribute('aria-orientation', 'vertical'); + } + } + }; + Slider.prototype.setAriaAttributes = function (element) { + var _this = this; + var min = this.min; + var max = this.max; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0) { + min = this.customValues[0]; + max = this.customValues[this.customValues.length - 1]; + } + if (this.type !== 'Range') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { + 'aria-valuemin': min.toString(), 'aria-valuemax': max.toString() + }); + } + else { + var range = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0 ? + [[min.toString(), (this.customValues[this.value[1]]).toString()], + [(this.customValues[this.value[0]]).toString(), max.toString()]] : + [[min.toString(), this.value[1].toString()], [this.value[0].toString(), max.toString()]]; + range.forEach(function (range, index) { + var element = index === 0 ? _this.firstHandle : _this.secondHandle; + if (element) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { + 'aria-valuemin': range[0], 'aria-valuemax': range[1] + }); + } + }); + } + }; + Slider.prototype.createSecondHandle = function () { + this.secondHandle = this.createElement('div', { + attrs: { + class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider' + } + }); + this.secondHandle.classList.add(classNames.sliderSecondHandle); + this.element.appendChild(this.secondHandle); + }; + Slider.prototype.createFirstHandle = function () { + this.firstHandle = this.createElement('div', { + attrs: { + class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider' + } + }); + this.firstHandle.classList.add(classNames.sliderFirstHandle); + this.element.appendChild(this.firstHandle); + if (this.isMaterialTooltip) { + this.materialHandle = this.createElement('div', { + attrs: { + class: classNames.sliderHandle + ' ' + + classNames.sliderMaterialHandle + } + }); + this.element.appendChild(this.materialHandle); + } + }; + Slider.prototype.wireFirstHandleEvt = function (destroy) { + if (!destroy) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstHandle, 'mousedown touchstart', this.handleFocus, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstHandle, 'transitionend', this.transitionEnd, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstHandle, 'mouseenter touchenter', this.handleOver, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstHandle, 'mouseleave touchend', this.handleLeave, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstHandle, 'mousedown touchstart', this.handleFocus); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstHandle, 'transitionend', this.transitionEnd); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstHandle, 'mouseenter touchenter', this.handleOver); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstHandle, 'mouseleave touchend', this.handleLeave); + } + }; + Slider.prototype.wireSecondHandleEvt = function (destroy) { + if (!destroy) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondHandle, 'mousedown touchstart', this.handleFocus, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondHandle, 'transitionend', this.transitionEnd, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondHandle, 'mouseenter touchenter', this.handleOver, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondHandle, 'mouseleave touchend', this.handleLeave, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondHandle, 'mousedown touchstart', this.handleFocus); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondHandle, 'transitionend', this.transitionEnd); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondHandle, 'mouseenter touchenter', this.handleOver); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondHandle, 'mouseleave touchend', this.handleLeave); + } + }; + Slider.prototype.handleStart = function () { + if (this.type !== 'Range') { + this.firstHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart); + if (this.isMaterialTooltip) { + this.materialHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart); + if (this.tooltipElement) { + this.tooltipElement.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderTooltipStart); + } + } + } + }; + Slider.prototype.transitionEnd = function (e) { + if (e.propertyName !== 'transform') { + this.handleStart(); + if (!this.enableAnimation) { + this.getHandle().style.transition = 'none'; + } + if (this.type !== 'Default') { + this.rangeBar.style.transition = 'none'; + } + if ((this.isMaterial || this.isMaterial3) && this.tooltip.isVisible && this.type === 'Default') { + this.tooltipElement.style.transition = this.transition.handle; + } + this.tooltipToggle(this.getHandle()); + this.closeTooltip(); + } + }; + Slider.prototype.handleFocusOut = function () { + if (this.firstHandle.classList.contains(classNames.sliderHandleFocused)) { + this.firstHandle.classList.remove(classNames.sliderHandleFocused); + } + if (this.type === 'Range') { + if (this.secondHandle.classList.contains(classNames.sliderHandleFocused)) { + this.secondHandle.classList.remove(classNames.sliderHandleFocused); + } + } + }; + Slider.prototype.handleFocus = function (e) { + this.focusSliderElement(); + this.sliderBarClick(e); + if (e.currentTarget === this.firstHandle) { + this.firstHandle.classList.add(classNames.sliderHandleFocused); + this.firstHandle.classList.add(classNames.sliderTabHandle); + } + else { + this.secondHandle.classList.add(classNames.sliderHandleFocused); + this.secondHandle.classList.add(classNames.sliderTabHandle); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousemove touchmove', this.sliderBarMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup touchend', this.sliderBarUp, this); + }; + Slider.prototype.handleOver = function (e) { + if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover') { + this.tooltipToggle(e.currentTarget); + } + if (this.type === 'Default') { + this.tooltipToggle(this.getHandle()); + } + }; + Slider.prototype.handleLeave = function (e) { + if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover' && + !e.currentTarget.classList.contains(classNames.sliderHandleFocused) && + !e.currentTarget.classList.contains(classNames.sliderTabHandle)) { + this.closeTooltip(); + } + }; + Slider.prototype.setHandler = function () { + this.createFirstHandle(); + if (this.type === 'Range') { + this.createSecondHandle(); + } + }; + Slider.prototype.setEnableRTL = function () { + this.enableRtl && this.orientation !== 'Vertical' ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.sliderContainer], classNames.rtl) : + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.sliderContainer], classNames.rtl); + var preDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir; + if (this.enableRtl) { + this.horDir = 'right'; + this.verDir = 'bottom'; + } + else { + this.horDir = 'left'; + this.verDir = 'bottom'; + } + var currDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir; + if (preDir !== currDir) { + if (this.orientation === 'Horizontal') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.firstHandle, { 'right': '', 'left': 'auto' }); + if (this.type === 'Range') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.secondHandle, { 'top': '', 'left': 'auto' }); + } + } + } + this.setBarColor(); + }; + Slider.prototype.tooltipValue = function () { + var _this = this; + var text; + var args = { + value: this.value, + text: '' + }; + if (this.initialTooltip) { + this.initialTooltip = false; + this.setTooltipContent(); + args.text = text = this.tooltipObj.content; + this.trigger('tooltipChange', args, function (observedArgs) { + _this.addTooltipClass(observedArgs.text); + if (text !== observedArgs.text) { + _this.customAriaText = observedArgs.text; + _this.tooltipObj.content = observedArgs.text; + _this.setAriaAttrValue(_this.firstHandle); + if (_this.type === 'Range') { + _this.setAriaAttrValue(_this.secondHandle); + } + } + }); + if (this.isMaterialTooltip) { + this.setPreviousVal('change', this.value); + } + } + }; + Slider.prototype.setTooltipContent = function () { + var content; + content = this.formatContent(this.tooltipFormatInfo, false); + this.tooltipObj.content = content; + }; + Slider.prototype.formatContent = function (formatInfo, ariaContent) { + var content = ''; + var handle1 = this.handleVal1; + var handle2 = this.handleVal2; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0) { + handle1 = this.customValues[this.handleVal1]; + handle2 = this.customValues[this.handleVal2]; + } + if (!ariaContent) { + if (this.type === 'Range') { + if (this.enableRtl && this.orientation !== 'Vertical') { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(formatInfo.format)) ? (this.formatString(handle2, formatInfo) + .formatString + ' - ' + this.formatString(handle1, formatInfo).formatString) : + (handle2.toString() + ' - ' + handle1.toString()); + } + else { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(formatInfo.format)) ? (this.formatString(handle1, formatInfo) + .formatString + ' - ' + this.formatString(handle2, formatInfo).formatString) : + (handle1.toString() + ' - ' + handle2.toString()); + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(handle1)) { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(formatInfo.format)) ? + this.formatString(handle1, formatInfo).formatString : handle1.toString(); + } + } + return content; + } + else { + if (this.type === 'Range') { + if (this.enableRtl && this.orientation !== 'Vertical') { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip.format)) ? + (this.formatString(handle2, formatInfo).elementVal + ' - ' + + this.formatString(handle1, formatInfo).elementVal) : + (handle2.toString() + ' - ' + handle1.toString()); + } + else { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip.format)) ? + (this.formatString(handle1, formatInfo).elementVal + ' - ' + + this.formatString(handle2, formatInfo).elementVal) : + (handle1.toString() + ' - ' + handle2.toString()); + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(handle1)) { + content = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltip.format)) ? + this.formatString(handle1, formatInfo).elementVal : handle1.toString(); + } + } + return content; + } + }; + Slider.prototype.addTooltipClass = function (content) { + if (this.isMaterialTooltip) { + var count = content.toString().length; + if (!this.tooltipElement) { + var cssClass = count > 4 ? classNames.sliderMaterialRange : classNames.sliderMaterialDefault; + this.tooltipObj.cssClass = classNames.sliderTooltip + ' ' + cssClass; + } + else { + var cssClass = count > 4 ? + { oldCss: classNames.sliderMaterialDefault, newCss: classNames.sliderMaterialRange } : + { oldCss: classNames.sliderMaterialRange, newCss: classNames.sliderMaterialDefault }; + this.tooltipElement.classList.remove(cssClass.oldCss); + if (!this.tooltipElement.classList.contains(cssClass.newCss)) { + this.tooltipElement.classList.add(cssClass.newCss); + this.tooltipElement.style.transform = count > 4 ? 'scale(1)' : + this.getTooltipTransformProperties(this.previousTooltipClass).rotate; + } + } + } + }; + Slider.prototype.tooltipPlacement = function () { + return this.orientation === 'Horizontal' ? (this.tooltip.placement === 'Before' ? 'TopCenter' : 'BottomCenter') : + (this.tooltip.placement === 'Before' ? 'LeftCenter' : 'RightCenter'); + }; + Slider.prototype.tooltipBeforeOpen = function (args) { + this.tooltipElement = args.element; + if (this.tooltip.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipElement], this.tooltip.cssClass.split(' ').filter(function (css) { return css; })); + } + args.target.removeAttribute('aria-describedby'); + if (this.isMaterialTooltip) { + this.tooltipElement.firstElementChild.classList.add(classNames.materialTooltipHide); + this.handleStart(); + this.setTooltipTransform(); + } + }; + Slider.prototype.tooltipCollision = function (position) { + if (this.isBootstrap || this.isBootstrap4 || ((this.isMaterial || this.isMaterial3) && !this.isMaterialTooltip)) { + var tooltipOffsetValue = this.isBootstrap4 ? bootstrap4TooltipOffset : bootstrapTooltipOffset; + switch (position) { + case 'TopCenter': + this.tooltipObj.setProperties({ 'offsetY': -(tooltipOffsetValue) }, false); + break; + case 'BottomCenter': + this.tooltipObj.setProperties({ 'offsetY': tooltipOffsetValue }, false); + break; + case 'LeftCenter': + this.tooltipObj.setProperties({ 'offsetX': -(tooltipOffsetValue) }, false); + break; + case 'RightCenter': + this.tooltipObj.setProperties({ 'offsetX': tooltipOffsetValue }, false); + break; + } + } + }; + Slider.prototype.materialTooltipEventCallBack = function (event) { + this.sliderBarClick(event); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousemove touchmove', this.sliderBarMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup touchend', this.sliderBarUp, this); + }; + Slider.prototype.wireMaterialTooltipEvent = function (destroy) { + if (this.isMaterialTooltip) { + if (!destroy) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack); + } + } + }; + Slider.prototype.tooltipPositionCalculation = function (position) { + var cssClass; + switch (position) { + case 'TopCenter': + cssClass = classNames.horizontalTooltipBefore; + break; + case 'BottomCenter': + cssClass = classNames.horizontalTooltipAfter; + break; + case 'LeftCenter': + cssClass = classNames.verticalTooltipBefore; + break; + case 'RightCenter': + cssClass = classNames.verticalTooltipAfter; + break; + } + return cssClass; + }; + Slider.prototype.getTooltipTransformProperties = function (className) { + var transformProperties; + if (this.tooltipElement) { + var position = this.orientation === 'Horizontal' ? + ((this.tooltipElement.clientHeight + 14) - (this.tooltipElement.clientHeight / 2)) : + ((this.tooltipElement.clientWidth + 14) - (this.tooltipElement.clientWidth / 2)); + transformProperties = this.orientation === 'Horizontal' ? + (className === classNames.horizontalTooltipBefore ? { rotate: 'rotate(45deg)', translate: "translateY(" + position + "px)" } : + { rotate: 'rotate(225deg)', translate: "translateY(" + -(position) + "px)" }) : + (className === classNames.verticalTooltipBefore ? { rotate: 'rotate(-45deg)', translate: "translateX(" + position + "px)" } : + { rotate: 'rotate(-225deg)', translate: "translateX(" + (-position) + "px)" }); + } + return transformProperties; + }; + Slider.prototype.openMaterialTooltip = function () { + var _this = this; + if (this.isMaterialTooltip) { + this.refreshTooltip(this.firstHandle); + var tooltipContentElement = this.tooltipElement.firstElementChild; + tooltipContentElement.classList.remove(classNames.materialTooltipHide); + tooltipContentElement.classList.add(classNames.materialTooltipShow); + this.firstHandle.style.cursor = 'default'; + this.tooltipElement.style.transition = this.scaleTransform; + this.tooltipElement.classList.add(classNames.materialTooltipOpen); + this.materialHandle.style.transform = 'scale(0)'; + if (tooltipContentElement.innerText.length > 4) { + this.tooltipElement.style.transform = 'scale(1)'; + } + else { + this.tooltipElement.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate; + } + if (this.type === 'Default') { + setTimeout(function () { _this.tooltipElement.style.transition = _this.transition.handle; }, 2500); + } + else { + setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500); + } + } + }; + Slider.prototype.closeMaterialTooltip = function () { + var _this = this; + if (this.isMaterialTooltip) { + var tooltipContentElement = this.tooltipElement.firstElementChild; + this.tooltipElement.style.transition = this.scaleTransform; + tooltipContentElement.classList.remove(classNames.materialTooltipShow); + tooltipContentElement.classList.add(classNames.materialTooltipHide); + this.firstHandle.style.cursor = '-webkit-grab'; + this.firstHandle.style.cursor = 'grab'; + if (this.materialHandle) { + this.materialHandle.style.transform = 'scale(1)'; + } + this.tooltipElement.classList.remove(classNames.materialTooltipOpen); + this.setTooltipTransform(); + this.tooltipTarget = undefined; + setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500); + } + }; + Slider.prototype.checkTooltipPosition = function (args) { + var tooltipClass = this.tooltipPositionCalculation(args.collidedPosition); + if (this.tooltipCollidedPosition === undefined || + this.tooltipCollidedPosition !== args.collidedPosition || !args.element.classList.contains(tooltipClass)) { + if (this.isMaterialTooltip) { + if (tooltipClass !== undefined) { + args.element.classList.remove(this.previousTooltipClass); + args.element.classList.add(tooltipClass); + this.previousTooltipClass = tooltipClass; + } + if (args.element.style.transform && args.element.classList.contains(classNames.materialTooltipOpen) && + args.element.firstElementChild.innerText.length <= 4) { + args.element.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate; + } + } + this.tooltipCollidedPosition = args.collidedPosition; + } + if (this.isMaterialTooltip && this.tooltipElement && this.tooltipElement.style.transform.indexOf('translate') !== -1) { + this.setTooltipTransform(); + } + }; + Slider.prototype.setTooltipTransform = function () { + var transformProperties = this.getTooltipTransformProperties(this.previousTooltipClass); + if (this.tooltipElement.firstElementChild.innerText.length > 4) { + this.tooltipElement.style.transform = transformProperties.translate + " scale(0.01)"; + } + else { + this.tooltipElement.style.transform = transformProperties.translate + " " + transformProperties.rotate + " scale(0.01)"; + } + }; + Slider.prototype.renderTooltip = function () { + this.tooltipObj = new _ej2_popups__WEBPACK_IMPORTED_MODULE_1__["Tooltip"]({ + showTipPointer: this.isBootstrap || this.isMaterial || this.isMaterial3 || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent, + cssClass: classNames.sliderTooltip, + height: (this.isMaterial || this.isMaterial3) ? 30 : 'auto', + animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } }, + opensOn: 'Custom', + beforeOpen: this.tooltipBeforeOpen.bind(this), + beforeCollision: this.checkTooltipPosition.bind(this), + beforeClose: this.tooltipBeforeClose.bind(this), + enableHtmlSanitizer: this.enableHtmlSanitizer + }); + this.tooltipObj.appendTo(this.firstHandle); + this.initializeTooltipProps(); + }; + Slider.prototype.initializeTooltipProps = function () { + var tooltipShowOn = (this.tooltip.showOn === 'Auto' ? 'Hover' : this.tooltip.showOn); + this.setProperties({ tooltip: { showOn: tooltipShowOn } }, true); + this.tooltipObj.position = this.tooltipPlacement(); + this.tooltipCollision(this.tooltipObj.position); + [this.firstHandle, this.rangeBar, this.secondHandle].forEach(function (handle) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(handle)) { + handle.style.transition = 'none'; + } + }); + if (this.isMaterialTooltip) { + this.sliderContainer.classList.add(classNames.materialSlider); + this.tooltipValue(); + this.tooltipObj.animation.close.effect = 'None'; + this.tooltipObj.open(this.firstHandle); + } + }; + Slider.prototype.tooltipBeforeClose = function () { + this.tooltipElement = undefined; + this.tooltipCollidedPosition = undefined; + }; + Slider.prototype.setButtons = function () { + this.firstBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.firstButton }); + this.firstBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon })); + if (this.isTailwind) { + this.firstBtn.querySelector('span').classList.add('e-icons'); + } + this.firstBtn.tabIndex = -1; + this.secondBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.secondButton }); + this.secondBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon })); + if (this.isTailwind) { + this.secondBtn.querySelector('span').classList.add('e-icons'); + } + this.secondBtn.tabIndex = -1; + this.sliderContainer.classList.add(classNames.sliderButtonClass); + this.sliderContainer.appendChild(this.firstBtn); + this.sliderContainer.appendChild(this.secondBtn); + this.sliderContainer.appendChild(this.element); + this.buttonTitle(); + }; + Slider.prototype.buttonTitle = function () { + var enabledRTL = this.enableRtl && this.orientation !== 'Vertical'; + this.l10n.setLocale(this.locale); + var decrementTitle = this.l10n.getConstant('decrementTitle'); + var incrementTitle = this.l10n.getConstant('incrementTitle'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': decrementTitle, title: decrementTitle }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': incrementTitle, title: incrementTitle }); + }; + Slider.prototype.buttonFocusOut = function () { + if (this.isMaterial || this.isMaterial3) { + this.getHandle().classList.remove('e-large-thumb-size'); + } + }; + Slider.prototype.repeatButton = function (args) { + var hVal = this.handleValueUpdate(); + var enabledRTL = this.enableRtl && this.orientation !== 'Vertical'; + var value; + if (args.target.parentElement.classList.contains(classNames.firstButton) + || args.target.classList.contains(classNames.firstButton)) { + enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) : + (value = this.add(hVal, parseFloat(this.step.toString()), false)); + } + else if (args.target.parentElement.classList.contains(classNames.secondButton) + || (args.target.classList.contains(classNames.secondButton))) { + enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) : + (value = this.add(hVal, parseFloat(this.step.toString()), true)); + } + if (this.limits.enabled) { + value = this.getLimitCorrectedValues(value); + } + if (value >= this.min && value <= this.max) { + this.changeHandleValue(value); + this.tooltipToggle(this.getHandle()); + } + }; + Slider.prototype.repeatHandlerMouse = function (args) { + args.preventDefault(); + if (args.type === ('mousedown') || args.type === ('touchstart')) { + this.buttonClick(args); + this.repeatInterval = setInterval(this.repeatButton.bind(this), 180, args); + } + }; + Slider.prototype.materialChange = function () { + if (!this.getHandle().classList.contains('e-large-thumb-size')) { + this.getHandle().classList.add('e-large-thumb-size'); + } + }; + Slider.prototype.focusHandle = function () { + if (!this.getHandle().classList.contains(classNames.sliderTabHandle)) { + this.getHandle().classList.add(classNames.sliderTabHandle); + } + }; + Slider.prototype.repeatHandlerUp = function (e) { + this.changeEvent('changed', e); + this.closeTooltip(); + clearInterval(this.repeatInterval); + this.getHandle().focus(); + }; + Slider.prototype.customTickCounter = function (bigNum) { + var tickCount = 4; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0) { + if (bigNum > 4) { + tickCount = 3; + } + if (bigNum > 7) { + tickCount = 2; + } + if (bigNum > 14) { + tickCount = 1; + } + if (bigNum > 28) { + tickCount = 0; + } + } + return tickCount; + }; + // tslint:disable-next-line:max-func-body-length + Slider.prototype.renderScale = function () { + var liElementPosition = 0; + var orien = this.orientation === 'Vertical' ? 'v' : 'h'; + var spanText; + this.noOfDecimals = this.numberOfDecimals(this.step); + this.ul = this.createElement('ul', { + className: classNames.scale + ' ' + 'e-' + orien + '-scale ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(), + attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' } + }); + this.ul.style.zIndex = '-1'; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isAndroid && orien === 'h') { + this.ul.classList.add(classNames.sliderTickPosition); + } + var smallStep = this.ticks.smallStep; + if (!this.ticks.showSmallTicks) { + this.ticks.largeStep > 0 ? (smallStep = this.ticks.largeStep) : + (smallStep = (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))) - (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)))); + } + else if (smallStep <= 0) { + smallStep = parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.step)); + } + var min = this.fractionalToInteger(this.min); + var max = this.fractionalToInteger(this.max); + var steps = this.fractionalToInteger(smallStep); + var bigNum = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0 && this.customValues.length - 1; + var customStep = this.customTickCounter(bigNum); + var count = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0 ? + (bigNum * customStep) + bigNum : Math.abs((max - min) / steps); + this.element.appendChild(this.ul); + var li; + var start = parseFloat(this.min.toString()); + if (orien === 'v') { + start = parseFloat(this.max.toString()); + } + var left = 0; + var islargeTick; + var tickWidth = 100 / count; + if (tickWidth === Infinity) { + tickWidth = 5; + } + for (var i = 0, y = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0 ? + this.customValues.length - 1 : 0, k = 0; i <= count; i++) { + li = (this.createElement('li', { + attrs: { + class: classNames.tick, role: 'presentation', tabIndex: '-1', + 'aria-hidden': 'true' + } + })); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0) { + islargeTick = i % (customStep + 1) === 0; + if (islargeTick) { + if (orien === 'h') { + start = this.customValues[k]; + k++; + } + else { + start = this.customValues[y]; + y--; + } + li.setAttribute('title', start.toString()); + } + } + else { + li.setAttribute('title', start.toString()); + if (this.numberOfDecimals(this.max) === 0 && this.numberOfDecimals(this.min) === 0 && + this.numberOfDecimals(this.step) === 0) { + if (orien === 'h') { + islargeTick = ((start - parseFloat(this.min.toString())) % this.ticks.largeStep === 0) ? true : false; + } + else { + islargeTick = (Math.abs(start - parseFloat(this.max.toString())) % this.ticks.largeStep === 0) ? true : false; + } + } + else { + var largestep = this.fractionalToInteger(this.ticks.largeStep); + var startValue = this.fractionalToInteger(start); + if (orien === 'h') { + islargeTick = ((startValue - min) % largestep === 0) ? true : false; + } + else { + islargeTick = (Math.abs(startValue - parseFloat(max.toString())) % largestep === 0) ? true : false; + } + } + } + if (islargeTick) { + li.classList.add(classNames.large); + } + (orien === 'h') ? (li.style.width = tickWidth + '%') : (li.style.height = tickWidth + '%'); + var repeat = islargeTick ? (this.ticks.placement === 'Both' ? 2 : 1) : 0; + if (islargeTick) { + for (var j = 0; j < repeat; j++) { + this.createTick(li, start, tickWidth); + } + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues)) { + this.formatTicksValue(li, start); + } + this.ul.appendChild(li); + this.tickElementCollection.push(li); + var decimalPoints = void 0; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues)) { + if (this.numberOfDecimals(smallStep) > this.numberOfDecimals(start)) { + decimalPoints = this.numberOfDecimals(smallStep); + } + else { + decimalPoints = this.numberOfDecimals(start); + } + if (orien === 'h') { + start = this.makeRoundNumber(start + smallStep, decimalPoints); + } + else { + if (this.min > this.max) { + start = this.makeRoundNumber(start + smallStep, decimalPoints); + } + else { + start = this.makeRoundNumber(start - smallStep, decimalPoints); + } + } + left = this.makeRoundNumber(left + smallStep, decimalPoints); + } + } + this.ticksAlignment(orien, tickWidth); + }; + Slider.prototype.ticksAlignment = function (orien, tickWidth, triggerEvent) { + if (triggerEvent === void 0) { triggerEvent = true; } + this.firstChild = this.ul.firstElementChild; + this.lastChild = this.ul.lastElementChild; + this.firstChild.classList.add(classNames.sliderFirstTick); + this.lastChild.classList.add(classNames.sliderLastTick); + this.sliderContainer.classList.add(classNames.scale + '-' + this.ticks.placement.toLowerCase()); + if (orien === 'h') { + this.firstChild.style.width = tickWidth / 2 + '%'; + this.lastChild.style.width = tickWidth / 2 + '%'; + } + else { + this.firstChild.style.height = tickWidth / 2 + '%'; + this.lastChild.style.height = tickWidth / 2 + '%'; + } + var eventArgs = { ticksWrapper: this.ul, tickElements: this.tickElementCollection }; + if (triggerEvent) { + this.trigger('renderedTicks', eventArgs); + } + this.scaleAlignment(); + }; + Slider.prototype.createTick = function (li, start, tickWidth) { + var span = this.createElement('span', { + className: classNames.tickValue + ' ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(), + attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' } + }); + li.appendChild(span); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues)) { + this.formatTicksValue(li, start, span, tickWidth); + } + else { + if (this.enableHtmlSanitizer) { + span.innerHTML = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(start.toString()); + } + else { + span.innerHTML = start.toString(); + } + } + }; + Slider.prototype.formatTicksValue = function (li, start, spanElement, tickWidth) { + var _this = this; + var tickText = this.formatNumber(start); + var text = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks.format) ? + this.formatString(start, this.ticksFormatInfo).formatString : tickText; + var eventArgs = { value: start, text: text, tickElement: li }; + this.trigger('renderingTicks', eventArgs, function (observedArgs) { + li.setAttribute('title', observedArgs.text.toString()); + if (spanElement) { + if (_this.enableHtmlSanitizer) { + spanElement.innerHTML = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(observedArgs.text.toString()); + } + else { + spanElement.innerHTML = observedArgs.text.toString(); + } + } + }); + }; + Slider.prototype.scaleAlignment = function () { + this.tickValuePosition(); + var smallTick = 12; + var largeTick = 20; + var half = largeTick / 2; + var orien = this.orientation === 'Vertical' ? 'v' : 'h'; + if (this.orientation === 'Vertical') { + (this.element.getBoundingClientRect().width <= 15) ? + this.sliderContainer.classList.add(classNames.sliderSmallSize) : + this.sliderContainer.classList.remove(classNames.sliderSmallSize); + } + else { + (this.element.getBoundingClientRect().height <= 15) ? + this.sliderContainer.classList.add(classNames.sliderSmallSize) : + this.sliderContainer.classList.remove(classNames.sliderSmallSize); + } + }; + Slider.prototype.tickValuePosition = function () { + this.firstChild = this.element.querySelector('ul').children[0]; + var first = this.firstChild.getBoundingClientRect(); + var firstChild; + var otherChild; + var smallStep = this.ticks.smallStep; + var count = Math.abs((parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))) - (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)))) / smallStep; + if (this.firstChild.children.length > 0) { + firstChild = this.firstChild.children[0].getBoundingClientRect(); + } + var tickElements = [this.sliderContainer.querySelectorAll('.' + classNames.tick + '.' + + classNames.large + ' .' + classNames.tickValue)]; + var other; + if (this.ticks.placement === 'Both') { + other = [].slice.call(tickElements[0], 2); + } + else { + other = [].slice.call(tickElements[0], 1); + } + var tickWidth = this.orientation === 'Vertical' ? + (first.height * 2) : (first.width * 2); + for (var i = 0; i < this.firstChild.children.length; i++) { + if (this.orientation === 'Vertical') { + this.firstChild.children[i].style.top = -(firstChild.height / 2) + 'px'; + } + else { + if (!this.enableRtl) { + this.firstChild.children[i].style.left = -(firstChild.width / 2) + 'px'; + } + else { + this.firstChild.children[i].style.left = (tickWidth - + this.firstChild.children[i].getBoundingClientRect().width) / 2 + 'px'; + } + } + } + for (var i = 0; i < other.length; i++) { + otherChild = other[i].getBoundingClientRect(); + if (this.orientation === 'Vertical') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(other[i], { top: (tickWidth - otherChild.height) / 2 + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(other[i], { left: (tickWidth - otherChild.width) / 2 + 'px' }); + } + } + if (this.enableRtl && this.lastChild.children.length && count !== 0) { + this.lastChild.children[0].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px'; + if (this.ticks.placement === 'Both') { + this.lastChild.children[1].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px'; + } + } + if (count === 0) { + if (this.orientation === 'Horizontal') { + if (!this.enableRtl) { + this.firstChild.classList.remove(classNames.sliderLastTick); + this.firstChild.style.left = this.firstHandle.style.left; + } + else { + this.firstChild.classList.remove(classNames.sliderLastTick); + this.firstChild.style.right = this.firstHandle.style.right; + this.firstChild.children[0].style.left = + (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px'; + if (this.ticks.placement === 'Both') { + this.firstChild.children[1].style.left = + (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px'; + } + } + } + if (this.orientation === 'Vertical') { + this.firstChild.classList.remove(classNames.sliderLastTick); + } + } + }; + Slider.prototype.setAriaAttrValue = function (element) { + var ariaValueText; + var isTickFormatted = ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks.format))) ? true : false; + var text = !isTickFormatted ? + this.formatContent(this.ticksFormatInfo, false) : this.formatContent(this.tooltipFormatInfo, false); + var valuenow = isTickFormatted ? this.formatContent(this.ticksFormatInfo, true) : + this.formatContent(this.tooltipFormatInfo, true); + text = (!this.customAriaText) ? (text) : (this.customAriaText); + if (text.split(' - ').length === 2) { + ariaValueText = text.split(' - '); + } + else { + ariaValueText = [text, text]; + } + this.setAriaAttributes(element); + if (this.type !== 'Range') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'aria-valuenow': valuenow, 'aria-valuetext': text }); + } + else { + // eslint-disable-next-line + (!this.enableRtl) ? ((element === this.firstHandle) ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }) : + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] })) : + ((element === this.firstHandle) ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] }) : + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] })); + } + }; + Slider.prototype.handleValueUpdate = function () { + var hVal; + if (this.type === 'Range') { + if (this.activeHandle === 1) { + hVal = this.handleVal1; + } + else { + hVal = this.handleVal2; + } + } + else { + hVal = this.handleVal1; + } + return hVal; + }; + Slider.prototype.getLimitCorrectedValues = function (value) { + if (this.type === 'MinRange' || this.type === 'Default') { + value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0]; + } + else { + if (this.activeHandle === 1) { + value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0]; + } + else { + value = (this.getLimitValueAndPosition(value, this.limits.maxStart, this.limits.maxEnd))[0]; + } + } + return value; + }; + Slider.prototype.focusSliderElement = function () { + if (!this.isElementFocused) { + this.element.focus(); + this.isElementFocused = true; + } + }; + Slider.prototype.buttonClick = function (args) { + this.focusSliderElement(); + var value; + var enabledRTL = this.enableRtl && this.orientation !== 'Vertical'; + var hVal = this.handleValueUpdate(); + if ((args.keyCode === 40) || (args.keyCode === 37) + || args.currentTarget.classList.contains(classNames.firstButton)) { + // eslint-disable-next-line + enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) : + (value = this.add(hVal, parseFloat(this.step.toString()), false)); + } + else if ((args.keyCode === 38) || (args.keyCode === 39) || + args.currentTarget.classList.contains(classNames.secondButton)) { + // eslint-disable-next-line + enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) : + (value = this.add(hVal, parseFloat(this.step.toString()), true)); + } + else if ((args.keyCode === 33 + || args.currentTarget.classList.contains(classNames.firstButton))) { + // eslint-disable-next-line + enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)) : + (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)); + } + else if ((args.keyCode === 34) || + args.currentTarget.classList.contains(classNames.secondButton)) { + // eslint-disable-next-line + enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)) : + (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)); + } + else if ((args.keyCode === 36)) { + value = parseFloat(this.min < this.max ? this.min.toString() : this.max.toString()); + } + else if ((args.keyCode === 35)) { + value = parseFloat(this.min < this.max ? this.max.toString() : this.min.toString()); + } + if (this.limits.enabled) { + value = this.getLimitCorrectedValues(value); + } + this.changeHandleValue(value); + if ((this.isMaterial || this.isMaterial3) && !this.tooltip.isVisible && + !this.getHandle().classList.contains(classNames.sliderTabHandle)) { + this.materialChange(); + } + this.tooltipToggle(this.getHandle()); + this.getHandle().focus(); + this.focusHandle(); + if (args.currentTarget.classList.contains(classNames.firstButton)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstBtn, 'mouseup touchend', this.buttonUp, this); + } + if (args.currentTarget.classList.contains(classNames.secondButton)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondBtn, 'mouseup touchend', this.buttonUp, this); + } + }; + Slider.prototype.tooltipToggle = function (target) { + if (this.isMaterialTooltip) { + // eslint-disable-next-line + !this.tooltipElement.classList.contains(classNames.materialTooltipOpen) ? + this.openMaterialTooltip() : this.refreshTooltip(this.firstHandle); + } + else { + // eslint-disable-next-line + !this.tooltipElement ? this.openTooltip(target) : this.refreshTooltip(target); + } + }; + Slider.prototype.buttonUp = function (args) { + if (args.currentTarget.classList.contains(classNames.firstButton)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstBtn, 'mouseup touchend', this.buttonUp); + } + if (args.currentTarget.classList.contains(classNames.secondButton)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondBtn, 'mouseup touchend', this.buttonUp); + } + }; + Slider.prototype.setRangeBar = function () { + if (this.orientation === 'Horizontal') { + if (this.type === 'MinRange') { + // eslint-disable-next-line + this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.handlePos1) ? 0 : this.handlePos1 + 'px' }); + } + else { + // eslint-disable-next-line + this.enableRtl ? (this.rangeBar.style.right = + this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' }); + } + } + else { + if (this.type === 'MinRange') { + this.rangeBar.style.bottom = this.min > this.max ? this.handlePos1 + 'px' : '0px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.handlePos1) ? 0 : this.min > this.max ? this.element.clientHeight - this.handlePos1 + 'px' : this.handlePos1 + 'px' }); + } + else { + this.rangeBar.style.bottom = this.min > this.max ? this.handlePos2 + 'px' : this.handlePos1 + 'px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'height': this.min > this.max ? this.handlePos1 - this.handlePos2 + 'px' : this.handlePos2 - this.handlePos1 + 'px' }); + } + } + }; + Slider.prototype.checkValidValueAndPos = function (value) { + value = this.checkHandleValue(value); + value = this.checkHandlePosition(value); + return value; + }; + Slider.prototype.setLimitBarPositions = function (fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) { + if (this.orientation === 'Horizontal') { + if (!this.enableRtl) { + this.limitBarFirst.style.left = fromMinPostion + 'px'; + this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px'; + } + else { + this.limitBarFirst.style.right = fromMinPostion + 'px'; + this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px'; + } + } + else { + this.limitBarFirst.style.bottom = (this.min < this.max ? fromMinPostion : fromMaxpostion) + 'px'; + this.limitBarFirst.style.height = (this.min < this.max ? (fromMaxpostion - fromMinPostion) : (fromMinPostion - fromMaxpostion)) + 'px'; + } + if (this.type === 'Range') { + if (this.orientation === 'Horizontal') { + if (!this.enableRtl) { + this.limitBarSecond.style.left = toMinPostion + 'px'; + this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px'; + } + else { + this.limitBarSecond.style.right = toMinPostion + 'px'; + this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px'; + } + } + else { + this.limitBarSecond.style.bottom = (this.min < this.max ? toMinPostion : toMaxpostion) + 'px'; + this.limitBarSecond.style.height = (this.min < this.max ? (toMaxpostion - toMinPostion) : (toMinPostion - toMaxpostion)) + 'px'; + } + } + }; + Slider.prototype.setLimitBar = function () { + if (this.type === 'Default' || this.type === 'MinRange') { + var fromPosition = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0]; + fromPosition = this.checkValidValueAndPos(fromPosition); + var toPosition = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0]; + toPosition = this.checkValidValueAndPos(toPosition); + this.setLimitBarPositions(fromPosition, toPosition); + } + else if (this.type === 'Range') { + var fromMinPostion = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0]; + fromMinPostion = this.checkValidValueAndPos(fromMinPostion); + var fromMaxpostion = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0]; + fromMaxpostion = this.checkValidValueAndPos(fromMaxpostion); + var toMinPostion = (this.getLimitValueAndPosition(this.limits.maxStart, this.limits.maxStart, this.limits.maxEnd, true))[0]; + toMinPostion = this.checkValidValueAndPos(toMinPostion); + var toMaxpostion = (this.getLimitValueAndPosition(this.limits.maxEnd, this.limits.maxStart, this.limits.maxEnd, true))[0]; + toMaxpostion = this.checkValidValueAndPos(toMaxpostion); + this.setLimitBarPositions(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion); + } + }; + Slider.prototype.getLimitValueAndPosition = function (currentValue, minValue, maxValue, limitBar) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(minValue)) { + minValue = this.min < this.max ? this.min : this.max; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(currentValue) && limitBar) { + currentValue = minValue; + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(maxValue)) { + maxValue = this.min < this.max ? this.max : this.min; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(currentValue) && limitBar) { + currentValue = maxValue; + } + } + if (currentValue < minValue) { + currentValue = minValue; + } + if (currentValue > maxValue) { + currentValue = maxValue; + } + return [currentValue, this.checkHandlePosition(currentValue)]; + }; + Slider.prototype.setValue = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues) && this.customValues.length > 0) { + this.min = 0; + this.max = this.customValues.length - 1; + this.setBarColor(); + } + this.setAriaAttributes(this.firstHandle); + this.handleVal1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value) ? this.checkHandleValue(parseFloat(this.min.toString())) : + this.checkHandleValue(parseFloat(this.value.toString())); + this.handlePos1 = this.checkHandlePosition(this.handleVal1); + this.preHandlePos1 = this.handlePos1; + // eslint-disable-next-line + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.activeHandle) ? (this.type === 'Range' ? this.activeHandle = 2 : this.activeHandle = 1) : + // eslint-disable-next-line no-self-assign + this.activeHandle = this.activeHandle; + if (this.type === 'Default' || this.type === 'MinRange') { + if (this.limits.enabled) { + var values = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd); + this.handleVal1 = values[0]; + this.handlePos1 = values[1]; + this.preHandlePos1 = this.handlePos1; + } + this.setHandlePosition(null); + this.handleStart(); + this.value = this.handleVal1; + this.setAriaAttrValue(this.firstHandle); + this.changeEvent('changed', null); + } + else { + this.validateRangeValue(); + } + if (this.type !== 'Default') { + this.setRangeBar(); + } + if (this.limits.enabled) { + this.setLimitBar(); + } + }; + Slider.prototype.rangeValueUpdate = function () { + if (this.value === null || typeof (this.value) !== 'object') { + this.value = [parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)), parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))]; + } + }; + Slider.prototype.validateRangeValue = function () { + this.rangeValueUpdate(); + this.setRangeValue(); + }; + Slider.prototype.modifyZindex = function () { + if (this.type === 'Range') { + if (this.activeHandle === 1) { + this.firstHandle.style.zIndex = (this.zIndex + 4) + ''; + this.secondHandle.style.zIndex = (this.zIndex + 3) + ''; + } + else { + this.firstHandle.style.zIndex = (this.zIndex + 3) + ''; + this.secondHandle.style.zIndex = (this.zIndex + 4) + ''; + } + } + else if (this.isMaterialTooltip && this.tooltipElement) { + this.tooltipElement.style.zIndex = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["getZindexPartial"])(this.element) + ''; + } + }; + Slider.prototype.setHandlePosition = function (event) { + var _this = this; + var handle; + var pos = (this.activeHandle === 1) ? this.handlePos1 : this.handlePos2; + if (this.isMaterialTooltip) { + handle = [this.firstHandle, this.materialHandle]; + } + else { + handle = [this.getHandle()]; + } + this.handleStart(); + handle.forEach(function (handle) { + if (_this.orientation === 'Horizontal') { + // eslint-disable-next-line + _this.enableRtl ? (handle.style.right = + pos + "px") : (handle.style.left = pos + "px"); + } + else { + handle.style.bottom = pos + "px"; + } + }); + this.changeEvent('change', event); + }; + Slider.prototype.getHandle = function () { + return (this.activeHandle === 1) ? this.firstHandle : this.secondHandle; + }; + Slider.prototype.setRangeValue = function () { + this.updateRangeValue(); + this.activeHandle = 1; + this.setHandlePosition(null); + this.activeHandle = 2; + this.setHandlePosition(null); + this.activeHandle = 1; + }; + Slider.prototype.changeEvent = function (eventName, e) { + var previous = eventName === 'change' ? this.previousVal : this.previousChanged; + if (this.type !== 'Range') { + this.setProperties({ 'value': this.handleVal1 }, true); + if (previous !== this.value && (!this.isMaterialTooltip || !this.initialTooltip)) { + this.trigger(eventName, this.changeEventArgs(eventName, e)); + this.initialTooltip = true; + this.setPreviousVal(eventName, this.value); + } + this.setAriaAttrValue(this.firstHandle); + } + else { + var value = this.value = [this.handleVal1, this.handleVal2]; + this.setProperties({ 'value': value }, true); + if (previous.length === this.value.length + && this.value[0] !== previous[0] || this.value[1] !== previous[1]) { + this.initialTooltip = false; + this.trigger(eventName, this.changeEventArgs(eventName, e)); + this.initialTooltip = true; + this.setPreviousVal(eventName, this.value); + } + this.setAriaAttrValue(this.getHandle()); + } + this.hiddenInput.value = this.value.toString(); + }; + Slider.prototype.changeEventArgs = function (eventName, e) { + var eventArgs; + if (this.tooltip.isVisible && this.tooltipObj && this.initialTooltip) { + this.tooltipValue(); + eventArgs = { + value: this.value, + previousValue: eventName === 'change' ? this.previousVal : this.previousChanged, + action: eventName, text: this.tooltipObj.content, isInteracted: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? false : true + }; + } + else { + eventArgs = { + value: this.value, + previousValue: eventName === 'change' ? this.previousVal : this.previousChanged, + action: eventName, text: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticksFormatInfo.format) ? this.value.toString() : + (this.type !== 'Range' ? this.formatString(this.value, this.ticksFormatInfo).formatString : + (this.formatString(this.value[0], this.ticksFormatInfo).formatString + ' - ' + + this.formatString(this.value[1], this.ticksFormatInfo).formatString)), + isInteracted: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? false : true + }; + } + return eventArgs; + }; + Slider.prototype.setPreviousVal = function (eventName, value) { + if (eventName === 'change') { + this.previousVal = value; + } + else { + this.previousChanged = value; + } + }; + Slider.prototype.updateRangeValue = function () { + var values = this.value.toString().split(',').map(Number); + if ((this.enableRtl && this.orientation !== 'Vertical') || this.rtl) { + this.value = [values[1], values[0]]; + } + else { + this.value = [values[0], values[1]]; + } + if (this.enableRtl && this.orientation !== 'Vertical') { + this.handleVal1 = this.checkHandleValue(this.value[1]); + this.handleVal2 = this.checkHandleValue(this.value[0]); + } + else { + this.handleVal1 = this.checkHandleValue(this.value[0]); + this.handleVal2 = this.checkHandleValue(this.value[1]); + } + this.handlePos1 = this.checkHandlePosition(this.handleVal1); + this.handlePos2 = this.checkHandlePosition(this.handleVal2); + if (this.min < this.max && this.handlePos1 > this.handlePos2) { + this.handlePos1 = this.handlePos2; + this.handleVal1 = this.handleVal2; + } + if (this.min > this.max && this.handlePos1 < this.handlePos2) { + this.handlePos2 = this.handlePos1; + this.handleVal2 = this.handleVal1; + } + this.preHandlePos1 = this.handlePos1; + this.preHandlePos2 = this.handlePos2; + if (this.limits.enabled) { + this.activeHandle = 1; + var values_1 = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd); + this.handleVal1 = values_1[0]; + this.handlePos1 = values_1[1]; + this.preHandlePos1 = this.handlePos1; + this.activeHandle = 2; + values_1 = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd); + this.handleVal2 = values_1[0]; + this.handlePos2 = values_1[1]; + this.preHandlePos2 = this.handlePos2; + } + }; + Slider.prototype.checkHandlePosition = function (value) { + var pos; + value = (100 * + (value - (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min))))) / ((parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))) - (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)))); + if (this.orientation === 'Horizontal') { + pos = this.element.getBoundingClientRect().width * (value / 100); + } + else { + pos = this.element.getBoundingClientRect().height * (value / 100); + } + if (((parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))) === (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min))))) { + if (this.orientation === 'Horizontal') { + pos = this.element.getBoundingClientRect().width; + } + else { + pos = this.element.getBoundingClientRect().height; + } + } + return pos; + }; + Slider.prototype.checkHandleValue = function (value) { + if (this.min === this.max) { + return (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max))); + } + var handle = this.tempStartEnd(); + if (value < handle.start) { + value = handle.start; + } + else if (value > handle.end) { + value = handle.end; + } + return value; + }; + /** + * It is used to reposition slider. + * + * @returns void + */ + Slider.prototype.reposition = function () { + var _this = this; + this.firstHandle.style.transition = 'none'; + if (this.type !== 'Default') { + this.rangeBar.style.transition = 'none'; + } + if (this.type === 'Range') { + this.secondHandle.style.transition = 'none'; + } + this.handlePos1 = this.checkHandlePosition(this.handleVal1); + if (this.handleVal2) { + this.handlePos2 = this.checkHandlePosition(this.handleVal2); + } + if (this.orientation === 'Horizontal') { + // eslint-disable-next-line + this.enableRtl ? this.firstHandle.style.right = + this.handlePos1 + "px" : this.firstHandle.style.left = this.handlePos1 + "px"; + if (this.isMaterialTooltip) { + // eslint-disable-next-line + this.enableRtl ? this.materialHandle.style.right = + this.handlePos1 + "px" : this.materialHandle.style.left = this.handlePos1 + "px"; + } + if (this.type === 'MinRange') { + // eslint-disable-next-line + this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.handlePos1) ? 0 : this.handlePos1 + 'px' }); + } + else if (this.type === 'Range') { + // eslint-disable-next-line + this.enableRtl ? this.secondHandle.style.right = + this.handlePos2 + "px" : this.secondHandle.style.left = this.handlePos2 + "px"; + // eslint-disable-next-line + this.enableRtl ? (this.rangeBar.style.right = + this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' }); + } + } + else { + this.firstHandle.style.bottom = this.handlePos1 + "px"; + if (this.isMaterialTooltip) { + this.materialHandle.style.bottom = this.handlePos1 + "px"; + } + if (this.type === 'MinRange') { + this.rangeBar.style.bottom = this.min > this.max ? this.handlePos1 + 'px' : '0px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.handlePos1) ? 0 : this.min > this.max ? this.element.clientHeight - this.handlePos1 + 'px' : this.handlePos1 + 'px' }); + } + else if (this.type === 'Range') { + this.secondHandle.style.bottom = this.handlePos2 + "px"; + this.rangeBar.style.bottom = this.min > this.max ? this.handlePos2 + 'px' : this.handlePos1 + 'px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.rangeBar, { 'height': this.min > this.max ? this.handlePos1 - this.handlePos2 + 'px' : this.handlePos2 - this.handlePos1 + 'px' }); + } + } + if (this.limits.enabled) { + this.setLimitBar(); + } + if (this.ticks.placement !== 'None' && this.ul) { + this.removeElement(this.ul); + this.ul = undefined; + this.renderScale(); + } + this.handleStart(); + if (!this.tooltip.isVisible) { + setTimeout(function () { + _this.firstHandle.style.transition = _this.scaleTransform; + if (_this.type === 'Range') { + _this.secondHandle.style.transition = _this.scaleTransform; + } + }); + } + this.refreshTooltip(this.tooltipTarget); + this.setBarColor(); + }; + Slider.prototype.changeHandleValue = function (value) { + var position = null; + if (this.activeHandle === 1) { + if (!(this.limits.enabled && this.limits.startHandleFixed)) { + this.handleVal1 = this.checkHandleValue(value); + this.handlePos1 = this.checkHandlePosition(this.handleVal1); + if (this.type === 'Range' && ((this.handlePos1 > this.handlePos2 && this.min < this.max) || (this.handlePos1 < this.handlePos2 && this.min > this.max))) { + this.handlePos1 = this.handlePos2; + this.handleVal1 = this.handleVal2; + } + if (this.handlePos1 !== this.preHandlePos1) { + position = this.preHandlePos1 = this.handlePos1; + } + } + this.modifyZindex(); + } + else { + if (!(this.limits.enabled && this.limits.endHandleFixed)) { + this.handleVal2 = this.checkHandleValue(value); + this.handlePos2 = this.checkHandlePosition(this.handleVal2); + if (this.type === 'Range' && ((this.handlePos2 < this.handlePos1 && this.min < this.max) || (this.handlePos2 > this.handlePos1 && this.min > this.max))) { + this.handlePos2 = this.handlePos1; + this.handleVal2 = this.handleVal1; + } + if (this.handlePos2 !== this.preHandlePos2) { + position = this.preHandlePos2 = this.handlePos2; + } + } + this.modifyZindex(); + } + if (position !== null) { + if (this.type !== 'Default') { + this.setRangeBar(); + } + this.setHandlePosition(null); + } + }; + // eslint-disable-next-line + Slider.prototype.tempStartEnd = function () { + if (this.min > this.max) { + return { + start: this.max, + end: this.min + }; + } + else { + return { + start: this.min, + end: this.max + }; + } + }; + // eslint-disable-next-line + Slider.prototype.xyToPosition = function (position) { + var pos; + if (this.min === this.max) { + return 100; + } + if (this.orientation === 'Horizontal') { + var left = position.x - this.element.getBoundingClientRect().left; + var num = this.element.offsetWidth / 100; + this.val = (left / num); + } + else { + var top_1 = position.y - this.element.getBoundingClientRect().top; + var num = this.element.offsetHeight / 100; + this.val = 100 - (top_1 / num); + } + var val = this.stepValueCalculation(this.val); + if (val < 0) { + val = 0; + } + else if (val > 100) { + val = 100; + } + if (this.enableRtl && this.orientation !== 'Vertical') { + val = 100 - val; + } + if (this.orientation === 'Horizontal') { + pos = this.element.getBoundingClientRect().width * (val / 100); + } + else { + pos = this.element.getBoundingClientRect().height * (val / 100); + } + return pos; + }; + Slider.prototype.stepValueCalculation = function (value) { + if (this.step === 0) { + this.step = 1; + } + var percentStep = (parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.step))) / ((parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max)) - parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min))) / 100); + var remain = value % Math.abs(percentStep); + if (remain !== 0) { + if ((percentStep / 2) > remain) { + value -= remain; + } + else { + value += Math.abs(percentStep) - remain; + } + } + return value; + }; + Slider.prototype.add = function (a, b, addition) { + var precision; + var x = Math.pow(10, precision || 3); + var val; + if (addition) { + val = (Math.round(a * x) + Math.round(b * x)) / x; + } + else { + val = (Math.round(a * x) - Math.round(b * x)) / x; + } + return val; + }; + Slider.prototype.positionToValue = function (pos) { + var val; + var diff = parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.max)) - parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.min)); + if (this.orientation === 'Horizontal') { + val = (pos / this.element.getBoundingClientRect().width) * diff; + } + else { + val = (pos / this.element.getBoundingClientRect().height) * diff; + } + var total = this.add(val, parseFloat(this.min.toString()), true); + return (total); + }; + Slider.prototype.sliderBarClick = function (evt) { + evt.preventDefault(); + // eslint-disable-next-line + var pos; + if (evt.type === 'mousedown' || evt.type === 'mouseup' || evt.type === 'click') { + pos = { x: evt.clientX, y: evt.clientY }; + } + else if (evt.type === 'touchend' || evt.type === 'touchstart') { + pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY }; + } + var handlepos = this.xyToPosition(pos); + var handleVal = this.positionToValue(handlepos); + if (this.type === 'Range' && (this.min < (this.max) && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1) || (this.min > this.max) && (this.handlePos1 - handlepos) > (handlepos - this.handlePos2))) { + this.activeHandle = 2; + if (!(this.limits.enabled && this.limits.endHandleFixed)) { + if (this.limits.enabled) { + var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd); + handleVal = value[0]; + handlepos = value[1]; + } + this.secondHandle.classList.add(classNames.sliderActiveHandle); + this.handlePos2 = this.preHandlePos2 = handlepos; + this.handleVal2 = handleVal; + } + this.modifyZindex(); + this.secondHandle.focus(); + } + else { + this.activeHandle = 1; + if (!(this.limits.enabled && this.limits.startHandleFixed)) { + if (this.limits.enabled) { + var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd); + handleVal = value[0]; + handlepos = value[1]; + } + this.firstHandle.classList.add(classNames.sliderActiveHandle); + this.handlePos1 = this.preHandlePos1 = handlepos; + this.handleVal1 = handleVal; + } + this.modifyZindex(); + this.firstHandle.focus(); + } + if (this.isMaterialTooltip) { + this.tooltipElement.classList.add(classNames.materialTooltipActive); + } + var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle); + if (focusedElement && this.getHandle() !== focusedElement) { + focusedElement.classList.remove(classNames.sliderTabHandle); + } + var handle = this.activeHandle === 1 ? this.firstHandle : this.secondHandle; + var behindElement; + if ((evt.type === 'click' || evt.type === 'mousedown') && evt.target === handle) { + var eventX = evt.clientX, eventY = evt.clientY; + behindElement = document.elementFromPoint(eventX, eventY); + } + if (evt.target === handle && behindElement != handle) { + if ((this.isMaterial || this.isMaterial3) && !this.tooltip.isVisible && + !this.getHandle().classList.contains(classNames.sliderTabHandle)) { + this.materialChange(); + } + this.sliderBarUp(evt); + this.tooltipToggle(this.getHandle()); + return; + } + if (!this.checkRepeatedValue(handleVal)) { + return; + } + var transition = (this.isMaterial || this.isMaterial3) && this.tooltip.isVisible ? + this.transitionOnMaterialTooltip : this.transition; + this.getHandle().style.transition = transition.handle; + if (this.type !== 'Default') { + this.rangeBar.style.transition = transition.rangeBar; + } + this.setHandlePosition(evt); + if (this.isMaterialTooltip) { + this.initialTooltip = false; + } + this.changeEvent('changed', evt); + if (this.type !== 'Default') { + this.setRangeBar(); + } + }; + Slider.prototype.handleValueAdjust = function (handleValue, assignValue, handleNumber) { + if (handleNumber === 1) { + this.handleVal1 = assignValue; + this.handleVal2 = this.handleVal1 + this.minDiff; + } + else if (handleNumber === 2) { + this.handleVal2 = assignValue; + this.handleVal1 = this.handleVal2 - this.minDiff; + } + this.handlePos1 = this.checkHandlePosition(this.handleVal1); + this.handlePos2 = this.checkHandlePosition(this.handleVal2); + }; + Slider.prototype.dragRangeBarMove = function (event) { + var _a, _b; + if (event.type !== 'touchmove') { + event.preventDefault(); + } + this.rangeBarDragged = true; + var pos; + this.rangeBar.style.transition = 'none'; + this.firstHandle.style.transition = 'none'; + this.secondHandle.style.transition = 'none'; + var xPostion; + var yPostion; + if (event.type === 'mousemove') { + _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1]; + } + else { + _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1]; + } + if (!(this.limits.enabled && this.limits.startHandleFixed) && !(this.limits.enabled && this.limits.endHandleFixed)) { + if (!this.enableRtl) { + pos = { x: xPostion - this.firstPartRemain, y: yPostion + this.secondPartRemain }; + } + else { + pos = { x: xPostion + this.secondPartRemain, y: yPostion + this.secondPartRemain }; + } + if (this.min > this.max) { + this.handlePos2 = this.xyToPosition(pos); + this.handleVal2 = this.positionToValue(this.handlePos2); + } + else { + this.handlePos1 = this.xyToPosition(pos); + this.handleVal1 = this.positionToValue(this.handlePos1); + } + if (!this.enableRtl) { + pos = { x: xPostion + this.secondPartRemain, y: yPostion - this.firstPartRemain }; + } + else { + pos = { x: xPostion - this.firstPartRemain, y: yPostion - this.firstPartRemain }; + } + if (this.min > this.max) { + this.handlePos1 = this.xyToPosition(pos); + this.handleVal1 = this.positionToValue(this.handlePos1); + } + else { + this.handlePos2 = this.xyToPosition(pos); + this.handleVal2 = this.positionToValue(this.handlePos2); + } + if (this.limits.enabled) { + var value = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd); + this.handleVal1 = value[0]; + this.handlePos1 = value[1]; + if (this.handleVal1 === this.limits.minEnd) { + this.handleValueAdjust(this.handleVal1, this.limits.minEnd, 1); + } + if (this.handleVal1 === this.limits.minStart) { + this.handleValueAdjust(this.handleVal1, this.limits.minStart, 1); + } + value = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd); + this.handleVal2 = value[0]; + this.handlePos2 = value[1]; + if (this.handleVal2 === this.limits.maxStart) { + this.handleValueAdjust(this.handleVal2, this.limits.maxStart, 2); + } + if (this.handleVal2 === this.limits.maxEnd) { + this.handleValueAdjust(this.handleVal2, this.limits.maxEnd, 2); + } + } + if (this.handleVal2 === (this.min > this.max ? this.min : this.max)) { + this.handleValueAdjust(this.handleVal2, (this.min > this.max ? this.min : this.max), 2); + } + if (this.handleVal1 === (this.min > this.max ? this.max : this.min)) { + this.handleValueAdjust(this.handleVal1, (this.min > this.max ? this.max : this.min), 1); + } + } + this.activeHandle = 1; + this.setHandlePosition(event); + this.activeHandle = 2; + this.setHandlePosition(event); + this.tooltipToggle(this.rangeBar); + this.setRangeBar(); + }; + Slider.prototype.sliderBarUp = function (event) { + this.changeEvent('changed', event); + this.handleFocusOut(); + this.firstHandle.classList.remove(classNames.sliderActiveHandle); + if (this.type === 'Range') { + this.initialTooltip = false; + this.secondHandle.classList.remove(classNames.sliderActiveHandle); + } + this.closeTooltip(); + if (this.isMaterial || this.isMaterial3) { + this.getHandle().classList.remove('e-large-thumb-size'); + if (this.isMaterialTooltip) { + this.tooltipElement.classList.remove(classNames.materialTooltipActive); + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousemove touchmove', this.sliderBarMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup touchend', this.sliderBarUp); + }; + Slider.prototype.sliderBarMove = function (evt) { + if (evt.type !== 'touchmove') { + evt.preventDefault(); + } + var pos; + if (evt.type === 'mousemove') { + pos = { x: evt.clientX, y: evt.clientY }; + } + else { + pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY }; + } + var handlepos = this.xyToPosition(pos); + var handleVal = this.positionToValue(handlepos); + handlepos = Math.round(handlepos); + if (this.type !== 'Range' && this.activeHandle === 1) { + if (!(this.limits.enabled && this.limits.startHandleFixed)) { + if (this.limits.enabled) { + var valueAndPostion = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd); + handlepos = valueAndPostion[1]; + handleVal = valueAndPostion[0]; + } + this.handlePos1 = handlepos; + this.handleVal1 = handleVal; + } + this.firstHandle.classList.add(classNames.sliderActiveHandle); + } + if (this.type === 'Range') { + if (this.activeHandle === 1) { + this.firstHandle.classList.add(classNames.sliderActiveHandle); + if (!(this.limits.enabled && this.limits.startHandleFixed)) { + if ((this.min < this.max && handlepos > this.handlePos2 || (this.min > this.max && handlepos < this.handlePos2))) { + handlepos = this.handlePos2; + handleVal = this.handleVal2; + } + if (handlepos !== this.preHandlePos1) { + if (this.limits.enabled) { + var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd); + handleVal = value[0]; + handlepos = value[1]; + } + this.handlePos1 = this.preHandlePos1 = handlepos; + this.handleVal1 = handleVal; + this.activeHandle = 1; + } + } + } + else if (this.activeHandle === 2) { + this.secondHandle.classList.add(classNames.sliderActiveHandle); + if (!(this.limits.enabled && this.limits.endHandleFixed)) { + if ((this.min < this.max && handlepos < this.handlePos1) || (this.min > this.max && handlepos > this.handlePos1)) { + handlepos = this.handlePos1; + handleVal = this.handleVal1; + } + if (handlepos !== this.preHandlePos2) { + if (this.limits.enabled) { + var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd); + handleVal = value[0]; + handlepos = value[1]; + } + this.handlePos2 = this.preHandlePos2 = handlepos; + this.handleVal2 = handleVal; + this.activeHandle = 2; + } + } + } + } + if (!this.checkRepeatedValue(handleVal)) { + return; + } + this.getHandle().style.transition = this.scaleTransform; + if (this.type !== 'Default') { + this.rangeBar.style.transition = 'none'; + } + this.setHandlePosition(evt); + if ((this.isMaterial || this.isMaterial3) && !this.tooltip.isVisible && + !this.getHandle().classList.contains(classNames.sliderTabHandle)) { + this.materialChange(); + } + this.tooltipToggle(this.getHandle()); + if (this.type !== 'Default') { + this.setRangeBar(); + } + }; + Slider.prototype.dragRangeBarUp = function (event) { + if (!this.rangeBarDragged) { + this.focusSliderElement(); + this.sliderBarClick(event); + } + else { + this.isDragComplete = true; + } + this.changeEvent('changed', event); + this.closeTooltip(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousemove touchmove', this.dragRangeBarMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup touchend', this.dragRangeBarUp); + this.rangeBarDragged = false; + }; + Slider.prototype.checkRepeatedValue = function (currentValue) { + if (this.type === 'Range') { + var previousVal = this.enableRtl && this.orientation !== 'Vertical' ? (this.activeHandle === 1 ? + this.previousVal[1] : this.previousVal[0]) : + (this.activeHandle === 1 ? this.previousVal[0] : this.previousVal[1]); + if (currentValue === previousVal) { + return 0; + } + } + else { + if (currentValue === this.previousVal) { + return 0; + } + } + return 1; + }; + Slider.prototype.refreshTooltip = function (target) { + if (this.tooltip.isVisible && this.tooltipObj) { + this.tooltipValue(); + if (target) { + this.tooltipObj.refresh(target); + this.tooltipTarget = target; + } + } + }; + Slider.prototype.openTooltip = function (target) { + if (this.tooltip.isVisible && this.tooltipObj && !this.isMaterialTooltip) { + this.tooltipValue(); + this.tooltipObj.open(target); + this.tooltipTarget = target; + } + }; + Slider.prototype.closeTooltip = function () { + if (this.tooltip.isVisible && this.tooltipObj && this.tooltip.showOn !== 'Always' && !this.isMaterialTooltip) { + this.tooltipValue(); + this.tooltipObj.close(); + this.tooltipTarget = undefined; + } + }; + Slider.prototype.keyDown = function (event) { + switch (event.keyCode) { + case 37: + case 38: + case 39: + case 40: + case 33: + case 34: + case 36: + case 35: + event.preventDefault(); + this.buttonClick(event); + break; + } + }; + Slider.prototype.wireButtonEvt = function (destroy) { + if (!destroy) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.firstBtn, 'focusout', this.sliderFocusOut, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.secondBtn, 'focusout', this.sliderFocusOut, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.firstBtn, 'focusout', this.sliderFocusOut); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.secondBtn, 'focusout', this.sliderFocusOut); + } + }; + Slider.prototype.rangeBarMousedown = function (event) { + var _a, _b; + event.preventDefault(); + this.focusSliderElement(); + if (this.type === 'Range' && this.drag && event.target === this.rangeBar) { + var xPostion = void 0; + var yPostion = void 0; + if (event.type === 'mousedown') { + _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1]; + } + else if (event.type === 'touchstart') { + _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1]; + } + if (this.orientation === 'Horizontal') { + this.firstPartRemain = xPostion - this.rangeBar.getBoundingClientRect().left; + this.secondPartRemain = this.rangeBar.getBoundingClientRect().right - xPostion; + } + else { + this.firstPartRemain = yPostion - this.rangeBar.getBoundingClientRect().top; + this.secondPartRemain = this.rangeBar.getBoundingClientRect().bottom - yPostion; + } + this.minDiff = this.handleVal2 - this.handleVal1; + this.tooltipToggle(this.rangeBar); + var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle); + if (focusedElement) { + focusedElement.classList.remove(classNames.sliderTabHandle); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousemove touchmove', this.dragRangeBarMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup touchend', this.dragRangeBarUp, this); + } + }; + Slider.prototype.elementClick = function (event) { + if (this.isDragComplete) { + this.isDragComplete = false; + return; + } + event.preventDefault(); + this.focusSliderElement(); + this.sliderBarClick(event); + this.focusHandle(); + }; + Slider.prototype.wireEvents = function () { + this.onresize = this.reposition.bind(this); + window.addEventListener('resize', this.onresize); + if (this.enabled && !this.readonly) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.elementClick, this); + if (this.type === 'Range' && this.drag) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown, this); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.sliderContainer, 'keydown', this.keyDown, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.sliderContainer, 'keyup', this.keyUp, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.sliderFocusOut, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover, this); + this.wireFirstHandleEvt(false); + if (this.type === 'Range') { + this.wireSecondHandleEvt(false); + } + if (this.showButtons) { + this.wireButtonEvt(false); + } + this.wireMaterialTooltipEvent(false); + if (this.isForm) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.formResetHandler, this); + } + } + }; + Slider.prototype.unwireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.elementClick); + if (this.type === 'Range' && this.drag) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.sliderContainer, 'keydown', this.keyDown); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.sliderContainer, 'keyup', this.keyUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusout', this.sliderFocusOut); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover); + this.wireFirstHandleEvt(true); + if (this.type === 'Range') { + this.wireSecondHandleEvt(true); + } + if (this.showButtons) { + this.wireButtonEvt(true); + } + this.wireMaterialTooltipEvent(true); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'reset', this.formResetHandler); + }; + Slider.prototype.formResetHandler = function () { + this.setProperties({ 'value': this.formResetValue }, true); + this.setValue(); + }; + Slider.prototype.keyUp = function (event) { + if (event.keyCode === 9 && event.target.classList.contains(classNames.sliderHandle)) { + this.focusSliderElement(); + if (!event.target.classList.contains(classNames.sliderTabHandle)) { + if (this.element.querySelector('.' + classNames.sliderTabHandle)) { + this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle); + } + event.target.classList.add(classNames.sliderTabHandle); + var parentElement = event.target.parentElement; + if (parentElement === this.element) { + parentElement.querySelector('.' + classNames.sliderTrack).classList.add(classNames.sliderTabTrack); + if (this.type === 'Range' || this.type === 'MinRange') { + parentElement.querySelector('.' + classNames.rangeBar).classList.add(classNames.sliderTabRange); + } + } + if (this.type === 'Range') { + (event.target.previousSibling).classList.contains(classNames.sliderHandle) ? + this.activeHandle = 2 : this.activeHandle = 1; + } + this.getHandle().focus(); + this.tooltipToggle(this.getHandle()); + } + } + this.closeTooltip(); + this.changeEvent('changed', event); + }; + Slider.prototype.hover = function (event) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(event)) { + if (event.type === 'mouseover' || event.type === 'touchmove' || event.type === 'mousemove' || + event.type === 'pointermove' || event.type === 'touchstart') { + this.sliderContainer.classList.add(classNames.sliderHover); + } + else { + this.sliderContainer.classList.remove(classNames.sliderHover); + var curTarget = event.currentTarget; + if (this.tooltip.isVisible && this.tooltip.showOn !== 'Always' && this.tooltipObj && this.isMaterialTooltip && + !curTarget.classList.contains(classNames.sliderHandleFocused) && + !curTarget.classList.contains(classNames.sliderTabHandle)) { + this.closeMaterialTooltip(); + } + } + } + }; + Slider.prototype.sliderFocusOut = function (event) { + if (event.relatedTarget !== this.secondHandle && event.relatedTarget !== this.firstHandle && + event.relatedTarget !== this.element && event.relatedTarget !== this.firstBtn && event.relatedTarget !== this.secondBtn) { + this.closeMaterialTooltip(); + this.closeTooltip(); + if (this.element.querySelector('.' + classNames.sliderTabHandle)) { + this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle); + } + if (this.element.querySelector('.' + classNames.sliderTabTrack)) { + this.element.querySelector('.' + classNames.sliderTabTrack).classList.remove(classNames.sliderTabTrack); + if ((this.type === 'Range' || this.type === 'MinRange') && + this.element.querySelector('.' + classNames.sliderTabRange)) { + this.element.querySelector('.' + classNames.sliderTabRange).classList.remove(classNames.sliderTabRange); + } + } + this.hiddenInput.focus(); + this.hiddenInput.blur(); + this.isElementFocused = false; + } + }; + Slider.prototype.removeElement = function (element) { + if (element.parentNode) { + element.parentNode.removeChild(element); + } + }; + Slider.prototype.changeSliderType = function (type, args) { + if (this.isMaterialTooltip && this.materialHandle) { + this.sliderContainer.classList.remove(classNames.materialSlider); + this.removeElement(this.materialHandle); + this.materialHandle = undefined; + } + this.removeElement(this.firstHandle); + this.firstHandle = undefined; + if (type !== 'Default') { + if (type === 'Range') { + this.removeElement(this.secondHandle); + this.secondHandle = undefined; + } + this.removeElement(this.rangeBar); + this.rangeBar = undefined; + } + if (this.tooltip.isVisible && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltipObj)) { + this.tooltipObj.destroy(); + this.tooltipElement = undefined; + this.tooltipCollidedPosition = undefined; + } + if (this.limits.enabled) { + if (type === 'MinRange' || type === 'Default') { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarFirst)) { + this.removeElement(this.limitBarFirst); + this.limitBarFirst = undefined; + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarSecond)) { + this.removeElement(this.limitBarSecond); + this.limitBarSecond = undefined; + } + } + } + this.activeHandle = 1; + this.getThemeInitialization(); + if (this.type === 'Range') { + this.rangeValueUpdate(); + } + this.createRangeBar(); + if (this.limits.enabled) { + this.createLimitBar(); + } + this.setHandler(); + this.setOrientClass(); + this.wireFirstHandleEvt(false); + if (this.type === 'Range') { + this.wireSecondHandleEvt(false); + } + this.setValue(); + if (this.tooltip.isVisible) { + this.renderTooltip(); + this.wireMaterialTooltipEvent(false); + } + this.setBarColor(); + if (args !== 'tooltip') { + this.updateConfig(); + } + }; + Slider.prototype.changeRtl = function () { + if (!this.enableRtl && this.type === 'Range') { + this.value = [this.handleVal2, this.handleVal1]; + } + this.updateConfig(); + if (this.tooltip.isVisible) { + this.tooltipObj.refresh(this.firstHandle); + } + if (this.showButtons) { + var enabledRTL = this.enableRtl && this.orientation !== 'Vertical'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': 'Decrease', title: 'Decrease' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': 'Increase', title: 'Increase' }); + } + }; + Slider.prototype.changeOrientation = function () { + this.changeSliderType(this.type, 'null'); + }; + Slider.prototype.updateConfig = function () { + this.setEnableRTL(); + this.setValue(); + if (this.tooltip.isVisible) { + this.refreshTooltip(this.tooltipTarget); + } + if (this.ticks.placement !== 'None') { + if (this.ul) { + this.removeElement(this.ul); + this.ul = undefined; + this.renderScale(); + } + } + this.limitsPropertyChange(); + }; + Slider.prototype.limitsPropertyChange = function () { + if (this.limits.enabled) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarFirst) && this.type !== 'Range') { + this.createLimitBar(); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarFirst) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarSecond) && this.type === 'Range') { + this.createLimitBar(); + } + this.setLimitBar(); + this.setValue(); + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarFirst)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.limitBarFirst); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.limitBarSecond)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.limitBarSecond); + } + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @private + */ + Slider.prototype.getPersistData = function () { + var keyEntity = ['value']; + return this.addOnPersist(keyEntity); + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also it removes the attributes and classes. + * + * @method destroy + * @return {void} + */ + Slider.prototype.destroy = function () { + _super.prototype.destroy.call(this); + this.unwireEvents(); + window.removeEventListener('resize', this.onresize); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.sliderContainer], [classNames.sliderDisabled]); + this.firstHandle.removeAttribute('aria-orientation'); + if (this.type === 'Range') { + this.secondHandle.removeAttribute('aria-orientation'); + } + this.sliderContainer.parentNode.insertBefore(this.element, this.sliderContainer); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.sliderContainer); + if (this.tooltip.isVisible) { + this.tooltipObj.destroy(); + } + this.element.innerHTML = ''; + }; + /** + * Calls internally if any of the property value is changed. + * + * @private + */ + // tslint:disable-next-line + Slider.prototype.onPropertyChanged = function (newProp, oldProp) { + var _this = this; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'cssClass': + this.setCSSClass(oldProp.cssClass); + break; + case 'value': + if (newProp && oldProp) { + var value = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.value) ? + (this.type === 'Range' ? [this.min, this.max] : this.min) : newProp.value; + this.setProperties({ 'value': value }, true); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.value) && oldProp.value.toString() !== value.toString()) { + this.setValue(); + this.refreshTooltip(this.tooltipTarget); + if (this.type === 'Range') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.value) || oldProp.value[1] === value[1]) { + this.activeHandle = 1; + } + else { + this.activeHandle = 2; + } + } + } + } + break; + case 'min': + case 'step': + case 'max': + this.setMinMaxValue(); + break; + case 'tooltip': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.tooltip) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.tooltip)) { + this.setTooltip(prop); + if (!this.showButtons) { + this.wireEvents(); + } + } + break; + case 'type': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp) && Object.keys(oldProp).length + && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.type)) { + this.changeSliderType(oldProp.type, prop); + this.setZindex(); + } + break; + case 'enableRtl': + if (oldProp.enableRtl !== newProp.enableRtl && this.orientation !== 'Vertical') { + this.rtl = oldProp.enableRtl; + this.changeRtl(); + } + break; + case 'limits': + this.limitsPropertyChange(); + break; + case 'orientation': + this.changeOrientation(); + break; + case 'ticks': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.sliderContainer.querySelector('.' + classNames.scale))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.ul); + Array.prototype.forEach.call(this.sliderContainer.classList, function (className) { + if (className.match(/e-scale-/)) { + _this.sliderContainer.classList.remove(className); + } + }); + } + if (this.ticks.placement !== 'None') { + this.renderScale(); + this.setZindex(); + } + break; + case 'locale': + if (this.showButtons) { + this.buttonTitle(); + } + break; + case 'showButtons': + if (newProp.showButtons) { + this.setButtons(); + this.reposition(); + if (this.enabled && !this.readonly) { + this.wireButtonEvt(false); + } + } + else { + if (this.firstBtn && this.secondBtn) { + this.sliderContainer.removeChild(this.firstBtn); + this.sliderContainer.removeChild(this.secondBtn); + this.sliderContainer.classList.remove(classNames.sliderButtonClass); + this.firstBtn = undefined; + this.secondBtn = undefined; + this.reposition(); + } + } + break; + case 'enabled': + this.setEnabled(); + break; + case 'readonly': + this.setReadOnly(); + break; + case 'customValues': + this.setValue(); + this.reposition(); + break; + case 'colorRange': + this.reposition(); + break; + case 'width': + this.setElementWidth(newProp.width); + this.setMinMaxValue(); + if (this.limits) { + this.limitsPropertyChange(); + } + break; + } + } + }; + Slider.prototype.setReadOnly = function () { + if (this.readonly) { + this.unwireEvents(); + this.sliderContainer.classList.add(classNames.readonly); + } + else { + this.wireEvents(); + this.sliderContainer.classList.remove(classNames.readonly); + } + }; + Slider.prototype.setMinMaxValue = function () { + var _this = this; + this.setValue(); + this.refreshTooltip(this.tooltipTarget); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.sliderContainer.querySelector('.' + classNames.scale))) { + if (this.ul) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.ul); + Array.prototype.forEach.call(this.sliderContainer.classList, function (className) { + if (className.match(/e-scale-/)) { + _this.sliderContainer.classList.remove(className); + } + }); + } + } + if (this.ticks.placement !== 'None') { + this.renderScale(); + this.setZindex(); + } + }; + Slider.prototype.setZindex = function () { + this.zIndex = 6; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks) && this.ticks.placement !== 'None') { + this.ul.style.zIndex = (this.zIndex + -7) + ''; + this.element.style.zIndex = (this.zIndex + 2) + ''; + } + if (!this.isMaterial && !this.isMaterial3 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ticks) && this.ticks.placement === 'Both') { + this.element.style.zIndex = (this.zIndex + 2) + ''; + } + this.firstHandle.style.zIndex = (this.zIndex + 3) + ''; + if (this.type === 'Range') { + this.secondHandle.style.zIndex = (this.zIndex + 4) + ''; + } + }; + Slider.prototype.setTooltip = function (args) { + this.changeSliderType(this.type, args); + }; + Slider.prototype.setBarColor = function () { + var trackPosition; + var trackClassName; + var child = this.sliderTrack.lastElementChild; + while (child) { + this.sliderTrack.removeChild(child); + child = this.sliderTrack.lastElementChild; + } + for (var i = 0; i < this.colorRange.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.colorRange[i].start) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.colorRange[i].end)) { + if (this.colorRange[i].end > this.colorRange[i].start) { + if (this.colorRange[i].start < this.min) { + this.colorRange[i].start = this.min; + } + if (this.colorRange[i].end > this.max) { + this.colorRange[i].end = this.max; + } + var startingPosition = this.checkHandlePosition(this.colorRange[i].start); + var endPosition = this.checkHandlePosition(this.colorRange[i].end); + var trackContainer = this.createElement('div'); + trackContainer.style.backgroundColor = this.colorRange[i].color; + trackContainer.style.border = '1px solid ' + this.colorRange[i].color; + if (this.orientation === 'Horizontal') { + trackClassName = classNames.sliderHorizantalColor; + if (this.enableRtl) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.customValues)) { + trackPosition = this.checkHandlePosition(this.max) - this.checkHandlePosition(this.colorRange[i].end); + } + else { + trackPosition = this.checkHandlePosition(this.customValues.length - this.colorRange[i].end - 1); + } + } + else { + trackPosition = this.checkHandlePosition(this.colorRange[i].start); + } + trackContainer.style.width = endPosition - startingPosition + 'px'; + trackContainer.style.left = trackPosition + 'px'; + } + else { + trackClassName = classNames.sliderVerticalColor; + trackPosition = this.checkHandlePosition(this.colorRange[i].start); + trackContainer.style.height = endPosition - startingPosition + 'px'; + trackContainer.style.bottom = trackPosition + 'px'; + } + trackContainer.classList.add(trackClassName); + this.sliderTrack.appendChild(trackContainer); + } + } + } + }; + /** + * Gets the component name + * + * @private + */ + Slider.prototype.getModuleName = function () { + return 'slider'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Slider.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Slider.prototype, "customValues", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1) + ], Slider.prototype, "step", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Slider.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Slider.prototype, "min", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(100) + ], Slider.prototype, "max", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Slider.prototype, "readonly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], Slider.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([{}], ColorRangeData) + ], Slider.prototype, "colorRange", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, TicksData) + ], Slider.prototype, "ticks", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, LimitData) + ], Slider.prototype, "limits", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Slider.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, TooltipData) + ], Slider.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Slider.prototype, "showButtons", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Slider.prototype, "enableAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], Slider.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Slider.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Slider.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "changed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "renderingTicks", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "renderedTicks", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Slider.prototype, "tooltipChange", void 0); + Slider = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Slider); + return Slider; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/index.js ***! + \*******************************************************************/ +/*! exports provided: TextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _textbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./textbox */ "./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/textbox.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextBox", function() { return _textbox__WEBPACK_IMPORTED_MODULE_0__["TextBox"]; }); + +/** + * Uploader modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/textbox.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/textbox/textbox.js ***! + \*********************************************************************/ +/*! exports provided: TextBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextBox", function() { return TextBox; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _input_input__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../input/input */ "./ej2-resources/22.1.37/scripts/ej2-inputs/input/input.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + +var HIDE_CLEAR = 'e-clear-icon-hide'; +var TEXTBOX_FOCUS = 'e-input-focus'; +var containerAttr = ['title', 'style', 'class']; +/** + * Represents the TextBox component that allows the user to enter the values based on it's type. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var TextBox = /** @__PURE__ @class */ (function (_super) { + __extends(TextBox, _super); + /** + * + * @param {TextBoxModel} options - Specifies the TextBox model. + * @param {string | HTMLInputElement | HTMLTextAreaElement} element - Specifies the element to render as component. + * @private + */ + function TextBox(options, element) { + var _this = _super.call(this, options, element) || this; + _this.previousValue = null; + _this.isAngular = false; + _this.isHiddenInput = false; + _this.isForm = false; + _this.inputPreviousValue = null; + _this.isVue = false; + _this.textboxOptions = options; + return _this; + } + /** + * Calls internally if any of the property value is changed. + * + * @param {TextBoxModel} newProp - Returns the dynamic property value of the component. + * @param {TextBoxModel} oldProp - Returns the previous property value of the component. + * @returns {void} + * @private + */ + TextBox.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'floatLabelType': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].removeFloating(this.textboxWrapper); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].addFloating(this.respectiveElement, this.floatLabelType, this.placeholder); + break; + case 'enabled': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container); + this.bindClearEvent(); + break; + case 'width': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setWidth(newProp.width, this.textboxWrapper.container); + break; + case 'value': + { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + if (!this.isBlank(this.value)) { + this.value = this.value.toString(); + } + this.isProtectedOnChange = prevOnChange; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton); + if (this.isHiddenInput) { + this.element.value = this.respectiveElement.value; + } + this.inputPreviousValue = this.respectiveElement.value; + /* istanbul ignore next */ + if ((this.isAngular || this.isVue) && this.preventChange === true) { + this.previousValue = this.isAngular ? this.value : this.previousValue; + this.preventChange = false; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.isAngular) || !this.isAngular + || (this.isAngular && !this.preventChange) || (this.isAngular && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.preventChange))) { + this.raiseChangeEvent(); + } + } + break; + case 'htmlAttributes': + { + this.updateHTMLAttrToElement(); + this.updateHTMLAttrToWrapper(); + this.checkAttributes(true); + this.multiline && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textarea) ? _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].validateInputType(this.textboxWrapper.container, this.textarea) : _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].validateInputType(this.textboxWrapper.container, this.element); + } + break; + case 'readonly': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setReadonly(this.readonly, this.respectiveElement); + break; + case 'type': + if (this.respectiveElement.tagName !== 'TEXTAREA') { + this.respectiveElement.setAttribute('type', this.type); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].validateInputType(this.textboxWrapper.container, this.element); + this.raiseChangeEvent(); + } + break; + case 'showClearButton': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper); + this.bindClearEvent(); + break; + case 'enableRtl': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnableRtl(this.enableRtl, [this.textboxWrapper.container]); + break; + case 'placeholder': + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.respectiveElement); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].calculateWidth(this.respectiveElement, this.textboxWrapper.container); + break; + case 'autocomplete': + if (this.autocomplete !== 'on' && this.autocomplete !== '') { + this.respectiveElement.autocomplete = this.autocomplete; + } + else { + this.removeAttributes(['autocomplete']); + } + break; + case 'cssClass': + this.updateCssClass(newProp.cssClass, oldProp.cssClass); + break; + case 'locale': + this.globalize = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Internationalization"](this.locale); + this.l10n.setLocale(this.locale); + this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.respectiveElement); + break; + } + } + }; + /** + * Gets the component name + * + * @returns {string} Returns the component name. + * @private + */ + TextBox.prototype.getModuleName = function () { + return 'textbox'; + }; + TextBox.prototype.isBlank = function (str) { + return (!str || /^\s*$/.test(str)); + }; + TextBox.prototype.preRender = function () { + this.cloneElement = this.element.cloneNode(true); + this.formElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.formElement)) { + this.isForm = true; + } + /* istanbul ignore next */ + if (this.element.tagName === 'EJS-TEXTBOX') { + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + var inputElement = this.multiline ? + this.createElement('textarea') : + this.createElement('input'); + var index = 0; + for (index; index < this.element.attributes.length; index++) { + var attributeName = this.element.attributes[index].nodeName; + if (attributeName !== 'id' && attributeName !== 'class') { + inputElement.setAttribute(attributeName, this.element.attributes[index].nodeValue); + inputElement.innerHTML = this.element.innerHTML; + if (attributeName === 'name') { + this.element.removeAttribute('name'); + } + } + else if (attributeName === 'class') { + inputElement.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' ')); + } + } + this.element.appendChild(inputElement); + this.element = inputElement; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, this.element); + } + this.updateHTMLAttrToElement(); + this.checkAttributes(false); + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) && this.element.value !== '') { + this.setProperties({ value: this.element.value }, true); + } + if (this.element.tagName !== 'TEXTAREA') { + this.element.setAttribute('type', this.type); + } + if (this.type === 'text') { + this.element.setAttribute('role', 'textbox'); + } + this.globalize = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Internationalization"](this.locale); + var localeText = { placeholder: this.placeholder }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('textbox', localeText, this.locale); + if (this.l10n.getConstant('placeholder') !== '') { + this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true); + } + if (!this.element.hasAttribute('id')) { + this.element.setAttribute('id', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('textbox')); + } + if (!this.element.hasAttribute('name')) { + this.element.setAttribute('name', this.element.getAttribute('id')); + } + if (this.element.tagName === 'INPUT' && this.multiline) { + this.isHiddenInput = true; + this.textarea = this.createElement('textarea'); + this.element.parentNode.insertBefore(this.textarea, this.element); + this.element.setAttribute('type', 'hidden'); + this.textarea.setAttribute('name', this.element.getAttribute('name')); + this.element.removeAttribute('name'); + this.textarea.setAttribute('role', this.element.getAttribute('role')); + this.element.removeAttribute('role'); + this.textarea.setAttribute('id', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('textarea')); + var apiAttributes = ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete']; + for (var index = 0; index < this.element.attributes.length; index++) { + var attributeName = this.element.attributes[index].nodeName; + if (this.element.hasAttribute(attributeName) && containerAttr.indexOf(attributeName) < 0 && + !(attributeName === 'id' || attributeName === 'type' || attributeName === 'e-mappinguid')) { + // e-mappinguid attribute is handled for Grid component. + this.textarea.setAttribute(attributeName, this.element.attributes[index].nodeValue); + if (apiAttributes.indexOf(attributeName) < 0) { + this.element.removeAttribute(attributeName); + index--; + } + } + } + } + }; + TextBox.prototype.checkAttributes = function (isDynamic) { + var attrs = isDynamic ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) : + ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete']; + for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) { + var key = attrs_1[_i]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute(key))) { + switch (key) { + case 'disabled': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['enabled'] === undefined)) || isDynamic) { + var enabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' || + this.element.getAttribute(key) === 'true' ? false : true; + this.setProperties({ enabled: enabled }, !isDynamic); + } + break; + case 'readonly': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['readonly'] === undefined)) || isDynamic) { + var readonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === '' + || this.element.getAttribute(key) === 'true' ? true : false; + this.setProperties({ readonly: readonly }, !isDynamic); + } + break; + case 'placeholder': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['placeholder'] === undefined)) || isDynamic) { + this.setProperties({ placeholder: this.element.placeholder }, !isDynamic); + } + break; + case 'autocomplete': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['autocomplete'] === undefined)) || isDynamic) { + var autoCompleteTxt = this.element.autocomplete === 'off' ? 'off' : 'on'; + this.setProperties({ autocomplete: autoCompleteTxt }, !isDynamic); + } + break; + case 'value': + if (((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) || isDynamic) && this.element.value !== '') { + this.setProperties({ value: this.element.value }, !isDynamic); + } + break; + case 'type': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) || (this.textboxOptions['type'] === undefined)) || isDynamic) { + this.setProperties({ type: this.element.type }, !isDynamic); + } + break; + } + } + } + }; + /** + * To Initialize the control rendering + * + * @returns {void} + * @private + */ + TextBox.prototype.render = function () { + var updatedCssClassValue = this.cssClass; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && this.cssClass !== '') { + updatedCssClassValue = this.getInputValidClassList(this.cssClass); + } + this.respectiveElement = (this.isHiddenInput) ? this.textarea : this.element; + this.textboxWrapper = _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].createInput({ + element: this.respectiveElement, + floatLabelType: this.floatLabelType, + properties: { + enabled: this.enabled, + enableRtl: this.enableRtl, + cssClass: updatedCssClassValue, + readonly: this.readonly, + placeholder: this.placeholder, + showClearButton: this.showClearButton + } + }); + this.updateHTMLAttrToWrapper(); + if (this.isHiddenInput) { + this.respectiveElement.parentNode.insertBefore(this.element, this.respectiveElement); + } + this.wireEvents(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value)) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton); + if (this.isHiddenInput) { + this.element.value = this.respectiveElement.value; + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.value)) { + this.initialValue = this.value; + this.setInitialValue(); + } + if (this.autocomplete !== 'on' && this.autocomplete !== '') { + this.respectiveElement.autocomplete = this.autocomplete; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxOptions) && (this.textboxOptions['autocomplete'] !== undefined)) { + this.removeAttributes(['autocomplete']); + } + this.previousValue = this.value; + this.inputPreviousValue = this.value; + this.respectiveElement.defaultValue = this.respectiveElement.value; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setWidth(this.width, this.textboxWrapper.container); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'fieldset')) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'fieldset').disabled) { + this.enabled = false; + } + this.renderComplete(); + }; + TextBox.prototype.updateHTMLAttrToWrapper = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (containerAttr.indexOf(key) > -1) { + if (key === 'class') { + var updatedClassValues = this.getInputValidClassList(this.htmlAttributes["" + key]); + if (updatedClassValues !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.textboxWrapper.container], updatedClassValues.split(' ')); + } + } + else if (key === 'style') { + var setStyle = this.textboxWrapper.container.getAttribute(key); + setStyle = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(setStyle) ? (setStyle + this.htmlAttributes["" + key]) : + this.htmlAttributes["" + key]; + this.textboxWrapper.container.setAttribute(key, setStyle); + } + else { + this.textboxWrapper.container.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + } + }; + TextBox.prototype.updateHTMLAttrToElement = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (containerAttr.indexOf(key) < 0) { + this.multiline && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textarea) ? this.textarea.setAttribute(key, this.htmlAttributes["" + key]) : this.element.setAttribute(key, this.htmlAttributes["" + key]); + } + } + } + }; + TextBox.prototype.updateCssClass = function (newClass, oldClass) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setCssClass(this.getInputValidClassList(newClass), [this.textboxWrapper.container], this.getInputValidClassList(oldClass)); + }; + TextBox.prototype.getInputValidClassList = function (inputClassName) { + var result = inputClassName; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(inputClassName) && inputClassName !== '') { + result = (inputClassName.replace(/\s+/g, ' ')).trim(); + } + return result; + }; + TextBox.prototype.setInitialValue = function () { + if (!this.isAngular) { + this.respectiveElement.setAttribute('value', this.initialValue); + } + }; + TextBox.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.respectiveElement, 'focus', this.focusHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.respectiveElement, 'blur', this.focusOutHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.respectiveElement, 'input', this.inputHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.respectiveElement, 'change', this.changeHandler, this); + if (this.isForm) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.resetForm, this); + } + this.bindClearEvent(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto' + && this.textboxWrapper.container.classList.contains('e-autofill') && + this.textboxWrapper.container.classList.contains('e-outline')) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler, this); + } + }; + TextBox.prototype.animationHandler = function () { + this.textboxWrapper.container.classList.add('e-valid-input'); + var label = this.textboxWrapper.container.querySelector('.e-float-text'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(label)) { + label.classList.add('e-label-top'); + if (label.classList.contains('e-label-bottom')) { + label.classList.remove('e-label-bottom'); + } + } + }; + TextBox.prototype.resetValue = function (value) { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + this.value = value; + this.isProtectedOnChange = prevOnChange; + }; + TextBox.prototype.resetForm = function () { + if (this.isAngular) { + this.resetValue(''); + } + else { + this.resetValue(this.initialValue); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxWrapper)) { + var label = this.textboxWrapper.container.querySelector('.e-float-text'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(label) && this.floatLabelType !== 'Always') { + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initialValue) || this.initialValue === '')) { + label.classList.add('e-label-bottom'); + label.classList.remove('e-label-top'); + } + else if (this.initialValue !== '') { + label.classList.add('e-label-top'); + label.classList.remove('e-label-bottom'); + } + } + } + }; + TextBox.prototype.focusHandler = function (args) { + var eventArgs = { + container: this.textboxWrapper.container, + event: args, + value: this.value + }; + this.trigger('focus', eventArgs); + }; + TextBox.prototype.focusOutHandler = function (args) { + if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') && + (this.previousValue !== this.value)) { + this.raiseChangeEvent(args, true); + } + var eventArgs = { + container: this.textboxWrapper.container, + event: args, + value: this.value + }; + this.trigger('blur', eventArgs); + }; + TextBox.prototype.inputHandler = function (args) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias + var textboxObj = this; + var eventArgs = { + event: args, + value: this.respectiveElement.value, + previousValue: this.inputPreviousValue, + container: this.textboxWrapper.container + }; + this.inputPreviousValue = this.respectiveElement.value; + /* istanbul ignore next */ + if (this.isAngular) { + textboxObj.localChange({ value: this.respectiveElement.value }); + this.preventChange = true; + } + if (this.isVue) { + this.preventChange = true; + } + this.trigger('input', eventArgs); + args.stopPropagation(); + }; + TextBox.prototype.changeHandler = function (args) { + this.setProperties({ value: this.respectiveElement.value }, true); + if (this.previousValue != this.value) { + this.raiseChangeEvent(args, true); + } + args.stopPropagation(); + }; + TextBox.prototype.raiseChangeEvent = function (event, interaction) { + var eventArgs = { + event: event, + value: this.value, + previousValue: this.previousValue, + container: this.textboxWrapper.container, + isInteraction: interaction ? interaction : false, + isInteracted: interaction ? interaction : false + }; + this.preventChange = false; + this.trigger('change', eventArgs); + this.previousValue = this.value; + //EJ2CORE-738:For this task we update the textarea value to the input when input tag with multiline is present + if (this.element.tagName === 'INPUT' && this.multiline && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'mozilla') { + this.element.value = this.respectiveElement.value; + } + }; + TextBox.prototype.bindClearEvent = function () { + if (this.showClearButton) { + if (this.enabled) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler); + } + } + }; + TextBox.prototype.resetInputHandler = function (event) { + event.preventDefault(); + if (!(this.textboxWrapper.clearButton.classList.contains(HIDE_CLEAR)) || this.textboxWrapper.container.classList.contains('e-static-clear')) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setValue('', this.respectiveElement, this.floatLabelType, this.showClearButton); + if (this.isHiddenInput) { + this.element.value = this.respectiveElement.value; + } + this.setProperties({ value: this.respectiveElement.value }, true); + var eventArgs = { + event: event, + value: this.respectiveElement.value, + previousValue: this.inputPreviousValue, + container: this.textboxWrapper.container + }; + this.trigger('input', eventArgs); + this.inputPreviousValue = this.respectiveElement.value; + this.raiseChangeEvent(event, true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form')) { + var element = this.element; + var keyupEvent = document.createEvent('KeyboardEvent'); + keyupEvent.initEvent('keyup', false, true); + element.dispatchEvent(keyupEvent); + } + } + }; + TextBox.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.respectiveElement, 'focus', this.focusHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.respectiveElement, 'blur', this.focusOutHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.respectiveElement, 'input', this.inputHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.respectiveElement, 'change', this.changeHandler); + if (this.isForm) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', this.resetForm); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto' + && this.textboxWrapper.container.classList.contains('e-outline') && + this.textboxWrapper.container.classList.contains('e-autofill')) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler); + } + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. + * Also, it maintains the initial TextBox element from the DOM. + * + * @method destroy + * @returns {void} + */ + TextBox.prototype.destroy = function () { + this.unWireEvents(); + if (this.element.tagName === 'INPUT' && this.multiline) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.textboxWrapper.container.getElementsByTagName('textarea')[0]); + this.respectiveElement = this.element; + this.element.removeAttribute('type'); + } + this.respectiveElement.value = this.respectiveElement.defaultValue; + this.respectiveElement.classList.remove('e-input'); + this.removeAttributes(['aria-disabled', 'aria-readonly', 'aria-labelledby']); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.textboxWrapper)) { + this.textboxWrapper.container.insertAdjacentElement('afterend', this.respectiveElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.textboxWrapper.container); + } + this.textboxWrapper = null; + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].destroy(); + _super.prototype.destroy.call(this); + }; + /** + * Adding the icons to the TextBox component. + * + * @param { string } position - Specify the icon placement on the TextBox. Possible values are append and prepend. + * @param { string | string[] } icons - Icon classes which are need to add to the span element which is going to created. + * Span element acts as icon or button element for TextBox. + * @returns {void} + */ + TextBox.prototype.addIcon = function (position, icons) { + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].addIcon(position, icons, this.textboxWrapper.container, this.respectiveElement, this.createElement); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns */ + /** + * Gets the properties to be maintained in the persisted state. + * + */ + TextBox.prototype.getPersistData = function () { + var keyEntity = ['value']; + return this.addOnPersist(keyEntity); + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns */ + /** + * Adding the multiple attributes as key-value pair to the TextBox element. + * + * @param {string} attributes - Specifies the attributes to be add to TextBox element. + * @returns {void} + */ + TextBox.prototype.addAttributes = function (attributes) { + for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) { + var key = _a[_i]; + if (key === 'disabled') { + this.setProperties({ enabled: false }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container); + } + else if (key === 'readonly') { + this.setProperties({ readonly: true }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setReadonly(this.readonly, this.respectiveElement); + } + else if (key === 'class') { + this.respectiveElement.classList.add(attributes["" + key]); + } + else if (key === 'placeholder') { + this.setProperties({ placeholder: attributes["" + key] }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.respectiveElement); + } + else if (key === 'rows' && this.respectiveElement.tagName === 'TEXTAREA') { + this.respectiveElement.setAttribute(key, attributes["" + key]); + } + else { + this.respectiveElement.setAttribute(key, attributes["" + key]); + } + } + }; + /** + * Removing the multiple attributes as key-value pair to the TextBox element. + * + * @param { string[] } attributes - Specifies the attributes name to be removed from TextBox element. + * @returns {void} + */ + TextBox.prototype.removeAttributes = function (attributes) { + for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) { + var key = attributes_1[_i]; + if (key === 'disabled') { + this.setProperties({ enabled: true }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container); + } + else if (key === 'readonly') { + this.setProperties({ readonly: false }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setReadonly(this.readonly, this.respectiveElement); + } + else if (key === 'placeholder') { + this.setProperties({ placeholder: null }, true); + _input_input__WEBPACK_IMPORTED_MODULE_1__["Input"].setPlaceholder(this.placeholder, this.respectiveElement); + } + else { + this.respectiveElement.removeAttribute(key); + } + } + }; + /** + * Sets the focus to widget for interaction. + * + * @returns {void} + */ + TextBox.prototype.focusIn = function () { + if (document.activeElement !== this.respectiveElement && this.enabled) { + this.respectiveElement.focus(); + if (this.textboxWrapper.container.classList.contains('e-input-group') + || this.textboxWrapper.container.classList.contains('e-outline') + || this.textboxWrapper.container.classList.contains('e-filled')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.textboxWrapper.container], [TEXTBOX_FOCUS]); + } + } + }; + /** + * Remove the focus from widget, if the widget is in focus state. + * + * @returns {void} + */ + TextBox.prototype.focusOut = function () { + if (document.activeElement === this.respectiveElement && this.enabled) { + this.respectiveElement.blur(); + if (this.textboxWrapper.container.classList.contains('e-input-group') + || this.textboxWrapper.container.classList.contains('e-outline') + || this.textboxWrapper.container.classList.contains('e-filled')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.textboxWrapper.container], [TEXTBOX_FOCUS]); + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('text') + ], TextBox.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextBox.prototype, "readonly", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TextBox.prototype, "value", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Never') + ], TextBox.prototype, "floatLabelType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], TextBox.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TextBox.prototype, "placeholder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('on') + ], TextBox.prototype, "autocomplete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], TextBox.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextBox.prototype, "multiline", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], TextBox.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextBox.prototype, "showClearButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TextBox.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TextBox.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "destroyed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "blur", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "focus", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TextBox.prototype, "input", void 0); + TextBox = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], TextBox); + return TextBox; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/index.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/index.js ***! + \********************************************************************/ +/*! exports provided: FilesProp, ButtonsProps, AsyncSettings, Uploader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _uploader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./uploader */ "./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/uploader.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilesProp", function() { return _uploader__WEBPACK_IMPORTED_MODULE_0__["FilesProp"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonsProps", function() { return _uploader__WEBPACK_IMPORTED_MODULE_0__["ButtonsProps"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSettings", function() { return _uploader__WEBPACK_IMPORTED_MODULE_0__["AsyncSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Uploader", function() { return _uploader__WEBPACK_IMPORTED_MODULE_0__["Uploader"]; }); + +/** + * Uploader modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/uploader.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-inputs/uploader/uploader.js ***! + \***********************************************************************/ +/*! exports provided: FilesProp, ButtonsProps, AsyncSettings, Uploader */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilesProp", function() { return FilesProp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonsProps", function() { return ButtonsProps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncSettings", function() { return AsyncSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Uploader", function() { return Uploader; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + + + +var CONTROL_WRAPPER = 'e-upload e-control-wrapper'; +var INPUT_WRAPPER = 'e-file-select'; +var DROP_AREA = 'e-file-drop'; +var DROP_WRAPPER = 'e-file-select-wrap'; +var LIST_PARENT = 'e-upload-files'; +var FILE = 'e-upload-file-list'; +var STATUS = 'e-file-status'; +var ACTION_BUTTONS = 'e-upload-actions'; +var UPLOAD_BUTTONS = 'e-file-upload-btn e-css e-btn e-flat e-primary'; +var CLEAR_BUTTONS = 'e-file-clear-btn e-css e-btn e-flat'; +var FILE_NAME = 'e-file-name'; +var FILE_TYPE = 'e-file-type'; +var FILE_SIZE = 'e-file-size'; +var REMOVE_ICON = 'e-file-remove-btn'; +var DELETE_ICON = 'e-file-delete-btn'; +var SPINNER_PANE = 'e-spinner-pane'; +var ABORT_ICON = 'e-file-abort-btn'; +var RETRY_ICON = 'e-file-reload-btn'; +var DRAG_HOVER = 'e-upload-drag-hover'; +var PROGRESS_WRAPPER = 'e-upload-progress-wrap'; +var PROGRESSBAR = 'e-upload-progress-bar'; +var PROGRESSBAR_TEXT = 'e-progress-bar-text'; +var UPLOAD_INPROGRESS = 'e-upload-progress'; +var UPLOAD_SUCCESS = 'e-upload-success'; +var UPLOAD_FAILED = 'e-upload-fails'; +var TEXT_CONTAINER = 'e-file-container'; +var VALIDATION_FAILS = 'e-validation-fails'; +var RTL = 'e-rtl'; +var DISABLED = 'e-disabled'; +var RTL_CONTAINER = 'e-rtl-container'; +var ICON_FOCUSED = 'e-clear-icon-focus'; +var PROGRESS_INNER_WRAPPER = 'e-progress-inner-wrap'; +var PAUSE_UPLOAD = 'e-file-pause-btn'; +var RESUME_UPLOAD = 'e-file-play-btn'; +var RESTRICT_RETRY = 'e-restrict-retry'; +var wrapperAttr = ['title', 'style', 'class']; +var FORM_UPLOAD = 'e-form-upload'; +var HIDDEN_INPUT = 'e-hidden-file-input'; +var INVALID_FILE = 'e-file-invalid'; +var INFORMATION = 'e-file-information'; +var FilesProp = /** @__PURE__ @class */ (function (_super) { + __extends(FilesProp, _super); + function FilesProp() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], FilesProp.prototype, "name", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], FilesProp.prototype, "size", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], FilesProp.prototype, "type", void 0); + return FilesProp; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var ButtonsProps = /** @__PURE__ @class */ (function (_super) { + __extends(ButtonsProps, _super); + function ButtonsProps() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Browse...') + ], ButtonsProps.prototype, "browse", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Upload') + ], ButtonsProps.prototype, "upload", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Clear') + ], ButtonsProps.prototype, "clear", void 0); + return ButtonsProps; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var AsyncSettings = /** @__PURE__ @class */ (function (_super) { + __extends(AsyncSettings, _super); + function AsyncSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], AsyncSettings.prototype, "saveUrl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], AsyncSettings.prototype, "removeUrl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], AsyncSettings.prototype, "chunkSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(3) + ], AsyncSettings.prototype, "retryCount", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(500) + ], AsyncSettings.prototype, "retryAfterDelay", void 0); + return AsyncSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * The uploader component allows to upload images, documents, and other files from local to server. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Uploader = /** @__PURE__ @class */ (function (_super) { + __extends(Uploader, _super); + /** + * Triggers when change the Uploader value. + * + * @param {UploaderModel} options - Specifies the Uploader model. + * @param {string | HTMLInputElement} element - Specifies the element to render as component. + * @private + */ + function Uploader(options, element) { + var _this = _super.call(this, options, element) || this; + _this.initialAttr = { accept: null, multiple: false, disabled: false }; + _this.uploadedFilesData = []; + _this.base64String = []; + _this.isForm = false; + _this.allTypes = false; + _this.pausedData = []; + _this.uploadMetaData = []; + _this.tabIndex = '0'; + _this.btnTabIndex = '0'; + _this.disableKeyboardNavigation = false; + _this.count = -1; + _this.actionCompleteCount = 0; + _this.flag = true; + _this.selectedFiles = []; + _this.uploaderName = 'UploadFiles'; + _this.fileStreams = []; + _this.newFileRef = 0; + _this.isFirstFileOnSelection = false; + _this.dragCounter = 0; + _this.isAngular = false; + /** + * Get the file item(li) which are shown in file list. + * + * @private + */ + _this.fileList = []; + /** + * Get the data of files which are shown in file list. + * + * @private + */ + _this.filesData = []; + _this.uploaderOptions = options; + return _this; + } + /** + * Calls internally if any of the property value is changed. + * + * @param {UploaderModel} newProp - Returns the dynamic property value of the component. + * @param {UploaderModel} oldProp - Returns the previous property value of the component. + * @returns {void} + * @private + */ + Uploader.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'allowedExtensions': + this.setExtensions(this.allowedExtensions); + this.clearAll(); + break; + case 'enabled': + this.setControlStatus(); + break; + case 'multiple': + this.setMultipleSelection(); + break; + case 'enableRtl': + this.setRTL(); + this.reRenderFileList(); + break; + case 'buttons': + this.buttons.browse = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons.browse) ? '' : this.buttons.browse; + this.buttons.clear = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons.clear) ? '' : this.buttons.clear; + this.buttons.upload = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons.upload) ? '' : this.buttons.upload; + this.renderButtonTemplates(); + break; + case 'dropArea': + this.unBindDropEvents(); + this.updateDropArea(); + break; + case 'htmlAttributes': + this.updateHTMLAttrToElement(); + this.updateHTMLAttrToWrapper(); + this.checkHTMLAttributes(true); + break; + case 'files': + this.renderPreLoadFiles(); + break; + case 'directoryUpload': + this.updateDirectoryAttributes(); + break; + case 'template': + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + if (ejInstance[0].isReact) { + this.reRenderFileList(); + } + else { + this.clearAll(); + } + break; + case 'minFileSize': + case 'maxFileSize': + case 'autoUpload': + this.clearAll(); + break; + case 'sequentialUpload': + this.clearAll(); + break; + case 'locale': + this.l10n.setLocale(this.locale); + this.setLocalizedTexts(); + this.preLocaleObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('currentLocale', this.l10n); + break; + case 'cssClass': + this.setCSSClass(oldProp.cssClass); + break; + } + } + }; + Uploader.prototype.setLocalizedTexts = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template)) { + if (typeof (this.buttons.browse) === 'string') { + this.browseButton.innerText = (this.buttons.browse === 'Browse...') ? + this.localizedTexts('Browse') : this.buttons.browse; + this.browseButton.setAttribute('title', this.browseButton.innerText); + if (this.uploadWrapper && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploadWrapper.querySelector('.' + DROP_AREA))) { + this.uploadWrapper.querySelector('.' + DROP_AREA).innerHTML = this.localizedTexts('dropFilesHint'); + } + } + this.updateFileList(); + } + }; + Uploader.prototype.getKeyValue = function (val) { + var keyValue; + for (var _i = 0, _a = Object.keys(this.preLocaleObj); _i < _a.length; _i++) { + var key = _a[_i]; + if (this.preLocaleObj["" + key] === val) { + keyValue = key; + } + } + return keyValue; + }; + Uploader.prototype.updateFileList = function () { + var element; + /* istanbul ignore next */ + if (this.fileList.length > 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploadWrapper.querySelector('.' + LIST_PARENT))) { + for (var i = 0; i < this.fileList.length; i++) { + element = this.fileList[i].querySelector('.e-file-status'); + element.innerHTML = this.localizedTexts(this.getKeyValue(this.filesData[i].status)); + this.filesData[i].status = this.localizedTexts(this.getKeyValue(this.filesData[i].status)); + if (this.fileList[i].classList.contains(UPLOAD_SUCCESS)) { + this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('delete')); + } + if (this.fileList[i].querySelector('.e-file-play-btn')) { + this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('resume')); + } + if (this.fileList[i].querySelector('.e-file-remove-btn')) { + this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('remove')); + } + if (this.fileList[i].querySelector('.e-file-reload-btn')) { + this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('retry')); + } + if (!this.autoUpload) { + this.uploadButton.innerText = (this.buttons.upload === 'Upload') ? + this.localizedTexts('Upload') : this.buttons.upload; + this.uploadButton.setAttribute('title', this.localizedTexts('Upload')); + this.clearButton.innerText = (this.buttons.clear === 'Clear') ? + this.localizedTexts('Clear') : this.buttons.clear; + this.clearButton.setAttribute('title', this.localizedTexts('Clear')); + } + } + } + }; + Uploader.prototype.reRenderFileList = function () { + if (this.listParent) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.listParent); + this.listParent = null; + this.fileList = []; + this.createFileList(this.filesData); + if (this.actionButtons) { + this.removeActionButtons(); + this.renderActionButtons(); + this.checkActionButtonStatus(); + } + } + }; + Uploader.prototype.preRender = function () { + this.localeText = { Browse: 'Browse...', Clear: 'Clear', Upload: 'Upload', invalidFileName: 'File Name is not allowed', + dropFilesHint: 'Or drop files here', invalidMaxFileSize: 'File size is too large', + invalidMinFileSize: 'File size is too small', invalidFileType: 'File type is not allowed', + uploadFailedMessage: 'File failed to upload', uploadSuccessMessage: 'File uploaded successfully', + removedSuccessMessage: 'File removed successfully', removedFailedMessage: 'Unable to remove file', inProgress: 'Uploading', + readyToUploadMessage: 'Ready to upload', abort: 'Abort', remove: 'Remove', cancel: 'Cancel', delete: 'Delete file', + pauseUpload: 'File upload paused', pause: 'Pause', resume: 'Resume', retry: 'Retry', + fileUploadCancel: 'File upload canceled', invalidFileSelection: 'Invalid files selected', totalFiles: 'Total files', + size: 'Size' + }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('uploader', this.localeText, this.locale); + this.preLocaleObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('currentLocale', this.l10n); + this.formRendered(); + this.updateHTMLAttrToElement(); + this.checkHTMLAttributes(false); + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + /* istanbul ignore next */ + if (this.element.tagName === 'EJS-UPLOADER') { + var inputElement = this.createElement('input', { attrs: { type: 'file' } }); + var index = 0; + for (index; index < this.element.attributes.length; index++) { + if (this.element.attributes[index].nodeName !== 'id') { + inputElement.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue); + } + else if (this.element.attributes[index].nodeName === 'id') { + inputElement.setAttribute(this.element.attributes[index].nodeName, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('uploader')); + } + inputElement.innerHTML = this.element.innerHTML; + } + if (!inputElement.hasAttribute('name')) { + inputElement.setAttribute('name', 'UploadFiles'); + } + this.element.appendChild(inputElement); + this.element = inputElement; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, this.element); + } + /* istanbul ignore next */ + if (ejInstance[0].isPureReactComponent) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ejInstance[0].props.name)) { + this.element.setAttribute('name', ejInstance[0].props.name); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ejInstance[0].props.id) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ejInstance[0].props.name)) { + this.element.setAttribute('name', ejInstance[0].props.id); + } + else { + this.element.setAttribute('name', 'UploadFiles'); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute('name'))) { + this.element.setAttribute('name', this.element.getAttribute('id')); + } + if (!this.element.hasAttribute('type')) { + this.element.setAttribute('type', 'file'); + } + this.updateDirectoryAttributes(); + this.keyConfigs = { + enter: 'enter' + }; + if (this.element.hasAttribute('tabindex')) { + this.tabIndex = this.element.getAttribute('tabindex'); + } + this.browserName = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name; + this.uploaderName = this.element.getAttribute('name'); + }; + Uploader.prototype.formRendered = function () { + var parentEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, 'form'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentEle)) { + for (; parentEle && parentEle !== document.documentElement; parentEle = parentEle.parentElement) { + if (parentEle.tagName === 'FORM') { + this.isForm = true; + this.formElement = parentEle; + parentEle.setAttribute('enctype', 'multipart/form-data'); + parentEle.setAttribute('encoding', 'multipart/form-data'); + } + } + } + }; + Uploader.prototype.getPersistData = function () { + return this.addOnPersist(['filesData']); + }; + /** + * Return the module name of the component. + * + * @returns {string} Returns the component name. + */ + Uploader.prototype.getModuleName = function () { + return 'uploader'; + }; + Uploader.prototype.updateDirectoryAttributes = function () { + if (this.directoryUpload) { + this.element.setAttribute('directory', 'true'); + this.element.setAttribute('webkitdirectory', 'true'); + } + else { + this.element.removeAttribute('directory'); + this.element.removeAttribute('webkitdirectory'); + } + }; + /** + * To Initialize the control rendering + * + * @private + * @returns {void} + */ + Uploader.prototype.render = function () { + this.renderBrowseButton(); + this.initializeUpload(); + this.updateHTMLAttrToWrapper(); + this.wireEvents(); + this.setMultipleSelection(); + this.setExtensions(this.allowedExtensions); + this.setRTL(); + this.renderPreLoadFiles(); + this.setControlStatus(); + this.setCSSClass(); + }; + Uploader.prototype.renderBrowseButton = function () { + this.browseButton = this.createElement('button', { className: 'e-css e-btn', attrs: { 'type': 'button' } }); + this.browseButton.setAttribute('tabindex', this.tabIndex); + if (typeof (this.buttons.browse) === 'string') { + this.browseButton.textContent = (this.buttons.browse === 'Browse...') ? + this.localizedTexts('Browse') : this.buttons.browse; + this.browseButton.setAttribute('title', this.browseButton.innerText); + } + else { + this.browseButton.appendChild(this.buttons.browse); + } + this.element.setAttribute('aria-label', 'Uploader'); + }; + Uploader.prototype.renderActionButtons = function () { + this.element.setAttribute('tabindex', '-1'); + this.actionButtons = this.createElement('div', { className: ACTION_BUTTONS }); + this.uploadButton = this.createElement('button', { className: UPLOAD_BUTTONS, + attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } }); + this.clearButton = this.createElement('button', { className: CLEAR_BUTTONS, + attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } }); + this.actionButtons.appendChild(this.clearButton); + this.actionButtons.appendChild(this.uploadButton); + this.renderButtonTemplates(); + this.uploadWrapper.appendChild(this.actionButtons); + this.browseButton.blur(); + if (!this.isPreloadFiles) { + this.uploadButton.focus(); + } + this.wireActionButtonEvents(); + }; + /* istanbul ignore next */ + Uploader.prototype.serverActionButtonsEventBind = function (element) { + if (element && !this.isForm) { + this.browseButton.blur(); + this.actionButtons = element; + this.uploadButton = this.actionButtons.querySelector('.e-file-upload-btn'); + this.clearButton = this.actionButtons.querySelector('.e-file-clear-btn'); + this.uploadButton.focus(); + this.unwireActionButtonEvents(); + this.wireActionButtonEvents(); + this.checkActionButtonStatus(); + } + }; + Uploader.prototype.wireActionButtonEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.uploadButton, 'click', this.uploadButtonClick, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.clearButton, 'click', this.clearButtonClick, this); + }; + Uploader.prototype.unwireActionButtonEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.uploadButton, 'click', this.uploadButtonClick); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.clearButton, 'click', this.clearButtonClick); + }; + Uploader.prototype.removeActionButtons = function () { + if (this.actionButtons) { + this.unwireActionButtonEvents(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.actionButtons); + this.actionButtons = null; + } + }; + Uploader.prototype.renderButtonTemplates = function () { + if (typeof (this.buttons.browse) === 'string') { + this.browseButton.textContent = (this.buttons.browse === 'Browse...') ? + this.localizedTexts('Browse') : this.buttons.browse; + this.browseButton.setAttribute('title', this.browseButton.textContent); + } + else { + this.browseButton.innerHTML = ''; + this.browseButton.appendChild(this.buttons.browse); + } + if (this.uploadButton) { + var uploadText = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons.upload) ? 'Upload' : this.buttons.upload; + this.buttons.upload = uploadText; + if (typeof (this.buttons.upload) === 'string') { + this.uploadButton.textContent = (this.buttons.upload === 'Upload') ? + this.localizedTexts('Upload') : this.buttons.upload; + this.uploadButton.setAttribute('title', this.uploadButton.textContent); + } + else { + this.uploadButton.innerHTML = ''; + this.uploadButton.appendChild(this.buttons.upload); + } + } + if (this.clearButton) { + var clearText = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons.clear) ? 'Clear' : this.buttons.clear; + this.buttons.clear = clearText; + if (typeof (this.buttons.clear) === 'string') { + this.clearButton.textContent = (this.buttons.clear === 'Clear') ? + this.localizedTexts('Clear') : this.buttons.clear; + this.clearButton.setAttribute('title', this.clearButton.textContent); + } + else { + this.clearButton.innerHTML = ''; + this.clearButton.appendChild(this.buttons.clear); + } + } + }; + Uploader.prototype.initializeUpload = function () { + this.element.setAttribute('tabindex', '-1'); + var inputWrapper = this.createElement('span', { className: INPUT_WRAPPER }); + this.element.parentElement.insertBefore(inputWrapper, this.element); + this.dropAreaWrapper = this.createElement('div', { className: DROP_WRAPPER }); + this.element.parentElement.insertBefore(this.dropAreaWrapper, this.element); + inputWrapper.appendChild(this.element); + this.dropAreaWrapper.appendChild(this.browseButton); + this.dropAreaWrapper.appendChild(inputWrapper); + this.uploadWrapper = this.createElement('div', { className: CONTROL_WRAPPER }); + this.dropAreaWrapper.parentElement.insertBefore(this.uploadWrapper, this.dropAreaWrapper); + this.uploadWrapper.appendChild(this.dropAreaWrapper); + this.setDropArea(); + }; + Uploader.prototype.renderPreLoadFiles = function () { + if (this.files.length) { + if (this.enablePersistence && this.filesData.length) { + this.createFileList(this.filesData); + return; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.files[0].size)) { + return; + } + this.isPreloadFiles = true; + var files = [].slice.call(this.files); + var filesData = []; + if (!this.multiple) { + this.clearData(); + files = [files[0]]; + } + for (var _i = 0, files_1 = files; _i < files_1.length; _i++) { + var data = files_1[_i]; + var fileData = { + name: data.name + '.' + data.type.split('.')[data.type.split('.').length - 1], + rawFile: '', + size: data.size, + status: this.localizedTexts('uploadSuccessMessage'), + type: data.type, + validationMessages: { minSize: '', maxSize: '' }, + statusCode: '2' + }; + filesData.push(fileData); + this.filesData.push(fileData); + } + this.createFileList(filesData); + if (!this.autoUpload && this.listParent && !this.actionButtons && (!this.isForm || this.allowUpload()) && this.showFileList) { + this.renderActionButtons(); + } + this.checkActionButtonStatus(); + if (this.sequentialUpload) { + this.count = this.filesData.length - 1; + } + this.isPreloadFiles = false; + } + }; + Uploader.prototype.checkActionButtonStatus = function () { + if (this.actionButtons) { + var length_1 = this.uploadWrapper.querySelectorAll('.' + VALIDATION_FAILS).length + + this.uploadWrapper.querySelectorAll('.e-upload-fails:not(.e-upload-progress)').length + + this.uploadWrapper.querySelectorAll('span.' + UPLOAD_SUCCESS).length + + this.uploadWrapper.querySelectorAll('span.' + UPLOAD_INPROGRESS).length; + if (length_1 > 0 && length_1 === this.uploadWrapper.querySelectorAll('li').length) { + this.uploadButton.setAttribute('disabled', 'disabled'); + } + else { + this.uploadButton.removeAttribute('disabled'); + } + } + }; + Uploader.prototype.setDropArea = function () { + var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop'); + if (this.dropArea) { + this.dropZoneElement = (typeof (this.dropArea) !== 'string') ? this.dropArea : + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.dropArea, document); + var element = this.element; + var enableDropText = false; + while (element.parentNode) { + element = element.parentNode; + if (element === this.dropZoneElement) { + enableDropText = true; + if (!dropTextArea) { + this.createDropTextHint(); + } + else { + dropTextArea.innerHTML = this.localizedTexts('dropFilesHint'); + } + } + } + if (!enableDropText && dropTextArea) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(dropTextArea); + } + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploaderOptions) && this.uploaderOptions.dropArea === undefined) { + this.createDropTextHint(); + this.dropZoneElement = this.uploadWrapper; + this.setProperties({ dropArea: this.uploadWrapper }, true); + } + this.bindDropEvents(); + }; + Uploader.prototype.updateDropArea = function () { + if (this.dropArea) { + this.setDropArea(); + } + else { + this.dropZoneElement = null; + var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop'); + if (dropTextArea) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(dropTextArea); + } + } + }; + Uploader.prototype.createDropTextHint = function () { + var fileDropArea = this.createElement('span', { className: DROP_AREA }); + fileDropArea.innerHTML = this.localizedTexts('dropFilesHint'); + this.dropAreaWrapper.appendChild(fileDropArea); + }; + Uploader.prototype.updateHTMLAttrToElement = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var pro = _a[_i]; + if (wrapperAttr.indexOf(pro) < 0) { + this.element.setAttribute(pro, this.htmlAttributes["" + pro]); + } + } + } + }; + Uploader.prototype.updateHTMLAttrToWrapper = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) { + var pro = _a[_i]; + if (wrapperAttr.indexOf(pro) > -1) { + if (pro === 'class') { + var updatedClassValues = (this.htmlAttributes["" + pro].replace(/\s+/g, ' ')).trim(); + if (updatedClassValues !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.uploadWrapper], updatedClassValues.split(' ')); + } + } + else if (pro === 'style') { + var uploadStyle = this.uploadWrapper.getAttribute(pro); + uploadStyle = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(uploadStyle) ? (uploadStyle + this.htmlAttributes["" + pro]) : + this.htmlAttributes["" + pro]; + this.uploadWrapper.setAttribute(pro, uploadStyle); + } + else { + this.uploadWrapper.setAttribute(pro, this.htmlAttributes["" + pro]); + } + } + } + } + }; + Uploader.prototype.setMultipleSelection = function () { + if (this.multiple && !this.element.hasAttribute('multiple')) { + var newAttr = document.createAttribute('multiple'); + newAttr.value = 'multiple'; + this.element.setAttributeNode(newAttr); + } + else if (!this.multiple) { + this.element.removeAttribute('multiple'); + } + }; + Uploader.prototype.checkAutoUpload = function (fileData) { + if (this.autoUpload) { + if (this.sequentialUpload) { + /* istanbul ignore next */ + this.sequenceUpload(fileData); + } + else { + this.upload(fileData); + } + this.removeActionButtons(); + } + else if (!this.actionButtons) { + this.renderActionButtons(); + } + this.checkActionButtonStatus(); + }; + Uploader.prototype.sequenceUpload = function (fileData) { + if (this.filesData.length - fileData.length === 0 || + this.filesData[(this.filesData.length - fileData.length - 1)].statusCode !== '1') { + if (this.multiple || this.count < 0) { + ++this.count; + } + var isFileListCreated = this.showFileList ? false : true; + if (typeof this.filesData[this.count] === 'object') { + this.isFirstFileOnSelection = false; + this.upload(this.filesData[this.count], isFileListCreated); + if (this.filesData[this.count].statusCode === '0') { + this.sequenceUpload(fileData); + } + } + else { + --this.count; + } + } + }; + Uploader.prototype.setCSSClass = function (oldCSSClass) { + var updatedOldCssClass = oldCSSClass; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldCSSClass)) { + updatedOldCssClass = (oldCSSClass.replace(/\s+/g, ' ')).trim(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldCSSClass) && updatedOldCssClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.uploadWrapper], updatedOldCssClass.split(' ')); + } + var updatedCssClassValue = this.cssClass; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && this.cssClass !== '') { + updatedCssClassValue = (this.cssClass.replace(/\s+/g, ' ')).trim(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && updatedCssClassValue !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.uploadWrapper], updatedCssClassValue.split(updatedCssClassValue.indexOf(',') > -1 ? ',' : ' ')); + } + }; + Uploader.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.browseButton, 'click', this.browseButtonClick, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'change', this.onSelectFiles, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'click', this.removeFocus, this); + this.keyboardModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.uploadWrapper, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs, + eventName: 'keydown' + }); + if (this.isForm) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.formElement, 'reset', this.resetForm, this); + } + }; + Uploader.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.browseButton, 'click', this.browseButtonClick); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'change', this.onSelectFiles); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'click', this.removeFocus); + if (this.isForm) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.formElement, 'reset', this.resetForm); + } + if (this.keyboardModule) { + this.keyboardModule.destroy(); + } + }; + Uploader.prototype.resetForm = function () { + this.clearAll(); + }; + Uploader.prototype.keyActionHandler = function (e) { + var targetElement = e.target; + switch (e.action) { + case 'enter': + if (e.target === this.clearButton) { + this.clearButtonClick(); + } + else if (e.target === this.uploadButton) { + this.uploadButtonClick(); + } + else if (e.target === this.browseButton) { + this.browseButtonClick(); + } + else if (targetElement.classList.contains(PAUSE_UPLOAD)) { + var metaData = this.getCurrentMetaData(null, e); + metaData.file.statusCode = '4'; + metaData.file.status = this.localizedTexts('pauseUpload'); + this.abortUpload(metaData, false); + } + else if (targetElement.classList.contains(RESUME_UPLOAD)) { + this.resumeUpload(this.getCurrentMetaData(null, e), e); + } + else if (targetElement.classList.contains(RETRY_ICON)) { + var metaData = this.getCurrentMetaData(null, e); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(metaData)) { + metaData.file.statusCode = '1'; + metaData.file.status = this.localizedTexts('readyToUploadMessage'); + this.chunkUpload(metaData.file); + } + else { + var target = e.target.parentElement; + var fileData = this.filesData[this.fileList.indexOf(target)]; + this.retry(fileData); + } + } + else { + this.removeFiles(e); + if (!targetElement.classList.contains(ABORT_ICON)) { + this.browseButton.focus(); + } + } + e.preventDefault(); + e.stopPropagation(); + break; + } + }; + Uploader.prototype.getCurrentMetaData = function (fileInfo, e) { + var fileData; + var targetMetaData; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fileInfo)) { + var target = e.target.parentElement; + fileData = this.filesData[this.fileList.indexOf(target)]; + } + else { + fileData = fileInfo; + } + for (var i = 0; i < this.uploadMetaData.length; i++) { + if (this.uploadMetaData[i].file.name === fileData.name) { + targetMetaData = this.uploadMetaData[i]; + } + } + return targetMetaData; + }; + Uploader.prototype.removeFocus = function () { + if (this.uploadWrapper && this.listParent && this.listParent.querySelector('.' + ICON_FOCUSED)) { + document.activeElement.blur(); + this.listParent.querySelector('.' + ICON_FOCUSED).classList.remove(ICON_FOCUSED); + } + }; + Uploader.prototype.browseButtonClick = function () { + this.element.click(); + }; + Uploader.prototype.uploadButtonClick = function () { + if (this.sequentialUpload) { + this.sequenceUpload(this.filesData); + } + else { + this.upload(this.filesData); + } + }; + Uploader.prototype.clearButtonClick = function () { + this.clearAll(); + /* istanbul ignore next */ + if (this.sequentialUpload) { + this.count = -1; + } + this.actionCompleteCount = 0; + }; + Uploader.prototype.bindDropEvents = function () { + if (this.dropZoneElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dropZoneElement, 'drop', this.dropElement, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dropZoneElement, 'dragover', this.dragHover, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dropZoneElement, 'dragleave', this.onDragLeave, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dropZoneElement, 'paste', this.onPasteFile, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dropZoneElement, 'dragenter', this.onDragEnter, this); + } + }; + Uploader.prototype.unBindDropEvents = function () { + if (this.dropZoneElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.dropZoneElement, 'drop', this.dropElement); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.dropZoneElement, 'dragover', this.dragHover); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.dropZoneElement, 'dragleave', this.onDragLeave); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.dropZoneElement, 'dragenter', this.onDragEnter); + } + }; + Uploader.prototype.onDragEnter = function (e) { + if (!this.enabled) { + return; + } + this.dropZoneElement.classList.add(DRAG_HOVER); + this.dragCounter = this.dragCounter + 1; + e.preventDefault(); + e.stopPropagation(); + }; + Uploader.prototype.onDragLeave = function () { + if (!this.enabled) { + return; + } + this.dragCounter = this.dragCounter - 1; + if (!this.dragCounter) { + this.dropZoneElement.classList.remove(DRAG_HOVER); + } + }; + Uploader.prototype.dragHover = function (e) { + if (!this.enabled) { + return; + } + if (this.dropEffect !== 'Default') { + e.dataTransfer.dropEffect = this.dropEffect.toLowerCase(); + } + e.preventDefault(); + e.stopPropagation(); + }; + /* istanbul ignore next */ + Uploader.prototype.dropElement = function (e) { + this.dragCounter = 0; + this.dropZoneElement.classList.remove(DRAG_HOVER); + this.onSelectFiles(e); + e.preventDefault(); + e.stopPropagation(); + }; + /* istanbul ignore next */ + Uploader.prototype.onPasteFile = function (event) { + var item = event.clipboardData.items; + if (event.type === 'paste' && this.browserName !== 'msie' && this.browserName !== 'edge' && this.browserName !== 'safari') { + this.element.files = event.clipboardData.files; + } + if (item.length !== 1) { + return; + } + var pasteFile = [].slice.call(item)[0]; + if ((pasteFile.kind === 'file') && pasteFile.type.match('^image/')) { + this.renderSelectedFiles(event, [pasteFile.getAsFile()], false, true); + } + }; + Uploader.prototype.getSelectedFiles = function (index) { + var data = []; + var liElement = this.fileList[index]; + var allFiles = this.getFilesData(); + var nameElements = +liElement.getAttribute('data-files-count'); + var startIndex = 0; + for (var i = 0; i < index; i++) { + startIndex += (+this.fileList[i].getAttribute('data-files-count')); + } + for (var j = startIndex; j < (startIndex + nameElements); j++) { + data.push(allFiles[j]); + } + return data; + }; + Uploader.prototype.removeFiles = function (args) { + if (!this.enabled) { + return; + } + var selectedElement = args.target.parentElement; + var index = this.fileList.indexOf(selectedElement); + var liElement = this.fileList[index]; + var formUpload = this.isFormUpload(); + var fileData = formUpload ? this.getSelectedFiles(index) : this.getFilesInArray(this.filesData[index]); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fileData)) { + return; + } + if (args.target.classList.contains(ABORT_ICON) && !formUpload) { + fileData[0].statusCode = '5'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + var spinnerTarget = liElement.querySelector('.' + ABORT_ICON); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["createSpinner"])({ target: spinnerTarget, width: '20px' }); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["showSpinner"])(spinnerTarget); + } + if (this.sequentialUpload) { + /* istanbul ignore next */ + this.uploadSequential(); + } + if (!(liElement.classList.contains(RESTRICT_RETRY))) { + this.checkActionComplete(true); + } + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(args.target, '.' + SPINNER_PANE)) { + this.remove(fileData, false, false, true, args); + } + this.checkActionButtonStatus(); + }; + Uploader.prototype.removeFilesData = function (file, customTemplate) { + var index; + if (customTemplate) { + if (!this.showFileList) { + index = this.filesData.indexOf(file); + this.filesData.splice(index, 1); + } + return; + } + var selectedElement = this.getLiElement(file); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selectedElement)) { + return; + } + this.element.value = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(selectedElement); + index = this.fileList.indexOf(selectedElement); + this.fileList.splice(index, 1); + this.filesData.splice(index, 1); + if (this.fileList.length === 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.listParent)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.listParent); + this.listParent = null; + this.removeActionButtons(); + } + if (this.sequentialUpload) { + /* istanbul ignore next */ + if (index <= this.count) { + --this.count; + } + } + }; + Uploader.prototype.removeUploadedFile = function (file, eventArgs, removeDirectly, custom) { + var _this = this; + var selectedFiles = file; + var ajax = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](this.asyncSettings.removeUrl, 'POST', true, null); + ajax.emitError = false; + var formData = new FormData(); + ajax.beforeSend = function (e) { + eventArgs.currentRequest = ajax.httpRequest; + if (!removeDirectly) { + _this.trigger('removing', eventArgs, function (eventArgs) { + if (eventArgs.cancel) { + e.cancel = true; + } + else { + _this.removingEventCallback(eventArgs, formData, selectedFiles, file); + } + }); + } + else { + _this.removingEventCallback(eventArgs, formData, selectedFiles, file); + } + }; + ajax.onLoad = function (e) { + _this.removeCompleted(e, selectedFiles, custom); + return {}; + }; + /* istanbul ignore next */ + ajax.onError = function (e) { + _this.removeFailed(e, selectedFiles, custom); + return {}; + }; + ajax.send(formData); + }; + Uploader.prototype.removingEventCallback = function (eventArgs, formData, selectedFiles, file) { + /* istanbul ignore next */ + var name = this.element.getAttribute('name'); + var liElement = this.getLiElement(file); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + DELETE_ICON)) || + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + REMOVE_ICON)))) { + var spinnerTarget = liElement.querySelector('.' + DELETE_ICON) ? + liElement.querySelector('.' + DELETE_ICON) : + liElement.querySelector('.' + REMOVE_ICON); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["createSpinner"])({ target: spinnerTarget, width: '20px' }); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["showSpinner"])(spinnerTarget); + } + if (eventArgs.postRawFile && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selectedFiles.rawFile) && selectedFiles.rawFile !== '') { + formData.append(name, selectedFiles.rawFile, selectedFiles.name); + } + else { + formData.append(name, selectedFiles.name); + } + this.updateFormData(formData, eventArgs.customFormData); + }; + /* istanbul ignore next */ + Uploader.prototype.updateFormData = function (formData, customData) { + if (customData.length > 0 && customData[0]) { + var _loop_1 = function (i) { + var data = customData[i]; + // eslint-disable-next-line @typescript-eslint/tslint/config + var value = Object.keys(data).map(function (e) { + return data["" + e]; + }); + formData.append(Object.keys(data)[0], value); + }; + for (var i = 0; i < customData.length; i++) { + _loop_1(i); + } + } + }; + /* istanbul ignore next */ + Uploader.prototype.updateCustomheader = function (request, currentRequest) { + if (currentRequest.length > 0 && currentRequest[0]) { + var _loop_2 = function (i) { + var data = currentRequest[i]; + // eslint-disable-next-line @typescript-eslint/tslint/config + var value = Object.keys(data).map(function (e) { + return data["" + e]; + }); + request.setRequestHeader(Object.keys(data)[0], value); + }; + for (var i = 0; i < currentRequest.length; i++) { + _loop_2(i); + } + } + }; + Uploader.prototype.removeCompleted = function (e, files, customTemplate) { + var response = e && e.currentTarget ? this.getResponse(e) : null; + var status = e.target; + if (status.readyState === 4 && status.status >= 200 && status.status <= 299) { + var args = { + e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedSuccessMessage'), '2') + }; + this.trigger('success', args); + this.removeFilesData(files, customTemplate); + var index = this.uploadedFilesData.indexOf(files); + this.uploadedFilesData.splice(index, 1); + this.trigger('change', { files: this.uploadedFilesData }); + } + else { + this.removeFailed(e, files, customTemplate); + } + }; + Uploader.prototype.removeFailed = function (e, files, customTemplate) { + var response = e && e.currentTarget ? this.getResponse(e) : null; + var args = { + e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedFailedMessage'), '0') + }; + if (!customTemplate) { + var index = this.filesData.indexOf(files); + var rootElement = this.fileList[index]; + if (rootElement) { + rootElement.classList.remove(UPLOAD_SUCCESS); + rootElement.classList.add(UPLOAD_FAILED); + var statusElement = rootElement.querySelector('.' + STATUS); + if (statusElement) { + statusElement.classList.remove(UPLOAD_SUCCESS); + statusElement.classList.add(UPLOAD_FAILED); + } + } + this.checkActionButtonStatus(); + } + this.trigger('failure', args); + var liElement = this.getLiElement(files); + /* istanbul ignore next */ + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + DELETE_ICON))) { + var spinnerTarget = liElement.querySelector('.' + DELETE_ICON); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(spinnerTarget); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.e-spinner-pane')); + } + }; + /* istanbul ignore next */ + Uploader.prototype.getFilesFromFolder = function (event) { + this.filesEntries = []; + var items = this.multiple ? + event.dataTransfer.items : [event.dataTransfer.items[0]]; + var validDirectoryUpload = this.checkDirectoryUpload(items); + if (!validDirectoryUpload) { + return; + } + var _loop_3 = function (i) { + var item = items[i].webkitGetAsEntry(); + if (item.isFile) { + var files_2 = []; + (item).file(function (fileObj) { + var path = item.fullPath; + files_2.push({ 'path': path, 'file': fileObj }); + }); + this_1.renderSelectedFiles(event, files_2, true); + } + else if (item.isDirectory) { + this_1.traverseFileTree(item, event); + } + }; + var this_1 = this; + for (var i = 0; i < items.length; i++) { + _loop_3(i); + } + }; + /* istanbul ignore next */ + Uploader.prototype.checkDirectoryUpload = function (items) { + for (var i = 0; items && i < items.length; i++) { + var item = items[i].webkitGetAsEntry(); + if (item.isDirectory) { + return true; + } + } + return false; + }; + /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ + /* istanbul ignore next */ + Uploader.prototype.traverseFileTree = function (item, event) { + /* eslint-enable @typescript-eslint/explicit-module-boundary-types */ + if (item.isFile) { + this.filesEntries.push(item); + } + else if (item.isDirectory) { + var directoryReader = item.createReader(); + this.readFileFromDirectory(directoryReader, event); + } + }; + /* istanbul ignore next */ + Uploader.prototype.readFileFromDirectory = function (directoryReader, event) { + var _this = this; + directoryReader.readEntries(function (entries) { + for (var i = 0; i < entries.length; i++) { + _this.traverseFileTree(entries[i], event); + } + _this.pushFilesEntries(event); + if (entries.length) { + _this.readFileFromDirectory(directoryReader); + } + }); + }; + Uploader.prototype.pushFilesEntries = function (event) { + var _this = this; + var files = []; + var _loop_4 = function (i) { + this_2.filesEntries[i].file(function (fileObj) { + if (_this.filesEntries.length) { + var path = _this.filesEntries[i].fullPath; + files.push({ 'path': path, 'file': fileObj }); + if (i === _this.filesEntries.length - 1) { + _this.filesEntries = []; + _this.renderSelectedFiles(event, files, true); + } + } + }); + }; + var this_2 = this; + for (var i = 0; i < this.filesEntries.length; i++) { + _loop_4(i); + } + }; + Uploader.prototype.onSelectFiles = function (args) { + if (!this.enabled) { + return; + } + var targetFiles; + /* istanbul ignore next */ + if (args.type === 'drop') { + if (this.directoryUpload) { + this.getFilesFromFolder(args); + } + else { + var files = this.sortFilesList = args.dataTransfer.files; + if (this.browserName !== 'msie' && this.browserName !== 'edge' && this.browserName !== 'safari') { + this.element.files = files; + } + if (files.length > 0) { + targetFiles = this.multiple ? this.sortFileList(files) : [files[0]]; + this.renderSelectedFiles(args, targetFiles); + } + } + } + else { + targetFiles = [].slice.call(args.target.files); + this.renderSelectedFiles(args, targetFiles); + } + if (this.isAngular) { + args.stopPropagation(); + } + }; + /* istanbul ignore next */ + Uploader.prototype.getBase64 = function (file) { + return new Promise(function (resolve, reject) { + var fileReader = new FileReader(); + fileReader.readAsDataURL(file); + fileReader.onload = function () { return resolve(fileReader.result); }; + fileReader.onerror = function (error) { return reject(error); }; + }); + }; + /* istanbul ignore next */ + /* tslint:ignore */ + Uploader.prototype.renderSelectedFiles = function (args, targetFiles, directory, paste) { + var _this = this; + this.base64String = []; + var eventArgs = { + event: args, + cancel: false, + filesData: [], + isModified: false, + modifiedFilesData: [], + progressInterval: '', + isCanceled: false, + currentRequest: null, + customFormData: null + }; + /* istanbul ignore next */ + if (targetFiles.length < 1) { + eventArgs.isCanceled = true; + this.trigger('selected', eventArgs); + return; + } + this.flag = true; + var fileData = []; + if (!this.multiple) { + this.clearData(true); + targetFiles = [targetFiles[0]]; + } + for (var i = 0; i < targetFiles.length; i++) { + var file = directory ? targetFiles[i].file : targetFiles[i]; + this.updateInitialFileDetails(args, targetFiles, file, i, fileData, directory, paste); + } + eventArgs.filesData = fileData; + if (this.allowedExtensions.indexOf('*') > -1) { + this.allTypes = true; + } + if (this.enableHtmlSanitizer) { + for (var i = 0; i < fileData.length; i++) { + var sanitizeFile = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].beforeSanitize(); + var sanitizeFileName = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].serializeValue(sanitizeFile, fileData[parseInt(i.toString())].name); + if (sanitizeFileName !== fileData[parseInt(i.toString())].name) { + var encodedFileName = targetFiles[parseInt(i.toString())].name.replace(/[\u00A0-\u9999<>\&]/g, function (i) { + return '&#' + i.charCodeAt(0) + ';'; + }); + fileData[parseInt(i.toString())].name = encodedFileName; + fileData[parseInt(i.toString())].status = this.localizedTexts('invalidFileName'); + fileData[parseInt(i.toString())].statusCode = '0'; + } + } + } + if (!this.allTypes) { + fileData = this.checkExtension(fileData); + } + this.trigger('selected', eventArgs, function (eventArgs) { + _this._internalRenderSelect(eventArgs, fileData); + }); + }; + Uploader.prototype.updateInitialFileDetails = function (args, + // eslint-disable-next-line @typescript-eslint/indent + targetFiles, file, i, fileData, directory, paste) { + var fileName = directory ? targetFiles[i].path.substring(1, targetFiles[i].path.length) : paste ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name) : + this.directoryUpload ? targetFiles[i].webkitRelativePath : file.name; + var fileDetails = { + name: fileName, + rawFile: file, + size: file.size, + status: this.localizedTexts('readyToUploadMessage'), + type: this.getFileType(file.name), + validationMessages: this.validatedFileSize(file.size), + statusCode: '1', + id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name) + }; + /* istanbul ignore next */ + if (paste) { + fileDetails.fileSource = 'paste'; + } + fileDetails.status = fileDetails.validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') : + fileDetails.validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : fileDetails.status; + if (fileDetails.validationMessages.minSize !== '' || fileDetails.validationMessages.maxSize !== '') { + fileDetails.statusCode = '0'; + } + fileData.push(fileDetails); + }; + Uploader.prototype._internalRenderSelect = function (eventArgs, fileData) { + if (!eventArgs.cancel) { + /* istanbul ignore next */ + this.selectedFiles = this.selectedFiles.concat(fileData); + this.btnTabIndex = this.disableKeyboardNavigation ? '-1' : '0'; + if (this.showFileList) { + if (eventArgs.isModified && eventArgs.modifiedFilesData.length > 0) { + for (var j = 0; j < eventArgs.modifiedFilesData.length; j++) { + for (var k = 0; k < fileData.length; k++) { + if (eventArgs.modifiedFilesData[j].id === fileData[k].id) { + eventArgs.modifiedFilesData[j].rawFile = fileData[k].rawFile; + } + } + } + var dataFiles = this.allTypes ? eventArgs.modifiedFilesData : + this.checkExtension(eventArgs.modifiedFilesData); + this.updateSortedFileList(dataFiles); + this.filesData = this.filesData.concat(dataFiles); + if (!this.isForm || this.allowUpload()) { + this.checkAutoUpload(dataFiles); + } + } + else { + this.createFileList(fileData, true); + if (!this.isForm || this.allowUpload()) { + this.checkAutoUpload(fileData); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eventArgs.progressInterval) && eventArgs.progressInterval !== '') { + this.progressInterval = eventArgs.progressInterval; + } + } + else { + this.filesData = this.filesData.concat(fileData); + if (this.autoUpload) { + this.upload(this.filesData, true); + } + } + this.raiseActionComplete(); + this.isFirstFileOnSelection = true; + } + }; + Uploader.prototype.allowUpload = function () { + var allowFormUpload = false; + if (this.isForm && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.asyncSettings.saveUrl) && this.asyncSettings.saveUrl !== '')) { + allowFormUpload = true; + } + return allowFormUpload; + }; + Uploader.prototype.isFormUpload = function () { + var isFormUpload = false; + if (this.isForm && ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.asyncSettings.saveUrl) || this.asyncSettings.saveUrl === '') + && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.asyncSettings.removeUrl) || this.asyncSettings.removeUrl === ''))) { + isFormUpload = true; + } + return isFormUpload; + }; + Uploader.prototype.clearData = function (singleUpload) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.listParent)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.listParent); + this.listParent = null; + } + if (this.browserName !== 'msie' && !singleUpload) { + this.element.value = ''; + } + this.fileList = []; + this.filesData = []; + this.removeActionButtons(); + }; + Uploader.prototype.updateSortedFileList = function (filesData) { + var previousListClone = this.createElement('div', { id: 'clonewrapper' }); + var added = -1; + var removedList; + if (this.listParent) { + for (var i = 0; i < this.listParent.querySelectorAll('li').length; i++) { + var liElement = this.listParent.querySelectorAll('li')[i]; + previousListClone.appendChild(liElement.cloneNode(true)); + } + this.removeActionButtons(); + var oldList = [].slice.call(previousListClone.childNodes); + this.createParentUL(); + for (var index = 0; index < filesData.length; index++) { + for (var j = 0; j < this.filesData.length; j++) { + if (this.filesData[j].name === filesData[index].name) { + this.listParent.appendChild(oldList[j]); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(oldList[j].querySelector('.e-icons'), 'click', this.removeFiles, this); + this.fileList.push(oldList[j]); + added = index; + } + } + if (added !== index) { + this.createFileList([filesData[index]]); + } + } + } + else { + this.createFileList(filesData); + } + }; + Uploader.prototype.isBlank = function (str) { + return (!str || /^\s*$/.test(str)); + }; + Uploader.prototype.checkExtension = function (files) { + var dropFiles = files; + if (!this.isBlank(this.allowedExtensions)) { + var allowedExtensions = []; + var extensions = this.allowedExtensions.split(','); + for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) { + var extension = extensions_1[_i]; + allowedExtensions.push(extension.trim().toLocaleLowerCase()); + } + for (var i = 0; i < files.length; i++) { + if (allowedExtensions.indexOf(('.' + files[i].type).toLocaleLowerCase()) === -1) { + files[i].status = this.localizedTexts('invalidFileType'); + files[i].statusCode = '0'; + } + } + } + return dropFiles; + }; + Uploader.prototype.validatedFileSize = function (fileSize) { + var minSizeError = ''; + var maxSizeError = ''; + if (fileSize < this.minFileSize) { + minSizeError = this.localizedTexts('invalidMinFileSize'); + } + else if (fileSize > this.maxFileSize) { + maxSizeError = this.localizedTexts('invalidMaxFileSize'); + } + else { + minSizeError = ''; + maxSizeError = ''; + } + var errorMessage = { minSize: minSizeError, maxSize: maxSizeError }; + return errorMessage; + }; + Uploader.prototype.isPreLoadFile = function (fileData) { + var isPreload = false; + for (var i = 0; i < this.files.length; i++) { + if (this.files[i].name === fileData.name.slice(0, fileData.name.lastIndexOf('.')) && this.files[i].type === fileData.type) { + isPreload = true; + } + } + return isPreload; + }; + Uploader.prototype.createCustomfileList = function (fileData) { + this.createParentUL(); + for (var _i = 0, fileData_1 = fileData; _i < fileData_1.length; _i++) { + var listItem = fileData_1[_i]; + var listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } }); + this.uploadTemplateFn = this.templateComplier(this.template); + var liTempCompiler = this.uploadTemplateFn(listItem, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, listElement); + if (liTempCompiler) { + var fromElements = [].slice.call(liTempCompiler); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(fromElements, listElement); + } + var index = fileData.indexOf(listItem); + var eventArgs = { + element: listElement, + fileInfo: listItem, + index: index, + isPreload: this.isPreLoadFile(listItem) + }; + var eventsArgs = { + element: listElement, + fileInfo: listItem, + index: index, + isPreload: this.isPreLoadFile(listItem) + }; + this.trigger('rendering', eventArgs); + this.trigger('fileListRendering', eventsArgs); + this.listParent.appendChild(listElement); + this.fileList.push(listElement); + } + this.renderReactTemplates(); + }; + Uploader.prototype.createParentUL = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.listParent)) { + this.listParent = this.createElement('ul', { className: LIST_PARENT }); + this.uploadWrapper.appendChild(this.listParent); + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Uploader.prototype.formFileList = function (fileData, files) { + var fileList = this.createElement('li', { className: FILE }); + fileList.setAttribute('data-files-count', fileData.length + ''); + var fileContainer = this.createElement('span', { className: TEXT_CONTAINER }); + var statusMessage; + for (var _i = 0, fileData_2 = fileData; _i < fileData_2.length; _i++) { + var listItem = fileData_2[_i]; + var fileNameEle = this.createElement('span', { className: FILE_NAME }); + fileNameEle.innerHTML = this.getFileNameOnly(listItem.name); + var fileTypeEle = this.createElement('span', { className: FILE_TYPE }); + var fileType = this.getFileType(listItem.name); + fileTypeEle.innerHTML = '.' + fileType; + if (!fileType) { + fileTypeEle.classList.add('e-hidden'); + } + if (!this.enableRtl) { + fileContainer.appendChild(fileNameEle); + fileContainer.appendChild(fileTypeEle); + } + else { + var rtlContainer = this.createElement('span', { className: RTL_CONTAINER }); + rtlContainer.appendChild(fileTypeEle); + rtlContainer.appendChild(fileNameEle); + fileContainer.appendChild(rtlContainer); + } + this.truncateName(fileNameEle); + statusMessage = this.formValidateFileInfo(listItem, fileList); + } + fileList.appendChild(fileContainer); + this.setListToFileInfo(fileData, fileList); + var index = this.listParent.querySelectorAll('li').length; + var infoEle = this.createElement('span'); + if (fileList.classList.contains(INVALID_FILE)) { + infoEle.classList.add(STATUS); + infoEle.classList.add(INVALID_FILE); + infoEle.innerText = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage; + } + else { + infoEle.classList.add(fileData.length > 1 ? INFORMATION : FILE_SIZE); + infoEle.innerText = fileData.length > 1 ? this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , ' + + this.localizedTexts('size') + ': ' + + this.bytesToSize(this.getFileSize(fileData)) : this.bytesToSize(fileData[0].size); + this.createFormInput(fileData); + } + fileContainer.appendChild(infoEle); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fileList.querySelector('.e-icons'))) { + var iconElement = this.createElement('span', { className: 'e-icons', attrs: { 'tabindex': this.btnTabIndex } }); + /* istanbul ignore next */ + if (this.browserName === 'msie') { + iconElement.classList.add('e-msie'); + } + iconElement.setAttribute('title', this.localizedTexts('remove')); + fileList.appendChild(fileContainer); + fileList.appendChild(iconElement); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(iconElement, 'click', this.removeFiles, this); + iconElement.classList.add(REMOVE_ICON); + } + var eventArgs = { + element: fileList, + fileInfo: this.mergeFileInfo(fileData, fileList), + index: index, + isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList)) + }; + var eventsArgs = { + element: fileList, + fileInfo: this.mergeFileInfo(fileData, fileList), + index: index, + isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList)) + }; + this.trigger('rendering', eventArgs); + this.trigger('fileListRendering', eventsArgs); + this.listParent.appendChild(fileList); + this.fileList.push(fileList); + }; + Uploader.prototype.formValidateFileInfo = function (listItem, fileList) { + var statusMessage = listItem.status; + var validationMessages = this.validatedFileSize(listItem.size); + if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') { + this.addInvalidClass(fileList); + statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') : + validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage; + } + var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status; + if (typeValidationMessage === this.localizedTexts('invalidFileType')) { + this.addInvalidClass(fileList); + statusMessage = typeValidationMessage; + } + return statusMessage; + }; + Uploader.prototype.addInvalidClass = function (fileList) { + fileList.classList.add(INVALID_FILE); + }; + Uploader.prototype.createFormInput = function (fileData) { + if (this.browserName !== 'safari') { + var inputElement = this.element.cloneNode(true); + inputElement.classList.add(HIDDEN_INPUT); + for (var _i = 0, fileData_3 = fileData; _i < fileData_3.length; _i++) { + var listItem = fileData_3[_i]; + listItem.input = inputElement; + } + inputElement.setAttribute('id', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('hiddenUploader')); + inputElement.setAttribute('name', this.uploaderName); + this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).appendChild(inputElement); + if (this.browserName !== 'msie' && this.browserName !== 'edge') { + this.element.value = ''; + } + } + }; + Uploader.prototype.getFileSize = function (fileData) { + var fileSize = 0; + for (var _i = 0, fileData_4 = fileData; _i < fileData_4.length; _i++) { + var file = fileData_4[_i]; + fileSize += file.size; + } + return fileSize; + }; + Uploader.prototype.mergeFileInfo = function (fileData, fileList) { + var result = { + name: '', + rawFile: '', + size: 0, + status: '', + type: '', + validationMessages: { minSize: '', maxSize: '' }, + statusCode: '1', + list: fileList + }; + var fileNames = []; + var type = ''; + for (var _i = 0, fileData_5 = fileData; _i < fileData_5.length; _i++) { + var listItem = fileData_5[_i]; + fileNames.push(listItem.name); + type = listItem.type; + } + result.name = fileNames.join(', '); + result.size = this.getFileSize(fileData); + result.type = type; + result.status = this.statusForFormUpload(fileData, fileList); + return result; + }; + Uploader.prototype.statusForFormUpload = function (fileData, fileList) { + var isValid = true; + var statusMessage; + for (var _i = 0, fileData_6 = fileData; _i < fileData_6.length; _i++) { + var listItem = fileData_6[_i]; + statusMessage = listItem.status; + var validationMessages = this.validatedFileSize(listItem.size); + if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') { + isValid = false; + statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') : + validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage; + } + var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status; + if (typeValidationMessage === this.localizedTexts('invalidFileType')) { + isValid = false; + statusMessage = typeValidationMessage; + } + } + if (!isValid) { + fileList.classList.add(INVALID_FILE); + statusMessage = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage; + } + else { + statusMessage = this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , ' + + this.localizedTexts('size') + ': ' + + this.bytesToSize(this.getFileSize(fileData)); + } + return statusMessage; + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Uploader.prototype.formCustomFileList = function (fileData, files) { + this.createParentUL(); + var fileList = this.createElement('li', { className: FILE }); + fileList.setAttribute('data-files-count', fileData.length + ''); + this.setListToFileInfo(fileData, fileList); + var result = this.mergeFileInfo(fileData, fileList); + fileList.setAttribute('data-file-name', result.name); + this.uploadTemplateFn = this.templateComplier(this.template); + var liTempCompiler = this.uploadTemplateFn(result, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, fileList); + if (liTempCompiler) { + var fromElements = [].slice.call(liTempCompiler); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(fromElements, fileList); + } + var index = this.listParent.querySelectorAll('li').length; + if (!fileList.classList.contains(INVALID_FILE)) { + this.createFormInput(fileData); + } + var eventArgs = { + element: fileList, + fileInfo: result, + index: index, + isPreload: this.isPreLoadFile(result) + }; + var eventsArgs = { + element: fileList, + fileInfo: result, + index: index, + isPreload: this.isPreLoadFile(result) + }; + this.trigger('rendering', eventArgs); + this.trigger('fileListRendering', eventsArgs); + this.listParent.appendChild(fileList); + this.fileList.push(fileList); + this.renderReactTemplates(); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-param */ + /** + * Create the file list for specified files data. + * + * @param { FileInfo[] } fileData - Specifies the files data for file list creation. + * @returns {void} + */ + Uploader.prototype.createFileList = function (fileData, isSelectedFile) { + /* eslint-enable valid-jsdoc, jsdoc/require-param */ + this.createParentUL(); + this.filesData = (isSelectedFile) ? this.filesData.concat(fileData) : fileData; + if (this.template !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template)) { + if (this.isFormUpload()) { + this.uploadWrapper.classList.add(FORM_UPLOAD); + this.formCustomFileList(fileData, this.element.files); + } + else { + this.createCustomfileList(fileData); + } + } + else if (this.isFormUpload()) { + this.uploadWrapper.classList.add(FORM_UPLOAD); + this.formFileList(fileData, this.element.files); + } + else { + for (var _i = 0, fileData_7 = fileData; _i < fileData_7.length; _i++) { + var listItem = fileData_7[_i]; + var liElement = this.createElement('li', { + className: FILE, + attrs: { 'data-file-name': listItem.name, 'data-files-count': '1' } + }); + var textContainer = this.createElement('span', { className: TEXT_CONTAINER }); + var textElement = this.createElement('span', { className: FILE_NAME, attrs: { 'title': listItem.name } }); + textElement.innerHTML = this.getFileNameOnly(listItem.name); + var fileExtension = this.createElement('span', { className: FILE_TYPE }); + var fileType = this.getFileType(listItem.name); + fileExtension.innerHTML = '.' + fileType; + if (!fileType) { + fileExtension.classList.add('e-hidden'); + } + if (!this.enableRtl) { + textContainer.appendChild(textElement); + textContainer.appendChild(fileExtension); + } + else { + var rtlContainer = this.createElement('span', { className: RTL_CONTAINER }); + rtlContainer.appendChild(fileExtension); + rtlContainer.appendChild(textElement); + textContainer.appendChild(rtlContainer); + } + var fileSize = this.createElement('span', { className: FILE_SIZE }); + fileSize.innerHTML = this.bytesToSize(listItem.size); + textContainer.appendChild(fileSize); + var statusElement = this.createElement('span', { className: STATUS }); + textContainer.appendChild(statusElement); + statusElement.innerHTML = listItem.status; + liElement.appendChild(textContainer); + var iconElement = this.createElement('span', { className: ' e-icons', + attrs: { 'tabindex': this.btnTabIndex } }); + /* istanbul ignore next */ + if (this.browserName === 'msie') { + iconElement.classList.add('e-msie'); + } + iconElement.setAttribute('title', this.localizedTexts('remove')); + liElement.appendChild(iconElement); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(iconElement, 'click', this.removeFiles, this); + if (listItem.statusCode === '2') { + statusElement.classList.add(UPLOAD_SUCCESS); + iconElement.classList.add(DELETE_ICON); + iconElement.setAttribute('title', this.localizedTexts('delete')); + } + else if (listItem.statusCode !== '1') { + statusElement.classList.remove(UPLOAD_SUCCESS); + statusElement.classList.add(VALIDATION_FAILS); + } + if (this.autoUpload && listItem.statusCode === '1' && this.asyncSettings.saveUrl !== '') { + statusElement.innerHTML = ''; + } + if (!iconElement.classList.contains(DELETE_ICON)) { + iconElement.classList.add(REMOVE_ICON); + } + var index = fileData.indexOf(listItem); + var eventArgs = { + element: liElement, + fileInfo: listItem, + index: index, + isPreload: this.isPreLoadFile(listItem) + }; + var eventsArgs = { + element: liElement, + fileInfo: listItem, + index: index, + isPreload: this.isPreLoadFile(listItem) + }; + this.trigger('rendering', eventArgs); + this.trigger('fileListRendering', eventsArgs); + this.listParent.appendChild(liElement); + this.fileList.push(liElement); + this.truncateName(textElement); + var preventActionComplete = this.flag; + if (this.isPreLoadFile(listItem)) { + this.flag = false; + this.checkActionComplete(true); + this.flag = preventActionComplete; + } + } + } + }; + Uploader.prototype.getSlicedName = function (nameElement) { + var text = nameElement.textContent; + nameElement.dataset.tail = text.slice(text.length - 10); + }; + Uploader.prototype.setListToFileInfo = function (fileData, fileList) { + for (var _i = 0, fileData_8 = fileData; _i < fileData_8.length; _i++) { + var listItem = fileData_8[_i]; + listItem.list = fileList; + } + }; + Uploader.prototype.truncateName = function (name) { + var nameElement = name; + if (this.browserName !== 'edge' && nameElement.offsetWidth < nameElement.scrollWidth) { + this.getSlicedName(nameElement); + /* istanbul ignore next */ + } + else if (nameElement.offsetWidth + 1 < nameElement.scrollWidth) { + this.getSlicedName(nameElement); + } + }; + Uploader.prototype.getFileType = function (name) { + var extension; + var index = name.lastIndexOf('.'); + if (index >= 0) { + extension = name.substring(index + 1); + } + return extension ? extension : ''; + }; + Uploader.prototype.getFileNameOnly = function (name) { + var type = this.getFileType(name); + var names = name.split('.' + type); + return type = names[0]; + }; + Uploader.prototype.setInitialAttributes = function () { + if (this.initialAttr.accept) { + this.element.setAttribute('accept', this.initialAttr.accept); + } + if (this.initialAttr.disabled) { + this.element.setAttribute('disabled', 'disabled'); + } + if (this.initialAttr.multiple) { + var newAttr = document.createAttribute('multiple'); + this.element.setAttributeNode(newAttr); + } + }; + Uploader.prototype.filterfileList = function (files) { + var filterFiles = []; + var li; + for (var i = 0; i < files.length; i++) { + li = this.getLiElement(files[i]); + if (!li.classList.contains(UPLOAD_SUCCESS)) { + filterFiles.push(files[i]); + } + } + return filterFiles; + }; + Uploader.prototype.updateStatus = function (files, status, statusCode, updateLiStatus) { + if (updateLiStatus === void 0) { updateLiStatus = true; } + if (!(status === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(status)) && !(statusCode === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(statusCode))) { + files.status = status; + files.statusCode = statusCode; + } + if (updateLiStatus) { + var li = this.getLiElement(files); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + STATUS)) && !((status === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(status)))) { + li.querySelector('.' + STATUS).textContent = status; + } + } + } + return files; + }; + Uploader.prototype.getLiElement = function (files) { + var index; + for (var i = 0; i < this.filesData.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(files) && ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.filesData[i].id) && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(files.id)) ? (this.filesData[i].name === files.name && + this.filesData[i].id === files.id) : this.filesData[i].name === files.name)) { + index = i; + } + } + return this.fileList[index]; + }; + Uploader.prototype.createProgressBar = function (liElement) { + var progressbarWrapper = this.createElement('span', { className: PROGRESS_WRAPPER }); + var progressBar = this.createElement('progressbar', { className: PROGRESSBAR, attrs: { value: '0', max: '100' } }); + var progressbarInnerWrapper = this.createElement('span', { className: PROGRESS_INNER_WRAPPER }); + progressBar.setAttribute('style', 'width: 0%'); + var progressbarText = this.createElement('span', { className: PROGRESSBAR_TEXT }); + progressbarText.textContent = '0%'; + progressbarInnerWrapper.appendChild(progressBar); + progressbarWrapper.appendChild(progressbarInnerWrapper); + progressbarWrapper.appendChild(progressbarText); + liElement.querySelector('.' + TEXT_CONTAINER).appendChild(progressbarWrapper); + }; + /* istanbul ignore next */ + Uploader.prototype.updateProgressbar = function (e, li) { + if (!isNaN(Math.round((e.loaded / e.total) * 100)) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + PROGRESSBAR))) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.progressInterval) && this.progressInterval !== '') { + var value = (Math.round((e.loaded / e.total) * 100)) % parseInt(this.progressInterval, 10); + if (value === 0 || value === 100) { + this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%'); + } + } + else { + this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%'); + } + } + }; + Uploader.prototype.changeProgressValue = function (li, progressValue) { + li.querySelector('.' + PROGRESSBAR).setAttribute('style', 'width:' + progressValue); + li.querySelector('.' + PROGRESSBAR_TEXT).textContent = progressValue; + }; + Uploader.prototype.uploadInProgress = function (e, files, customUI, request) { + var li = this.getLiElement(files); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li) && (!customUI)) { + return; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + /* istanbul ignore next */ + if (files.statusCode === '5') { + this.cancelUploadingFile(files, e, request, li); + } + if (!(li.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0) && li.querySelector('.' + STATUS)) { + li.querySelector('.' + STATUS).classList.add(UPLOAD_INPROGRESS); + this.createProgressBar(li); + this.updateProgressBarClasses(li, UPLOAD_INPROGRESS); + li.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED); + } + this.updateProgressbar(e, li); + var iconEle = li.querySelector('.' + REMOVE_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconEle)) { + iconEle.classList.add(ABORT_ICON, UPLOAD_INPROGRESS); + iconEle.setAttribute('title', this.localizedTexts('abort')); + iconEle.classList.remove(REMOVE_ICON); + } + } + else { + this.cancelUploadingFile(files, e, request); + } + var args = { e: e, operation: 'upload', file: this.updateStatus(files, this.localizedTexts('inProgress'), '3') }; + this.trigger('progress', args); + }; + /* istanbul ignore next */ + Uploader.prototype.cancelUploadingFile = function (files, e, request, li) { + var _this = this; + if (files.statusCode === '5') { + var eventArgs = { + event: e, + fileData: files, + cancel: false, + customFormData: [] + }; + this.trigger('canceling', eventArgs, function (eventArgs) { + if (eventArgs.cancel) { + files.statusCode = '3'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + var spinnerTarget = li.querySelector('.' + ABORT_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(spinnerTarget)) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(spinnerTarget); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(li.querySelector('.e-spinner-pane')); + } + } + } + else { + request.emitError = false; + request.httpRequest.abort(); + var formData = new FormData(); + if (files.statusCode === '5') { + var name_1 = _this.element.getAttribute('name'); + formData.append(name_1, files.name); + formData.append('cancel-uploading', files.name); + _this.updateFormData(formData, eventArgs.customFormData); + var ajax = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](_this.asyncSettings.removeUrl, 'POST', true, null); + ajax.emitError = false; + ajax.onLoad = function (e) { + _this.removecanceledFile(e, files); + return {}; + }; + ajax.send(formData); + } + } + }); + } + }; + Uploader.prototype.removecanceledFile = function (e, file) { + var liElement = this.getLiElement(file); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) || liElement.querySelector('.' + RETRY_ICON) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + ABORT_ICON))) { + return; + } + this.updateStatus(file, this.localizedTexts('fileUploadCancel'), '5'); + this.renderFailureState(e, file, liElement); + var spinnerTarget = liElement.querySelector('.' + REMOVE_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(spinnerTarget); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.e-spinner-pane'))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.e-spinner-pane')); + } + } + var requestResponse = e && e.currentTarget ? this.getResponse(e) : null; + var args = { event: e, response: requestResponse, operation: 'cancel', file: file }; + this.trigger('success', args); + }; + Uploader.prototype.renderFailureState = function (e, file, liElement) { + var _this = this; + this.updateProgressBarClasses(liElement, UPLOAD_FAILED); + this.removeProgressbar(liElement, 'failure'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.e-file-status'))) { + liElement.querySelector('.e-file-status').classList.add(UPLOAD_FAILED); + } + var deleteIcon = liElement.querySelector('.' + ABORT_ICON); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(deleteIcon)) { + return; + } + deleteIcon.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS); + deleteIcon.classList.add(REMOVE_ICON); + deleteIcon.setAttribute('title', this.localizedTexts('remove')); + this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } }); + deleteIcon.parentElement.insertBefore(this.pauseButton, deleteIcon); + this.pauseButton.setAttribute('title', this.localizedTexts('retry')); + var retryElement = liElement.querySelector('.' + RETRY_ICON); + /* istanbul ignore next */ + retryElement.addEventListener('click', function (e) { + _this.reloadcanceledFile(e, file, liElement, false); + }, false); + }; + Uploader.prototype.reloadcanceledFile = function (e, file, liElement, custom) { + file.statusCode = '1'; + file.status = this.localizedTexts('readyToUploadMessage'); + if (!custom) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + STATUS))) { + liElement.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + RETRY_ICON))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.' + RETRY_ICON)); + } + this.pauseButton = null; + } + /* istanbul ignore next */ + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + liElement.classList.add(RESTRICT_RETRY); + } + this.upload([file]); + }; + /* istanbul ignore next */ + Uploader.prototype.uploadComplete = function (e, file, customUI) { + var status = e.target; + if (status.readyState === 4 && status.status >= 200 && status.status <= 299) { + var li = this.getLiElement(file); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li) && (!customUI || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(customUI))) { + return; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + this.updateProgressBarClasses(li, UPLOAD_SUCCESS); + this.removeProgressbar(li, 'success'); + var iconEle = li.querySelector('.' + ABORT_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconEle)) { + iconEle.classList.add(DELETE_ICON); + iconEle.setAttribute('title', this.localizedTexts('delete')); + iconEle.classList.remove(ABORT_ICON); + iconEle.classList.remove(UPLOAD_INPROGRESS); + } + } + this.raiseSuccessEvent(e, file); + } + else { + this.uploadFailed(e, file); + } + }; + Uploader.prototype.getResponse = function (e) { + var target = e.currentTarget; + var response = { + readyState: target.readyState, + statusCode: target.status, + statusText: target.statusText, + headers: target.getAllResponseHeaders(), + withCredentials: target.withCredentials + }; + return response; + }; + Uploader.prototype.raiseSuccessEvent = function (e, file) { + var _this = this; + var response = e && e.currentTarget ? this.getResponse(e) : null; + var statusMessage = this.localizedTexts('uploadSuccessMessage'); + var args = { + e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '2', false), statusText: statusMessage + }; + var liElement = this.getLiElement(file); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + var spinnerEle = liElement.querySelector('.' + SPINNER_PANE); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(spinnerEle)) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(liElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(spinnerEle); + } + } + this.trigger('success', args, function (args) { + _this.updateStatus(file, args.statusText, '2'); + _this.uploadedFilesData.push(file); + _this.trigger('change', { file: _this.uploadedFilesData }); + _this.checkActionButtonStatus(); + if (_this.fileList.length > 0) { + if ((!(_this.getLiElement(file)).classList.contains(RESTRICT_RETRY))) { + _this.uploadSequential(); + _this.checkActionComplete(true); + } + else { + /* istanbul ignore next */ + (_this.getLiElement(file)).classList.remove(RESTRICT_RETRY); + } + } + }); + }; + Uploader.prototype.uploadFailed = function (e, file) { + var _this = this; + var li = this.getLiElement(file); + var response = e && e.currentTarget ? this.getResponse(e) : null; + var statusMessage = this.localizedTexts('uploadFailedMessage'); + var args = { + e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '0', false), statusText: statusMessage + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + this.renderFailureState(e, file, li); + } + this.trigger('failure', args, function (args) { + _this.updateStatus(file, args.statusText, '0'); + _this.checkActionButtonStatus(); + _this.uploadSequential(); + _this.checkActionComplete(true); + }); + }; + Uploader.prototype.uploadSequential = function () { + if (this.sequentialUpload) { + if (this.autoUpload) { + /* istanbul ignore next */ + this.checkAutoUpload(this.filesData); + } + else { + this.uploadButtonClick(); + } + } + }; + Uploader.prototype.checkActionComplete = function (increment) { + if (increment) { + ++this.actionCompleteCount; + } + else { + --this.actionCompleteCount; + } + this.raiseActionComplete(); + }; + Uploader.prototype.raiseActionComplete = function () { + if ((this.filesData.length === this.actionCompleteCount) && this.flag) { + this.flag = false; + var eventArgs = { + fileData: [] + }; + eventArgs.fileData = this.getSelectedFileStatus(this.selectedFiles); + this.trigger('actionComplete', eventArgs); + } + }; + Uploader.prototype.getSelectedFileStatus = function (selectedFiles) { + var matchFiles = []; + var matchFilesIndex = 0; + for (var selectFileIndex = 0; selectFileIndex < selectedFiles.length; selectFileIndex++) { + var selectedFileData = selectedFiles[selectFileIndex]; + for (var fileDataIndex = 0; fileDataIndex < this.filesData.length; fileDataIndex++) { + if (this.filesData[fileDataIndex].name === selectedFileData.name && this.filesData[fileDataIndex].status === selectedFileData.status) { + matchFiles[matchFilesIndex] = this.filesData[fileDataIndex]; + ++matchFilesIndex; + } + } + } + return matchFiles; + }; + Uploader.prototype.updateProgressBarClasses = function (li, className) { + var progressBar = li.querySelector('.' + PROGRESSBAR); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(progressBar)) { + progressBar.classList.add(className); + } + }; + Uploader.prototype.removeProgressbar = function (li, callType) { + var _this = this; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + PROGRESS_WRAPPER))) { + this.progressAnimation = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"]({ duration: 1250 }); + this.progressAnimation.animate(li.querySelector('.' + PROGRESS_WRAPPER), { name: 'FadeOut' }); + this.progressAnimation.animate(li.querySelector('.' + PROGRESSBAR_TEXT), { name: 'FadeOut' }); + setTimeout(function () { + _this.animateProgressBar(li, callType); + }, 750); + } + }; + /* istanbul ignore next */ + Uploader.prototype.animateProgressBar = function (li, callType) { + if (callType === 'success') { + li.classList.add(UPLOAD_SUCCESS); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + STATUS))) { + li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS); + this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' }); + li.querySelector('.' + STATUS).classList.add(UPLOAD_SUCCESS); + } + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + STATUS))) { + li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS); + this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' }); + li.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED); + } + } + if (li.querySelector('.' + PROGRESS_WRAPPER)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(li.querySelector('.' + PROGRESS_WRAPPER)); + } + }; + Uploader.prototype.setExtensions = function (extensions) { + if (extensions !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(extensions)) { + this.element.setAttribute('accept', extensions); + } + else { + this.element.removeAttribute('accept'); + } + }; + Uploader.prototype.templateComplier = function (uploadTemplate) { + if (uploadTemplate) { + try { + if (typeof uploadTemplate !== 'function' && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(uploadTemplate, document).length) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(uploadTemplate, document).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(uploadTemplate); + } + } + catch (exception) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(uploadTemplate); + } + } + return undefined; + }; + Uploader.prototype.setRTL = function () { + if (this.enableRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.uploadWrapper], RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.uploadWrapper], RTL); + } + }; + Uploader.prototype.localizedTexts = function (localeText) { + this.l10n.setLocale(this.locale); + return this.l10n.getConstant(localeText); + }; + Uploader.prototype.setControlStatus = function () { + if (!this.enabled) { + this.uploadWrapper.classList.add(DISABLED); + this.element.setAttribute('disabled', 'disabled'); + this.browseButton.setAttribute('disabled', 'disabled'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.clearButton)) { + this.clearButton.setAttribute('disabled', 'disabled'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploadButton)) { + this.uploadButton.setAttribute('disabled', 'disabled'); + } + } + else { + if (this.uploadWrapper.classList.contains(DISABLED)) { + this.uploadWrapper.classList.remove(DISABLED); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.browseButton) && this.element.hasAttribute('disabled')) { + this.element.removeAttribute('disabled'); + this.browseButton.removeAttribute('disabled'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.clearButton) && this.clearButton.hasAttribute('disabled')) { + this.clearButton.removeAttribute('disabled'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploadButton) && this.uploadButton.hasAttribute('disabled')) { + this.uploadButton.hasAttribute('disabled'); + } + } + }; + Uploader.prototype.checkHTMLAttributes = function (isDynamic) { + var attributes = isDynamic ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) : + ['accept', 'multiple', 'disabled']; + for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) { + var prop = attributes_1[_i]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute(prop))) { + switch (prop) { + case 'accept': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploaderOptions) || (this.uploaderOptions['allowedExtensions'] === undefined)) + || isDynamic) { + this.setProperties({ allowedExtensions: this.element.getAttribute('accept') }, !isDynamic); + this.initialAttr.accept = this.allowedExtensions; + } + break; + case 'multiple': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploaderOptions) || (this.uploaderOptions['multiple'] === undefined)) || isDynamic) { + var isMutiple = this.element.getAttribute(prop) === 'multiple' || + this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? true : false; + this.setProperties({ multiple: isMutiple }, !isDynamic); + this.initialAttr.multiple = true; + } + break; + case 'disabled': + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploaderOptions) || (this.uploaderOptions['enabled'] === undefined)) || isDynamic) { + var isDisabled = this.element.getAttribute(prop) === 'disabled' || + this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? false : true; + this.setProperties({ enabled: isDisabled }, !isDynamic); + this.initialAttr.disabled = true; + } + } + } + } + }; + Uploader.prototype.chunkUpload = function (file, custom, fileIndex) { + var start = 0; + var end = Math.min(this.asyncSettings.chunkSize, file.size); + var index = 0; + var blob = file.rawFile.slice(start, end); + var metaData = { chunkIndex: index, blob: blob, file: file, start: start, end: end, retryCount: 0, request: null }; + this.sendRequest(file, metaData, custom, fileIndex); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Uploader.prototype.sendRequest = function (file, metaData, custom, fileIndex) { + var _this = this; + var formData = new FormData(); + var blob = file.rawFile.slice(metaData.start, metaData.end); + formData.append(this.uploaderName, blob, file.name); + formData.append('chunk-index', metaData.chunkIndex.toString()); + formData.append('chunkIndex', metaData.chunkIndex.toString()); + var totalChunk = Math.max(Math.ceil(file.size / this.asyncSettings.chunkSize), 1); + formData.append('total-chunk', totalChunk.toString()); + formData.append('totalChunk', totalChunk.toString()); + var ajax = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"]({ url: this.asyncSettings.saveUrl, type: 'POST', async: true, contentType: null }); + ajax.emitError = false; + ajax.onLoad = function (e) { + _this.chunkUploadComplete(e, metaData, custom); + return {}; + }; + ajax.onUploadProgress = function (e) { + _this.chunkUploadInProgress(e, metaData, custom); + return {}; + }; + var eventArgs = { + fileData: file, + customFormData: [], + cancel: false, + chunkSize: this.asyncSettings.chunkSize === 0 ? null : this.asyncSettings.chunkSize + }; + ajax.beforeSend = function (e) { + eventArgs.currentRequest = ajax.httpRequest; + eventArgs.currentChunkIndex = metaData.chunkIndex; + if (eventArgs.currentChunkIndex === 0) { + // This event is currently not required but to avoid breaking changes for previous customer, we have included. + _this.trigger('uploading', eventArgs, function (eventArgs) { + _this.uploadingEventCallback(formData, eventArgs, e, file); + }); + } + else { + _this.trigger('chunkUploading', eventArgs, function (eventArgs) { + _this.uploadingEventCallback(formData, eventArgs, e, file); + }); + } + }; + /* istanbul ignore next */ + ajax.onError = function (e) { + _this.chunkUploadFailed(e, metaData, custom); + return {}; + }; + ajax.send(formData); + metaData.request = ajax; + }; + Uploader.prototype.uploadingEventCallback = function (formData, eventArgs, e, file) { + if (eventArgs.cancel) { + this.eventCancelByArgs(e, eventArgs, file); + } + else { + this.updateFormData(formData, eventArgs.customFormData); + } + }; + Uploader.prototype.eventCancelByArgs = function (e, eventArgs, file) { + var _this = this; + e.cancel = true; + if (eventArgs.fileData.statusCode === '5') { + return; + } + eventArgs.fileData.statusCode = '5'; + eventArgs.fileData.status = this.localizedTexts('fileUploadCancel'); + var liElement = this.getLiElement(eventArgs.fileData); + if (liElement) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + STATUS))) { + liElement.querySelector('.' + STATUS).innerHTML = this.localizedTexts('fileUploadCancel'); + liElement.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED); + } + this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } }); + var removeIcon = liElement.querySelector('.' + REMOVE_ICON); + if (removeIcon) { + removeIcon.parentElement.insertBefore(this.pauseButton, removeIcon); + } + this.pauseButton.setAttribute('title', this.localizedTexts('retry')); + /* istanbul ignore next */ + this.pauseButton.addEventListener('click', function (e) { + _this.reloadcanceledFile(e, file, liElement); + }, false); + this.checkActionButtonStatus(); + } + }; + Uploader.prototype.checkChunkUpload = function () { + return (this.asyncSettings.chunkSize <= 0 || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.asyncSettings.chunkSize)) ? false : true; + }; + Uploader.prototype.chunkUploadComplete = function (e, metaData, custom) { + var _this = this; + var response = e.target; + var liElement; + if (response.readyState === 4 && response.status >= 200 && response.status < 300) { + var requestResponse = e && e.currentTarget ? this.getResponse(e) : null; + var totalChunk = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1); + var eventArgs = { + event: e, + file: metaData.file, + chunkIndex: metaData.chunkIndex, + totalChunk: totalChunk, + chunkSize: this.asyncSettings.chunkSize, + response: requestResponse + }; + this.trigger('chunkSuccess', eventArgs); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom) { + liElement = this.getLiElement(metaData.file); + } + this.updateMetaData(metaData); + if (metaData.end === metaData.file.size) { + metaData.file.statusCode = '3'; + } + if (metaData.file.statusCode === '5') { + var eventArgs_1 = { event: e, fileData: metaData.file, cancel: false, customFormData: [] }; + this.trigger('canceling', eventArgs_1, function (eventArgs) { + /* istanbul ignore next */ + if (eventArgs.cancel) { + metaData.file.statusCode = '3'; + var spinnerTarget = liElement.querySelector('.' + ABORT_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(spinnerTarget)) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(spinnerTarget); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.e-spinner-pane')); + } + _this.sendNextRequest(metaData); + } + else { + metaData.request.emitError = false; + response.abort(); + var formData = new FormData(); + var name_2 = _this.element.getAttribute('name'); + formData.append(name_2, metaData.file.name); + formData.append('cancel-uploading', metaData.file.name); + formData.append('cancelUploading', metaData.file.name); + _this.updateFormData(formData, eventArgs.customFormData); + var ajax = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](_this.asyncSettings.removeUrl, 'POST', true, null); + ajax.emitError = false; + ajax.onLoad = function (e) { + _this.removeChunkFile(e, metaData, custom); + return {}; + }; + ajax.send(formData); + } + }); + } + else { + if ((totalChunk - 1) === metaData.chunkIndex && totalChunk > metaData.chunkIndex) { + var index = this.pausedData.indexOf(metaData); + if (index >= 0) { + this.pausedData.splice(index, 1); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom) && liElement) { + if (liElement && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + PAUSE_UPLOAD))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.' + PAUSE_UPLOAD)); + } + this.removeChunkProgressBar(metaData); + } + this.raiseSuccessEvent(e, metaData.file); + return; + } + if (metaData.file.statusCode !== '4') { + this.sendNextRequest(metaData); + } + } + } + else { + this.chunkUploadFailed(e, metaData); + } + }; + Uploader.prototype.sendNextRequest = function (metaData) { + metaData.start = metaData.end; + metaData.end += this.asyncSettings.chunkSize; + metaData.end = Math.min(metaData.end, metaData.file.size); + metaData.chunkIndex += 1; + this.sendRequest(metaData.file, metaData); + }; + Uploader.prototype.removeChunkFile = function (e, metaData, custom) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) && !custom)) { + var liElement = this.getLiElement(metaData.file); + var deleteIcon = liElement.querySelector('.' + ABORT_ICON); + var spinnerTarget = deleteIcon; + this.updateStatus(metaData.file, this.localizedTexts('fileUploadCancel'), '5'); + this.updateProgressBarClasses(liElement, UPLOAD_FAILED); + this.removeProgressbar(liElement, 'failure'); + (deleteIcon && deleteIcon.classList.remove(ABORT_ICON)); + (deleteIcon && deleteIcon.classList.add(REMOVE_ICON)); + (deleteIcon && deleteIcon.setAttribute('title', this.localizedTexts('remove'))); + var pauseIcon = liElement.querySelector('.' + PAUSE_UPLOAD); + (pauseIcon && pauseIcon.classList.add(RETRY_ICON)); + (pauseIcon && pauseIcon.classList.remove(PAUSE_UPLOAD)); + (pauseIcon && pauseIcon.setAttribute('title', this.localizedTexts('retry'))); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(deleteIcon) + && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.e-spinner-pane'))) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["hideSpinner"])(spinnerTarget); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.e-spinner-pane')); + } + } + }; + Uploader.prototype.pauseUpload = function (metaData, e, custom) { + metaData.file.statusCode = '4'; + metaData.file.status = this.localizedTexts('pause'); + this.updateMetaData(metaData); + var eventArgs = { + event: e ? e : null, + file: metaData.file, + chunkIndex: metaData.chunkIndex, + chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize), + chunkSize: this.asyncSettings.chunkSize + }; + this.abortUpload(metaData, custom, eventArgs); + }; + Uploader.prototype.abortUpload = function (metaData, custom, eventArgs) { + if (metaData.file.statusCode !== '4') { + metaData.request.emitError = false; + metaData.request.httpRequest.abort(); + } + var liElement = this.getLiElement(metaData.file); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom)) { + var targetElement = liElement.querySelector('.' + PAUSE_UPLOAD); + targetElement.classList.remove(PAUSE_UPLOAD); + targetElement.classList.add(RESUME_UPLOAD); + targetElement.setAttribute('title', this.localizedTexts('resume')); + targetElement.nextElementSibling.classList.add(REMOVE_ICON); + targetElement.nextElementSibling.classList.remove(ABORT_ICON); + targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('remove')); + } + for (var i = 0; i < this.pausedData.length; i++) { + if (this.pausedData[i].file.name === metaData.file.name) { + this.pausedData.splice(i, 1); + } + } + this.pausedData.push(metaData); + this.trigger('pausing', eventArgs); + }; + Uploader.prototype.resumeUpload = function (metaData, e, custom) { + var liElement = this.getLiElement(metaData.file); + var targetElement; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + targetElement = liElement.querySelector('.' + RESUME_UPLOAD); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(targetElement) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom)) { + targetElement.classList.remove(RESUME_UPLOAD); + targetElement.classList.add(PAUSE_UPLOAD); + targetElement.setAttribute('title', this.localizedTexts('pause')); + targetElement.nextElementSibling.classList.remove(REMOVE_ICON); + targetElement.nextElementSibling.classList.add(ABORT_ICON); + targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('abort')); + } + metaData.file.status = this.localizedTexts('inProgress'); + metaData.file.statusCode = '3'; + this.updateMetaData(metaData); + var eventArgs = { + event: e ? e : null, + file: metaData.file, + chunkIndex: metaData.chunkIndex, + chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize), + chunkSize: this.asyncSettings.chunkSize + }; + this.trigger('resuming', eventArgs); + for (var i = 0; i < this.pausedData.length; i++) { + if (this.pausedData[i].end === this.pausedData[i].file.size) { + this.chunkUploadComplete(e, metaData, custom); + } + else { + if (this.pausedData[i].file.name === metaData.file.name) { + this.pausedData[i].start = this.pausedData[i].end; + this.pausedData[i].end = this.pausedData[i].end + this.asyncSettings.chunkSize; + this.pausedData[i].end = Math.min(this.pausedData[i].end, this.pausedData[i].file.size); + this.pausedData[i].chunkIndex = this.pausedData[i].chunkIndex + 1; + this.sendRequest(this.pausedData[i].file, this.pausedData[i], custom); + } + } + } + }; + Uploader.prototype.updateMetaData = function (metaData) { + if (this.uploadMetaData.indexOf(metaData) === -1) { + this.uploadMetaData.push(metaData); + } + else { + this.uploadMetaData.splice(this.uploadMetaData.indexOf(metaData), 1); + this.uploadMetaData.push(metaData); + } + }; + Uploader.prototype.removeChunkProgressBar = function (metaData) { + var liElement = this.getLiElement(metaData.file); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + this.updateProgressBarClasses(liElement, UPLOAD_SUCCESS); + this.removeProgressbar(liElement, 'success'); + var cancelButton = liElement.querySelector('.' + ABORT_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cancelButton)) { + cancelButton.classList.add(DELETE_ICON); + cancelButton.setAttribute('title', this.localizedTexts('delete')); + cancelButton.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS); + } + } + }; + Uploader.prototype.chunkUploadFailed = function (e, metaData, custom) { + var _this = this; + var chunkCount = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1); + var liElement; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom)) { + liElement = this.getLiElement(metaData.file); + } + var requestResponse = e && e.currentTarget ? this.getResponse(e) : null; + var eventArgs = { + event: e, + file: metaData.file, + chunkIndex: metaData.chunkIndex, + totalChunk: chunkCount, + chunkSize: this.asyncSettings.chunkSize, + cancel: false, + response: requestResponse + }; + this.trigger('chunkFailure', eventArgs, function (eventArgs) { + // To prevent triggering of failure event + if (!eventArgs.cancel) { + if (metaData.retryCount < _this.asyncSettings.retryCount) { + setTimeout(function () { + _this.retryRequest(liElement, metaData, custom); + }, _this.asyncSettings.retryAfterDelay); + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + var pauseButton = liElement.querySelector('.' + PAUSE_UPLOAD) ? + liElement.querySelector('.' + PAUSE_UPLOAD) : liElement.querySelector('.' + RESUME_UPLOAD); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(pauseButton)) { + pauseButton.classList.add(RETRY_ICON); + pauseButton.classList.remove(PAUSE_UPLOAD, RESUME_UPLOAD); + } + _this.updateProgressBarClasses(liElement, UPLOAD_FAILED); + _this.removeProgressbar(liElement, 'failure'); + liElement.querySelector('.e-icons').classList.remove(UPLOAD_INPROGRESS); + var iconElement = liElement.querySelector('.' + ABORT_ICON) ? + liElement.querySelector('.' + ABORT_ICON) : liElement.querySelector('.' + REMOVE_ICON); + iconElement.classList.remove(ABORT_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + PAUSE_UPLOAD))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(liElement.querySelector('.' + PAUSE_UPLOAD)); + } + if (metaData.start > 0) { + iconElement.classList.add(DELETE_ICON); + iconElement.setAttribute('title', _this.localizedTexts('delete')); + } + else { + iconElement.classList.add(REMOVE_ICON); + iconElement.setAttribute('title', _this.localizedTexts('remove')); + } + } + metaData.retryCount = 0; + var file_1 = metaData.file; + var failureMessage = _this.localizedTexts('uploadFailedMessage'); + var args = { + e: e, response: requestResponse, + operation: 'upload', + file: _this.updateStatus(file_1, failureMessage, '0', false), + statusText: failureMessage + }; + _this.trigger('failure', args, function (args) { + _this.updateStatus(file_1, args.statusText, '0'); + _this.uploadSequential(); + _this.checkActionComplete(true); + }); + } + } + }); + }; + Uploader.prototype.retryRequest = function (liElement, metaData, custom) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom) || !custom) && liElement) { + this.updateProgressBarClasses(liElement, UPLOAD_FAILED); + } + metaData.retryCount += 1; + this.sendRequest(metaData.file, metaData); + }; + Uploader.prototype.checkPausePlayAction = function (e) { + var targetElement = e.target; + var selectedElement = e.target.parentElement; + var index = this.fileList.indexOf(selectedElement); + var fileData = this.filesData[index]; + var metaData = this.getCurrentMetaData(fileData); + if (targetElement.classList.contains(PAUSE_UPLOAD)) { + /* istanbul ignore next */ + this.pauseUpload(metaData, e); + } + else if (targetElement.classList.contains(RESUME_UPLOAD)) { + /* istanbul ignore next */ + this.resumeUpload(metaData, e); + } + else if (targetElement.classList.contains(RETRY_ICON)) { + if (metaData.file.status === this.localizedTexts('fileUploadCancel')) { + this.retryUpload(metaData, false); + } + else { + this.retryUpload(metaData, true); + } + } + }; + Uploader.prototype.retryUpload = function (metaData, fromcanceledStage) { + if (fromcanceledStage) { + metaData.end = metaData.end + this.asyncSettings.chunkSize; + metaData.start = metaData.start + this.asyncSettings.chunkSize; + this.sendRequest(metaData.file, metaData); + } + else { + metaData.file.statusCode = '1'; + metaData.file.status = this.localizedTexts('readyToUploadMessage'); + this.chunkUpload(metaData.file); + } + /* istanbul ignore next */ + (this.getLiElement(metaData.file)).classList.add(RESTRICT_RETRY); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Uploader.prototype.chunkUploadInProgress = function (e, metaData, custom) { + var _this = this; + if (metaData.file.statusCode === '4') { + return; + } + if (metaData.file.statusCode !== '4' && metaData.file.statusCode !== '5') { + metaData.file.statusCode = '3'; + metaData.file.status = this.localizedTexts('inProgress'); + } + this.updateMetaData(metaData); + var liElement = this.getLiElement(metaData.file); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + return; + } + var retryElement = liElement.querySelector('.' + RETRY_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(retryElement)) { + retryElement.classList.add(PAUSE_UPLOAD); + retryElement.setAttribute('title', this.localizedTexts('pause')); + retryElement.classList.remove(RETRY_ICON); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + if (!(liElement.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0)) { + var statusElement = liElement.querySelector('.' + STATUS); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template)) { + statusElement.classList.add(UPLOAD_INPROGRESS); + statusElement.classList.remove(UPLOAD_FAILED); + this.createProgressBar(liElement); + this.updateProgressBarClasses(liElement, UPLOAD_INPROGRESS); + } + var clearIcon = liElement.querySelector('.' + REMOVE_ICON) ? liElement.querySelector('.' + REMOVE_ICON) : + liElement.querySelector('.' + DELETE_ICON); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(clearIcon)) { + clearIcon.classList.add(ABORT_ICON); + clearIcon.setAttribute('title', this.localizedTexts('abort')); + clearIcon.classList.remove(REMOVE_ICON); + } + } + if (!isNaN(Math.round((e.loaded / e.total) * 100)) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) && metaData.file.statusCode !== '4') { + var progressVal = void 0; + var totalChunks = Math.ceil(metaData.file.size / this.asyncSettings.chunkSize) - 1; + if (this.asyncSettings.chunkSize && totalChunks) { + progressVal = Math.round(metaData.chunkIndex / totalChunks * 100); + this.changeProgressValue(liElement, progressVal.toString() + '%'); + } + } + if (metaData.chunkIndex === 0) { + this.checkActionButtonStatus(); + } + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + PAUSE_UPLOAD)) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template) + && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement.querySelector('.' + DELETE_ICON))) { + this.pauseButton = this.createElement('span', { className: 'e-icons e-file-pause-btn', attrs: { 'tabindex': this.btnTabIndex } }); + if (this.browserName === 'msie') { + this.pauseButton.classList.add('e-msie'); + } + var abortIcon = liElement.querySelector('.' + ABORT_ICON); + abortIcon.parentElement.insertBefore(this.pauseButton, abortIcon); + this.pauseButton.setAttribute('title', this.localizedTexts('pause')); + this.pauseButton.addEventListener('click', function (e) { + _this.checkPausePlayAction(e); + }, false); + } + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * It is used to convert bytes value into kilobytes or megabytes depending on the size based + * on [binary prefix](https://en.wikipedia.org/wiki/Binary_prefix). + * + * @param { number } bytes - Specifies the file size in bytes. + * @returns {string} + */ + Uploader.prototype.bytesToSize = function (bytes) { + var i = -1; + if (!bytes) { + return '0.0 KB'; + } + do { + bytes = bytes / 1024; + i++; + } while (bytes > 99); + if (i >= 2) { + bytes = bytes * 1024; + i = 1; + } + return Math.max(bytes, 0).toFixed(1) + ' ' + ['KB', 'MB'][i]; + }; + /** + * Allows you to sort the file data alphabetically based on its file name clearly. + * + * @param { FileList } filesData - specifies the files data for upload. + * @returns {File[]} + */ + /* istanbul ignore next */ + Uploader.prototype.sortFileList = function (filesData) { + filesData = filesData ? filesData : this.sortFilesList; + var files = filesData; + var fileNames = []; + for (var i = 0; i < files.length; i++) { + fileNames.push(files[i].name); + } + var sortedFileNames = fileNames.sort(); + var sortedFilesData = []; + for (var _i = 0, sortedFileNames_1 = sortedFileNames; _i < sortedFileNames_1.length; _i++) { + var name_3 = sortedFileNames_1[_i]; + for (var i = 0; i < files.length; i++) { + if (name_3 === files[i].name) { + sortedFilesData.push(files[i]); + } + } + } + return sortedFilesData; + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes. + * + * @method destroy + * @returns {void} + */ + Uploader.prototype.destroy = function () { + this.element.value = null; + this.clearTemplate(); + this.clearAll(); + this.unWireEvents(); + this.unBindDropEvents(); + if (this.multiple) { + this.element.removeAttribute('multiple'); + } + if (!this.enabled) { + this.element.removeAttribute('disabled'); + } + this.element.removeAttribute('accept'); + this.setInitialAttributes(); + var attributes = ['aria-label', 'directory', 'webkitdirectory', 'tabindex']; + for (var _i = 0, attributes_2 = attributes; _i < attributes_2.length; _i++) { + var key = attributes_2[_i]; + this.element.removeAttribute(key); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.uploadWrapper)) { + this.uploadWrapper.parentElement.appendChild(this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.uploadWrapper); + } + this.uploadWrapper = null; + this.uploadWrapper = null; + this.browseButton = null; + this.dropAreaWrapper = null; + this.dropZoneElement = null; + this.dropArea = null; + this.keyboardModule = null; + this.clearButton = null; + this.uploadButton = null; + _super.prototype.destroy.call(this); + }; + /** + * Allows you to call the upload process manually by calling save URL action. + * To process the selected files (added in upload queue), pass an empty argument otherwise + * upload the specific file based on its argument. + * + * @param { FileInfo | FileInfo[] } files - Specifies the files data for upload. + * @param {boolean} custom - Specifies whether the uploader is rendered with custom file list. + * @returns {void} + */ + Uploader.prototype.upload = function (files, custom) { + var _this = this; + files = files ? files : this.filesData; + if (this.sequentialUpload && (this.isFirstFileOnSelection || custom)) { + this.sequenceUpload(files); + } + else { + var uploadFiles_1 = this.getFilesInArray(files); + var eventArgs = { + customFormData: [], + currentRequest: null, + cancel: false + }; + this.trigger('beforeUpload', eventArgs, function (eventArgs) { + if (!eventArgs.cancel) { + _this.uploadFiles(uploadFiles_1, custom); + } + }); + } + }; + Uploader.prototype.getFilesInArray = function (files) { + var uploadFiles = []; + if (files instanceof Array) { + uploadFiles = files; + } + else { + uploadFiles.push(files); + } + return uploadFiles; + }; + /* istanbul ignore next */ + Uploader.prototype.serverReadFileBase64 = function (fileIndex, position, totalCount) { + var _this = this; + return new Promise(function (resolve, reject) { + var file = _this.fileStreams[fileIndex].rawFile; + try { + var reader = new FileReader(); + reader.onload = (function (args) { + return function () { + try { + var contents = args.result; + var data = contents ? contents.split(';base64,')[1] : null; + resolve(data); + } + catch (e) { + reject(e); + } + }; + })(reader); + reader.readAsDataURL(file.slice(position, position + totalCount)); + } + catch (e) { + reject(e); + } + }); + }; + /* eslint-disable @typescript-eslint/no-unused-vars */ + /* istanbul ignore next */ + Uploader.prototype.uploadFileCount = function (ele) { + /* eslint-enable @typescript-eslint/no-unused-vars */ + var files = this.filesData; + if (!files || files.length === 0) { + return -1; + } + var result = files.length; + return result; + }; + /* eslint-disable @typescript-eslint/no-unused-vars */ + /* istanbul ignore next */ + Uploader.prototype.getFileRead = function (index, ele) { + /* eslint-enable @typescript-eslint/no-unused-vars */ + var files = this.filesData; + if (!files || files.length === 0) { + return -1; + } + var file = files[index]; + var fileCount = this.newFileRef++; + this.fileStreams[fileCount] = file; + return fileCount; + }; + /* eslint-disable @typescript-eslint/no-unused-vars */ + /* istanbul ignore next */ + Uploader.prototype.getFileInfo = function (index, ele) { + /* eslint-enable @typescript-eslint/no-unused-vars */ + var files = this.filesData; + if (!files || files.length === 0) { + return null; + } + var file = files[index]; + if (!file) { + return null; + } + return this.filesData[index]; + }; + Uploader.prototype.uploadFiles = function (files, custom) { + var selectedFiles = []; + if (this.asyncSettings.saveUrl === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.asyncSettings.saveUrl)) { + return; + } + if (!custom || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(custom)) { + if (!this.multiple) { + var file = []; + file.push(files[0]); + selectedFiles = this.filterfileList(file); + } + else { + selectedFiles = this.filterfileList(files); + } + } + else { + selectedFiles = files; + } + for (var i = 0; i < selectedFiles.length; i++) { + this.uploadFilesRequest(selectedFiles, i, custom); + } + }; + Uploader.prototype.uploadFilesRequest = function (selectedFiles, i, custom) { + var _this = this; + var cloneFiles = []; + var chunkEnabled = this.checkChunkUpload(); + var ajax = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Ajax"](this.asyncSettings.saveUrl, 'POST', true, null); + ajax.emitError = false; + var getFileData; + var eventArgs = { + fileData: selectedFiles[i], + customFormData: [], + cancel: false + }; + var formData = new FormData(); + ajax.beforeSend = function (e) { + eventArgs.currentRequest = ajax.httpRequest; + _this.trigger('uploading', eventArgs, function (eventArgs) { + /* istanbul ignore next */ + if (eventArgs.cancel) { + _this.eventCancelByArgs(e, eventArgs, selectedFiles[i]); + } + _this.updateFormData(formData, eventArgs.customFormData); + }); + }; + if (selectedFiles[i].statusCode === '1') { + var name_4 = this.element.getAttribute('name'); + formData.append(name_4, selectedFiles[i].rawFile, selectedFiles[i].name); + if (chunkEnabled && selectedFiles[i].size > this.asyncSettings.chunkSize) { + this.chunkUpload(selectedFiles[i], custom, i); + } + else { + ajax.onLoad = function (e) { + if (eventArgs.cancel) { + return {}; + } + else { + _this.uploadComplete(e, selectedFiles[i], custom); + return {}; + } + }; + ajax.onUploadProgress = function (e) { + if (eventArgs.cancel) { + return {}; + } + else { + _this.uploadInProgress(e, selectedFiles[i], custom, ajax); + return {}; + } + }; + /* istanbul ignore next */ + ajax.onError = function (e) { + _this.uploadFailed(e, selectedFiles[i]); + return {}; + }; + ajax.send(formData); + } + } + }; + Uploader.prototype.spliceFiles = function (liIndex) { + var liElement = this.fileList[liIndex]; + var allFiles = this.getFilesData(); + var nameElements = +liElement.getAttribute('data-files-count'); + var startIndex = 0; + for (var i = 0; i < liIndex; i++) { + startIndex += (+this.fileList[i].getAttribute('data-files-count')); + } + var endIndex = (startIndex + nameElements) - 1; + for (var j = endIndex; j >= startIndex; j--) { + allFiles.splice(j, 1); + } + }; + /* eslint-disable valid-jsdoc, jsdoc/require-param */ + /** + * Remove the uploaded file from server manually by calling the remove URL action. + * If you pass an empty argument to this method, the complete file list can be cleared, + * otherwise remove the specific file based on its argument (“file_data”). + * + * @param { FileInfo | FileInfo[] } fileData - specifies the files data to remove from file list/server. + * @param { boolean } customTemplate - Set true if the component rendering with customize template. + * @param { boolean } removeDirectly - Set true if files remove without removing event. + * @param { boolean } postRawFile - Set false, to post file name only to the remove action. + * @returns {void} + */ + Uploader.prototype.remove = function (fileData, customTemplate, removeDirectly, postRawFile, args) { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(postRawFile)) { + postRawFile = true; + } + var eventArgs = { + event: args, + cancel: false, + filesData: [], + customFormData: [], + postRawFile: postRawFile, + currentRequest: null + }; + var beforeEventArgs = { + cancel: false, + customFormData: [], + currentRequest: null + }; + this.trigger('beforeRemove', beforeEventArgs, function (beforeEventArgs) { + if (!beforeEventArgs.cancel) { + if (_this.isFormUpload()) { + eventArgs.filesData = fileData; + _this.trigger('removing', eventArgs, function (eventArgs) { + if (!eventArgs.cancel) { + var removingFiles = _this.getFilesInArray(fileData); + var isLiRemoved = false; + var liIndex = void 0; + for (var _i = 0, removingFiles_1 = removingFiles; _i < removingFiles_1.length; _i++) { + var data = removingFiles_1[_i]; + if (!isLiRemoved) { + liIndex = _this.fileList.indexOf(data.list); + } + if (liIndex > -1) { + var inputElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data.input) ? data.input : null; + if (inputElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(inputElement); + } + _this.spliceFiles(liIndex); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(_this.fileList[liIndex]); + _this.fileList.splice(liIndex, 1); + isLiRemoved = true; + liIndex = -1; + } + } + } + }); + } + else if (_this.isForm && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.asyncSettings.removeUrl) || _this.asyncSettings.removeUrl === '')) { + eventArgs.filesData = _this.getFilesData(); + _this.trigger('removing', eventArgs, function (eventArgs) { + if (!eventArgs.cancel) { + _this.clearAll(); + } + }); + } + else { + var removeFiles = []; + fileData = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fileData) ? fileData : _this.filesData; + if (fileData instanceof Array) { + removeFiles = fileData; + } + else { + removeFiles.push(fileData); + } + eventArgs.filesData = removeFiles; + var removeUrl = _this.asyncSettings.removeUrl; + var validUrl = (removeUrl === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(removeUrl)) ? false : true; + var _loop_5 = function (files) { + var fileUploadedIndex = _this.uploadedFilesData.indexOf(files); + if ((files.statusCode === '2' || files.statusCode === '4' || (files.statusCode === '0' && + fileUploadedIndex !== -1)) && validUrl) { + _this.removeUploadedFile(files, eventArgs, removeDirectly, customTemplate); + } + else { + if (!removeDirectly) { + _this.trigger('removing', eventArgs, function (eventArgs) { + if (!eventArgs.cancel) { + _this.removeFilesData(files, customTemplate); + } + }); + } + else { + _this.removeFilesData(files, customTemplate); + } + } + if (args && !args.target.classList.contains(REMOVE_ICON)) { + _this.checkActionComplete(false); + } + }; + for (var _i = 0, removeFiles_1 = removeFiles; _i < removeFiles_1.length; _i++) { + var files = removeFiles_1[_i]; + _loop_5(files); + } + } + } + }); + }; + /* eslint-enable valid-jsdoc, jsdoc/require-param */ + /** + * Clear all the file entries from list that can be uploaded files or added in upload queue. + * + * @returns {void} + */ + Uploader.prototype.clearAll = function () { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.listParent)) { + if (this.browserName !== 'msie') { + this.element.value = ''; + } + this.filesData = []; + return; + } + var eventArgs = { + cancel: false, + filesData: this.filesData + }; + this.trigger('clearing', eventArgs, function (eventArgs) { + if (!eventArgs.cancel) { + _this.clearData(); + _this.actionCompleteCount = 0; + _this.count = -1; + } + }); + }; + /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Get the data of files which are shown in file list. + * + * @param { number } index - specifies the file list item(li) index. + * @returns {FileInfo[]} + */ + Uploader.prototype.getFilesData = function (index) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + return this.filesData; + } + else { + return this.getSelectedFiles(index); + } + }; + /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */ + /** + * Pauses the in-progress chunked upload based on the file data. + * + * @param { FileInfo | FileInfo[] } fileData - specifies the files data to pause from uploading. + * @param { boolean } custom - Set true if used custom UI. + * @returns {void} + */ + Uploader.prototype.pause = function (fileData, custom) { + fileData = fileData ? fileData : this.filesData; + var fileDataFiles = this.getFilesInArray(fileData); + this.pauseUploading(fileDataFiles, custom); + }; + Uploader.prototype.pauseUploading = function (fileData, custom) { + var files = this.getFiles(fileData); + for (var i = 0; i < files.length; i++) { + if (files[i].statusCode === '3') { + this.pauseUpload(this.getCurrentMetaData(files[i], null), null, custom); + } + } + }; + Uploader.prototype.getFiles = function (fileData) { + var files = []; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fileData) && !(fileData instanceof Array)) { + files.push(fileData); + } + else { + files = fileData; + } + return files; + }; + /** + * Resumes the chunked upload that is previously paused based on the file data. + * + * @param { FileInfo | FileInfo[] } fileData - specifies the files data to resume the paused file. + * @param { boolean } custom - Set true if used custom UI. + * @returns {void} + */ + Uploader.prototype.resume = function (fileData, custom) { + fileData = fileData ? fileData : this.filesData; + var fileDataFiles = this.getFilesInArray(fileData); + this.resumeFiles(fileDataFiles, custom); + }; + Uploader.prototype.resumeFiles = function (fileData, custom) { + var files = this.getFiles(fileData); + for (var i = 0; i < files.length; i++) { + if (files[i].statusCode === '4') { + this.resumeUpload(this.getCurrentMetaData(files[i], null), null, custom); + } + } + }; + /** + * Retries the canceled or failed file upload based on the file data. + * + * @param { FileInfo | FileInfo[] } fileData - specifies the files data to retry the canceled or failed file. + * @param { boolean } fromcanceledStage - Set true to retry from canceled stage and set false to retry from initial stage. + * @param {boolean} custom -Specifies whether the uploader is rendered with custom file list. + * @returns {void} + */ + Uploader.prototype.retry = function (fileData, fromcanceledStage, custom) { + fileData = fileData ? fileData : this.filesData; + var fileDataFiles = this.getFilesInArray(fileData); + if (this.sequentialUpload && this.isFirstFileOnSelection) { + this.isFirstFileOnSelection = false; + } + this.retryFailedFiles(fileDataFiles, fromcanceledStage, custom); + }; + Uploader.prototype.retryFailedFiles = function (fileData, fromcanceledStage, custom) { + var files = this.getFiles(fileData); + for (var i = 0; i < files.length; i++) { + if (files[i].statusCode === '5' || files[i].statusCode === '0') { + if (this.asyncSettings.chunkSize > 0 && this.getCurrentMetaData(files[i], null)) { + this.retryUpload(this.getCurrentMetaData(files[i], null), fromcanceledStage); + } + else { + var liElement = void 0; + if (!custom) { + liElement = this.fileList[this.filesData.indexOf(files[i])]; + } + this.reloadcanceledFile(null, files[i], liElement, custom); + } + } + } + }; + /** + * Stops the in-progress chunked upload based on the file data. + * When the file upload is canceled, the partially uploaded file is removed from server. + * + * @param { FileInfo | FileInfo[] } fileData - specifies the files data to cancel the progressing file. + * @returns {void} + */ + Uploader.prototype.cancel = function (fileData) { + fileData = fileData ? fileData : this.filesData; + var cancelingFiles = this.getFilesInArray(fileData); + this.cancelUpload(cancelingFiles); + }; + Uploader.prototype.cancelUpload = function (fileData) { + var files = this.getFiles(fileData); + if (this.asyncSettings.chunkSize > 0) { + for (var i = 0; i < files.length; i++) { + if (files[i].statusCode === '3') { + var metaData = this.getCurrentMetaData(files[i], null); + metaData.file.statusCode = '5'; + metaData.file.status = this.localizedTexts('fileUploadCancel'); + this.updateMetaData(metaData); + this.showHideUploadSpinner(files[i]); + } + } + } + else { + for (var i = 0; i < files.length; i++) { + if (files[i].statusCode === '3') { + files[i].statusCode = '5'; + files[i].status = this.localizedTexts('fileUploadCancel'); + this.showHideUploadSpinner(files[i]); + } + } + } + }; + Uploader.prototype.showHideUploadSpinner = function (files) { + var liElement = this.getLiElement(files); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.template)) { + var spinnerTarget = liElement.querySelector('.' + ABORT_ICON); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["createSpinner"])({ target: spinnerTarget, width: '20px' }); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["showSpinner"])(spinnerTarget); + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ saveUrl: '', removeUrl: '' }, AsyncSettings) + ], Uploader.prototype, "asyncSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Uploader.prototype, "sequentialUpload", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], Uploader.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Uploader.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Uploader.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Uploader.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Uploader.prototype, "multiple", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Uploader.prototype, "autoUpload", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Uploader.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, ButtonsProps) + ], Uploader.prototype, "buttons", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Uploader.prototype, "allowedExtensions", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Uploader.prototype, "minFileSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(30000000) + ], Uploader.prototype, "maxFileSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Uploader.prototype, "dropArea", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([{}], FilesProp) + ], Uploader.prototype, "files", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Uploader.prototype, "showFileList", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Uploader.prototype, "directoryUpload", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], Uploader.prototype, "dropEffect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "actionComplete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "rendering", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "beforeUpload", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "fileListRendering", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "selected", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "uploading", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "success", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "failure", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "removing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "beforeRemove", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "clearing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "progress", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "chunkSuccess", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "chunkFailure", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "chunkUploading", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "canceling", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "pausing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Uploader.prototype, "resuming", void 0); + Uploader = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Uploader); + return Uploader; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + +/* eslint-enable @typescript-eslint/no-explicit-any */ + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/common/index.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/common/index.js ***! + \*****************************************************************/ +/*! exports provided: cssClass, ListBase, getFieldValues */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _list_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list-base */ "./ej2-resources/22.1.37/scripts/ej2-lists/common/list-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssClass", function() { return _list_base__WEBPACK_IMPORTED_MODULE_0__["cssClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListBase", function() { return _list_base__WEBPACK_IMPORTED_MODULE_0__["ListBase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFieldValues", function() { return _list_base__WEBPACK_IMPORTED_MODULE_0__["getFieldValues"]; }); + +/** + * Listview Component + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/common/list-base.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/common/list-base.js ***! + \*********************************************************************/ +/*! exports provided: cssClass, ListBase, getFieldValues */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssClass", function() { return cssClass; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListBase", function() { return ListBase; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFieldValues", function() { return getFieldValues; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); +/* eslint-disable no-inner-declarations */ + + + + +var cssClass = { + li: 'e-list-item', + ul: 'e-list-parent e-ul', + group: 'e-list-group-item', + icon: 'e-list-icon', + text: 'e-list-text', + check: 'e-list-check', + checked: 'e-checked', + selected: 'e-selected', + expanded: 'e-expanded', + textContent: 'e-text-content', + hasChild: 'e-has-child', + level: 'e-level', + url: 'e-list-url', + collapsible: 'e-icon-collapsible', + disabled: 'e-disabled', + image: 'e-list-img', + iconWrapper: 'e-icon-wrapper', + anchorWrap: 'e-anchor-wrap', + navigable: 'e-navigable' +}; +/** + * Base List Generator + */ +// eslint-disable-next-line @typescript-eslint/no-namespace +var ListBase; +(function (ListBase) { + /** + * + * Default mapped fields. + */ + ListBase.defaultMappedFields = { + id: 'id', + text: 'text', + url: 'url', + value: 'value', + isChecked: 'isChecked', + enabled: 'enabled', + expanded: 'expanded', + selected: 'selected', + iconCss: 'iconCss', + child: 'child', + isVisible: 'isVisible', + hasChildren: 'hasChildren', + tooltip: 'tooltip', + htmlAttributes: 'htmlAttributes', + urlAttributes: 'urlAttributes', + imageAttributes: 'imageAttributes', + imageUrl: 'imageUrl', + groupBy: null, + sortBy: null + }; + var defaultAriaAttributes = { + level: 1, + listRole: 'presentation', + itemRole: 'presentation', + groupItemRole: 'group', + itemText: 'list-item', + wrapperRole: 'presentation' + }; + var defaultListBaseOptions = { + showCheckBox: false, + showIcon: false, + enableHtmlSanitizer: false, + expandCollapse: false, + fields: ListBase.defaultMappedFields, + ariaAttributes: defaultAriaAttributes, + listClass: '', + itemClass: '', + processSubChild: false, + sortOrder: 'None', + template: null, + groupTemplate: null, + headerTemplate: null, + expandIconClass: 'e-icon-collapsible', + moduleName: 'list', + expandIconPosition: 'Right', + itemNavigable: false + }; + /** + * Function helps to created and return the UL Li element based on your data. + * + * @param {createElementParams} createElement - Specifies an array of JSON data. + * + * @param {{Object}[]} dataSource - Specifies an array of JSON data. + * + * @param {ListBaseOptions} options? - Specifies the list options that need to provide. + * + * @param {boolean} isSingleLevel? - Specifies the list options that need to provide. + * + * @param {any} componentInstance? - Specifies the list options that need to provide. + * + * @returns {createElement} createListFromJson - Specifies the list options that need to provide. + */ + function createList(createElement, dataSource, + // eslint-disable-next-line + options, isSingleLevel, componentInstance) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var ariaAttributes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultAriaAttributes, curOpt.ariaAttributes); + var type = typeofData(dataSource).typeof; + if (type === 'string' || type === 'number') { + return createListFromArray(createElement, dataSource, isSingleLevel, options, componentInstance); + } + else { + return createListFromJson(createElement, dataSource, options, ariaAttributes.level, isSingleLevel, componentInstance); + } + } + ListBase.createList = createList; + /** + * Function helps to created an element list based on string array input . + * + * @param {createElementParams} createElement - Specifies an array of JSON data. + * + * @param {{Object}[]} dataSource - Specifies an array of JSON data. + * + * @param {ListBaseOptions} options? - Specifies the list options that need to provide. + * + * @param {boolean} isSingleLevel? - Specifies the list options that need to provide. + * + * @param {any} componentInstance? - Specifies the list options that need to provide. + * + * @returns {createElement} generateUL - returns the list options that need to provide. + */ + function createListFromArray(createElement, dataSource, + // tslint:disable-next-line + // eslint-disable-next-line + isSingleLevel, options, componentInstance) { + var subChild = createListItemFromArray(createElement, dataSource, isSingleLevel, options, componentInstance); + return generateUL(createElement, subChild, null, options); + } + ListBase.createListFromArray = createListFromArray; + /** + * Function helps to created an element list based on string array input . + * + * @param {createElementParams} createElement - Specifies an array of JSON data. + * + * @param {{Object}[]} dataSource - Specifies an array of JSON data. + * + * @param {ListBaseOptions} options? - Specifies the list options that need to provide. + * + * @param {boolean} isSingleLevel? - Specifies the list options that need to provide. + * + * @param {any} componentInstance? - Specifies the list options that need to provide. + * + * @returns {HTMLElement[]} subChild - returns the list options that need to provide. + */ + function createListItemFromArray(createElement, dataSource, + // eslint-disable-next-line + isSingleLevel, options, componentInstance) { + var subChild = []; + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + cssClass = getModuleClass(curOpt.moduleName); + var id = generateId(); // generate id for drop-down-list option. + for (var i = 0; i < dataSource.length; i++) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataSource[i])) { + continue; + } + var li = void 0; + if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') { + var curData = { + dataSource: dataSource, + curData: dataSource[i], + text: dataSource[i], + options: curOpt + }; + curOpt.itemCreating(curData); + } + if (isSingleLevel) { + li = generateSingleLevelLI(createElement, dataSource[i], undefined, null, null, [], null, id, i, options); + } + else { + li = generateLI(createElement, dataSource[i], undefined, null, null, options, componentInstance); + } + if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') { + var curData = { + dataSource: dataSource, + curData: dataSource[i], + text: dataSource[i], + item: li, + options: curOpt + }; + curOpt.itemCreated(curData); + } + subChild.push(li); + } + return subChild; + } + ListBase.createListItemFromArray = createListItemFromArray; + /** + * Function helps to created an element list based on array of JSON input . + * + * @param {createElementParams} createElement - Specifies an array of JSON data. + * + * @param {{Object}[]} dataSource - Specifies an array of JSON data. + * + * @param {ListBaseOptions} options? - Specifies the list options that need to provide. + * + * @param {boolean} isSingleLevel? - Specifies the list options that need to provide. + * + * @param {number} level? - Specifies the list options that need to provide. + * + * @param {any} componentInstance? - Specifies the list options that need to provide. + * + * @returns {HTMLElement[]} child - returns the list options that need to provide. + */ + function createListItemFromJson(createElement, dataSource, + // eslint-disable-next-line + options, level, isSingleLevel, componentInstance) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + cssClass = getModuleClass(curOpt.moduleName); + var fields = (componentInstance && + (componentInstance.getModuleName() === 'listview' || componentInstance.getModuleName() === 'multiselect')) + ? curOpt.fields : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, ListBase.defaultMappedFields, curOpt.fields); + var ariaAttributes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultAriaAttributes, curOpt.ariaAttributes); + var id; + var checkboxElement = []; + if (level) { + ariaAttributes.level = level; + } + var child = []; + var li; + var anchorElement; + if (dataSource && dataSource.length && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(typeofData(dataSource).item) && + // eslint-disable-next-line no-prototype-builtins + !typeofData(dataSource).item.hasOwnProperty(fields.id)) { + id = generateId(); // generate id for drop-down-list option. + } + for (var i = 0; i < dataSource.length; i++) { + var fieldData = getFieldValues(dataSource[i], fields); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataSource[i])) { + continue; + } + if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') { + var curData = { + dataSource: dataSource, + curData: dataSource[i], + text: fieldData[fields.text], + options: curOpt, + fields: fields + }; + curOpt.itemCreating(curData); + } + var curItem = dataSource[i]; + if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') { + fieldData = getFieldValues(dataSource[i], fields); + } + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.id) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[fields.id])) { + id = fieldData[fields.id]; + } + var innerEle = []; + if (curOpt.showCheckBox) { + if (curOpt.itemNavigable && (fieldData[fields.url] || fieldData[fields.urlAttributes])) { + checkboxElement.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } })); + } + else { + innerEle.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } })); + } + } + if (isSingleLevel === true) { + // eslint-disable-next-line no-prototype-builtins + if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[fields.iconCss])) { + innerEle.push(createElement('span', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] })); + } + li = generateSingleLevelLI(createElement, curItem, fieldData, fields, curOpt.itemClass, innerEle, + // eslint-disable-next-line no-prototype-builtins + (curItem.hasOwnProperty('isHeader') && + curItem.isHeader) ? true : false, id, i, options); + anchorElement = li.querySelector('.' + cssClass.anchorWrap); + if (curOpt.itemNavigable && checkboxElement.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])(checkboxElement, li.firstElementChild); + } + } + else { + li = generateLI(createElement, curItem, fieldData, fields, curOpt.itemClass, options, componentInstance); + li.classList.add(cssClass.level + '-' + ariaAttributes.level); + li.setAttribute('aria-level', ariaAttributes.level.toString()); + if (ariaAttributes.groupItemRole == 'presentation') { + li.removeAttribute('aria-level'); + } + anchorElement = li.querySelector('.' + cssClass.anchorWrap); + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.tooltip)) { + li.setAttribute('title', fieldData[fields.tooltip]); + } + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) { + setAttribute(li, fieldData[fields.htmlAttributes]); + } + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled] === false) { + li.classList.add(cssClass.disabled); + } + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.isVisible) && fieldData[fields.isVisible] === false) { + li.style.display = 'none'; + } + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.imageUrl) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[fields.imageUrl]) + && !curOpt.template) { + var attr = { src: fieldData[fields.imageUrl] }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(attr, fieldData[fields.imageAttributes]); + var imageElemnt = createElement('img', { className: cssClass.image, attrs: attr }); + if (anchorElement) { + anchorElement.insertAdjacentElement('afterbegin', imageElemnt); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])([imageElemnt], li.firstElementChild); + } + } + // eslint-disable-next-line no-prototype-builtins + if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[fields.iconCss]) && !curOpt.template) { + var iconElement = createElement('div', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] }); + if (anchorElement) { + anchorElement.insertAdjacentElement('afterbegin', iconElement); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])([iconElement], li.firstElementChild); + } + } + if (innerEle.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])(innerEle, li.firstElementChild); + } + if (curOpt.itemNavigable && checkboxElement.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])(checkboxElement, li.firstElementChild); + } + processSubChild(createElement, fieldData, fields, dataSource, curOpt, li, ariaAttributes.level); + } + if (anchorElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([li], [cssClass.navigable]); + } + if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') { + var curData = { + dataSource: dataSource, + curData: dataSource[i], + text: fieldData[fields.text], + item: li, + options: curOpt, + fields: fields + }; + curOpt.itemCreated(curData); + } + checkboxElement = []; + child.push(li); + } + return child; + } + ListBase.createListItemFromJson = createListItemFromJson; + /** + * Function helps to created an element list based on array of JSON input . + * + * @param {createElementParams} createElement - Specifies an array of JSON data. + * + * @param {{Object}[]} dataSource - Specifies an array of JSON data. + * + * @param {ListBaseOptions} options? - Specifies the list options that need to provide. + * + * @param {number} level? - Specifies the list options that need to provide. + * + * @param {boolean} isSingleLevel? - Specifies the list options that need to provide. + * + * @param {any} componentInstance? - Specifies the list options that need to provide. + * + * @returns {createElement} generateUL - Specifies the list options that need to provide. + */ + function createListFromJson(createElement, dataSource, + // eslint-disable-next-line + options, level, isSingleLevel, componentInstance) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var li = createListItemFromJson(createElement, dataSource, options, level, isSingleLevel, componentInstance); + return generateUL(createElement, li, curOpt.listClass, options); + } + ListBase.createListFromJson = createListFromJson; + /** + * Return the next or previous visible element. + * + * @param {Element[]|NodeList} elementArray - An element array to find next or previous element. + * @param {Element} li - An element to find next or previous after this element. + * @param {boolean} isPrevious? - Specify when the need get previous element from array. + */ + function getSiblingLI(elementArray, element, isPrevious) { + cssClass = getModuleClass(defaultListBaseOptions.moduleName); + if (!elementArray || !elementArray.length) { + return void 0; + } + var siblingLI; + var liIndex; + var liCollections = Array.prototype.slice.call(elementArray); + if (element) { + liIndex = indexOf(element, liCollections); + } + else { + liIndex = (isPrevious === true ? liCollections.length : -1); + } + siblingLI = liCollections[liIndex + (isPrevious === true ? -1 : 1)]; + while (siblingLI && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(siblingLI) || siblingLI.classList.contains(cssClass.disabled))) { + liIndex = liIndex + (isPrevious === true ? -1 : 1); + siblingLI = liCollections[liIndex]; + } + return siblingLI; + } + ListBase.getSiblingLI = getSiblingLI; + /** + * Return the index of the li element + * + * @param {Element} item - An element to find next or previous after this element. + * @param {Element[]} elementArray - An element array to find index of given li. + */ + function indexOf(item, elementArray) { + if (!elementArray || !item) { + return void 0; + } + else { + var liCollections = elementArray; + liCollections = Array.prototype.slice.call(elementArray); + return liCollections.indexOf(item); + } + } + ListBase.indexOf = indexOf; + /** + * Returns the grouped data from given dataSource. + * + * @param {{Object}[]} dataSource - The JSON data which is necessary to process. + * @param {FieldsMapping} fields - Fields that are mapped from the data source. + * @param {SortOrder} sortOrder- Specifies final result sort order. + */ + function groupDataSource(dataSource, fields, sortOrder) { + if (sortOrder === void 0) { sortOrder = 'None'; } + var curFields = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, ListBase.defaultMappedFields, fields); + var cusQuery = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().group(curFields.groupBy); + // need to remove once sorting issues fixed in DataManager + cusQuery = addSorting(sortOrder, 'key', cusQuery); + var ds = getDataSource(dataSource, cusQuery); + dataSource = []; + for (var j = 0; j < ds.length; j++) { + var itemObj = ds[j].items; + var grpItem = {}; + var hdr = 'isHeader'; + grpItem[curFields.text] = ds[j].key; + grpItem["" + hdr] = true; + var newtext = curFields.text; + if (newtext === 'id') { + newtext = 'text'; + grpItem["" + newtext] = ds[j].key; + } + grpItem._id = 'group-list-item-' + (ds[j].key ? + ds[j].key.toString().trim() : 'undefined'); + grpItem.items = itemObj; + dataSource.push(grpItem); + for (var k = 0; k < itemObj.length; k++) { + dataSource.push(itemObj[k]); + } + } + return dataSource; + } + ListBase.groupDataSource = groupDataSource; + /** + * Returns a sorted query object. + * + * @param {SortOrder} sortOrder - Specifies that sort order. + * @param {string} sortBy - Specifies sortBy fields. + * @param {Query} query - Pass if any existing query. + */ + function addSorting(sortOrder, sortBy, query) { + if (query === void 0) { query = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"](); } + if (sortOrder === 'Ascending') { + query.sortBy(sortBy, 'ascending', true); + } + else if (sortOrder === 'Descending') { + query.sortBy(sortBy, 'descending', true); + } + else { + for (var i = 0; i < query.queries.length; i++) { + if (query.queries[i].fn === 'onSortBy') { + query.queries.splice(i, 1); + } + } + } + return query; + } + ListBase.addSorting = addSorting; + /** + * Return an array of JSON Data that processed based on queries. + * + * @param {{Object}[]} dataSource - Specifies local JSON data source. + * + * @param {Query} query - Specifies query that need to process. + */ + function getDataSource(dataSource, query) { + // eslint-disable-next-line + return new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](dataSource) + .executeLocal(query); + } + ListBase.getDataSource = getDataSource; + /** + * Created JSON data based the UL and LI element + * + * @param {HTMLElement|Element} element - UL element that need to convert as a JSON + * @param {ListBaseOptions} options? - Specifies listbase option for fields. + */ + function createJsonFromElement(element, options) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var fields = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, ListBase.defaultMappedFields, curOpt.fields); + var curEle = element.cloneNode(true); + // eslint-disable-next-line + var jsonAr = []; + curEle.classList.add('json-parent'); + var childs = curEle.querySelectorAll('.json-parent>li'); + curEle.classList.remove('json-parent'); + for (var i = 0; i < childs.length; i++) { + var li = childs[i]; + var anchor = li.querySelector('a'); + var ul = li.querySelector('ul'); + // eslint-disable-next-line + var json = {}; + var childNodes = anchor ? anchor.childNodes : li.childNodes; + var keys = Object.keys(childNodes); + for (var i_1 = 0; i_1 < childNodes.length; i_1++) { + if (!(childNodes[Number(keys[i_1])]).hasChildNodes()) { + json[fields.text] = childNodes[Number(keys[i_1])].textContent; + } + } + var attributes_1 = getAllAttributes(li); + if (attributes_1.id) { + json[fields.id] = attributes_1.id; + delete attributes_1.id; + } + else { + json[fields.id] = generateId(); + } + if (Object.keys(attributes_1).length) { + json[fields.htmlAttributes] = attributes_1; + } + if (anchor) { + attributes_1 = getAllAttributes(anchor); + if (Object.keys(attributes_1).length) { + json[fields.urlAttributes] = attributes_1; + } + } + if (ul) { + json[fields.child] = createJsonFromElement(ul, options); + } + jsonAr.push(json); + } + return jsonAr; + } + ListBase.createJsonFromElement = createJsonFromElement; + function typeofData(data) { + var match = { typeof: null, item: null }; + for (var i = 0; i < data.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data[i])) { + return match = { typeof: typeof data[i], item: data[i] }; + } + } + return match; + } + function setAttribute(element, elementAttributes) { + var attr = {}; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(attr, elementAttributes); + if (attr.class) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([element], attr.class.split(' ')); + delete attr.class; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(element, attr); + } + function getAllAttributes(element) { + var attributes = {}; + var attr = element.attributes; + for (var index = 0; index < attr.length; index++) { + attributes[attr[index].nodeName] = attr[index].nodeValue; + } + return attributes; + } + /** + * Created UL element from content template. + * + * @param {string} template - that need to convert and generate li element. + * @param {{Object}[]} dataSource - Specifies local JSON data source. + * @param {ListBaseOptions} options? - Specifies listbase option for fields. + */ + function renderContentTemplate(createElement, template, dataSource, + // eslint-disable-next-line + fields, options, componentInstance) { + cssClass = getModuleClass(defaultListBaseOptions.moduleName); + var ulElement = createElement('ul', { className: cssClass.ul, attrs: { role: 'presentation' } }); + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var curFields = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, ListBase.defaultMappedFields, fields); + // eslint-disable-next-line + var compiledString = compileTemplate(template); + var liCollection = []; + var value; + var id = generateId(); // generate id for drop-down-list option. + for (var i = 0; i < dataSource.length; i++) { + var fieldData = getFieldValues(dataSource[i], curFields); + var curItem = dataSource[i]; + var isHeader = curItem.isHeader; + if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') { + value = curItem; + } + else { + value = fieldData[curFields.value]; + } + if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') { + var curData = { + dataSource: dataSource, + curData: curItem, + text: value, + options: curOpt, + fields: curFields + }; + curOpt.itemCreating(curData); + } + if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') { + fieldData = getFieldValues(dataSource[i], curFields); + if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') { + value = curItem; + } + else { + value = fieldData[curFields.value]; + } + } + var li = createElement('li', { + id: id + '-' + i, + className: isHeader ? cssClass.group : cssClass.li, attrs: { role: 'presentation' } + }); + if (isHeader) { + if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') { + li.innerText = curItem; + } + else { + li.innerText = fieldData[curFields.text]; + } + } + else { + var currentID = isHeader ? curOpt.groupTemplateID : curOpt.templateID; + if (isHeader) { + if (componentInstance && componentInstance.getModuleName() != 'listview') { + // eslint-disable-next-line + var compiledElement = compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate, null, li); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, li); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate), li); + } + } + else { + if (componentInstance && componentInstance.getModuleName() !== 'listview') { + // eslint-disable-next-line + var compiledElement = compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate, null, li); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, li); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate), li); + } + } + li.setAttribute('data-value', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(value) ? 'null' : value); + li.setAttribute('role', 'option'); + } + if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') { + var curData = { + dataSource: dataSource, + curData: curItem, + text: value, + item: li, + options: curOpt, + fields: curFields + }; + curOpt.itemCreated(curData); + } + liCollection.push(li); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(liCollection, ulElement); + return ulElement; + } + ListBase.renderContentTemplate = renderContentTemplate; + /** + * Created header items from group template. + * + * @param {string} template - that need to convert and generate li element. + * + * @param {{Object}[]} dataSource - Specifies local JSON data source. + * + * @param {FieldsMapping} fields - Specifies fields for mapping the dataSource. + * + * @param {Element[]} headerItems? - Specifies listbase header items. + */ + // tslint:disable-next-line + function renderGroupTemplate(groupTemplate, groupDataSource, fields, + // eslint-disable-next-line + headerItems, options, componentInstance) { + // eslint-disable-next-line @typescript-eslint/ban-types + var compiledString = compileTemplate(groupTemplate); + var curFields = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, ListBase.defaultMappedFields, fields); + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var category = curFields.groupBy; + for (var _i = 0, headerItems_1 = headerItems; _i < headerItems_1.length; _i++) { + var header = headerItems_1[_i]; + var headerData = {}; + headerData["" + category] = header.textContent; + header.innerHTML = ''; + if (componentInstance && componentInstance.getModuleName() !== "listview") { + // eslint-disable-next-line + var compiledElement = compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, header); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, header); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), header); + } + } + return headerItems; + } + ListBase.renderGroupTemplate = renderGroupTemplate; + function generateId() { + return Math.floor((1 + Math.random()) * 0x10000) + .toString(16) + .substring(1); + } + ListBase.generateId = generateId; + function processSubChild(createElement, fieldData, fields, ds, options, element, level) { + // Get SubList + var subDS = fieldData[fields.child] || []; + var hasChildren = fieldData[fields.hasChildren]; + //Create Sub child + if (subDS.length) { + hasChildren = true; + element.classList.add(cssClass.hasChild); + if (options.processSubChild) { + var subLi = createListFromJson(createElement, subDS, options, ++level); + element.appendChild(subLi); + } + } + // Create expand and collapse node + if (!!options.expandCollapse && hasChildren && !options.template) { + element.firstElementChild.classList.add(cssClass.iconWrapper); + // eslint-disable-next-line @typescript-eslint/ban-types + var expandElement = options.expandIconPosition === 'Left' ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"]; + expandElement([createElement('div', { className: 'e-icons ' + options.expandIconClass })], element.querySelector('.' + cssClass.textContent)); + } + } + function generateSingleLevelLI(createElement, item, fieldData, fields, className, innerElements, grpLI, id, index, options) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var ariaAttributes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultAriaAttributes, curOpt.ariaAttributes); + var text = item; + var value = item; + var dataSource; + if (typeof item !== 'string' && typeof item !== 'number' && typeof item !== 'boolean') { + dataSource = item; + text = (typeof fieldData[fields.text] === 'boolean' || typeof fieldData[fields.text] === 'number') ? + fieldData[fields.text] : (fieldData[fields.text] || ''); + value = fieldData[fields.value]; + } + var elementID; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataSource) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[fields.id]) + && fieldData[fields.id] !== '') { + elementID = id; + } + else { + elementID = id + '-' + index; + } + var li = createElement('li', { + className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(className) ? '' : className), + id: elementID, attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ? + { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {}) + }); + // eslint-disable-next-line no-prototype-builtins + if (dataSource && fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled].toString() === 'false') { + li.classList.add(cssClass.disabled); + } + if (grpLI) { + li.innerText = text; + } + else { + li.setAttribute('data-value', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(value) ? 'null' : value); + li.setAttribute('role', 'option'); + // eslint-disable-next-line no-prototype-builtins + if (dataSource && fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) { + setAttribute(li, fieldData[fields.htmlAttributes]); + } + if (innerElements.length && !curOpt.itemNavigable) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(innerElements, li); + } + if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] && + fieldData[fields.urlAttributes].href))) { + li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable)); + } + else { + if (innerElements.length && curOpt.itemNavigable) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(innerElements, li); + } + li.appendChild(document.createTextNode(text)); + } + } + return li; + } + function getModuleClass(moduleName) { + var moduleClass; + // eslint-disable-next-line + return moduleClass = { + li: "e-" + moduleName + "-item", + ul: "e-" + moduleName + "-parent e-ul", + group: "e-" + moduleName + "-group-item", + icon: "e-" + moduleName + "-icon", + text: "e-" + moduleName + "-text", + check: "e-" + moduleName + "-check", + checked: 'e-checked', + selected: 'e-selected', + expanded: 'e-expanded', + textContent: 'e-text-content', + hasChild: 'e-has-child', + level: 'e-level', + url: "e-" + moduleName + "-url", + collapsible: 'e-icon-collapsible', + disabled: 'e-disabled', + image: "e-" + moduleName + "-img", + iconWrapper: 'e-icon-wrapper', + anchorWrap: 'e-anchor-wrap', + navigable: 'e-navigable' + }; + } + function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) { + var fieldData = getFieldValues(dataSource, fields); + var attr = { href: fieldData[fields.url] }; + // eslint-disable-next-line no-prototype-builtins + if (fieldData.hasOwnProperty(fields.urlAttributes) && fieldData[fields.urlAttributes]) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(attr, fieldData[fields.urlAttributes]); + attr.href = fieldData[fields.url] ? fieldData[fields.url] : + fieldData[fields.urlAttributes].href; + } + var anchorTag; + if (!isFullNavigation) { + anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url, innerHTML: text }); + } + else { + anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url }); + var anchorWrapper = createElement('div', { className: cssClass.anchorWrap }); + if (innerElements && innerElements.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(innerElements, anchorWrapper); + } + anchorWrapper.appendChild(document.createTextNode(text)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([anchorWrapper], anchorTag); + } + setAttribute(anchorTag, attr); + return anchorTag; + } + // tslint:disable-next-line + /* tslint:disable:align */ + function generateLI(createElement, item, fieldData, + // eslint-disable-next-line + fields, className, options, componentInstance) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var ariaAttributes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultAriaAttributes, curOpt.ariaAttributes); + var text = item; + var uID; + var grpLI; + var dataSource; + if (typeof item !== 'string' && typeof item !== 'number') { + dataSource = item; + text = fieldData[fields.text] || ''; + // tslint:disable-next-line + uID = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData['_id'])) ? fieldData[fields.id] : fieldData['_id']; + // eslint-disable-next-line no-prototype-builtins + grpLI = (item.hasOwnProperty('isHeader') && item.isHeader) + ? true : false; + } + if (options && options.enableHtmlSanitizer) { + // eslint-disable-next-line no-self-assign + text = text; + } + var li = createElement('li', { + className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(className) ? '' : className), + attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ? + { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {}) + }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(uID) === true) { + li.setAttribute('data-uid', uID); + } + else { + li.setAttribute('data-uid', generateId()); + } + if (grpLI && options && options.groupTemplate) { + // eslint-disable-next-line @typescript-eslint/ban-types + var compiledString = compileTemplate(options.groupTemplate); + if (componentInstance && componentInstance.getModuleName() !== "listview") { + // eslint-disable-next-line + var compiledElement = compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, li); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, li); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), li); + } + } + else if (!grpLI && options && options.template) { + // eslint-disable-next-line @typescript-eslint/ban-types + var compiledString = compileTemplate(options.template); + if (componentInstance && componentInstance.getModuleName() !== 'listview') { + // eslint-disable-next-line + var compiledElement = compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate, null, li); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, li); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate), li); + } + } + else { + var innerDiv = createElement('div', { + className: cssClass.textContent, + attrs: (ariaAttributes.wrapperRole !== '' ? { role: ariaAttributes.wrapperRole } : {}) + }); + if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] && + fieldData[fields.urlAttributes].href))) { + innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable)); + } + else { + var element = createElement('span', { + className: cssClass.text, + attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {}) + }); + if (options && options.enableHtmlSanitizer) { + element.innerText = text; + } + else { + element.innerHTML = text; + } + innerDiv.appendChild(element); + } + li.appendChild(innerDiv); + } + return li; + } + /** + * Returns UL element based on the given LI element. + * + * @param {HTMLElement[]} liElement - Specifies array of LI element. + * + * @param {string} className? - Specifies class name that need to be added in UL element. + * + * @param {ListBaseOptions} options? - Specifies ListBase options. + */ + function generateUL(createElement, liElement, className, options) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + var ariaAttributes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultAriaAttributes, curOpt.ariaAttributes); + cssClass = getModuleClass(curOpt.moduleName); + var ulElement = createElement('ul', { + className: cssClass.ul + ' ' + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(className) ? '' : className), + attrs: (ariaAttributes.listRole !== '' ? { role: ariaAttributes.listRole } : {}) + }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(liElement, ulElement); + return ulElement; + } + ListBase.generateUL = generateUL; + /** + * Returns LI element with additional DIV tag based on the given LI element. + * + * @param {liElement} liElement - Specifies LI element. + * + * @param {string} className? - Specifies class name that need to be added in created DIV element. + * + * @param {ListBaseOptions} options? - Specifies ListBase options. + */ + function generateIcon(createElement, liElement, className, options) { + var curOpt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, defaultListBaseOptions, options); + cssClass = getModuleClass(curOpt.moduleName); + // eslint-disable-next-line @typescript-eslint/ban-types + var expandElement = curOpt.expandIconPosition === 'Left' ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"]; + expandElement([createElement('div', { + className: 'e-icons ' + curOpt.expandIconClass + ' ' + + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(className) ? '' : className) + })], liElement.querySelector('.' + cssClass.textContent)); + return liElement; + } + ListBase.generateIcon = generateIcon; +})(ListBase || (ListBase = {})); +/** + * Used to get dataSource item from complex data using fields. + * + * @param {Object} dataSource - Specifies an JSON or String data. + * + * @param {FieldsMapping} fields - Fields that are mapped from the dataSource. + */ +function getFieldValues(dataItem, fields) { + var fieldData = {}; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataItem) || typeof (dataItem) === 'string' || typeof (dataItem) === 'number' + || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataItem.isHeader)) { + return dataItem; + } + else { + for (var _i = 0, _a = Object.keys(fields); _i < _a.length; _i++) { + var field = _a[_i]; + var dataField = fields["" + field]; + var value = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataField) && + typeof (dataField) === 'string' ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(dataField, dataItem) : undefined; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(value)) { + fieldData["" + dataField] = value; + } + } + } + return fieldData; +} +function compileTemplate(template) { + if (template) { + try { + if (typeof template !== 'function' && document.querySelector(template)) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(document.querySelector(template).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + catch (e) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + return undefined; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/index.js": +/*!**********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/index.js ***! + \**********************************************************/ +/*! exports provided: classNames, FieldSettings, ListView, Virtualization, cssClass, ListBase, getFieldValues, Sortable, moveTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _list_view_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list-view/index */ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return _list_view_index__WEBPACK_IMPORTED_MODULE_0__["classNames"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return _list_view_index__WEBPACK_IMPORTED_MODULE_0__["FieldSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListView", function() { return _list_view_index__WEBPACK_IMPORTED_MODULE_0__["ListView"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Virtualization", function() { return _list_view_index__WEBPACK_IMPORTED_MODULE_0__["Virtualization"]; }); + +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-lists/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cssClass", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["cssClass"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListBase", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["ListBase"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFieldValues", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["getFieldValues"]; }); + +/* harmony import */ var _sortable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sortable */ "./ej2-resources/22.1.37/scripts/ej2-lists/sortable/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sortable", function() { return _sortable__WEBPACK_IMPORTED_MODULE_2__["Sortable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "moveTo", function() { return _sortable__WEBPACK_IMPORTED_MODULE_2__["moveTo"]; }); + +/** + * List Components + */ + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/index.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/list-view/index.js ***! + \********************************************************************/ +/*! exports provided: classNames, FieldSettings, ListView, Virtualization */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _list_view__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list-view */ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/list-view.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return _list_view__WEBPACK_IMPORTED_MODULE_0__["FieldSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListView", function() { return _list_view__WEBPACK_IMPORTED_MODULE_0__["ListView"]; }); + +/* harmony import */ var _virtualization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./virtualization */ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/virtualization.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Virtualization", function() { return _virtualization__WEBPACK_IMPORTED_MODULE_1__["Virtualization"]; }); + +/** + * Listview Component + */ + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/list-view.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/list-view/list-view.js ***! + \************************************************************************/ +/*! exports provided: classNames, FieldSettings, ListView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "classNames", function() { return classNames; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return FieldSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListView", function() { return ListView; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _common_list_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/list-base */ "./ej2-resources/22.1.37/scripts/ej2-lists/common/list-base.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + +// Effect Configuration Effect[] = [fromViewBackward,fromViewForward,toViewBackward,toviewForward]; +var effectsConfig = { + 'None': [], + 'SlideLeft': ['SlideRightOut', 'SlideLeftOut', 'SlideLeftIn', 'SlideRightIn'], + 'SlideDown': ['SlideTopOut', 'SlideBottomOut', 'SlideBottomIn', 'SlideTopIn'], + 'Zoom': ['FadeOut', 'FadeZoomOut', 'FadeZoomIn', 'FadeIn'], + 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn'] +}; +var effectsRTLConfig = { + 'None': [], + 'SlideLeft': ['SlideLeftOut', 'SlideRightOut', 'SlideRightIn', 'SlideLeftIn'], + 'SlideDown': ['SlideBottomOut', 'SlideTopOut', 'SlideTopIn', 'SlideBottomIn'], + 'Zoom': ['FadeZoomOut', 'FadeOut', 'FadeIn', 'FadeZoomIn'], + 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn'] +}; +// don't use space in classnames. +var classNames = { + root: 'e-listview', + hover: 'e-hover', + selected: 'e-active', + focused: 'e-focused', + parentItem: 'e-list-parent', + listItem: 'e-list-item', + listIcon: 'e-list-icon', + textContent: 'e-text-content', + listItemText: 'e-list-text', + groupListItem: 'e-list-group-item', + hasChild: 'e-has-child', + view: 'e-view', + header: 'e-list-header', + headerText: 'e-headertext', + headerTemplateText: 'e-headertemplate-text', + text: 'e-text', + disable: 'e-disabled', + container: 'e-list-container', + icon: 'e-icons', + backIcon: 'e-icon-back', + backButton: 'e-back-button', + checkboxWrapper: 'e-checkbox-wrapper', + checkbox: 'e-checkbox', + checked: 'e-check', + checklist: 'e-checklist', + checkboxIcon: 'e-frame', + checkboxRight: 'e-checkbox-right', + checkboxLeft: 'e-checkbox-left', + listviewCheckbox: 'e-listview-checkbox', + itemCheckList: 'e-checklist', + virtualElementContainer: 'e-list-virtualcontainer' +}; +var LISTVIEW_TEMPLATE_PROPERTY = 'Template'; +var LISTVIEW_GROUPTEMPLATE_PROPERTY = 'GroupTemplate'; +var LISTVIEW_HEADERTEMPLATE_PROPERTY = 'HeaderTemplate'; +var swipeVelocity = 0.5; +/** + * Represents the field settings of the ListView. + */ +var FieldSettings = /** @__PURE__ @class */ (function (_super) { + __extends(FieldSettings, _super); + function FieldSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('id') + ], FieldSettings.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('text') + ], FieldSettings.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('isChecked') + ], FieldSettings.prototype, "isChecked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('isVisible') + ], FieldSettings.prototype, "isVisible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('enabled') + ], FieldSettings.prototype, "enabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('iconCss') + ], FieldSettings.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('child') + ], FieldSettings.prototype, "child", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('tooltip') + ], FieldSettings.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('groupBy') + ], FieldSettings.prototype, "groupBy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('text') + ], FieldSettings.prototype, "sortBy", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('htmlAttributes') + ], FieldSettings.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('tableName') + ], FieldSettings.prototype, "tableName", void 0); + return FieldSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Represents the EJ2 ListView control. + * ```html + *
+ *
    + *
  • Favorite
  • + *
  • Documents
  • + *
  • Downloads
  • + *
+ *
+ * ``` + * ```typescript + * var listviewObject = new ListView({}); + * listviewObject.appendTo("#listview"); + * ``` + */ +var ListView = /** @__PURE__ @class */ (function (_super) { + __extends(ListView, _super); + /** + * Constructor for creating the widget + * + * @param options + * + * @param element + */ + function ListView(options, element) { + var _this = _super.call(this, options, element) || this; + _this.previousSelectedItems = []; + _this.hiddenItems = []; + _this.enabledItems = []; + _this.disabledItems = []; + return _this; + } + /** + * @param newProp + * + * @param oldProp + * + * @private + */ + ListView.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'htmlAttributes': + this.setHTMLAttribute(); + break; + case 'cssClass': + this.setCSSClass(oldProp.cssClass); + break; + case 'enable': + this.setEnable(); + break; + case 'width': + case 'height': + this.setSize(); + break; + case 'enableRtl': + this.setEnableRTL(); + break; + case 'fields': + // eslint-disable-next-line + this.listBaseOption.fields = this.fields.properties; + if (this.enableVirtualization) { + this.virtualizationModule.reRenderUiVirtualization(); + } + else { + this.reRender(); + } + break; + case 'headerTitle': + if (!this.curDSLevel.length) { + this.header(this.headerTitle, false, 'header'); + } + break; + case 'query': + if (this.enableVirtualization) { + this.virtualizationModule.reRenderUiVirtualization(); + } + else { + this.reRender(); + } + break; + case 'showHeader': + this.header(this.headerTitle, false, 'header'); + break; + case 'enableVirtualization': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentContainer)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.contentContainer); + } + this.refresh(); + break; + case 'showCheckBox': + case 'checkBoxPosition': + if (this.enableVirtualization) { + this.virtualizationModule.reRenderUiVirtualization(); + } + else { + this.setCheckbox(); + } + break; + case 'dataSource': + if (this.enableVirtualization) { + this.virtualizationModule.reRenderUiVirtualization(); + } + else { + this.reRender(); + } + break; + case 'sortOrder': + case 'template': + if (!this.enableVirtualization) { + this.refresh(); + } + break; + case 'showIcon': + if (this.enableVirtualization) { + this.virtualizationModule.reRenderUiVirtualization(); + } + else { + this.listBaseOption.showIcon = this.showIcon; + this.curViewDS = this.getSubDS(); + this.resetCurrentList(); + } + break; + default: + break; + } + } + }; + // Model Changes + ListView.prototype.setHTMLAttribute = function () { + if (Object.keys(this.htmlAttributes).length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, this.htmlAttributes); + } + }; + ListView.prototype.setCSSClass = function (oldCSSClass) { + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.split(' ').filter(function (css) { return css; })); + } + if (oldCSSClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldCSSClass.split(' ').filter(function (css) { return css; })); + } + }; + ListView.prototype.setSize = function () { + this.element.style.height = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height); + this.element.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width); + this.isWindow = this.element.clientHeight ? false : true; + }; + ListView.prototype.setEnable = function () { + this.enableElement(this.element, this.enable); + }; + ListView.prototype.setEnableRTL = function () { + if (this.enableRtl) { + this.element.classList.add('e-rtl'); + } + else { + this.element.classList.remove('e-rtl'); + } + }; + ListView.prototype.enableElement = function (element, isEnabled) { + if (isEnabled) { + element.classList.remove(classNames.disable); + } + else { + element.classList.add(classNames.disable); + } + }; + // Support Component Functions + ListView.prototype.header = function (text, showBack, prop) { + if (this.headerEle === undefined && this.showHeader) { + if (this.enableHtmlSanitizer) { + this.setProperties({ headerTitle: _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.headerTitle) }, true); + } + this.headerEle = this.createElement('div', { className: classNames.header }); + var innerHeaderEle = this.createElement('span', { className: classNames.headerText, innerHTML: this.headerTitle }); + var textEle = this.createElement('div', { className: classNames.text, innerHTML: innerHeaderEle.outerHTML }); + var hedBackButton = this.createElement('div', { + className: classNames.icon + ' ' + classNames.backIcon + ' ' + classNames.backButton, + attrs: { style: 'display:none;' } + }); + this.headerEle.appendChild(hedBackButton); + this.headerEle.appendChild(textEle); + if (this.headerTemplate) { + // eslint-disable-next-line + var compiledString = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(this.headerTemplate); + var headerTemplateEle = this.createElement('div', { className: classNames.headerTemplateText }); + // eslint-disable-next-line + var compiledElement = compiledString({}, this, prop, this.LISTVIEW_HEADERTEMPLATE_ID, null, null, this.headerEle); + if (compiledElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(compiledElement, headerTemplateEle); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([headerTemplateEle], this.headerEle); + // eslint-disable-next-line + if (this.isReact) { + this.renderReactTemplates(); + } + } + if (this.headerTemplate && this.headerTitle) { + textEle.classList.add('header'); + } + this.element.classList.add('e-has-header'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])([this.headerEle], this.element); + } + else if (this.headerEle) { + if (this.showHeader) { + this.headerEle.style.display = ''; + var textEle = this.headerEle.querySelector('.' + classNames.headerText); + var hedBackButton = this.headerEle.querySelector('.' + classNames.backIcon); + if (this.enableHtmlSanitizer) { + text = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(text); + } + textEle.innerHTML = text; + if (this.headerTemplate && showBack) { + textEle.parentElement.classList.remove('header'); + this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('nested-header'); + } + if (this.headerTemplate && !showBack) { + textEle.parentElement.classList.add('header'); + this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.remove('nested-header'); + this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('header'); + } + if (showBack === true) { + hedBackButton.style.display = ''; + } + else { + hedBackButton.style.display = 'none'; + } + } + else { + this.headerEle.style.display = 'none'; + } + } + }; + // Animation Related Functions + ListView.prototype.switchView = function (fromView, toView, reverse) { + var _this = this; + if (fromView && toView) { + var fPos_1 = fromView.style.position; + var overflow_1 = (this.element.style.overflow !== 'hidden') ? this.element.style.overflow : ''; + fromView.style.position = 'absolute'; + fromView.classList.add('e-view'); + var anim = void 0; + var duration = this.animation.duration; + if (this.animation.effect) { + anim = (this.enableRtl ? effectsRTLConfig[this.animation.effect] : effectsConfig[this.animation.effect]); + } + else { + var slideLeft = 'SlideLeft'; + anim = effectsConfig["" + slideLeft]; + reverse = this.enableRtl; + duration = 0; + } + this.element.style.overflow = 'hidden'; + this.aniObj.animate(fromView, { + name: (reverse === true ? anim[0] : anim[1]), + duration: duration, + timingFunction: this.animation.easing, + // eslint-disable-next-line + end: function (model) { + fromView.style.display = 'none'; + _this.element.style.overflow = overflow_1; + fromView.style.position = fPos_1; + fromView.classList.remove('e-view'); + } + }); + toView.style.display = ''; + this.aniObj.animate(toView, { + name: (reverse === true ? anim[2] : anim[3]), + duration: duration, + timingFunction: this.animation.easing, + end: function () { + _this.trigger('actionComplete'); + } + }); + this.curUL = toView; + } + }; + ListView.prototype.preRender = function () { + if (this.template) { + try { + if (document.querySelectorAll(this.template).length) { + this.setProperties({ template: document.querySelector(this.template).innerHTML.trim() }, true); + } + } + catch (e) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(this.template); + } + } + this.listBaseOption = { + template: this.template, + headerTemplate: this.headerTemplate, + groupTemplate: this.groupTemplate, expandCollapse: true, listClass: '', + ariaAttributes: { + itemRole: 'listitem', listRole: 'group', itemText: '', + groupItemRole: 'presentation', wrapperRole: 'presentation' + }, + // eslint-disable-next-line + fields: (this.fields.properties), + sortOrder: this.sortOrder, + showIcon: this.showIcon, + itemCreated: this.renderCheckbox.bind(this), + templateID: "" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY, + groupTemplateID: "" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY, + enableHtmlSanitizer: this.enableHtmlSanitizer, + }; + this.initialization(); + }; + ListView.prototype.initialization = function () { + this.curDSLevel = []; + this.animateOptions = {}; + this.curViewDS = []; + this.currentLiElements = []; + this.isNestedList = false; + this.selectedData = []; + this.selectedId = this.enablePersistence ? this.selectedId : []; + this.LISTVIEW_TEMPLATE_ID = "" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY; + this.LISTVIEW_GROUPTEMPLATE_ID = "" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY; + this.LISTVIEW_HEADERTEMPLATE_ID = "" + this.element.id + LISTVIEW_HEADERTEMPLATE_PROPERTY; + this.aniObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](this.animateOptions); + this.removeElement(this.curUL); + this.removeElement(this.ulElement); + this.removeElement(this.headerEle); + this.removeElement(this.contentContainer); + this.curUL = this.ulElement = this.liCollection = this.headerEle = this.contentContainer = undefined; + }; + ListView.prototype.renderCheckbox = function (args) { + var _this = this; + if (args.item.classList.contains(classNames.hasChild)) { + this.isNestedList = true; + } + if (this.showCheckBox && this.isValidLI(args.item)) { + var checkboxElement = void 0; + var fieldData_1; + // eslint-disable-next-line prefer-const + checkboxElement = Object(_ej2_buttons__WEBPACK_IMPORTED_MODULE_2__["createCheckBox"])(this.createElement, false, { + checked: false, enableRtl: this.enableRtl, + cssClass: classNames.listviewCheckbox + }); + checkboxElement.setAttribute('role', 'checkbox'); + var frameElement_1 = checkboxElement.querySelector('.' + classNames.checkboxIcon); + args.item.classList.add(classNames.itemCheckList); + args.item.firstElementChild.classList.add(classNames.checkbox); + if (typeof this.dataSource[0] !== 'string' && typeof this.dataSource[0] !== 'number') { + fieldData_1 = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(args.curData, this.listBaseOption.fields); + if (this.enablePersistence && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.selectedId)) { + var index = this.selectedId.findIndex(function (e) { return e == fieldData_1[_this.listBaseOption.fields.id].toString(); }); + if (index != -1) { + this.checkInternally(args, checkboxElement); + } + } + else if (fieldData_1[this.listBaseOption.fields.isChecked]) { + this.checkInternally(args, checkboxElement); + } + } + else if (((typeof this.dataSource[0] === 'string' || + typeof this.dataSource[0] === 'number') && this.selectedData.indexOf(args.text) !== -1)) { + this.checkInternally(args, checkboxElement); + } + checkboxElement.setAttribute('aria-checked', frameElement_1.classList.contains(classNames.checked) ? 'true' : 'false'); + checkboxElement.setAttribute('aria-label', 'checkbox'); + if (this.checkBoxPosition === 'Left') { + checkboxElement.classList.add(classNames.checkboxLeft); + args.item.firstElementChild.classList.add(classNames.checkboxLeft); + args.item.firstElementChild.insertBefore(checkboxElement, args.item.firstElementChild.childNodes[0]); + } + else { + checkboxElement.classList.add(classNames.checkboxRight); + args.item.firstElementChild.classList.add(classNames.checkboxRight); + args.item.firstElementChild.appendChild(checkboxElement); + } + this.currentLiElements.push(args.item); + if (this.checkBoxPosition === 'Left') { + this.virtualCheckBox = args.item.firstElementChild.children[0]; + } + else { + this.virtualCheckBox = args.item.firstElementChild.lastElementChild; + } + } + }; + ListView.prototype.checkInternally = function (args, checkboxElement) { + args.item.classList.add(classNames.selected); + checkboxElement.querySelector('.' + classNames.checkboxIcon).classList.add(classNames.checked); + checkboxElement.setAttribute('aria-checked', 'true'); + }; + /** + * Checks the specific list item by passing the unchecked fields as an argument to this method. + * + * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument. + */ + ListView.prototype.checkItem = function (item) { + this.toggleCheckBase(item, true); + }; + ListView.prototype.toggleCheckBase = function (item, checked) { + if (this.showCheckBox) { + var liElement = item; + if (item instanceof Object && item.constructor !== HTMLLIElement) { + liElement = this.getLiFromObjOrElement(item); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + var checkboxIcon = liElement.querySelector('.' + classNames.checkboxIcon); + if (checked === true) { + liElement.classList.add(classNames.selected); + } + else { + liElement.classList.remove(classNames.selected); + } + if (checked === true) { + checkboxIcon.classList.add(classNames.checked); + } + else { + checkboxIcon.classList.remove(classNames.checked); + } + checkboxIcon.parentElement.setAttribute('aria-checked', checked ? 'true' : 'false'); + } + this.setSelectedItemData(liElement); + this.updateSelectedId(); + } + }; + /** + * Uncheck the specific list item by passing the checked fields as an argument to this method. + * + * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument. + */ + ListView.prototype.uncheckItem = function (item) { + this.toggleCheckBase(item, false); + }; + /** + * Checks all the unchecked items in the ListView. + */ + ListView.prototype.checkAllItems = function () { + this.toggleAllCheckBase(true); + }; + /** + * Uncheck all the checked items in ListView. + */ + ListView.prototype.uncheckAllItems = function () { + this.toggleAllCheckBase(false); + }; + ListView.prototype.toggleAllCheckBase = function (checked) { + if (this.showCheckBox) { + for (var i = 0; i < this.liCollection.length; i++) { + var checkIcon = this.liCollection[i].querySelector('.' + classNames.checkboxIcon); + if (checkIcon) { + if (checked) { + if (!checkIcon.classList.contains(classNames.checked)) { + this.checkItem(this.liCollection[i]); + } + } + else { + if (checkIcon.classList.contains(classNames.checked)) { + this.uncheckItem(this.liCollection[i]); + } + } + } + } + if (this.enableVirtualization) { + this.virtualizationModule.checkedItem(checked); + } + this.updateSelectedId(); + } + }; + ListView.prototype.setCheckbox = function () { + if (this.showCheckBox) { + var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem)); + var args = { + item: undefined, curData: undefined, dataSource: undefined, fields: undefined, + options: undefined, text: '' + }; + for (var i = 0; i < liCollection.length; i++) { + var element = liCollection[i]; + args.item = element; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + args.curData = this.getItemData(element); + if (element.querySelector('.' + classNames.checkboxWrapper)) { + this.removeElement(element.querySelector('.' + classNames.checkboxWrapper)); + } + this.renderCheckbox(args); + if (args.item.classList.contains(classNames.selected)) { + this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper)); + } + } + } + else { + var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.itemCheckList)); + for (var i = 0; i < liCollection.length; i++) { + var element = liCollection[i]; + element.classList.remove(classNames.selected); + element.firstElementChild.classList.remove(classNames.checkbox); + this.removeElement(element.querySelector('.' + classNames.checkboxWrapper)); + } + if (this.selectedItems) { + this.selectedItems.item.classList.add(classNames.selected); + } + } + }; + /** + * Refresh the height of the list item only on enabling the virtualization property. + */ + ListView.prototype.refreshItemHeight = function () { + if (this.virtualizationModule) { + this.virtualizationModule.refreshItemHeight(); + } + }; + ListView.prototype.clickHandler = function (e) { + var target = e.target; + this.targetElement = target; + var classList = target.classList; + var closestElement; + if (classList.contains(classNames.backIcon) || classList.contains(classNames.headerText)) { + if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) { + this.uncheckAllItems(); + } + this.back(); + } + else { + var li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target.parentNode, '.' + classNames.listItem); + if (li === null) { + li = target; + } + this.removeFocus(); + if (this.enable && this.showCheckBox && this.isValidLI(li)) { + if (e.target.classList.contains(classNames.checkboxIcon)) { + li.classList.add(classNames.focused); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + classNames.checked))) { + var args = { + curData: undefined, dataSource: undefined, fields: undefined, options: undefined, + text: undefined, item: li + }; + this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper)); + } + else { + this.uncheckItem(li); + li.classList.add(classNames.focused); + } + if (this.enableVirtualization) { + this.virtualizationModule.setCheckboxLI(li, e); + } + if (e) { + var eventArgs = this.selectEventData(li, e); + var checkIcon = li.querySelector('.' + classNames.checkboxIcon); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) }); + this.trigger('select', eventArgs); + } + } + else if (li.classList.contains(classNames.hasChild)) { + this.removeHover(); + this.removeSelect(); + this.removeSelect(li); + this.setSelectLI(li, e); + li.classList.remove(classNames.selected); + } + else { + this.setCheckboxLI(li, e); + if ((target.nodeName == "INPUT") || (target.nodeName == "TEXTAREA")) { + target.classList.add('e-focused'); + this.targetElement = target; + } + } + } + else { + this.setSelectLI(li, e); + if ((target.nodeName == "INPUT") || (target.nodeName == "TEXTAREA")) { + target.classList.add('e-focused'); + this.targetElement = target; + } + } + closestElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, 'li'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closestElement)) { + if (closestElement.classList.contains('e-has-child') && + !e.target.parentElement.classList.contains('e-listview-checkbox')) { + closestElement.classList.add(classNames.disable); + } + } + } + this.updateSelectedId(); + }; + ListView.prototype.removeElement = function (element) { + return element && element.parentNode && element.parentNode.removeChild(element); + }; + ListView.prototype.hoverHandler = function (e) { + var curLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target.parentNode, '.' + classNames.listItem); + this.setHoverLI(curLi); + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + ListView.prototype.leaveHandler = function (e) { + this.removeHover(); + }; + ListView.prototype.homeKeyHandler = function (e, end) { + e.preventDefault(); + if (Object.keys(this.dataSource).length && this.curUL) { + var li = this.curUL.querySelectorAll('.' + classNames.listItem); + var focusedElement = this.curUL.querySelector('.' + classNames.focused) || + this.curUL.querySelector('.' + classNames.selected); + if (focusedElement) { + focusedElement.classList.remove(classNames.focused); + if (!this.showCheckBox) { + focusedElement.classList.remove(classNames.selected); + } + } + var index = !end ? 0 : li.length - 1; + if (li[index].classList.contains(classNames.hasChild) || this.showCheckBox) { + li[index].classList.add(classNames.focused); + } + else { + this.setSelectLI(li[index], e); + } + if (li[index]) { + this.element.setAttribute('aria-activedescendant', li[index].id.toString()); + } + else { + this.element.removeAttribute('aria-activedescendant'); + } + } + }; + ListView.prototype.onArrowKeyDown = function (e, prev) { + var siblingLI; + var li; + var hasChild = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false; + if (hasChild || this.showCheckBox) { + li = this.curUL.querySelector('.' + classNames.focused) || this.curUL.querySelector('.' + classNames.selected); + siblingLI = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(siblingLI)) { + if (li) { + li.classList.remove(classNames.focused); + if (!this.showCheckBox) { + li.classList.remove(classNames.selected); + } + } + if (siblingLI.classList.contains(classNames.hasChild) || this.showCheckBox) { + siblingLI.classList.add(classNames.focused); + } + else { + this.setSelectLI(siblingLI, e); + } + } + } + else { + li = this.curUL.querySelector('.' + classNames.selected); + siblingLI = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev); + this.setSelectLI(siblingLI, e); + } + if (siblingLI) { + this.element.setAttribute('aria-activedescendant', siblingLI.id.toString()); + } + else { + this.element.removeAttribute('aria-activedescendant'); + } + return siblingLI; + }; + ListView.prototype.arrowKeyHandler = function (e, prev) { + var _this = this; + e.preventDefault(); + if (Object.keys(this.dataSource).length && this.curUL) { + var siblingLI = this.onArrowKeyDown(e, prev); + var elementTop = this.element.getBoundingClientRect().top; + var elementHeight = this.element.getBoundingClientRect().height; + var firstItemBounds = this.curUL.querySelector('.' + classNames.listItem).getBoundingClientRect(); + var heightDiff = void 0; + var groupItemBounds = void 0; + if (this.fields.groupBy) { + groupItemBounds = this.curUL.querySelector('.' + classNames.groupListItem).getBoundingClientRect(); + } + if (siblingLI) { + var siblingTop = siblingLI.getBoundingClientRect().top; + var siblingHeight = siblingLI.getBoundingClientRect().height; + if (!prev) { + var height = this.isWindow ? window.innerHeight : elementHeight; + heightDiff = this.isWindow ? (siblingTop + siblingHeight) : + ((siblingTop - elementTop) + siblingHeight); + if (heightDiff > height) { + if (this.isWindow === true) { + window.scroll(0, pageYOffset + (heightDiff - height)); + } + else { + this.element.scrollTop = this.element.scrollTop + (heightDiff - height); + } + } + } + else { + heightDiff = this.isWindow ? siblingTop : (siblingTop - elementTop); + if (heightDiff < 0) { + if (this.isWindow === true) { + window.scroll(0, pageYOffset + heightDiff); + } + else { + this.element.scrollTop = this.element.scrollTop + heightDiff; + } + } + } + } + else if (this.enableVirtualization && prev && this.virtualizationModule.uiFirstIndex) { + this.onUIScrolled = function () { + _this.onArrowKeyDown(e, prev); + _this.onUIScrolled = undefined; + }; + heightDiff = this.virtualizationModule.listItemHeight; + if (this.isWindow === true) { + window.scroll(0, pageYOffset - heightDiff); + } + else { + this.element.scrollTop = this.element.scrollTop - heightDiff; + } + } + else if (prev) { + if (this.showHeader && this.headerEle) { + var topHeight = groupItemBounds ? groupItemBounds.top : firstItemBounds.top; + var headerBounds = this.headerEle.getBoundingClientRect(); + heightDiff = headerBounds.top < 0 ? (headerBounds.height - topHeight) : 0; + if (this.isWindow === true) { + window.scroll(0, pageYOffset - heightDiff); + } + else { + this.element.scrollTop = 0; + } + } + else if (this.fields.groupBy) { + heightDiff = this.isWindow ? (groupItemBounds.top < 0 ? groupItemBounds.top : 0) : + (elementTop - firstItemBounds.top) + groupItemBounds.height; + if (this.isWindow === true) { + window.scroll(0, pageYOffset + heightDiff); + } + else { + this.element.scrollTop = this.element.scrollTop - heightDiff; + } + } + } + } + }; + ListView.prototype.enterKeyHandler = function (e) { + if (Object.keys(this.dataSource).length && this.curUL) { + var hasChild = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false; + var li = this.curUL.querySelector('.' + classNames.focused); + if (hasChild && li) { + li.classList.remove(classNames.focused); + if (this.showCheckBox) { + this.removeSelect(); + this.removeSelect(li); + this.removeHover(); + } + this.setSelectLI(li, e); + } + } + }; + ListView.prototype.spaceKeyHandler = function (e) { + e.preventDefault(); + if (this.enable && this.showCheckBox && Object.keys(this.dataSource).length && this.curUL) { + var li = this.curUL.querySelector('.' + classNames.focused); + var checkboxElement = void 0; + var checkIcon = void 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.querySelector('.' + classNames.checked))) { + var args = { + curData: undefined, dataSource: undefined, fields: undefined, options: undefined, + text: undefined, item: li + }; + checkboxElement = args.item.querySelector('.' + classNames.checkboxWrapper); + this.checkInternally(args, checkboxElement); + checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon); + } + else { + this.uncheckItem(li); + } + var eventArgs = this.selectEventData(li, e); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, { isChecked: checkIcon ? checkIcon.classList.contains(classNames.checked) : false }); + this.trigger('select', eventArgs); + this.updateSelectedId(); + } + }; + ListView.prototype.keyActionHandler = function (e) { + switch (e.keyCode) { + case 36: + this.homeKeyHandler(e); + break; + case 35: + this.homeKeyHandler(e, true); + break; + case 40: + this.arrowKeyHandler(e); + break; + case 38: + this.arrowKeyHandler(e, true); + break; + case 13: + this.enterKeyHandler(e); + break; + case 8: + if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) { + this.uncheckAllItems(); + } + this.back(); + break; + case 32: + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetElement) || !(this.targetElement.classList.contains('e-focused'))) { + this.spaceKeyHandler(e); + } + break; + } + }; + ListView.prototype.swipeActionHandler = function (e) { + if (e.swipeDirection === 'Right' && e.velocity > swipeVelocity && e.originalEvent.type === 'touchend') { + if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) { + this.uncheckAllItems(); + } + this.back(); + } + }; + ListView.prototype.focusout = function () { + if (Object.keys(this.dataSource).length && this.curUL) { + var focusedElement = this.curUL.querySelector('.' + classNames.focused); + if (focusedElement) { + focusedElement.classList.remove(classNames.focused); + if (!this.showCheckBox && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.selectedLI)) { + this.selectedLI.classList.add(classNames.selected); + } + } + } + }; + ListView.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.keyActionHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseover', this.hoverHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseout', this.leaveHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusout', this.focusout, this); + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { swipe: this.swipeActionHandler.bind(this) }); + }; + ListView.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseover', this.hoverHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseout', this.leaveHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseover', this.hoverHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseout', this.leaveHandler); + this.touchModule.destroy(); + this.touchModule = null; + }; + ListView.prototype.removeFocus = function () { + var focusedLI = this.element.querySelectorAll('.' + classNames.focused); + for (var _i = 0, focusedLI_1 = focusedLI; _i < focusedLI_1.length; _i++) { + var ele = focusedLI_1[_i]; + ele.classList.remove(classNames.focused); + } + }; + ListView.prototype.removeHover = function () { + var hoverLI = this.element.querySelector('.' + classNames.hover); + if (hoverLI) { + hoverLI.classList.remove(classNames.hover); + } + }; + ListView.prototype.removeSelect = function (li) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + var selectedLI = this.element.querySelectorAll('.' + classNames.selected); + for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) { + var ele = selectedLI_1[_i]; + if (this.showCheckBox && ele.querySelector('.' + classNames.checked)) { + continue; + } + else { + ele.classList.remove(classNames.selected); + } + } + } + else { + li.classList.remove(classNames.selected); + } + }; + ListView.prototype.isValidLI = function (li) { + return (li && li.classList.contains(classNames.listItem) + && !li.classList.contains(classNames.groupListItem) + && !li.classList.contains(classNames.disable)); + }; + ListView.prototype.setCheckboxLI = function (li, e) { + if (this.isValidLI(li) && this.enable && this.showCheckBox) { + if (this.curUL.querySelector('.' + classNames.focused)) { + this.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused); + } + var textAreaFocus = li.querySelector('textarea') || li.querySelector('input'); + li.classList.add(classNames.focused); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e)) { + if (e.target === textAreaFocus) { + textAreaFocus.classList.add('e-focused'); + } + } + var checkboxElement = li.querySelector('.' + classNames.checkboxWrapper); + var checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon); + this.removeHover(); + if (!checkIcon.classList.contains(classNames.checked)) { + checkIcon.classList.add(classNames.checked); + li.classList.add(classNames.selected); + } + else { + checkIcon.classList.remove(classNames.checked); + li.classList.remove(classNames.selected); + } + checkboxElement.setAttribute('aria-checked', checkIcon.classList.contains(classNames.checked) ? + 'true' : 'false'); + var eventArgs = this.selectEventData(li, e); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) }); + if (this.enableVirtualization) { + this.virtualizationModule.setCheckboxLI(li, e); + } + this.trigger('select', eventArgs); + this.setSelectedItemData(li); + this.renderSubList(li); + } + }; + ListView.prototype.selectEventData = function (li, e) { + var data = this.getItemData(li); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(data, this.listBaseOption.fields); + var selectedItem; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) + && typeof this.dataSource[0] === 'string' || typeof this.dataSource[0] === 'number') { + selectedItem = { item: li, text: li && li.innerText.trim(), data: this.dataSource }; + } + else { + selectedItem = + // eslint-disable-next-line + { + item: li, text: fieldData && fieldData[this.listBaseOption.fields.text], + // eslint-disable-next-line + data: data + }; + } + var eventArgs = {}; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, selectedItem); + if (e) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(eventArgs, { isInteracted: true, event: e, cancel: false, index: this.curUL && Array.prototype.indexOf.call(this.curUL.children, li) }); + } + return eventArgs; + }; + ListView.prototype.setSelectedItemData = function (li) { + var data = this.getItemData(li); + // eslint-disable-next-line + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(data, this.listBaseOption.fields); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) && ((typeof this.dataSource[0] === 'string') || + (typeof this.dataSource[0] === 'number'))) { + this.selectedItems = { + item: li, + text: li && li.innerText.trim(), + data: this.dataSource + }; + } + else { + this.selectedItems = { + item: li, + // eslint-disable-next-line + text: fieldData && fieldData[this.listBaseOption.fields.text], + // eslint-disable-next-line + data: data + }; + } + }; + ListView.prototype.setSelectLI = function (li, e) { + var _this = this; + if (this.isValidLI(li) && !li.classList.contains(classNames.selected) && this.enable) { + if (!this.showCheckBox) { + this.removeSelect(); + } + li.classList.add(classNames.selected); + this.removeHover(); + this.setSelectedItemData(li); + if (this.enableVirtualization) { + this.virtualizationModule.setSelectLI(li, e); + } + var eventArgs = this.selectEventData(li, e); + this.trigger('select', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.selectedLI = li; + _this.renderSubList(li); + } + }); + } + }; + ListView.prototype.setHoverLI = function (li) { + if (this.isValidLI(li) && !li.classList.contains(classNames.hover) && this.enable) { + var lastLi = this.element.querySelectorAll('.' + classNames.hover); + if (lastLi && lastLi.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(lastLi, classNames.hover); + } + if (!li.classList.contains(classNames.selected) || this.showCheckBox) { + li.classList.add(classNames.hover); + } + } + }; + //Data Source Related Functions + ListView.prototype.getSubDS = function () { + var levelKeys = this.curDSLevel; + if (levelKeys.length) { + var ds = this.localData; + for (var _i = 0, levelKeys_1 = levelKeys; _i < levelKeys_1.length; _i++) { + var key = levelKeys_1[_i]; + var field = {}; + // eslint-disable-next-line + field[this.fields.id] = key; + this.curDSJSON = this.findItemFromDS(ds, field); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(this.curDSJSON, this.listBaseOption.fields); + ds = this.curDSJSON ? fieldData[this.fields.child] : ds; + } + return ds; + } + return this.localData; + }; + ListView.prototype.getItemData = function (li) { + var dataSource = this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] ? + this.localData : this.dataSource; + var fields = this.getElementUID(li); + var curDS; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.' + classNames.hasChild)) && this.fields.groupBy) { + curDS = this.curViewDS; + } + else { + curDS = dataSource; + } + return this.findItemFromDS(curDS, fields); + }; + ListView.prototype.findItemFromDS = function (dataSource, fields, parent) { + var _this = this; + var resultJSON; + if (dataSource && dataSource.length && fields) { + dataSource.some(function (data) { + var fieldData = + // eslint-disable-next-line + Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(data, _this.listBaseOption.fields); + //(!(fid) || id === fid) && (!(ftext) || text === ftext) && (!!fid || !!ftext) + if ((fields[_this.fields.id] || fields[_this.fields.text]) && + (!fields[_this.fields.id] || (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[_this.fields.id]) && + fieldData[_this.fields.id].toString()) === fields[_this.fields.id].toString()) && + (!fields[_this.fields.text] || fieldData[_this.fields.text] === fields[_this.fields.text])) { + resultJSON = (parent ? dataSource : data); + } + else if (typeof data !== 'object' && dataSource.indexOf(data) !== -1) { + resultJSON = (parent ? dataSource : data); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fields[_this.fields.id]) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData[_this.fields.id])) { + var li = _this.element.querySelector('[data-uid="' + + fields[_this.fields.id] + '"]'); + // eslint-disable-next-line + if (li && li.innerText.trim() === fieldData[_this.fields.text]) { + resultJSON = data; + } + // eslint-disable-next-line + } + else if (fieldData.hasOwnProperty(_this.fields.child) && fieldData[_this.fields.child].length) { + resultJSON = _this.findItemFromDS(fieldData[_this.fields.child], fields, parent); + } + return !!resultJSON; + }); + } + else { + resultJSON = dataSource; + } + return resultJSON; + }; + ListView.prototype.getQuery = function () { + var columns = []; + var query = (this.query ? this.query : new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]()); + if (!this.query) { + // eslint-disable-next-line + for (var _i = 0, _a = Object.keys(this.fields.properties); _i < _a.length; _i++) { + var column = _a[_i]; + if (column !== 'tableName' && !!(this.fields["" + column]) && + this.fields["" + column] !== + _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].defaultMappedFields["" + column] + && columns.indexOf(this.fields["" + column]) === -1) { + columns.push(this.fields["" + column]); + } + } + query.select(columns); + // eslint-disable-next-line + if (this.fields.properties.hasOwnProperty('tableName')) { + query.from(this.fields.tableName); + } + } + return query; + }; + ListView.prototype.setViewDataSource = function (dataSource) { + if (dataSource === void 0) { dataSource = this.localData; } + // eslint-disable-next-line + var fieldValue = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.fields.sortBy)) ? this.fields.text : this.fields.sortBy; + var query = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].addSorting(this.sortOrder, fieldValue); + if (dataSource && this.fields.groupBy) { + if (this.sortOrder !== 'None') { + this.curViewDS = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].groupDataSource(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].getDataSource(dataSource, query), this.listBaseOption.fields, this.sortOrder); + } + else { + this.curViewDS = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].groupDataSource(dataSource, this.listBaseOption.fields, this.sortOrder); + } + } + else if (dataSource && this.sortOrder !== 'None') { + this.curViewDS = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].getDataSource(dataSource, query); + } + else { + this.curViewDS = dataSource; + } + }; + ListView.prototype.isInAnimation = function () { + return this.curUL.classList.contains('.e-animate'); + }; + ListView.prototype.renderRemoteLists = function (e, listViewComponent) { + if (this.isDestroyed) { + return; + } + this.localData = e.result; + listViewComponent.removeElement(listViewComponent.contentContainer); + this.renderList(); + this.trigger('actionComplete', e); + }; + ListView.prototype.triggerActionFailure = function (e) { + if (this.isDestroyed) { + return; + } + this.trigger('actionFailure', e); + }; + ListView.prototype.setLocalData = function () { + var _this = this; + this.trigger('actionBegin'); + // eslint-disable-next-line + var listViewComponent = this; + if (this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + if (this.dataSource.ready) { + this.dataSource.ready.then(function (e) { + /* eslint-disable */ + _this.isOffline = _this.dataSource.dataSource.offline; + if (_this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && _this.isOffline) { + _this.renderRemoteLists(e, listViewComponent); + } + }).catch(function (e) { + _this.triggerActionFailure(e); + }); + } + else { + this.dataSource.executeQuery(this.getQuery()).then(function (e) { + _this.renderRemoteLists(e, listViewComponent); + }).catch(function (e) { + _this.triggerActionFailure(e); + }); + } + } + else if (!this.dataSource || !this.dataSource.length) { + var ul = this.element.querySelector('ul'); + if (ul) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(ul); + this.setProperties({ dataSource: _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createJsonFromElement(ul) }, true); + this.localData = this.dataSource; + this.renderList(); + this.trigger('actionComplete', { data: this.localData }); + } + } + else { + this.localData = this.dataSource; + this.renderList(); + this.trigger('actionComplete', { data: this.localData }); + } + }; + ListView.prototype.reRender = function () { + this.removeElement(this.headerEle); + this.removeElement(this.ulElement); + this.removeElement(this.contentContainer); + // eslint-disable-next-line + if (this.isReact) { + this.clearTemplate(); + } + if (Object.keys(window).indexOf('ejsInterop') === -1) { + this.element.innerHTML = ''; + } + this.headerEle = this.ulElement = this.liCollection = undefined; + this.header(); + this.setLocalData(); + }; + ListView.prototype.resetCurrentList = function () { + this.setViewDataSource(this.curViewDS); + this.contentContainer.innerHTML = ''; + this.createList(); + this.renderIntoDom(this.curUL); + }; + ListView.prototype.setAttributes = function (liElements) { + for (var i = 0; i < liElements.length; i++) { + var element = liElements[i]; + if (element.classList.contains('e-list-item')) { + element.setAttribute('id', this.element.id + '_' + element.getAttribute('data-uid')); + element.setAttribute('tabindex', '-1'); + } + } + }; + ListView.prototype.createList = function () { + this.currentLiElements = []; + this.isNestedList = false; + this.ulElement = this.curUL = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createList(this.createElement, this.curViewDS, this.listBaseOption, null, this); + this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem); + this.setAttributes(this.liCollection); + }; + ListView.prototype.exceptionEvent = function (e) { + this.trigger('actionFailure', e); + }; + ListView.prototype.UpdateCurrentUL = function () { + this.ulElement = this.curUL = this.element.querySelector('.' + classNames.parentItem); + if (this.curUL) { + // eslint-disable-next-line + this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem); + } + }; + ListView.prototype.renderSubList = function (li) { + this.liElement = li; + var uID = li.getAttribute('data-uid'); + if (li.classList.contains(classNames.hasChild) && uID) { + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(li.parentNode, '.' + classNames.parentItem); + var ele = this.element.querySelector('[pid=\'' + uID + '\']'); + this.curDSLevel.push(uID); + this.setViewDataSource(this.getSubDS()); + if (!ele) { + var data = this.curViewDS; + ele = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createListFromJson(this.createElement, data, this.listBaseOption, this.curDSLevel.length, null, this); + // eslint-disable-next-line + if (this.isReact) { + this.renderReactTemplates(); + } + var lists = ele.querySelectorAll('.' + classNames.listItem); + this.setAttributes(lists); + ele.setAttribute('pID', uID); + ele.style.display = 'none'; + this.renderIntoDom(ele); + } + this.switchView(ul, ele); + this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem); + if (this.selectedItems) { + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(this.selectedItems.data, this.listBaseOption.fields); + // eslint-disable-next-line + this.header((fieldData[this.listBaseOption.fields.text]), true, 'header'); + } + this.selectedLI = undefined; + } + }; + ListView.prototype.renderIntoDom = function (ele) { + this.contentContainer.appendChild(ele); + }; + ListView.prototype.renderList = function (data) { + this.setViewDataSource(data); + if (this.enableVirtualization) { + if (Object.keys(this.dataSource).length) { + if ((this.template || this.groupTemplate) && !this.virtualizationModule.isNgTemplate()) { + if (this.isReact || this.isVue) { + if (typeof this.template == "string") { + this.listBaseOption.template = null; + } + if (typeof this.groupTemplate == "string") { + this.listBaseOption.groupTemplate = null; + } + } + else { + this.listBaseOption.template = null; + this.listBaseOption.groupTemplate = null; + } + this.listBaseOption.itemCreated = this.virtualizationModule.createUIItem.bind(this.virtualizationModule); + } + } + this.virtualizationModule.uiVirtualization(); + } + else { + this.createList(); + this.contentContainer = this.createElement('div', { className: classNames.container }); + this.element.appendChild(this.contentContainer); + this.renderIntoDom(this.ulElement); + // eslint-disable-next-line + if (this.isReact) { + this.renderReactTemplates(); + } + } + }; + ListView.prototype.getElementUID = function (obj) { + var fields = {}; + if (obj instanceof Element) { + // eslint-disable-next-line + fields[this.fields.id] = obj.getAttribute('data-uid'); + } + else { + fields = obj; + } + return fields; + }; + /** + * Initializes the ListView component rendering. + */ + ListView.prototype.render = function () { + this.element.classList.add(classNames.root); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { role: 'list', tabindex: '0' }); + this.setCSSClass(); + this.setEnableRTL(); + this.setEnable(); + this.setSize(); + this.wireEvents(); + this.header(); + this.setLocalData(); + this.setHTMLAttribute(); + this.rippleFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, { + selector: '.' + classNames.listItem + }); + this.renderComplete(); + }; + /** + * It is used to destroy the ListView component. + */ + ListView.prototype.destroy = function () { + // eslint-disable-next-line + if (this.isReact) { + this.clearTemplate(); + } + this.unWireEvents(); + var classAr = [classNames.root, classNames.disable, 'e-rtl', + 'e-has-header', 'e-lib'].concat(this.cssClass.split(' ').filter(function (css) { return css; })); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classAr); + this.element.removeAttribute('role'); + this.element.removeAttribute('tabindex'); + this.curUL = this.ulElement = this.liCollection = this.headerEle = undefined; + this.element.innerHTML = ''; + this.contentContainer = null; + this.selectedItems = null; + this.selectedLI = null; + this.liElement = null; + this.targetElement = null; + this.currentLiElements = null; + this.virtualCheckBox = null; + _super.prototype.destroy.call(this); + }; + /** + * Switches back from the navigated sub list item. + */ + ListView.prototype.back = function () { + var pID = this.curDSLevel[this.curDSLevel.length - 1]; + if (pID === undefined || this.isInAnimation()) { + return; + } + this.curDSLevel.pop(); + this.setViewDataSource(this.getSubDS()); + var toUL = this.element.querySelector('[data-uid=\'' + pID + '\']'); + var fromUL = this.curUL; + if (!toUL) { + this.createList(); + this.renderIntoDom(this.ulElement); + toUL = this.curUL; + } + else { + toUL = toUL.parentElement; + } + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(this.curDSJSON, this.listBaseOption.fields); + // eslint-disable-next-line + var text = fieldData[this.fields.text]; + this.switchView(fromUL, toUL, true); + this.removeFocus(); + var li = this.element.querySelector('[data-uid=\'' + pID + '\']'); + li.classList.remove(classNames.disable); + li.classList.add(classNames.focused); + if (!(this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked))) { + li.classList.remove(classNames.selected); + } + this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem); + if (this.enableHtmlSanitizer) { + this.setProperties({ headerTitle: _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.headerTitle) }, true); + } + this.header((this.curDSLevel.length ? text : this.headerTitle), (this.curDSLevel.length ? true : false), 'header'); + }; + /** + * Selects the list item from the ListView by passing the elements or field object. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.selectItem = function (item) { + if (this.enableVirtualization) { + this.virtualizationModule.selectItem(item); + } + else if (this.showCheckBox) { + this.setCheckboxLI(this.getLiFromObjOrElement(item)); + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item) === true) { + this.removeSelect(); + } + else { + this.setSelectLI(this.getLiFromObjOrElement(item)); + } + } + }; + ListView.prototype.getLiFromObjOrElement = function (obj) { + var li; + var dataSource = this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] ? + this.localData : this.dataSource; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj)) { + if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') { + if (obj instanceof Element) { + var uid = obj.getAttribute('data-uid').toString(); + for (var i = 0; i < this.liCollection.length; i++) { + if (this.liCollection[i].getAttribute('data-uid').toString() === uid) { + li = this.liCollection[i]; + break; + } + } + } + else { + Array.prototype.some.call(this.curUL.querySelectorAll('.' + classNames.listItem), function (item) { + if (item.innerText.trim() === obj.toString()) { + li = item; + return true; + } + else { + return false; + } + }); + } + } + else { + var resultJSON = this.getItemData(obj); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(resultJSON, this.listBaseOption.fields); + if (resultJSON) { + li = this.element.querySelector('[data-uid="' + + fieldData[this.fields.id] + '"]'); + if (!this.enableVirtualization && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + var curLi = this.element.querySelectorAll('.' + classNames.listItem); + for (var i = 0; i < curLi.length; i++) { + // eslint-disable-next-line + if (curLi[i].innerText.trim() === fieldData[this.fields.text]) { + li = curLi[i]; + } + } + } + } + } + } + return li; + }; + /** + * Selects multiple list items from the ListView. + * + * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of + * elements or array of fields Object with ID and Text fields. + */ + ListView.prototype.selectMultipleItems = function (item) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + for (var i = 0; i < item.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item[i])) { + this.selectItem(item[i]); + } + } + } + }; + ListView.prototype.getParentId = function () { + var parentId = []; + if (this.isNestedList) { + for (var i = this.curDSLevel.length - 1; i >= 0; i--) { + parentId.push(this.curDSLevel[i]); + } + } + return parentId; + }; + ListView.prototype.updateSelectedId = function () { + this.selectedId = []; + var liCollection = this.curUL.getElementsByClassName(classNames.selected); + for (var i = 0; i < liCollection.length; i++) { + var tempData = this.getItemData(liCollection[i]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempData) && tempData[this.listBaseOption.fields.id]) { + this.selectedId.push(tempData[this.listBaseOption.fields.id]); + } + } + }; + /** + * Gets the details of the currently selected item from the list items. + * + */ + ListView.prototype.getSelectedItems = function () { + // eslint-disable-next-line + var finalValue; + var isCompleted = false; + this.selectedId = []; + var dataSource = this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] ? + this.localData : this.dataSource; + if (this.enableVirtualization && !isCompleted) { + finalValue = this.virtualizationModule.getSelectedItems(); + isCompleted = true; + } + else if (this.showCheckBox && !isCompleted) { + // eslint-disable-next-line + var liCollection = this.curUL.getElementsByClassName(classNames.selected); + var liTextCollection = []; + var liDataCollection = []; + this.selectedId = []; + var dataParent = []; + for (var i = 0; i < liCollection.length; i++) { + if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') { + liTextCollection.push(liCollection[i].innerText.trim()); + } + else { + var tempData = this.getItemData(liCollection[i]); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(tempData, this.listBaseOption.fields); + if (this.isNestedList) { + dataParent.push({ data: tempData, parentId: this.getParentId() }); + } + else { + liDataCollection.push(tempData); + } + if (fieldData) { + // eslint-disable-next-line + liTextCollection.push(fieldData[this.listBaseOption.fields.text]); + // eslint-disable-next-line + this.selectedId.push(fieldData[this.listBaseOption.fields.id]); + } + else { + liTextCollection.push(undefined); + this.selectedId.push(undefined); + } + } + } + if ((typeof dataSource[0] === 'string' + || typeof dataSource[0] === 'number') + && !isCompleted) { + finalValue = { item: liCollection, data: dataSource, text: liTextCollection }; + isCompleted = true; + } + if (this.isNestedList && !isCompleted) { + finalValue = { item: liCollection, data: dataParent, text: liTextCollection }; + isCompleted = true; + } + else if (!isCompleted) { + finalValue = { item: liCollection, data: liDataCollection, text: liTextCollection }; + isCompleted = true; + } + } + else if (!isCompleted) { + var liElement = this.element.getElementsByClassName(classNames.selected)[0]; + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(this.getItemData(liElement), this.listBaseOption.fields); + if ((typeof dataSource[0] === 'string' + || typeof dataSource[0] === 'number') + && !isCompleted) { + finalValue = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) ? { + item: liElement, data: dataSource, + text: liElement.innerText.trim() + } : undefined; + isCompleted = true; + } + else if (!isCompleted) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fieldData) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liElement)) { + finalValue = undefined; + isCompleted = true; + } + else { + // eslint-disable-next-line + this.selectedId.push(fieldData[this.listBaseOption.fields.id]); + finalValue = { + text: fieldData[this.listBaseOption.fields.text], item: liElement, + data: this.getItemData(liElement) + }; + isCompleted = true; + } + } + } + return finalValue; + }; + /** + * Finds out an item details from the current list. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.findItem = function (item) { + return this.getItemData(item); + }; + /** + * Enables the disabled list items by passing the Id and text fields. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.enableItem = function (item) { + this.setItemState(item, true); + if (this.enableVirtualization) { + this.virtualizationModule.enableItem(item); + } + }; + /** + * Disables the list items by passing the Id and text fields. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.disableItem = function (item) { + this.setItemState(item, false); + if (this.enableVirtualization) { + this.virtualizationModule.disableItem(item); + } + }; + //A function that used to set state of the list item like enable, disable. + ListView.prototype.setItemState = function (item, isEnable) { + var resultJSON = this.getItemData(item); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(resultJSON, this.listBaseOption.fields); + if (resultJSON) { + var li = this.element.querySelector('[data-uid="' + fieldData[this.fields.id] + '"]'); + if (isEnable) { + if (li) { + li.classList.remove(classNames.disable); + } + delete resultJSON[this.fields.enabled]; + } + else if (!isEnable) { + if (li) { + li.classList.add(classNames.disable); + } + // eslint-disable-next-line + resultJSON[this.fields.enabled] = false; + } + } + }; + /** + * Shows the hide list item from the ListView. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.showItem = function (item) { + this.showHideItem(item, false, ''); + if (this.enableVirtualization) { + this.virtualizationModule.showItem(item); + } + }; + /** + * Hides an list item from the ListView. + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.hideItem = function (item) { + this.showHideItem(item, true, 'none'); + if (this.enableVirtualization) { + this.virtualizationModule.hideItem(item); + } + }; + ListView.prototype.showHideItem = function (obj, isHide, display) { + var resultJSON = this.getItemData(obj); + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(resultJSON, this.listBaseOption.fields); + if (resultJSON) { + var li = this.element.querySelector('[data-uid="' + fieldData[this.fields.id] + '"]'); + if (li) { + li.style.display = display; + } + if (isHide) { + // eslint-disable-next-line + resultJSON[this.fields.isVisible] = false; + } + else { + delete resultJSON[this.fields.isVisible]; + } + } + }; + /** + * Adds the new list item(s) to the current ListView. + * To add a new list item(s) in the ListView, we need to pass the `data` as an array of items that need + * to be added and `fields` as the target item to which we need to add the given item(s) as its children. + * For example fields: { text: 'Name', tooltip: 'Name', id:'id'} + * + * @param {{Object}[]} data - JSON Array Data that need to add. + * + * @param {Fields} fields - Target item to add the given data as its children (can be null). + * + */ + ListView.prototype.addItem = function (data, fields) { + if (fields === void 0) { fields = undefined; } + var dataSource = this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] + ? this.localData : this.dataSource; + this.addItemInternally(data, fields, dataSource); + }; + ListView.prototype.addItemInternally = function (data, fields, dataSource) { + if (data instanceof Array) { + if (this.enableVirtualization) { + this.virtualizationModule.addItem(data, fields, dataSource); + } + else { + var ds = this.findItemFromDS(dataSource, fields); + var child = void 0; + if (ds) { + var fieldData = Object(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["getFieldValues"])(ds, this.listBaseOption.fields); + child = fieldData[this.fields.child]; + if (!child) { + child = []; + } + child = child.concat(data); + } + // check for whether target is nested level or top level in list + if (ds instanceof Array) { + for (var i = 0; i < data.length; i++) { + dataSource.push(data[i]); + this.setViewDataSource(dataSource); + // since it is top level target, get the content container's first child + // as it is always the top level UL + var targetUL = this.contentContainer + ? this.contentContainer.children[0] + : null; + // check for whether the list was previously empty or not, if it is + // proceed to call initial render + if (this.contentContainer && targetUL) { + this.addItemIntoDom(data[i], targetUL, this.curViewDS); + } + else { + this.reRender(); + } + } + this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem); + } + else { + // proceed as target item is in nested level, only if it is a valid target ds + if (ds) { + ds[this.fields.child] = child; + this.addItemInNestedList(ds, data); + } + } + } + } + }; + ListView.prototype.addItemInNestedList = function (targetItemData, itemQueue) { + // eslint-disable-next-line + var targetItemId = targetItemData[this.fields.id]; + var targetChildDS = targetItemData[this.fields.child]; + var isAlreadyRenderedUL = this.element.querySelector('[pid=\'' + targetItemId + '\']'); + var targetLi = this.element.querySelector('[data-uid=\'' + targetItemId + '\']'); + var targetUL = isAlreadyRenderedUL + ? isAlreadyRenderedUL + : targetLi + ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(targetLi, 'ul') + : null; + var targetDS = isAlreadyRenderedUL ? targetChildDS : [targetItemData]; + var isTargetEmptyChild = targetLi ? !targetLi.classList.contains(classNames.hasChild) : false; + var isRefreshTemplateNeeded = false; + // if li element is already rendered, that element needs to be refreshed so that + // it becomes child viewable due to new child items are added now + if (isTargetEmptyChild) { + var targetRefreshedElement = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createListItemFromJson(this.createElement, targetDS, this.listBaseOption, null, null, this); + this.setAttributes(targetRefreshedElement); + targetUL.insertBefore(targetRefreshedElement[0], targetLi); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(targetLi); + isRefreshTemplateNeeded = true; + } + // if it is already rendered element, we need to create and append new elements + if (isAlreadyRenderedUL && itemQueue) { + for (var i = 0; i < itemQueue.length; i++) { + targetDS.push(itemQueue[i]); + this.addItemIntoDom(itemQueue[i], targetUL, targetDS); + } + isRefreshTemplateNeeded = true; + } + }; + ListView.prototype.addItemIntoDom = function (currentItem, targetUL, curViewDS) { + var index = curViewDS.indexOf(currentItem); + this.addListItem(currentItem, index, targetUL, curViewDS); + var curItemDS = curViewDS[index - 1]; + if (curItemDS && curItemDS.isHeader && curItemDS.items.length === 1) { + this.addListItem(curItemDS, (index - 1), targetUL, curViewDS); + } + }; + ListView.prototype.addListItem = function (dataSource, index, ulElement, curViewDS) { + var target = this.getLiFromObjOrElement(curViewDS[index + 1]) || + this.getLiFromObjOrElement(curViewDS[index + 2]) || null; + var li = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createListItemFromJson(this.createElement, [dataSource], this.listBaseOption, null, null, this); + this.setAttributes(li); + // eslint-disable-next-line + if (this.template && this.isReact) { + this.renderReactTemplates(); + } + if (this.fields.groupBy && curViewDS[index + 1] && curViewDS[index + 1].isHeader) { + var targetEle = this.getLiFromObjOrElement(curViewDS[index - 1]); + if (targetEle) { + target = targetEle.nextElementSibling; + } + } + ulElement.insertBefore(li[0], target); + }; + /** + * Removes the list item from the data source based on a passed + * element like fields: { text: 'Name', tooltip: 'Name', id:'id'} + * + * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields. + */ + ListView.prototype.removeItem = function (item) { + var listDataSource = this.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] + ? this.localData : this.dataSource; + if (this.enableVirtualization) { + this.virtualizationModule.removeItem(item); + } + else { + this.removeItemFromList(item, listDataSource); + } + }; + ListView.prototype.removeItemFromList = function (obj, listDataSource) { + var _this = this; + var curViewDS = this.curViewDS; + var fields = obj instanceof Element ? this.getElementUID(obj) : obj; + var dataSource; + // eslint-disable-next-line prefer-const + dataSource = this.findItemFromDS(listDataSource, fields, true); + if (dataSource) { + var data_1; + // eslint-disable-next-line prefer-const + data_1 = this.findItemFromDS(dataSource, fields); + var index = curViewDS.indexOf(data_1); + var li = this.getLiFromObjOrElement(obj); + var groupLi = void 0; + this.validateNestedView(li); + if (this.fields.groupBy && this.curViewDS[index - 1] && + curViewDS[index - 1].isHeader && + curViewDS[index - 1].items.length === 1) { + if (li && li.previousElementSibling.classList.contains(classNames.groupListItem) && + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li.nextElementSibling) || (li.nextElementSibling && + li.nextElementSibling.classList.contains(classNames.groupListItem)))) { + groupLi = li.previousElementSibling; + } + } + if (li) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(li); + } + if (groupLi) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(groupLi); + } + // eslint-disable-next-line + var foundData = (dataSource.length - 1) <= 0 + ? this.findParent(this.localData, this.fields.id, + // eslint-disable-next-line + function (value) { return value === data_1[_this.fields.id]; }, null) : null; + var dsIndex = dataSource.indexOf(data_1); + dataSource.splice(dsIndex, 1); + this.setViewDataSource(listDataSource); + if (foundData + && foundData.parent + && Array.isArray(foundData.parent[this.fields.child]) + && foundData.parent[this.fields.child].length <= 0) { + var parentLi = this.getLiFromObjOrElement(foundData.parent); + if (parentLi) { + var li_1 = _common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].createListItemFromJson(this.createElement, [foundData.parent], this.listBaseOption, null, null, this); + this.setAttributes(li_1); + parentLi.parentElement.insertBefore(li_1[0], parentLi); + parentLi.parentElement.removeChild(parentLi); + } + } + if (dataSource.length <= 0) { + this.back(); + } + this.liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem)); + } + }; + // validate before removing an element whether the current view is inside target element's child view + ListView.prototype.validateNestedView = function (li) { + var liID = li ? li.getAttribute('data-uid').toString().toLowerCase() : null; + if (liID && this.curDSLevel && this.curDSLevel.length > 0) { + while (this.curDSLevel.some(function (id) { return id.toString().toLowerCase() === liID; })) { + this.back(); + } + } + }; + /** + * Removes multiple items from the ListView by passing the array of elements or array of field objects. + * + * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of elements or array of field Object with ID and Text fields. + */ + ListView.prototype.removeMultipleItems = function (item) { + if (item.length) { + for (var i = 0; i < item.length; i++) { + this.removeItem(item[i]); + } + } + }; + // eslint-disable-next-line + ListView.prototype.findParent = function (dataSource, id, callback, parent) { + // eslint-disable-next-line no-prototype-builtins + if (dataSource.hasOwnProperty(id) && callback(dataSource[id]) === true) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, dataSource); + } + for (var i = 0; i < Object.keys(dataSource).length; i++) { + if (dataSource[Object.keys(dataSource)[i]] + && typeof dataSource[Object.keys(dataSource)[i]] === 'object') { + // eslint-disable-next-line + var result = this.findParent(dataSource[Object.keys(dataSource)[i]], id, callback, dataSource); + if (result != null) { + if (!result.parent) { + result.parent = parent; + } + return result; + } + } + } + return null; + }; + // Module Required function + ListView.prototype.getModuleName = function () { + return 'listview'; + }; + ListView.prototype.requiredModules = function () { + var modules = []; + if (this.enableVirtualization) { + modules.push({ args: [this], member: 'virtualization' }); + } + return modules; + }; + /** + * Get the properties to be maintained in the persisted state. + */ + ListView.prototype.getPersistData = function () { + return this.addOnPersist(['cssClass', 'enableRtl', 'htmlAttributes', + 'enable', 'fields', 'animation', 'headerTitle', + 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition', 'selectedId']); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ListView.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ListView.prototype, "enableVirtualization", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({}) + ], ListView.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ListView.prototype, "enable", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], ListView.prototype, "dataSource", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ListView.prototype, "query", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])(_common_list_base__WEBPACK_IMPORTED_MODULE_3__["ListBase"].defaultMappedFields, FieldSettings) + ], ListView.prototype, "fields", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ effect: 'SlideLeft', duration: 400, easing: 'ease' }) + ], ListView.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], ListView.prototype, "sortOrder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ListView.prototype, "showIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ListView.prototype, "showCheckBox", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], ListView.prototype, "checkBoxPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ListView.prototype, "headerTitle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ListView.prototype, "showHeader", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], ListView.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ListView.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ListView.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ListView.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ListView.prototype, "headerTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], ListView.prototype, "groupTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ListView.prototype, "select", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ListView.prototype, "actionBegin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ListView.prototype, "actionComplete", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ListView.prototype, "actionFailure", void 0); + ListView = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], ListView); + return ListView; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/virtualization.js": +/*!*****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/list-view/virtualization.js ***! + \*****************************************************************************/ +/*! exports provided: Virtualization */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Virtualization", function() { return Virtualization; }); +/* harmony import */ var _list_view__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list-view */ "./ej2-resources/22.1.37/scripts/ej2-lists/list-view/list-view.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_list_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/list-base */ "./ej2-resources/22.1.37/scripts/ej2-lists/common/list-base.js"); +/* harmony import */ var _ej2_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); + + + + +var listElementCount = 1.5; +var windowElementCount = 3; +var Virtualization = /** @__PURE__ @class */ (function () { + function Virtualization(instance) { + this.elementDifference = 0; + this.listViewInstance = instance; + } + /** + * For internal use only. + * + * @private + */ + Virtualization.prototype.isNgTemplate = function () { + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.listViewInstance.templateRef) && typeof this.listViewInstance.templateRef !== 'string'; + }; + /** + * Checks if the platform is a Vue and its template property is a function type. + * + * @returns {boolean} indicating the result of the check + */ + Virtualization.prototype.isVueFunctionTemplate = function () { + return this.listViewInstance.isVue && typeof this.listViewInstance.template === 'function'; + }; + /** + * For internal use only. + * + * @private + */ + Virtualization.prototype.uiVirtualization = function () { + this.wireScrollEvent(false); + var curViewDS = this.listViewInstance.curViewDS; + var firstDs = curViewDS.slice(0, 1); + this.listViewInstance.ulElement = this.listViewInstance.curUL = _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createList( + // eslint-disable-next-line + this.listViewInstance.createElement, firstDs, this.listViewInstance.listBaseOption, null, this.listViewInstance); + this.listViewInstance.contentContainer = this.listViewInstance.createElement('div', { className: _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].container }); + this.listViewInstance.element.appendChild(this.listViewInstance.contentContainer); + this.listViewInstance.contentContainer.appendChild(this.listViewInstance.ulElement); + this.listItemHeight = this.listViewInstance.ulElement.firstElementChild.getBoundingClientRect().height; + this.expectedDomItemCount = this.ValidateItemCount(10000); + this.domItemCount = this.ValidateItemCount(Object.keys(this.listViewInstance.curViewDS).length); + this.uiFirstIndex = 0; + this.uiLastIndex = this.domItemCount - 1; + var otherDs = curViewDS.slice(1, this.domItemCount); + var listItems = _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createListItemFromJson( + // eslint-disable-next-line + this.listViewInstance.createElement, otherDs, this.listViewInstance.listBaseOption, null, null, this.listViewInstance); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["append"])(listItems, this.listViewInstance.ulElement); + this.listViewInstance.liCollection = this.listViewInstance.curUL.querySelectorAll('li'); + this.topElement = this.listViewInstance.createElement('div'); + this.listViewInstance.ulElement.insertBefore(this.topElement, this.listViewInstance.ulElement.firstElementChild); + this.bottomElement = this.listViewInstance.createElement('div'); + this.listViewInstance.ulElement.insertBefore(this.bottomElement, null); + this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight); + this.topElement.style.height = 0 + 'px'; + this.bottomElement.style.height = this.totalHeight + 'px'; + this.topElementHeight = 0; + this.bottomElementHeight = this.totalHeight; + this.listDiff = 0; + this.uiIndicesInitialization(); + }; + Virtualization.prototype.wireScrollEvent = function (destroy) { + if (!destroy) { + if (this.listViewInstance.isWindow) { + this.onVirtualScroll = this.onVirtualUiScroll.bind(this); + window.addEventListener('scroll', this.onVirtualScroll); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["EventHandler"].add(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll, this); + } + } + else { + if (this.listViewInstance.isWindow === true) { + window.removeEventListener('scroll', this.onVirtualScroll); + window.removeEventListener('scroll', this.updateUl); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["EventHandler"].remove(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll); + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["EventHandler"].remove(this.listViewInstance.element, 'scroll', this.updateUlContainer); + } + } + }; + Virtualization.prototype.updateUlContainer = function (e) { + var listDiff; + var virtualElementContainer = this.listViewInstance.ulElement.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].virtualElementContainer); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.listViewInstance.liElementHeight)) { + this.listViewInstance.updateLiElementHeight(); + } + if (this.listViewInstance.isWindow) { + // eslint-disable-next-line + listDiff = Math.round(e.target.documentElement.scrollTop / this.listViewInstance.liElementHeight) - 2; + } + else { + // eslint-disable-next-line + listDiff = Math.round(e.target.scrollTop / this.listViewInstance.liElementHeight) - 2; + } + if (((listDiff - 1) * this.listViewInstance.liElementHeight) < 0) { + virtualElementContainer.style.top = '0px'; + } + else { + virtualElementContainer.style.top = (listDiff) * this.listViewInstance.liElementHeight + 'px'; + } + }; + Virtualization.prototype.ValidateItemCount = function (dataSourceLength) { + var height = parseFloat(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["formatUnit"])(this.listViewInstance.height)); + var itemCount; + if (this.listViewInstance.isWindow) { + itemCount = Math.round((window.innerHeight / this.listItemHeight) * windowElementCount); + } + else { + if (typeof this.listViewInstance.height === 'string' && this.listViewInstance.height.indexOf('%') !== -1) { + // eslint-disable-next-line max-len + itemCount = Math.round((this.listViewInstance.element.getBoundingClientRect().height / this.listItemHeight) * listElementCount); + } + else { + itemCount = Math.round((height / this.listItemHeight) * listElementCount); + } + } + if (itemCount > dataSourceLength) { + itemCount = dataSourceLength; + } + return itemCount; + }; + Virtualization.prototype.uiIndicesInitialization = function () { + this.uiIndices = { 'activeIndices': [], 'disabledItemIndices': [], 'hiddenItemIndices': [] }; + var data = this.listViewInstance.curViewDS; + for (var i = 0; i < data.length; i++) { + if (this.listViewInstance.showCheckBox && data[i][this.listViewInstance.fields.isChecked]) { + this.uiIndices.activeIndices.push(i); + } + // eslint-disable-next-line + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(data[i][this.listViewInstance.fields.enabled]) && + !data[i][this.listViewInstance.fields.enabled]) { + // eslint-disable-next-line + (this.uiIndices.disabledItemIndices.push(i)); + } + } + if (this.isNgTemplate()) { + var items = this.listViewInstance.element.querySelectorAll('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItem); + for (var index = 0; index < items.length; index++) { + items[index].context = this.listViewInstance.viewContainerRef.get(index).context; + } + } + }; + Virtualization.prototype.refreshItemHeight = function () { + if (this.listViewInstance.curViewDS.length) { + var curViewDS = this.listViewInstance.curViewDS; + this.listItemHeight = this.topElement.nextSibling.getBoundingClientRect().height; + this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight); + this.bottomElementHeight = this.totalHeight; + this.bottomElement.style.height = this.totalHeight + 'px'; + } + }; + Virtualization.prototype.getscrollerHeight = function (startingHeight) { + return this.listViewInstance.isWindow ? (((pageYOffset - startingHeight) <= 0) ? 0 : + (pageYOffset - startingHeight)) : ((this.listViewInstance.element.scrollTop - startingHeight) <= 0) ? 0 : + (this.listViewInstance.element.scrollTop - startingHeight); + }; + Virtualization.prototype.onVirtualUiScroll = function (e) { + var _a; + var startingHeight; + if (this.listViewInstance.isWindow) { + startingHeight = this.listViewInstance.ulElement.getBoundingClientRect().top - + document.documentElement.getBoundingClientRect().top; + } + else { + startingHeight = this.listViewInstance.headerEle ? this.listViewInstance.headerEle.getBoundingClientRect().height : 0; + } + this.scrollPosition = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.scrollPosition) ? 0 : this.scrollPosition; + var scroll = this.getscrollerHeight(startingHeight); + this.topElementHeight = this.listItemHeight * Math.floor(scroll / this.listItemHeight); + this.bottomElementHeight = this.totalHeight - this.topElementHeight; + _a = scroll <= this.totalHeight ? + [this.topElementHeight, this.bottomElementHeight] : [this.totalHeight, 0], this.topElementHeight = _a[0], this.bottomElementHeight = _a[1]; + if (this.topElementHeight !== parseFloat(this.topElement.style.height)) { + this.topElement.style.height = this.topElementHeight + 'px'; + this.bottomElement.style.height = this.bottomElementHeight + 'px'; + if (scroll > this.scrollPosition) { + var listDiff = Math.round(((this.topElementHeight / this.listItemHeight) - this.listDiff)); + if (listDiff > (this.expectedDomItemCount + 5)) { + this.onLongScroll(listDiff, true); + } + else { + this.onNormalScroll(listDiff, true); + } + } + else { + var listDiff = Math.round((this.listDiff - (this.topElementHeight / this.listItemHeight))); + if (listDiff > (this.expectedDomItemCount + 5)) { + this.onLongScroll(listDiff, false); + } + else { + this.onNormalScroll(listDiff, false); + } + } + } + this.listDiff = Math.round(this.topElementHeight / this.listItemHeight); + if (typeof this.listViewInstance.onUIScrolled === 'function') { + this.listViewInstance.onUIScrolled(); + } + this.scrollPosition = scroll; + }; + Virtualization.prototype.onLongScroll = function (listDiff, isScrollingDown) { + var index = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff); + var elements = this.listViewInstance.ulElement.querySelectorAll('li'); + for (var i = 0; i < elements.length; i++) { + this.updateUI(elements[i], index); + index++; + } + this.uiLastIndex = isScrollingDown ? (this.uiLastIndex + listDiff) : (this.uiLastIndex - listDiff); + this.uiFirstIndex = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff); + }; + Virtualization.prototype.onNormalScroll = function (listDiff, isScrollingDown) { + if (isScrollingDown) { + for (var i = 0; i < listDiff; i++) { + var index = ++this.uiLastIndex; + this.updateUI(this.topElement.nextElementSibling, index, this.bottomElement); + this.uiFirstIndex++; + } + } + else { + for (var i = 0; i < listDiff; i++) { + var index = --this.uiFirstIndex; + var target = this.topElement.nextSibling; + this.updateUI(this.bottomElement.previousElementSibling, index, target); + this.uiLastIndex--; + } + } + }; + Virtualization.prototype.updateUiContent = function (element, index) { + // eslint-disable-next-line + var curViewDs = this.listViewInstance.curViewDS; + if (typeof this.listViewInstance.dataSource[0] === 'string' || + typeof this.listViewInstance.dataSource[0] === 'number') { + element.dataset.uid = _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateId(); + element.getElementsByClassName(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItemText)[0].innerHTML = + this.listViewInstance.curViewDS[index].toString(); + } + else { + // eslint-disable-next-line + element.dataset.uid = (curViewDs[index][this.listViewInstance.fields.id]) ? + // eslint-disable-next-line + (curViewDs[index][this.listViewInstance.fields.id]) : _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateId(); + element.getElementsByClassName(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItemText)[0].innerHTML = + // eslint-disable-next-line + (curViewDs[index][this.listViewInstance.fields.text]); + } + if (this.listViewInstance.showIcon) { + if (element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listIcon)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listIcon)); + } + if (this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss]) { + var textContent = element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].textContent); + var target = this.listViewInstance.createElement('div', { + className: _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listIcon + ' ' + + this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss] + }); + textContent.insertBefore(target, element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItemText)); + } + } + if (this.listViewInstance.showCheckBox && this.listViewInstance.fields.groupBy) { + if (!this.checkListWrapper) { + this.checkListWrapper = this.listViewInstance.curUL.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper).cloneNode(true); + } + var textContent = element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].textContent); + if (this.listViewInstance.curViewDS[index].isHeader) { + if (element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper)) { + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checklist); + textContent.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkbox); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper)); + } + } + else { + if (!element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper)) { + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checklist); + textContent.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkbox); + textContent.insertBefore(this.checkListWrapper.cloneNode(true), element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItemText)); + } + } + } + }; + Virtualization.prototype.changeElementAttributes = function (element, index) { + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].disable); + if (this.uiIndices.disabledItemIndices.length && this.uiIndices.disabledItemIndices.indexOf(index) !== -1) { + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].disable); + } + element.style.display = ''; + if (this.uiIndices.hiddenItemIndices.length && this.uiIndices.hiddenItemIndices.indexOf(index) !== -1) { + element.style.display = 'none'; + } + if (this.listViewInstance.showCheckBox) { + var checklistElement = element.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper); + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected); + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused); + if (checklistElement) { + checklistElement.removeAttribute('aria-checked'); + checklistElement.firstElementChild.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checked); + } + if (this.uiIndices.activeIndices.length && this.uiIndices.activeIndices.indexOf(index) !== -1 && + !this.listViewInstance.curUL.querySelector(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected)) { + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected); + checklistElement.firstElementChild.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checked); + checklistElement.setAttribute('aria-checked', 'true'); + if (this.activeIndex === index) { + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused); + } + } + } + else { + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected); + element.removeAttribute('aria-selected'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.activeIndex) && this.activeIndex === index && + !this.listViewInstance.curUL.querySelector(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected)) { + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected); + element.setAttribute('aria-selected', 'true'); + } + } + if (this.listViewInstance.fields.groupBy) { + if (this.listViewInstance.curViewDS[index].isHeader) { + if (element.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItem)) { + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItem); + element.setAttribute('role', 'group'); + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].groupListItem); + } + } + else { + if (element.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].groupListItem)) { + element.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].groupListItem); + element.setAttribute('role', 'listitem'); + element.classList.add(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].listItem); + } + } + } + }; + Virtualization.prototype.findDSAndIndexFromId = function (ds, fields) { + var _this = this; + var resultJSON = {}; + fields = this.listViewInstance.getElementUID(fields); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(fields)) { + ds.some(function (data, index) { + if ((fields[_this.listViewInstance.fields.id] && + // eslint-disable-next-line + fields[_this.listViewInstance.fields.id] + // eslint-disable-next-line + === (data[_this.listViewInstance.fields.id] && data[_this.listViewInstance.fields.id]) || fields === data)) { + resultJSON.index = index; + resultJSON.data = data; + return true; + } + else { + return false; + } + }); + } + return resultJSON; + }; + Virtualization.prototype.getSelectedItems = function () { + var _this = this; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.activeIndex) || (this.listViewInstance.showCheckBox && this.uiIndices.activeIndices.length)) { + var dataCollection = []; + var textCollection = []; + if (typeof this.listViewInstance.dataSource[0] === 'string' || + typeof this.listViewInstance.dataSource[0] === 'number') { + var curViewDS_1 = this.listViewInstance.curViewDS; + if (this.listViewInstance.showCheckBox) { + var indices = this.uiIndices.activeIndices; + for (var i = 0; i < indices.length; i++) { + dataCollection.push(curViewDS_1[indices[i]]); + } + return { + text: dataCollection, + // eslint-disable-next-line + data: dataCollection, + index: this.uiIndices.activeIndices.map(function (index) { + return _this.listViewInstance.dataSource.indexOf(curViewDS_1[index]); + }) + }; + } + else { + return { + text: curViewDS_1[this.activeIndex], + data: curViewDS_1[this.activeIndex], + index: this.listViewInstance.dataSource.indexOf(curViewDS_1[this.activeIndex]) + }; + } + } + else { + var curViewDS_2 = this.listViewInstance.curViewDS; + var text = this.listViewInstance.fields.text; + if (this.listViewInstance.showCheckBox) { + var indexArray = this.uiIndices.activeIndices; + for (var i = 0; i < indexArray.length; i++) { + textCollection.push(curViewDS_2[indexArray[i]]["" + text]); + // eslint-disable-next-line + dataCollection.push(curViewDS_2[indexArray[i]]); + } + // eslint-disable-next-line + var dataSource_1 = this.listViewInstance.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_3__["DataManager"] + ? curViewDS_2 : this.listViewInstance.dataSource; + return { + text: textCollection, + // eslint-disable-next-line + data: dataCollection, + index: this.uiIndices.activeIndices.map(function (index) { + return dataSource_1.indexOf(curViewDS_2[index]); + }) + }; + } + else { + // eslint-disable-next-line + var dataSource = this.listViewInstance.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_3__["DataManager"] + ? curViewDS_2 : this.listViewInstance.dataSource; + return { + text: curViewDS_2[this.activeIndex][this.listViewInstance.fields.text], + // eslint-disable-next-line + data: curViewDS_2[this.activeIndex], + index: dataSource.indexOf(curViewDS_2[this.activeIndex]) + }; + } + } + } + else { + return undefined; + } + }; + Virtualization.prototype.selectItem = function (obj) { + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj); + if (Object.keys(resutJSON).length) { + var isSelected = this.activeIndex === resutJSON.index; + var isChecked = void 0; + this.activeIndex = resutJSON.index; + if (this.listViewInstance.showCheckBox) { + if (this.uiIndices.activeIndices.indexOf(resutJSON.index) === -1) { + isChecked = true; + this.uiIndices.activeIndices.push(resutJSON.index); + } + else { + isChecked = false; + this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(resutJSON.index), 1); + } + if (this.listViewInstance.curUL.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused)) { + this.listViewInstance.curUL.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused).classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused); + } + } + if (this.listViewInstance.getLiFromObjOrElement(obj)) { + if (this.listViewInstance.showCheckBox) { + this.listViewInstance.setCheckboxLI(this.listViewInstance.getLiFromObjOrElement(obj)); + } + else { + this.listViewInstance.setSelectLI(this.listViewInstance.getLiFromObjOrElement(obj)); + } + } + else { + // eslint-disable-next-line + var eventArgs = void 0; + if (typeof this.listViewInstance.dataSource[0] === 'string' || + typeof this.listViewInstance.dataSource[0] === 'number') { + eventArgs = { + text: this.listViewInstance.curViewDS[this.activeIndex], + data: this.listViewInstance.curViewDS[this.activeIndex], + index: this.activeIndex + }; + } + else { + var curViewDS = this.listViewInstance.curViewDS; + eventArgs = { + text: curViewDS[this.activeIndex][this.listViewInstance.fields.text], + data: curViewDS[this.activeIndex], + index: this.activeIndex + }; + } + if (this.listViewInstance.showCheckBox) { + eventArgs.isChecked = isChecked; + this.listViewInstance.trigger('select', eventArgs); + } + else if (!isSelected) { + this.listViewInstance.removeSelect(); + this.listViewInstance.trigger('select', eventArgs); + } + } + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(obj) && !this.listViewInstance.showCheckBox) { + this.listViewInstance.removeSelect(); + this.activeIndex = undefined; + } + }; + Virtualization.prototype.enableItem = function (obj) { + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj); + if (Object.keys(resutJSON).length) { + this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(resutJSON.index), 1); + } + }; + Virtualization.prototype.disableItem = function (obj) { + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj); + if (Object.keys(resutJSON).length && this.uiIndices.disabledItemIndices.indexOf(resutJSON.index) === -1) { + this.uiIndices.disabledItemIndices.push(resutJSON.index); + } + }; + Virtualization.prototype.showItem = function (obj) { + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj); + if (Object.keys(resutJSON).length) { + this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index), 1); + } + }; + Virtualization.prototype.hideItem = function (obj) { + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj); + if (Object.keys(resutJSON).length && this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index) === -1) { + this.uiIndices.hiddenItemIndices.push(resutJSON.index); + } + }; + Virtualization.prototype.removeItem = function (obj) { + var dataSource; + var curViewDS = this.listViewInstance.curViewDS; + // eslint-disable-next-line + var resutJSON = this.findDSAndIndexFromId(curViewDS, obj); + // eslint-disable-next-line + if (Object.keys(resutJSON).length) { + dataSource = resutJSON.data; + if (curViewDS[resutJSON.index - 1] && + curViewDS[resutJSON.index - 1].isHeader && + (curViewDS[resutJSON.index - 1]) + .items.length === 1) { + this.removeUiItem(resutJSON.index - 1); + this.removeUiItem(resutJSON.index - 1); + } + else { + this.removeUiItem(resutJSON.index); + } + } + var listDataSource = this.listViewInstance.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_3__["DataManager"] + ? this.listViewInstance.localData : this.listViewInstance.dataSource; + var index = listDataSource.indexOf(dataSource); + if (index !== -1) { + listDataSource.splice(index, 1); + this.listViewInstance.setViewDataSource(listDataSource); + } + // recollect all the list item into collection + this.listViewInstance.liCollection = + this.listViewInstance.curUL.querySelectorAll('li'); + }; + // eslint-disable-next-line + Virtualization.prototype.setCheckboxLI = function (li, e) { + var index = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex; + this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex; + if (li.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected)) { + if (this.uiIndices.activeIndices.indexOf(index) === -1) { + this.uiIndices.activeIndices.push(index); + } + } + else { + this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1); + } + }; + // eslint-disable-next-line + Virtualization.prototype.setSelectLI = function (li, e) { + this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex; + }; + Virtualization.prototype.checkedItem = function (checked) { + if (checked) { + this.uiIndices.activeIndices = []; + this.activeIndex = undefined; + var data = this.listViewInstance.curViewDS; + for (var index = 0; index < data.length; index++) { + if (!data[index].isHeader) { + this.uiIndices.activeIndices.push(index); + } + } + } + else { + this.activeIndex = undefined; + this.uiIndices.activeIndices = []; + } + }; + Virtualization.prototype.addUiItem = function (index) { + // virtually new add list item based on the scollbar position + // if the scroll bar is at the top, just pretend the new item has been added since no UI + // change is required for the item that has been added at last but when scroll bar is at the bottom + // just detach top and inject into bottom to mimic new item is added + var curViewDs = this.listViewInstance.curViewDS; + this.changeUiIndices(index, true); + if (this.activeIndex && this.activeIndex >= index) { + this.activeIndex++; + } + if (this.listViewInstance.showCheckBox && + curViewDs[index][this.listViewInstance.fields.isChecked]) { + this.uiIndices.activeIndices.push(index); + } + if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) { + this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px'; + } + if (parseFloat(this.bottomElement.style.height)) { + var liItem = this.listViewInstance.curUL.lastElementChild.previousSibling; + var target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) || + this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]); + if (target) { + this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px'; + this.updateUI(liItem, index, target); + } + } + else { + var liItem = this.listViewInstance.curUL.firstElementChild.nextSibling; + var target = void 0; + if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) { + target = this.listViewInstance.curUL.lastElementChild; + } + else { + target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) || + this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]); + } + this.topElement.style.height = parseFloat(this.topElement.style.height) + this.listItemHeight + 'px'; + this.uiFirstIndex++; + this.uiLastIndex++; + if (target) { + this.updateUI(liItem, index, target); + if (this.listViewInstance.isWindow === true) { + window.scrollTo(0, (pageYOffset + this.listItemHeight)); + } + else { + this.listViewInstance.element.scrollTop += this.listItemHeight; + } + } + } + this.totalHeight += this.listItemHeight; + this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight); + }; + Virtualization.prototype.removeUiItem = function (index) { + this.totalHeight -= this.listItemHeight; + var curViewDS = this.listViewInstance.curViewDS[index]; + var liItem = this.listViewInstance.getLiFromObjOrElement(curViewDS); + this.listViewInstance.curViewDS.splice(index, 1); + if (this.activeIndex && this.activeIndex >= index) { + this.activeIndex--; + } + if (liItem) { + if (this.domItemCount > Object.keys(this.listViewInstance.curViewDS).length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(liItem); + this.domItemCount--; + this.uiLastIndex--; + this.totalHeight = 0; + } + else { + if (liItem.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].disable)) { + liItem.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].disable); + this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(index), 1); + } + if (liItem.style.display === 'none') { + liItem.style.display = ''; + this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(index), 1); + } + if (this.listViewInstance.showCheckBox && liItem.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected)) { + this.listViewInstance.removeSelect(); + this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1); + var checklistElement = liItem.querySelector('.' + _list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checkboxWrapper); + checklistElement.removeAttribute('aria-checked'); + checklistElement.firstElementChild.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].checked); + if (liItem.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused)) { + liItem.classList.remove(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].focused); + this.activeIndex = undefined; + } + } + else if (liItem.classList.contains(_list_view__WEBPACK_IMPORTED_MODULE_0__["classNames"].selected)) { + this.listViewInstance.removeSelect(); + this.activeIndex = undefined; + } + if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) { + this.updateUI(liItem, this.uiLastIndex, this.bottomElement); + } + else if (parseFloat(this.bottomElement.style.height)) { + this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) - this.listItemHeight + 'px'; + this.updateUI(liItem, this.uiLastIndex, this.bottomElement); + } + else { + this.topElement.style.height = parseFloat(this.topElement.style.height) - this.listItemHeight + 'px'; + this.updateUI(liItem, (this.uiFirstIndex - 1), this.topElement.nextSibling); + this.uiLastIndex--; + this.uiFirstIndex--; + } + } + } + this.changeUiIndices(index, false); + this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight); + }; + Virtualization.prototype.changeUiIndices = function (index, increment) { + var keys = Object.keys(this.uiIndices); + for (var ind = 0; ind < keys.length; ind++) { + this.uiIndices[keys[ind]] = this.uiIndices[keys[ind]].map(function (i) { + if (i >= index) { + return increment ? ++i : --i; + } + else { + return i; + } + }); + } + }; + Virtualization.prototype.addItem = function (data, fields, dataSource) { + for (var i = 0; i < data.length; i++) { + var currentItem = data[i]; + // push the given data to main data array + dataSource.push(currentItem); + // recalculate all the group data or other datasource related things + this.listViewInstance.setViewDataSource(dataSource); + // render list items for first time due to no datasource present earlier + if (!this.domItemCount) { + // fresh rendering for first time + if ((this.listViewInstance.template || this.listViewInstance.groupTemplate) && !this.isNgTemplate()) { + this.listViewInstance.listBaseOption.template = null; + this.listViewInstance.listBaseOption.groupTemplate = null; + this.listViewInstance.listBaseOption.itemCreated = this.createUIItem.bind(this); + } + this.uiVirtualization(); + // when expected expected DOM count doesn't meet the condition we need to create and inject new item into DOM + } + else if (this.domItemCount < this.expectedDomItemCount) { + var ds = this.listViewInstance.findItemFromDS(dataSource, fields); + if (ds instanceof Array) { + if (this.listViewInstance.ulElement) { + var index = this.listViewInstance.curViewDS.indexOf(currentItem); + // inject new list item into DOM + this.createAndInjectNewItem(currentItem, index); + // check for group header item + var curViewDS = this.listViewInstance.curViewDS[index - 1]; + if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) { + // target group item index in datasource + --index; + // inject new group header into DOM for previously created list item + this.createAndInjectNewItem(curViewDS, index); + } + } + // recollect all the list item into collection + this.listViewInstance.liCollection = + this.listViewInstance.curUL.querySelectorAll('li'); + } + } + else { + // eslint-disable-next-line + var index = this.listViewInstance.curViewDS.indexOf(currentItem); + // virtually new add list item based on the scollbar position + this.addUiItem(index); + // check for group header item needs to be added + var curViewDS = this.listViewInstance.curViewDS[index - 1]; + if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) { + this.addUiItem(index - 1); + } + } + } + }; + Virtualization.prototype.createAndInjectNewItem = function (itemData, index) { + // generate li item for given datasource + var target; + var li = _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createListItemFromJson(this.listViewInstance.createElement, + // eslint-disable-next-line + [itemData], this.listViewInstance.listBaseOption, null, null, this.listViewInstance); + // check for target element whether to insert before last item or group item + if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) { + target = this.listViewInstance.curUL.lastElementChild; + } + else { + // target group header's first child item to append its header + target = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 1]) || + this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 2]); + } + if (this.listViewInstance.fields.groupBy && this.listViewInstance.curViewDS[index + 1] && this.listViewInstance.curViewDS[index + 1].isHeader) { + var targetEle = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index - 1]); + if (targetEle) { + target = targetEle.nextElementSibling; + } + } + // insert before the target element + this.listViewInstance.ulElement.insertBefore(li[0], target); + // increment internal DOM count, last index count for new element + this.domItemCount++; + if (this.bottomElementHeight <= 0) { + this.uiLastIndex++; + } + // recalculate the current item height, to avoid jumpy scroller + this.refreshItemHeight(); + }; + Virtualization.prototype.createUIItem = function (args) { + var virtualTemplate = this.listViewInstance.template; + var template = this.listViewInstance.createElement('div'); + var commonTemplate = ''; + if (this.listViewInstance.isReact) { + commonTemplate = null; + } + if (this.listViewInstance.showCheckBox) { + // eslint-disable-next-line + this.listViewInstance.renderCheckbox(args); + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.listViewInstance.virtualCheckBox)) && + (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(this.listViewInstance.virtualCheckBox.outerHTML))) { + var div = document.createElement('div'); + div.innerHTML = this.listViewInstance.template || commonTemplate; + if (div.children && div.children[0]) { + div.children[0].classList.add('e-checkbox'); + if (this.listViewInstance.checkBoxPosition === 'Left') { + div.children[0].classList.add('e-checkbox-left'); + } + else { + div.children[0].classList.add('e-checkbox-right'); + } + if (this.listViewInstance.checkBoxPosition === 'Left') { + div.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div.childNodes[0].children[0]); + } + else { + div.children[0].appendChild(this.listViewInstance.virtualCheckBox); + } + this.listViewInstance.template = div.innerHTML; + } + } + if (this.isVueFunctionTemplate()) + return; + template.innerHTML = this.listViewInstance.template; + this.listViewInstance.template = virtualTemplate; + } + else { + if (this.isVueFunctionTemplate()) + return; + template.innerHTML = this.listViewInstance.template || commonTemplate; + } + // eslint-disable-next-line + var templateElements = template.getElementsByTagName('*'); + var groupTemplate = this.listViewInstance.createElement('div'); + if (this.listViewInstance.fields.groupBy) { + groupTemplate.innerHTML = this.listViewInstance.groupTemplate || commonTemplate; + } + // eslint-disable-next-line + var groupTemplateElements = groupTemplate.getElementsByTagName('*'); + if (args.curData.isHeader) { + this.headerData = args.curData; + } + this.templateData = args.curData.isHeader ? args.curData.items[0] : + args.curData; + if (!this.listViewInstance.isReact || (typeof this.listViewInstance.template == "string" && !args.item.classList.contains("e-list-group-item")) || + (typeof this.listViewInstance.groupTemplate == "string" && args.item.classList.contains("e-list-group-item"))) { + args.item.innerHTML = ''; + } + args.item.context = { data: args.curData, nodes: { flatTemplateNodes: [], groupTemplateNodes: [] } }; + for (var i = 0; i < templateElements.length; i++) { + this.compileTemplate(templateElements[i], args.item, false); + } + for (var i = 0; i < groupTemplateElements.length; i++) { + this.compileTemplate(groupTemplateElements[i], args.item, true); + } + args.item.context.template = args.curData.isHeader ? template.firstElementChild : + groupTemplate.firstElementChild; + args.item.context.type = args.curData.isHeader ? 'flatList' : 'groupList'; + var element = args.curData.isHeader ? groupTemplate : template; + if (element.firstElementChild) { + args.item.insertBefore(element.firstElementChild, null); + } + }; + Virtualization.prototype.compileTemplate = function (element, item, isHeader) { + this.textProperty(element, item, isHeader); + this.classProperty(element, item, isHeader); + this.attributeProperty(element, item, isHeader); + }; + Virtualization.prototype.onChange = function (newData, listElement) { + listElement.context.data = newData; + // eslint-disable-next-line max-len + var groupTemplateNodes = listElement.context.nodes.groupTemplateNodes; + // eslint-disable-next-line max-len + var flatTemplateNodes = listElement.context.nodes.flatTemplateNodes; + // eslint-disable-next-line + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(newData.isHeader) && newData.isHeader && listElement.context.type === 'groupList') { + // eslint-disable-next-line + var element = listElement.firstElementChild; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(listElement.firstElementChild); + listElement.insertBefore(listElement.context.template, null); + listElement.context.template = element; + listElement.context.type = 'flatList'; + for (var i = 0; i < groupTemplateNodes.length; i++) { + // eslint-disable-next-line + groupTemplateNodes[i].onChange(newData); + } + } + else if (!newData.isHeader && listElement.context.type === 'flatList') { + var element = listElement.firstElementChild; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(listElement.firstElementChild); + listElement.insertBefore(listElement.context.template, null); + listElement.context.template = element; + listElement.context.type = 'groupList'; + for (var i = 0; i < flatTemplateNodes.length; i++) { + // eslint-disable-next-line + flatTemplateNodes[i].onChange(newData); + } + } + else if (!newData.isHeader) { + for (var i = 0; i < flatTemplateNodes.length; i++) { + // eslint-disable-next-line + flatTemplateNodes[i].onChange(newData); + } + } + else { + for (var i = 0; i < groupTemplateNodes.length; i++) { + // eslint-disable-next-line + groupTemplateNodes[i].onChange(newData); + } + } + }; + // eslint-disable-next-line + Virtualization.prototype.updateContextData = function (listElement, node, isHeader) { + if (isHeader) { + listElement.context.nodes.groupTemplateNodes.push(node); + } + else { + listElement.context.nodes.flatTemplateNodes.push(node); + } + }; + Virtualization.prototype.classProperty = function (element, listElement, isHeader) { + var regex = new RegExp('\\${([^}]*)}', 'g'); + var resultantOutput = []; + var regexMatch; + while (regexMatch !== null) { + var match = regex.exec(element.className); + resultantOutput.push(match); + regexMatch = match; + if (regexMatch === null) { + resultantOutput.pop(); + } + } + if (resultantOutput && resultantOutput.length) { + var _loop_1 = function (i) { + var classNameMatch = resultantOutput[i]; + // eslint-disable-next-line + var classFunction; + if (classNameMatch[1].indexOf('?') !== -1 && classNameMatch[1].indexOf(':') !== -1) { + // tslint:disable-next-line:no-function-constructor-with-string-args + classFunction = new Function('data', 'return ' + classNameMatch[1].replace(/\$/g, 'data.')); + } + else { + // tslint:disable-next-line:no-function-constructor-with-string-args + classFunction = new Function('data', 'return ' + 'data.' + classNameMatch[1]); + } + // eslint-disable-next-line + var subNode = {}; + if (isHeader) { + subNode.bindedvalue = classFunction(this_1.headerData); + } + else { + subNode.bindedvalue = classFunction(this_1.templateData); + } + subNode.onChange = function (value) { + if (subNode.bindedvalue) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["removeClass"])([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; })); + } + var newCss = classFunction(value); + if (newCss) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["addClass"])([element], (newCss).split(' ').filter(function (css) { return css; })); + } + subNode.bindedvalue = newCss; + }; + var className = classNameMatch[0].split(' '); + for (var i_1 = 0; i_1 < className.length; i_1++) { + element.classList.remove(className[i_1]); + } + if (subNode.bindedvalue) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["addClass"])([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; })); + } + this_1.updateContextData(listElement, subNode, isHeader); + }; + var this_1 = this; + for (var i = 0; i < resultantOutput.length; i++) { + _loop_1(i); + } + } + }; + Virtualization.prototype.attributeProperty = function (element, listElement, isHeader) { + var attributeNames = []; + for (var i = 0; i < element.attributes.length; i++) { + attributeNames.push(element.attributes[i].nodeName); + } + if (attributeNames.indexOf('class') !== -1) { + attributeNames.splice(attributeNames.indexOf('class'), 1); + } + var _loop_2 = function (i) { + var attributeName = attributeNames[i]; + var attrNameMatch = new RegExp('\\${([^}]*)}', 'g').exec(attributeName) || []; + var attrValueMatch = new RegExp('\\${([^}]*)}', 'g').exec(element.getAttribute(attributeName)) + || []; + // eslint-disable-next-line + var attributeNameFunction; + // eslint-disable-next-line + var attributeValueFunction; + if (attrNameMatch.length || attrValueMatch.length) { + if (attrNameMatch[1]) { + // tslint:disable-next-line:no-function-constructor-with-string-args + attributeNameFunction = new Function('data', 'return ' + 'data.' + attrNameMatch[1]); + } + if (attrValueMatch[1]) { + if (attrValueMatch[1].indexOf('?') !== -1 && attrValueMatch[1].indexOf(':') !== -1) { + // tslint:disable-next-line:no-function-constructor-with-string-args + attributeValueFunction = new Function('data', 'return ' + attrValueMatch[1].replace(/\$/g, 'data.')); + } + else { + // tslint:disable-next-line:no-function-constructor-with-string-args + attributeValueFunction = new Function('data', 'return ' + 'data.' + attrValueMatch[1]); + } + } + // eslint-disable-next-line @typescript-eslint/ban-types + var subNode_1 = {}; + if (isHeader) { + subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.headerData), + attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.headerData)]; + } + else { + subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.templateData), + attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.templateData)]; + } + subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ? + attributeName : subNode_1.bindedvalue[0]; + subNode_1.onChange = function (value) { + var bindedvalue = subNode_1.bindedvalue[1] === undefined ? + element.getAttribute(subNode_1.attrName) : attributeValueFunction(value); + element.removeAttribute(subNode_1.attrName); + subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ? subNode_1.attrName : attributeNameFunction(value); + element.setAttribute(subNode_1.attrName, bindedvalue); + subNode_1.bindedvalue = [subNode_1.bindedvalue[0] === undefined ? undefined : attributeNameFunction(value), + subNode_1.bindedvalue[1] === undefined ? undefined : attributeValueFunction(value)]; + }; + var attributeValue = subNode_1.bindedvalue[1] === undefined ? element.getAttribute(attributeName) : + subNode_1.bindedvalue[1]; + element.removeAttribute(attributeName); + element.setAttribute(subNode_1.attrName, attributeValue); + this_2.updateContextData(listElement, subNode_1, isHeader); + } + }; + var this_2 = this; + for (var i = 0; i < attributeNames.length; i++) { + _loop_2(i); + } + }; + Virtualization.prototype.textProperty = function (element, listElement, isHeader) { + var regex = new RegExp('\\${([^}]*)}', 'g'); + var resultantOutput = []; + var regexMatch; + while (regexMatch !== null) { + var match = regex.exec(element.innerText); + resultantOutput.push(match); + regexMatch = match; + if (regexMatch === null) { + resultantOutput.pop(); + } + } + var isChildHasTextContent = Array.prototype.some.call(element.children, function (element) { + if (new RegExp('\\${([^}]*)}', 'g').exec(element.innerText)) { + return true; + } + else { + return false; + } + }); + if (resultantOutput && resultantOutput.length && !isChildHasTextContent) { + var _loop_3 = function (i) { + var textPropertyMatch = resultantOutput[i]; + // eslint-disable-next-line + var subNode = {}; + // eslint-disable-next-line + var textFunction; + if (textPropertyMatch[1].indexOf('?') !== -1 && textPropertyMatch[1].indexOf(':') !== -1) { + // tslint:disable-next-line:no-function-constructor-with-string-args + textFunction = new Function('data', 'return ' + textPropertyMatch[1].replace(/\$/g, 'data.')); + } + else { + // tslint:disable-next-line:no-function-constructor-with-string-args + textFunction = new Function('data', 'return ' + 'data.' + textPropertyMatch[1]); + } + if (isHeader) { + subNode.bindedvalue = textFunction(this_3.headerData); + } + else { + subNode.bindedvalue = textFunction(this_3.templateData); + } + subNode.onChange = function (value) { + element.innerText = element.innerText.replace(subNode.bindedvalue, textFunction(value)); + subNode.bindedvalue = textFunction(value); + }; + element.innerText = element.innerText.replace(textPropertyMatch[0], subNode.bindedvalue); + this_3.updateContextData(listElement, subNode, isHeader); + }; + var this_3 = this; + for (var i = 0; i < resultantOutput.length; i++) { + _loop_3(i); + } + } + }; + Virtualization.prototype.reRenderUiVirtualization = function () { + this.wireScrollEvent(true); + if (this.listViewInstance.contentContainer) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["detach"])(this.listViewInstance.contentContainer); + } + this.listViewInstance.preRender(); + // resetting the dom count to 0, to avoid edge case of dataSource suddenly becoming zero + // and then manually adding item using addItem API + this.domItemCount = 0; + this.listViewInstance.header(); + this.listViewInstance.setLocalData(); + }; + Virtualization.prototype.updateUI = function (element, index, targetElement) { + // eslint-disable-next-line @typescript-eslint/ban-types + var onChange = this.isNgTemplate() ? this.onNgChange : (this.isVueFunctionTemplate()) ? this.onVueChange : this.onChange; + if (this.listViewInstance.template || this.listViewInstance.groupTemplate) { + var curViewDS = this.listViewInstance.curViewDS[index]; + // eslint-disable-next-line + element.dataset.uid = (curViewDS[this.listViewInstance.fields.id]) ? + // eslint-disable-next-line + (curViewDS[this.listViewInstance.fields.id]) : _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateId(); + onChange(curViewDS, element, this); + } + else { + this.updateUiContent(element, index); + } + this.changeElementAttributes(element, index); + if (targetElement) { + this.listViewInstance.ulElement.insertBefore(element, targetElement); + } + }; + /** + * Handles the UI change in vue for the list view. + * + * @param {DataSource} newData - The new data source for the list view. + * @param {ElementContext} listElement - The HTML element context for the list view. + * @param {Virtualization} virtualThis - The virtualization context for the list view. + */ + Virtualization.prototype.onVueChange = function (newData, listElement, virtualThis) { + var liItem = _common_list_base__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createListItemFromJson(virtualThis.listViewInstance.createElement, + // eslint-disable-next-line + [newData], virtualThis.listViewInstance.listBaseOption, null, null, virtualThis.listViewInstance); + while (listElement.lastChild) { + listElement.removeChild(listElement.lastChild); + } + listElement.appendChild(liItem[0].firstChild); + }; + Virtualization.prototype.onNgChange = function (newData, listElement, virtualThis) { + // compile given target element with template for new data + // eslint-disable-next-line + var templateCompiler = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["compile"])(virtualThis.listViewInstance.template); + var resultElement = templateCompiler(newData); + while (listElement.lastChild) { + listElement.removeChild(listElement.lastChild); + } + listElement.appendChild(resultElement[0]); + }; + Virtualization.prototype.getModuleName = function () { + return 'virtualization'; + }; + Virtualization.prototype.destroy = function () { + this.wireScrollEvent(true); + this.topElement = null; + this.bottomElement = null; + }; + return Virtualization; +}()); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/sortable/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/sortable/index.js ***! + \*******************************************************************/ +/*! exports provided: Sortable, moveTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sortable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sortable */ "./ej2-resources/22.1.37/scripts/ej2-lists/sortable/sortable.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sortable", function() { return _sortable__WEBPACK_IMPORTED_MODULE_0__["Sortable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "moveTo", function() { return _sortable__WEBPACK_IMPORTED_MODULE_0__["moveTo"]; }); + +/** + * Sortable Module + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-lists/sortable/sortable.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-lists/sortable/sortable.js ***! + \**********************************************************************/ +/*! exports provided: Sortable, moveTo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Sortable", function() { return Sortable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveTo", function() { return moveTo; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +/** + * Sortable Module provides support to enable sortable functionality in Dom Elements. + * ```html + *
+ *
Item 1
+ *
Item 2
+ *
Item 3
+ *
Item 4
+ *
Item 5
+ *
+ * ``` + * ```typescript + * let ele: HTMLElement = document.getElementById('sortable'); + * let sortObj: Sortable = new Sortable(ele, {}); + * ``` + */ +var Sortable = /** @__PURE__ @class */ (function (_super) { + __extends(Sortable, _super); + function Sortable(element, options) { + var _this = _super.call(this, options, element) || this; + _this.getHelper = function (e) { + // eslint-disable-next-line prefer-const + var target = _this.getSortableElement(e.sender.target); + if (!_this.isValidTarget(target, _this)) { + return false; + } + var element; + if (_this.helper) { + element = _this.helper({ sender: target, element: e.element }); + } + else { + element = target.cloneNode(true); + element.style.width = target.offsetWidth + "px"; + element.style.height = target.offsetHeight + "px"; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([element], ['e-sortableclone']); + document.body.appendChild(element); + return element; + }; + // eslint-disable-next-line + _this.onDrag = function (e) { + if (!e.target) { + return; + } + _this.trigger('drag', { event: e.event, element: _this.element, target: e.target }); + var newInst = _this.getSortableInstance(e.target); + var target = _this.getSortableElement(e.target, newInst); + if ((_this.isValidTarget(target, newInst) || e.target.className.indexOf('e-list-group-item') > -1) && (_this.curTarget !== target || + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newInst.placeHolder)) && (newInst.placeHolderElement ? newInst.placeHolderElement !== e.target : true)) { + if (e.target.className.indexOf('e-list-group-item') > -1) { + target = e.target; + } + _this.curTarget = target; + if (_this.target === target) { + return; + } + var oldIdx = _this.getIndex(newInst.placeHolderElement, newInst); + var placeHolder = _this.getPlaceHolder(target, newInst); + var newIdx = void 0; + if (placeHolder) { + oldIdx = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldIdx) ? _this.getIndex(_this.target) : oldIdx; + newIdx = _this.getIndex(target, newInst, e.event); + var isPlaceHolderPresent = _this.isPlaceHolderPresent(newInst); + if (isPlaceHolderPresent && oldIdx === newIdx) { + return; + } + if (isPlaceHolderPresent) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(newInst.placeHolderElement); + } + newInst.placeHolderElement = placeHolder; + if (e.target.className.indexOf('e-list-group-item') > -1) { + newInst.element.insertBefore(newInst.placeHolderElement, newInst.element.children[newIdx]); + } + else if (newInst.element !== _this.element && newIdx === newInst.element.childElementCount) { + newInst.element.appendChild(newInst.placeHolderElement); + } + else { + newInst.element.insertBefore(newInst.placeHolderElement, newInst.element.children[newIdx]); + } + _this.refreshDisabled(oldIdx, newIdx, newInst); + } + else { + oldIdx = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldIdx) ? _this.getIndex(_this.target) : + _this.getIndex(target, newInst) < oldIdx || !oldIdx ? oldIdx : oldIdx - 1; + newIdx = _this.getIndex(target, newInst); + var idx = newInst.element !== _this.element ? newIdx : oldIdx < newIdx ? newIdx + 1 : newIdx; + _this.updateItemClass(newInst); + newInst.element.insertBefore(_this.target, newInst.element.children[idx]); + _this.refreshDisabled(oldIdx, newIdx, newInst); + _this.curTarget = _this.target; + _this.trigger('drop', { + droppedElement: _this.target, element: newInst.element, previousIndex: oldIdx, currentIndex: newIdx, + target: e.target, helper: document.getElementsByClassName('e-sortableclone')[0], event: e.event, scope: _this.scope + }); + } + } + else if (_this.curTarget !== _this.target && _this.scope && _this.curTarget !== target && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newInst.placeHolder)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(_this.getSortableInstance(_this.curTarget).placeHolderElement); + _this.curTarget = _this.target; + } + newInst = _this.getSortableInstance(_this.curTarget); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target) && e.target !== newInst.placeHolderElement) { + if (_this.isPlaceHolderPresent(newInst)) { + _this.removePlaceHolder(newInst); + } + } + else { + var placeHolders = [].slice.call(document.getElementsByClassName('e-sortable-placeholder')); + var inst_1; + placeHolders.forEach(function (placeHolder) { + inst_1 = _this.getSortableInstance(placeHolder); + if (inst_1.element && inst_1 !== newInst) { + _this.removePlaceHolder(inst_1); + } + }); + } + }; + // eslint-disable-next-line + _this.onDragStart = function (e) { + _this.target = _this.getSortableElement(e.target); + var cancelDrag = false; + _this.target.classList.add('e-grabbed'); + _this.curTarget = _this.target; + e.helper = document.getElementsByClassName('e-sortableclone')[0]; + var args = { cancel: false, element: _this.element, target: _this.target }; + _this.trigger('beforeDragStart', args, function (observedArgs) { + if (observedArgs.cancel) { + cancelDrag = observedArgs.cancel; + _this.onDragStop(e); + } + }); + if (cancelDrag) { + return; + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"]) { + _this.trigger('dragStart', { + event: e.event, element: _this.element, target: _this.target, + bindEvents: e.bindEvents, dragElement: e.dragElement + }); + } + else { + _this.trigger('dragStart', { event: e.event, element: _this.element, target: _this.target }); + } + }; + // eslint-disable-next-line + _this.onDragStop = function (e) { + var dropInst = _this.getSortableInstance(_this.curTarget); + var prevIdx; + var curIdx; + var handled; + prevIdx = _this.getIndex(_this.target); + var isPlaceHolderPresent = _this.isPlaceHolderPresent(dropInst); + if (isPlaceHolderPresent) { + var curIdx_1 = _this.getIndex(dropInst.placeHolderElement, dropInst); + var args = { + previousIndex: prevIdx, currentIndex: curIdx_1, target: e.target, droppedElement: _this.target, + helper: e.helper, cancel: false, handled: false + }; + _this.trigger('beforeDrop', args, function (observedArgs) { + if (!observedArgs.cancel) { + handled = observedArgs.handled; + _this.updateItemClass(dropInst); + if (observedArgs.handled) { + var ele = _this.target.cloneNode(true); + _this.target.classList.remove('e-grabbed'); + _this.target = ele; + } + dropInst.element.insertBefore(_this.target, dropInst.placeHolderElement); + var curIdx_2 = _this.getIndex(_this.target, dropInst); + prevIdx = _this === dropInst && (prevIdx - curIdx_2) > 1 ? prevIdx - 1 : prevIdx; + _this.trigger('drop', { + event: e.event, element: dropInst.element, previousIndex: prevIdx, currentIndex: curIdx_2, + target: e.target, helper: e.helper, droppedElement: _this.target, scopeName: _this.scope, handled: handled + }); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(dropInst.placeHolderElement); + }); + } + dropInst = _this.getSortableInstance(e.target); + // eslint-disable-next-line prefer-const + curIdx = dropInst.element.childElementCount; + prevIdx = _this.getIndex(_this.target); + if (dropInst.element === e.target || (!isPlaceHolderPresent && _this.curTarget === _this.target)) { + var beforeDropArgs = { + previousIndex: prevIdx, currentIndex: _this.curTarget === _this.target ? prevIdx : curIdx, + target: e.target, droppedElement: _this.target, helper: e.helper, cancel: false + }; + _this.trigger('beforeDrop', beforeDropArgs, function (observedArgs) { + if ((dropInst.element === e.target || e.target.className.indexOf('e-list-nrt') > -1 || e.target.className.indexOf('e-list-nr-template') > -1 + || e.target.closest('.e-list-nr-template')) && !observedArgs.cancel) { + _this.updateItemClass(dropInst); + dropInst.element.appendChild(_this.target); + _this.trigger('drop', { + event: e.event, element: dropInst.element, previousIndex: prevIdx, currentIndex: curIdx, + target: e.target, helper: e.helper, droppedElement: _this.target, scopeName: _this.scope + }); + } + }); + } + _this.target.classList.remove('e-grabbed'); + _this.target = null; + _this.curTarget = null; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(e.helper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(_this.element, 'draggable').intDestroy(e.event); + }; + _this.bind(); + return _this; + } + Sortable_1 = Sortable; + Sortable.prototype.bind = function () { + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('sortable'); + } + if (!this.itemClass) { + this.itemClass = 'e-sort-item'; + this.dataBind(); + } + this.initializeDraggable(); + }; + Sortable.prototype.initializeDraggable = function () { + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"](this.element, { + helper: this.getHelper, + dragStart: this.onDragStart, + drag: this.onDrag, + dragStop: this.onDragStop, + dragTarget: "." + this.itemClass, + enableTapHold: true, + tapHoldThreshold: 200, + queryPositionInfo: this.queryPositionInfo, + distance: 5 + }); + this.wireEvents(); + }; + Sortable.prototype.wireEvents = function () { + var wrapper = this.element; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(wrapper, 'keydown', this.keyDownHandler, this); + }; + Sortable.prototype.unwireEvents = function () { + var wrapper = this.element; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(wrapper, 'keydown', this.keyDownHandler); + }; + Sortable.prototype.keyDownHandler = function (e) { + if (e.keyCode === 27) { + var dragStop = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(this.element, 'draggable'); + if (dragStop) { + dragStop.intDestroy(null); + } + var dragWrapper = document.getElementsByClassName('e-sortableclone')[0]; + if (dragWrapper) { + dragWrapper.remove(); + } + var dragPlaceholder = document.getElementsByClassName('e-sortable-placeholder')[0]; + if (dragPlaceholder) { + dragPlaceholder.remove(); + } + } + }; + Sortable.prototype.getPlaceHolder = function (target, instance) { + if (instance.placeHolder) { + var placeHolderElement = instance.placeHolder({ element: instance.element, grabbedElement: this.target, target: target }); + placeHolderElement.classList.add('e-sortable-placeholder'); + return placeHolderElement; + } + return null; + }; + Sortable.prototype.isValidTarget = function (target, instance) { + return target && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compareElementParent"])(target, instance.element) && target.classList.contains(instance.itemClass) && + !target.classList.contains('e-disabled'); + }; + Sortable.prototype.removePlaceHolder = function (instance) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(instance.placeHolderElement); + instance.placeHolderElement = null; + }; + Sortable.prototype.updateItemClass = function (instance) { + if (this !== instance) { + this.target.classList.remove(this.itemClass); + this.target.classList.add(instance.itemClass); + } + }; + Sortable.prototype.getSortableInstance = function (element) { + element = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(element, ".e-" + this.getModuleName()); + if (element) { + var inst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(element, Sortable_1); + return inst.scope && this.scope && inst.scope === this.scope ? inst : this; + } + else { + return this; + } + }; + Sortable.prototype.refreshDisabled = function (oldIdx, newIdx, instance) { + if (instance === this) { + var element = void 0; + var increased = oldIdx < newIdx; + var disabledIdx = void 0; + var start = increased ? oldIdx : newIdx; + var end = increased ? newIdx : oldIdx; + while (start <= end) { + element = this.element.children[start]; + if (element.classList.contains('e-disabled')) { + disabledIdx = this.getIndex(element); + this.element.insertBefore(element, this.element.children[increased ? disabledIdx + 2 : disabledIdx - 1]); + start = increased ? disabledIdx + 2 : disabledIdx + 1; + } + else { + start++; + } + } + } + }; + Sortable.prototype.getIndex = function (target, instance, e) { + if (instance === void 0) { instance = this; } + var idx; + var placeHolderPresent; + [].slice.call(instance.element.children).forEach(function (element, index) { + if (element.classList.contains('e-sortable-placeholder')) { + placeHolderPresent = true; + } + if (element === target) { + idx = index; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e)) { + if (placeHolderPresent) { + idx -= 1; + } + var offset = target.getBoundingClientRect(); + var clientY = offset.bottom - ((offset.bottom - offset.top) / 2); + var cltY = e.changedTouches ? e.changedTouches[0].clientY : e.clientY; + idx = cltY <= clientY ? idx : idx + 1; + } + return; + } + }); + return idx; + }; + Sortable.prototype.getSortableElement = function (element, instance) { + if (instance === void 0) { instance = this; } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(element, "." + instance.itemClass); + }; + Sortable.prototype.queryPositionInfo = function (value) { + value.left = pageXOffset ? parseFloat(value.left) - pageXOffset + "px" : value.left; + value.top = pageYOffset ? parseFloat(value.top) - pageYOffset + "px" : value.top; + return value; + }; + Sortable.prototype.isPlaceHolderPresent = function (instance) { + return instance.placeHolderElement && !!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(instance.placeHolderElement, "#" + instance.element.id); + }; + /** + * It is used to sort array of elements from source element to destination element. + * + * @param destination - Defines the destination element to which the sortable elements needs to be appended. + * + * If it is null, then the Sortable library element will be considered as destination. + * @param targetIndexes - Specifies the sortable elements indexes which needs to be sorted. + * @param insertBefore - Specifies the index before which the sortable elements needs to be appended. + * If it is null, elements will be appended as last child. + * @function moveTo + * @returns {void} + */ + Sortable.prototype.moveTo = function (destination, targetIndexes, insertBefore) { + moveTo(this.element, destination, targetIndexes, insertBefore); + }; + /** + * It is used to destroy the Sortable library. + */ + Sortable.prototype.destroy = function () { + this.unwireEvents(); + if (this.itemClass === 'e-sort-item') { + this.itemClass = null; + this.dataBind(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"]).destroy(); + _super.prototype.destroy.call(this); + }; + Sortable.prototype.getModuleName = function () { + return 'sortable'; + }; + Sortable.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'itemClass': + [].slice.call(this.element.children).forEach(function (element) { + if (element.classList.contains(oldProp.itemClass)) { + element.classList.remove(oldProp.itemClass); + } + if (newProp.itemClass) { + element.classList.add(newProp.itemClass); + } + }); + break; + } + } + }; + var Sortable_1; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sortable.prototype, "enableAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Sortable.prototype, "itemClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Sortable.prototype, "scope", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Sortable.prototype, "helper", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Sortable.prototype, "placeHolder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sortable.prototype, "drag", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sortable.prototype, "beforeDragStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sortable.prototype, "dragStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sortable.prototype, "beforeDrop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sortable.prototype, "drop", void 0); + Sortable = Sortable_1 = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Sortable); + return Sortable; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Base"])); + +/** + * It is used to sort array of elements from source element to destination element. + * + * @private + */ +function moveTo(from, to, targetIndexes, insertBefore) { + var targetElements = []; + if (!to) { + to = from; + } + if (targetIndexes && targetIndexes.length) { + targetIndexes.forEach(function (index) { + targetElements.push(from.children[index]); + }); + } + else { + targetElements = [].slice.call(from.children); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(insertBefore)) { + targetElements.forEach(function (target) { + to.appendChild(target); + }); + } + else { + var insertElement_1 = to.children[insertBefore]; + targetElements.forEach(function (target) { + to.insertBefore(target, insertElement_1); + }); + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/accordion.js": +/*!******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/accordion.js ***! + \******************************************************************************/ +/*! exports provided: AccordionActionSettings, AccordionAnimationSettings, AccordionItem, Accordion */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AccordionActionSettings", function() { return AccordionActionSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AccordionAnimationSettings", function() { return AccordionAnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AccordionItem", function() { return AccordionItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Accordion", function() { return Accordion; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + + + +var CLS_ACRDN_ROOT = 'e-acrdn-root'; +var CLS_ROOT = 'e-accordion'; +var CLS_ITEM = 'e-acrdn-item'; +var CLS_ITEMFOCUS = 'e-item-focus'; +var CLS_ITEMHIDE = 'e-hide'; +var CLS_HEADER = 'e-acrdn-header'; +var CLS_HEADERICN = 'e-acrdn-header-icon'; +var CLS_HEADERCTN = 'e-acrdn-header-content'; +var CLS_CONTENT = 'e-acrdn-panel'; +var CLS_CTENT = 'e-acrdn-content'; +var CLS_TOOGLEICN = 'e-toggle-icon'; +var CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons'; +var CLS_EXPANDICN = 'e-expand-icon'; +var CLS_RTL = 'e-rtl'; +var CLS_CTNHIDE = 'e-content-hide'; +var CLS_SLCT = 'e-select'; +var CLS_SLCTED = 'e-selected'; +var CLS_ACTIVE = 'e-active'; +var CLS_ANIMATE = 'e-animate'; +var CLS_DISABLE = 'e-overlay'; +var CLS_TOGANIMATE = 'e-toggle-animation'; +var CLS_NEST = 'e-nested'; +var CLS_EXPANDSTATE = 'e-expand-state'; +var CLS_CONTAINER = 'e-accordion-container'; +/** + * Objects used for configuring the Accordion expanding item action properties. + */ +var AccordionActionSettings = /** @__PURE__ @class */ (function (_super) { + __extends(AccordionActionSettings, _super); + function AccordionActionSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SlideDown') + ], AccordionActionSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], AccordionActionSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('linear') + ], AccordionActionSettings.prototype, "easing", void 0); + return AccordionActionSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Objects used for configuring the Accordion animation properties. + */ +var AccordionAnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(AccordionAnimationSettings, _super); + function AccordionAnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings) + ], AccordionAnimationSettings.prototype, "collapse", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings) + ], AccordionAnimationSettings.prototype, "expand", void 0); + return AccordionAnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * An item object that is used to configure Accordion items. + */ +var AccordionItem = /** @__PURE__ @class */ (function (_super) { + __extends(AccordionItem, _super); + function AccordionItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], AccordionItem.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], AccordionItem.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], AccordionItem.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], AccordionItem.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], AccordionItem.prototype, "expanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], AccordionItem.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], AccordionItem.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], AccordionItem.prototype, "id", void 0); + return AccordionItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space. + * ```html + *
+ * + * ``` + */ +var Accordion = /** @__PURE__ @class */ (function (_super) { + __extends(Accordion, _super); + /** + * Initializes a new instance of the Accordion class. + * + * @param {AccordionModel} options - Specifies Accordion model properties as options. + * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion. + */ + function Accordion(options, element) { + var _this = _super.call(this, options, element) || this; + /** + * Contains the keyboard configuration of the Accordion. + */ + _this.keyConfigs = { + moveUp: 'uparrow', + moveDown: 'downarrow', + enter: 'enter', + space: 'space', + home: 'home', + end: 'end' + }; + return _this; + } + /** + * Removes the control from the DOM and also removes all its related events. + * + * @returns {void} + */ + Accordion.prototype.destroy = function () { + if (this.isReact || this.isAngular || this.isVue) { + this.clearTemplate(); + } + var ele = this.element; + _super.prototype.destroy.call(this); + this.unwireEvents(); + this.isDestroy = true; + this.restoreContent(null); + [].slice.call(ele.children).forEach(function (el) { + ele.removeChild(el); + }); + if (this.trgtEle) { + this.trgtEle = null; + while (this.ctrlTem.firstElementChild) { + ele.appendChild(this.ctrlTem.firstElementChild); + } + this.ctrlTem = null; + } + ele.classList.remove(CLS_ACRDN_ROOT); + ele.removeAttribute('style'); + this.element.removeAttribute('data-ripple'); + if (!this.isNested && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"]) { + this.removeRippleEffect(); + } + }; + Accordion.prototype.preRender = function () { + var nested = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, '.' + CLS_CONTENT); + this.isNested = false; + this.templateEle = []; + if (!this.isDestroy) { + this.isDestroy = false; + } + if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) { + if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) { + nested.classList.add(CLS_NEST); + this.isNested = true; + } + } + else { + this.element.classList.add(CLS_ACRDN_ROOT); + } + if (this.enableRtl) { + this.add(this.element, CLS_RTL); + } + }; + Accordion.prototype.add = function (ele, val) { + ele.classList.add(val); + }; + Accordion.prototype.remove = function (ele, val) { + ele.classList.remove(val); + }; + /** + * To initialize the control rendering + * + * @private + * @returns {void} + */ + Accordion.prototype.render = function () { + this.initializeHeaderTemplate(); + this.initializeItemTemplate(); + this.initialize(); + this.renderControl(); + this.wireEvents(); + this.renderComplete(); + }; + Accordion.prototype.initialize = function () { + var width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width); + var height = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': width, 'height': height }); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.initExpand)) { + this.initExpand = []; + } + if (this.expandedIndices.length > 0) { + this.initExpand = this.expandedIndices; + } + }; + Accordion.prototype.renderControl = function () { + this.trgtEle = (this.element.children.length > 0) ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div', this.element) : null; + this.renderItems(); + this.initItemExpand(); + }; + Accordion.prototype.wireFocusEvents = function () { + var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)); + for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) { + var item = acrdItem_1[_i]; + var headerEle = item.querySelector('.' + CLS_HEADER); + if (item.childElementCount > 0 && headerEle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].clearEvents(headerEle); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(headerEle, 'focus', this.focusIn, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(headerEle, 'blur', this.focusOut, this); + } + } + }; + Accordion.prototype.unwireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.keyModule)) { + this.keyModule.destroy(); + } + }; + Accordion.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + if (!this.isNested && !this.isDestroy) { + this.removeRippleEffect = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, { selector: '.' + CLS_HEADER }); + } + if (!this.isNested) { + this.keyModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs, + eventName: 'keydown' + }); + } + }; + Accordion.prototype.templateParser = function (template) { + if (template) { + try { + if (typeof template !== 'function' && document.querySelectorAll(template).length) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(document.querySelector(template).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + catch (error) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + return undefined; + }; + Accordion.prototype.initializeHeaderTemplate = function () { + if (this.headerTemplate) { + this.headerTemplateFn = this.templateParser(this.headerTemplate); + } + }; + Accordion.prototype.initializeItemTemplate = function () { + if (this.itemTemplate) { + this.itemTemplateFn = this.templateParser(this.itemTemplate); + } + }; + Accordion.prototype.getHeaderTemplate = function () { + return this.headerTemplateFn; + }; + Accordion.prototype.getItemTemplate = function () { + return this.itemTemplateFn; + }; + Accordion.prototype.focusIn = function (e) { + e.target.parentElement.classList.add(CLS_ITEMFOCUS); + }; + Accordion.prototype.focusOut = function (e) { + e.target.parentElement.classList.remove(CLS_ITEMFOCUS); + }; + Accordion.prototype.ctrlTemplate = function () { + this.ctrlTem = this.element.cloneNode(true); + var innerEles; + var rootEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTAINER, this.element); + if (rootEle) { + innerEles = rootEle.children; + } + else { + innerEles = this.element.children; + } + var items = []; + [].slice.call(innerEles).forEach(function (el) { + items.push({ + header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '', + content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : '' + }); + el.parentNode.removeChild(el); + }); + if (rootEle) { + this.element.removeChild(rootEle); + } + this.setProperties({ items: items }, true); + }; + Accordion.prototype.toggleIconGenerate = function () { + var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN }); + var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN }); + tglIcon.appendChild(hdrColIcon); + return tglIcon; + }; + Accordion.prototype.initItemExpand = function () { + var len = this.initExpand.length; + if (len === 0) { + return; + } + if (this.expandMode === 'Single') { + this.expandItem(true, this.initExpand[len - 1]); + } + else { + for (var i = 0; i < len; i++) { + this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]); + } + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Accordion.prototype.renderItems = function () { + var _this = this; + var ele = this.element; + var innerItem; + var innerDataSourceItem; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.trgtEle)) { + this.ctrlTemplate(); + } + if (this.dataSource.length > 0) { + this.dataSource.forEach(function (item, index) { + innerDataSourceItem = _this.renderInnerItem(item, index); + ele.appendChild(innerDataSourceItem); + if (innerDataSourceItem.childElementCount > 0) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this); + } + }); + } + else { + var items = this.items; + if (ele && items.length > 0) { + items.forEach(function (item, index) { + innerItem = _this.renderInnerItem(item, index); + ele.appendChild(innerItem); + if (innerItem.childElementCount > 0) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this); + } + }); + } + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Accordion.prototype.clickHandler = function (e) { + var trgt = e.target; + var items = this.getItems(); + var eventArgs = {}; + var tglIcon; + var acrdEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ROOT); + if (acrdEle !== this.element) { + return; + } + trgt.classList.add('e-target'); + var acrdnItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ITEM); + var acrdnHdr = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_HEADER); + var acrdnCtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_CONTENT); + if (acrdnItem && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnHdr) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnCtn))) { + acrdnHdr = acrdnItem.children[0]; + acrdnCtn = acrdnItem.children[1]; + } + if (acrdnHdr) { + tglIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TOOGLEICN, acrdnHdr); + } + var acrdnCtnItem; + if (acrdnHdr) { + acrdnCtnItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(acrdnHdr, '.' + CLS_ITEM); + } + else if (acrdnCtn) { + acrdnCtnItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(acrdnCtn, '.' + CLS_ITEM); + } + var index = this.getIndexByItem(acrdnItem); + if (acrdnCtnItem) { + eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)]; + } + eventArgs.originalEvent = e; + var ctnCheck = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tglIcon) && acrdnItem.childElementCount <= 1; + if (ctnCheck && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnCtn) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) { + acrdnItem.appendChild(this.contentRendering(index)); + this.ariaAttrUpdate(acrdnItem); + this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem); + } + else { + this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem); + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) { + var _this = this; + var acrdActive = []; + this.trigger('clicked', eventArgs); + var cntclkCheck = (acrdnCtn && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-target', acrdnCtn))); + var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT; + var inlineEleAcrdn = acrdnCtn && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_ROOT, acrdnCtn)) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, inlineAcrdnSel)); + var nestContCheck = acrdnCtn && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_ROOT, acrdnCtn)) || !(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ROOT) === this.element); + cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck); + trgt.classList.remove('e-target'); + if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) { + return; + } + var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER); + var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children; + [].slice.call(acrdnchild).forEach(function (el) { + if (el.classList.contains(CLS_ACTIVE)) { + acrdActive.push(el); + } + }); + var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']')); + if (acrdAniEle.length > 0) { + for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) { + var el = acrdAniEle_1[_i]; + acrdActive.push(el.parentElement); + } + } + var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true'; + var sameHeader = false; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnItem) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnHdr)) { + var acrdnCtn_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, acrdnItem); + var acrdnRoot = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(acrdnItem, '.' + CLS_ACRDN_ROOT); + var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(acrdnCtn_1)) { + return; + } + sameHeader = (expandState === acrdnItem); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) { + this.collapse(acrdnCtn_1); + } + else { + if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) { + acrdActive.forEach(function (el) { + _this.collapse(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, el)); + el.classList.remove(CLS_EXPANDSTATE); + }); + } + this.expand(acrdnCtn_1); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expandState) && !sameHeader) { + expandState.classList.remove(CLS_EXPANDSTATE); + } + } + }; + Accordion.prototype.eleMoveFocus = function (action, root, trgt) { + var clst; + var clstItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ITEM); + if (trgt === root) { + clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER)); + } + else if (trgt.classList.contains(CLS_HEADER)) { + clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling); + if (clstItem) { + clst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, clstItem); + } + } + if (clst) { + clst.focus(); + } + }; + Accordion.prototype.keyActionHandler = function (e) { + var trgt = e.target; + var header = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, CLS_HEADER); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) { + return; + } + var clst; + var root = this.element; + var content; + switch (e.action) { + case 'moveUp': + this.eleMoveFocus(e.action, root, trgt); + break; + case 'moveDown': + this.eleMoveFocus(e.action, root, trgt); + break; + case 'space': + case 'enter': + content = trgt.nextElementSibling; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(content) && content.classList.contains(CLS_CONTENT)) { + if (content.getAttribute('e-animate') !== 'true') { + trgt.click(); + } + } + else { + trgt.click(); + } + e.preventDefault(); + break; + case 'home': + case 'end': + clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0]; + clst.focus(); + e.preventDefault(); + break; + } + }; + Accordion.prototype.headerEleGenerate = function () { + var header = this.createElement('div', { className: CLS_HEADER, id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('acrdn_header') }); + var ariaAttr = { + 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false' + }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(header, ariaAttr); + return header; + }; + Accordion.prototype.renderInnerItem = function (item, index) { + var innerEle = this.createElement('div', { + className: CLS_ITEM, id: item.id || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('acrdn_item') + }); + if (this.headerTemplate) { + var ctnEle = this.headerEleGenerate(); + var hdrEle = this.createElement('div', { className: CLS_HEADERCTN }); + ctnEle.appendChild(hdrEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle); + innerEle.appendChild(ctnEle); + ctnEle.appendChild(this.toggleIconGenerate()); + this.add(innerEle, CLS_SLCT); + return innerEle; + } + if (item.header && this.angularnativeCondiCheck(item, 'header')) { + if (this.enableHtmlSanitizer && typeof (item.header) === 'string') { + item.header = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(item.header); + } + var ctnEle = this.headerEleGenerate(); + var hdrEle = this.createElement('div', { className: CLS_HEADERCTN }); + ctnEle.appendChild(hdrEle); + ctnEle.appendChild(this.fetchElement(hdrEle, item.header, index, true)); + innerEle.appendChild(ctnEle); + } + var hdr = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, innerEle); + if (item.expanded && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index) && (!this.enablePersistence)) { + if (this.initExpand.indexOf(index) === -1) { + this.initExpand.push(index); + } + } + if (item.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([innerEle], item.cssClass.split(' ')); + } + if (item.disabled) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([innerEle], CLS_DISABLE); + } + if (item.visible === false) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([innerEle], CLS_ITEMHIDE); + } + if (item.iconCss) { + var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN }); + var icon = this.createElement('span', { className: item.iconCss + ' e-icons' }); + hdrIcnEle.appendChild(icon); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(hdr)) { + hdr = this.headerEleGenerate(); + hdr.appendChild(hdrIcnEle); + innerEle.appendChild(hdr); + } + else { + hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]); + } + } + if (item.content && this.angularnativeCondiCheck(item, 'content')) { + var hdrIcon = this.toggleIconGenerate(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(hdr)) { + hdr = this.headerEleGenerate(); + innerEle.appendChild(hdr); + } + hdr.appendChild(hdrIcon); + this.add(innerEle, CLS_SLCT); + } + return innerEle; + }; + Accordion.prototype.angularnativeCondiCheck = function (item, prop) { + var property = prop === 'content' ? item.content : item.header; + var content = property; + if (this.isAngular && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(content.elementRef)) { + var data = content.elementRef.nativeElement.data; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) || data === '' || (data.indexOf('bindings=') === -1)) { + return true; + } + var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', '')); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') { + return false; + } + else { + return true; + } + } + else { + return true; + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Accordion.prototype.fetchElement = function (ele, value, index, isHeader) { + var templateFn; + var temString; + try { + if (document.querySelectorAll(value).length && value !== 'Button') { + var eleVal = document.querySelector(value); + temString = eleVal.outerHTML.trim(); + ele.appendChild(eleVal); + eleVal.style.display = ''; + } + else { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(value); + } + } + catch (e) { + if (typeof (value) === 'string') { + ele.innerHTML = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(value); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.trgtEle) && (value instanceof (HTMLElement))) { + ele.appendChild(value); + ele.firstElementChild.style.display = ''; + } + else { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(value); + } + } + var tempArray; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateFn)) { + if (this.isReact) { + this.renderReactTemplates(); + } + var templateProps = void 0; + var templateName = void 0; + if (ele.classList.contains(CLS_HEADERCTN)) { + templateProps = this.element.id + index + '_header'; + templateName = 'header'; + } + else if (ele.classList.contains(CLS_CTENT)) { + templateProps = this.element.id + index + '_content'; + templateName = 'content'; + } + tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempArray) && tempArray.length > 0 && !(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempArray[0].tagName) && tempArray.length === 1)) { + [].slice.call(tempArray).forEach(function (el) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(el.tagName)) { + el.style.display = ''; + } + ele.appendChild(el); + }); + } + else if (ele.childElementCount === 0) { + ele.innerHTML = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(value); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(temString)) { + if (this.templateEle.indexOf(value) === -1) { + this.templateEle.push(value); + } + } + return ele; + }; + Accordion.prototype.ariaAttrUpdate = function (itemEle) { + var header = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, itemEle); + var content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, itemEle); + header.setAttribute('aria-controls', content.id); + content.setAttribute('aria-labelledby', header.id); + content.setAttribute('role', 'region'); + }; + Accordion.prototype.contentRendering = function (index) { + var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('acrdn_panel') }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(itemcnt, { 'aria-hidden': 'true' }); + var ctn = this.createElement('div', { className: CLS_CTENT }); + if (this.dataSource.length > 0) { + if (this.isReact) { + this.renderReactTemplates(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn); + itemcnt.appendChild(ctn); + } + else { + if (this.enableHtmlSanitizer && typeof (this.items[parseInt(index.toString(), 10)].content)) { + this.items[parseInt(index.toString(), 10)].content = + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.items[parseInt(index.toString(), 10)].content); + } + itemcnt.appendChild(this.fetchElement(ctn, this.items[parseInt(index.toString(), 10)].content, index, false)); + } + return itemcnt; + }; + Accordion.prototype.expand = function (trgt) { + var _this = this; + var items = this.getItems(); + var trgtItemEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ITEM); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trgt) || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) { + return; + } + var acrdnRoot = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgtItemEle, '.' + CLS_ACRDN_ROOT); + var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE); + var animation = { + name: this.animation.expand.effect, + duration: this.animation.expand.duration, + timingFunction: this.animation.expand.easing + }; + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild; + var eventArgs = { + element: trgtItemEle, + item: items[this.getIndexByItem(trgtItemEle)], + index: this.getIndexByItem(trgtItemEle), + content: trgtItemEle.querySelector('.' + CLS_CONTENT), + isExpanded: true + }; + this.trigger('expanding', eventArgs, function (expandArgs) { + if (!expandArgs.cancel) { + icon.classList.add(CLS_TOGANIMATE); + _this.expandedItemsPush(trgtItemEle); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(expandState)) { + expandState.classList.remove(CLS_EXPANDSTATE); + } + trgtItemEle.classList.add(CLS_EXPANDSTATE); + if ((animation.name === 'None')) { + _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs); + _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs); + } + else { + _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs); + } + } + }); + }; + Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) { + var _this = this; + var height; + this.lastActiveItemId = trgtItemEle.id; + if (ef === 'SlideDown') { + animate.begin = function () { + _this.expandProgress('begin', icn, trgt, trgtItemEle, args); + trgt.style.position = 'absolute'; + height = trgtItemEle.offsetHeight; + trgt.style.maxHeight = (trgt.offsetHeight) + 'px'; + trgtItemEle.style.maxHeight = ''; + }; + animate.progress = function () { + trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px'; + }; + animate.end = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(trgt, { 'position': '', 'maxHeight': '' }); + trgtItemEle.style.minHeight = ''; + _this.expandProgress('end', icn, trgt, trgtItemEle, args); + }; + } + else { + animate.begin = function () { + _this.expandProgress('begin', icn, trgt, trgtItemEle, args); + }; + animate.end = function () { + _this.expandProgress('end', icn, trgt, trgtItemEle, args); + }; + } + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animate).animate(trgt); + }; + Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) { + this.remove(trgt, CLS_CTNHIDE); + this.add(trgtItemEle, CLS_SLCTED); + this.add(icon, CLS_EXPANDICN); + if (progress === 'end') { + this.add(trgtItemEle, CLS_ACTIVE); + trgt.setAttribute('aria-hidden', 'false'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(trgt.previousElementSibling, { 'aria-expanded': 'true' }); + icon.classList.remove(CLS_TOGANIMATE); + this.trigger('expanded', eventArgs); + } + }; + Accordion.prototype.expandedItemsPush = function (item) { + var index = this.getIndexByItem(item); + if (this.expandedIndices.indexOf(index) === -1) { + var temp = [].slice.call(this.expandedIndices); + temp.push(index); + this.setProperties({ expandedIndices: temp }, true); + } + }; + Accordion.prototype.getIndexByItem = function (item) { + var itemEle = this.getItemElements(); + return [].slice.call(itemEle).indexOf(item); + }; + Accordion.prototype.getItemElements = function () { + var itemEle = []; + var itemCollection = this.element.children; + [].slice.call(itemCollection).forEach(function (el) { + if (el.classList.contains(CLS_ITEM)) { + itemEle.push(el); + } + }); + return itemEle; + }; + Accordion.prototype.expandedItemsPop = function (item) { + var index = this.getIndexByItem(item); + var temp = [].slice.call(this.expandedIndices); + temp.splice(temp.indexOf(index), 1); + this.setProperties({ expandedIndices: temp }, true); + }; + Accordion.prototype.collapse = function (trgt) { + var _this = this; + var items = this.getItems(); + var trgtItemEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ITEM); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trgt) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) { + return; + } + var animation = { + name: this.animation.collapse.effect, + duration: this.animation.collapse.duration, + timingFunction: this.animation.collapse.easing + }; + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild; + var eventArgs = { + element: trgtItemEle, + item: items[this.getIndexByItem(trgtItemEle)], + index: this.getIndexByItem(trgtItemEle), + content: trgtItemEle.querySelector('.' + CLS_CONTENT), + isExpanded: false + }; + this.trigger('expanding', eventArgs, function (expandArgs) { + if (!expandArgs.cancel) { + _this.expandedItemsPop(trgtItemEle); + trgtItemEle.classList.remove(CLS_EXPANDSTATE); + icon.classList.add(CLS_TOGANIMATE); + if ((animation.name === 'None')) { + _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs); + _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs); + } + else { + _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs); + } + } + }); + }; + Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) { + var _this = this; + var height; + var trgtHeight; + var itemHeight; + var remain; + this.lastActiveItemId = trgtItEl.id; + if (ef === 'SlideUp') { + animate.begin = function () { + itemHeight = trgtItEl.offsetHeight; + trgtItEl.style.minHeight = itemHeight + 'px'; + trgt.style.position = 'absolute'; + height = trgtItEl.offsetHeight; + trgtHeight = trgt.offsetHeight; + trgt.style.maxHeight = trgtHeight + 'px'; + _this.collapseProgress('begin', icn, trgt, trgtItEl, args); + }; + animate.progress = function () { + remain = ((height - (trgtHeight - trgt.offsetHeight))); + if (remain < itemHeight) { + trgtItEl.style.minHeight = remain + 'px'; + } + }; + animate.end = function () { + trgt.style.display = 'none'; + _this.collapseProgress('end', icn, trgt, trgtItEl, args); + trgtItEl.style.minHeight = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(trgt, { 'position': '', 'maxHeight': '', 'display': '' }); + }; + } + else { + animate.begin = function () { + _this.collapseProgress('begin', icn, trgt, trgtItEl, args); + }; + animate.end = function () { + _this.collapseProgress('end', icn, trgt, trgtItEl, args); + }; + } + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animate).animate(trgt); + }; + Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) { + this.remove(icon, CLS_EXPANDICN); + this.remove(trgtItemEle, CLS_SLCTED); + if (progress === 'end') { + this.add(trgt, CLS_CTNHIDE); + icon.classList.remove(CLS_TOGANIMATE); + this.remove(trgtItemEle, CLS_ACTIVE); + trgt.setAttribute('aria-hidden', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(trgt.previousElementSibling, { 'aria-expanded': 'false' }); + this.trigger('expanded', eventArgs); + } + }; + /** + * Returns the current module name. + * + * @returns {string} - It returns the current module name. + * @private + */ + Accordion.prototype.getModuleName = function () { + return 'accordion'; + }; + Accordion.prototype.getItems = function () { + var items; + if (this.itemTemplate && this.headerTemplate) { + items = this.dataSource; + } + else { + items = this.items; + } + return items; + }; + /** + * Adds new item to the Accordion with the specified index of the Accordion. + * + * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion. + * @param {number} index - Number value that determines where the item should be added. + * By default, item is added at the last index if the index is not specified. + * @returns {void} + */ + Accordion.prototype.addItem = function (item, index) { + var _this = this; + var ele = this.element; + var itemEle = this.getItemElements(); + var items = this.getItems(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + index = items.length; + } + if (ele.childElementCount >= index) { + var addItems = (item instanceof Array) ? item : [item]; + addItems.forEach(function (addItem, i) { + var itemIndex = index + i; + items.splice(itemIndex, 0, addItem); + var innerItemEle = _this.renderInnerItem(addItem, itemIndex); + if (ele.childElementCount === itemIndex) { + ele.appendChild(innerItemEle); + } + else { + ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this); + _this.expandedIndices = []; + _this.expandedItemRefresh(ele); + if (addItem && addItem.expanded) { + _this.expandItem(true, itemIndex); + } + }); + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Accordion.prototype.expandedItemRefresh = function (ele) { + var _this = this; + var itemEle = this.getItemElements(); + [].slice.call(itemEle).forEach(function (el) { + if (el.classList.contains(CLS_SLCTED)) { + _this.expandedItemsPush(el); + } + }); + }; + /** + * Dynamically removes item from Accordion. + * + * @param {number} index - Number value that determines which item should be removed. + * @returns {void}. + */ + Accordion.prototype.removeItem = function (index) { + if (this.isReact) { + this.clearTemplate(['headerTemplate', 'itemTemplate'], index); + } + var itemEle = this.getItemElements(); + var ele = itemEle[parseInt(index.toString(), 10)]; + var items = this.getItems(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return; + } + this.restoreContent(index); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + items.splice(index, 1); + this.expandedIndices = []; + this.expandedItemRefresh(this.element); + }; + /** + * Sets focus to the specified index item header in Accordion. + * + * @param {number} index - Number value that determines which item should be focused. + * @returns {void}. + */ + Accordion.prototype.select = function (index) { + var itemEle = this.getItemElements(); + var ele = itemEle[parseInt(index.toString(), 10)]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, ele))) { + return; + } + ele.children[0].focus(); + }; + /** + * Shows or hides the specified item from Accordion. + * + * @param {number} index - Number value that determines which item should be hidden/shown. + * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false. + * If the `isHidden` value is false, the item is shown or else item it is hidden. + * @returns {void}. + */ + Accordion.prototype.hideItem = function (index, isHidden) { + var itemEle = this.getItemElements(); + var ele = itemEle[parseInt(index.toString(), 10)]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(isHidden)) { + isHidden = true; + } + if (isHidden) { + this.add(ele, CLS_ITEMHIDE); + } + else { + this.remove(ele, CLS_ITEMHIDE); + } + }; + /** + * Enables/Disables the specified Accordion item. + * + * @param {number} index - Number value that determines which item should be enabled/disabled. + * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false). + * If the `isEnable` value is true, the item is enabled or else it is disabled. + * @returns {void}. + */ + Accordion.prototype.enableItem = function (index, isEnable) { + var itemEle = this.getItemElements(); + var ele = itemEle[parseInt(index.toString(), 10)]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return; + } + var eleHeader = ele.firstElementChild; + if (isEnable) { + this.remove(ele, CLS_DISABLE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' }); + eleHeader.focus(); + } + else { + if (ele.classList.contains(CLS_ACTIVE)) { + this.expandItem(false, index); + this.eleMoveFocus('movedown', this.element, eleHeader); + } + this.add(ele, CLS_DISABLE); + eleHeader.setAttribute('aria-disabled', 'true'); + eleHeader.removeAttribute('tabindex'); + } + }; + /** + * Expands/Collapses the specified Accordion item. + * + * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse. + * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter. + * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed. + * @returns {void}. + */ + Accordion.prototype.expandItem = function (isExpand, index) { + var _this = this; + var itemEle = this.getItemElements(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + if (this.expandMode === 'Single' && isExpand) { + var ele = itemEle[itemEle.length - 1]; + this.itemExpand(isExpand, ele, this.getIndexByItem(ele)); + } + else { + var item = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + this.lastActiveItemId, this.element); + [].slice.call(itemEle).forEach(function (el) { + _this.itemExpand(isExpand, el, _this.getIndexByItem(el)); + el.classList.remove(CLS_EXPANDSTATE); + }); + var expandedItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_EXPANDSTATE, this.element); + if (expandedItem) { + expandedItem.classList.remove(CLS_EXPANDSTATE); + } + if (item) { + item.classList.add(CLS_EXPANDSTATE); + } + } + } + else { + var ele = itemEle[parseInt(index.toString(), 10)]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) { + return; + } + else { + if (this.expandMode === 'Single') { + this.expandItem(false); + } + this.itemExpand(isExpand, ele, index); + } + } + }; + Accordion.prototype.itemExpand = function (isExpand, ele, index) { + var ctn = ele.children[1]; + if (ele.classList.contains(CLS_DISABLE)) { + return; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ctn) && isExpand) { + ctn = this.contentRendering(index); + ele.appendChild(ctn); + this.ariaAttrUpdate(ele); + this.expand(ctn); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ctn)) { + if (isExpand) { + this.expand(ctn); + } + else { + this.collapse(ctn); + } + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Accordion.prototype.destroyItems = function () { + this.restoreContent(null); + if (this.isReact || this.isAngular || this.isVue) { + this.clearTemplate(); + } + [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(el); + }); + }; + Accordion.prototype.restoreContent = function (index) { + var ctnElePos; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + ctnElePos = this.element; + } + else { + ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)]; + } + this.templateEle.forEach(function (eleStr) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ctnElePos.querySelector(eleStr))) { + document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none'; + } + }); + }; + Accordion.prototype.updateItem = function (item, index) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + var items = this.getItems(); + var itemObj = items[parseInt(index.toString(), 10)]; + items.splice(index, 1); + this.restoreContent(index); + var header = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADERCTN, item); + var content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CTENT, item); + if (this.isReact || this.isAngular) { + this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN); + this.clearAccordionTemplate(content, 'content', CLS_CTENT); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(item); + this.addItem(itemObj, index); + } + }; + Accordion.prototype.setTemplate = function (template, toElement, index) { + toElement.innerHTML = ''; + this.templateCompile(toElement, template, index); + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Accordion.prototype.templateCompile = function (ele, cnt, index) { + var tempEle = this.createElement('div'); + this.fetchElement(tempEle, cnt, index, false); + if (tempEle.childNodes.length !== 0) { + [].slice.call(tempEle.childNodes).forEach(function (childEle) { + ele.appendChild(childEle); + }); + } + }; + Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) { + if (this.registeredTemplate && this.registeredTemplate["" + templateName]) { + var registeredTemplates = this.registeredTemplate; + for (var index = 0; index < registeredTemplates["" + templateName].length; index++) { + var registeredItem = registeredTemplates["" + templateName][parseInt(index.toString(), 10)].rootNodes[0]; + var closestItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(registeredItem.containerInfo, '.' + className); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closestItem) && closestItem === templateEle) { + this.clearTemplate([templateName], [registeredTemplates["" + templateName][parseInt(index.toString(), 10)]]); + break; + } + } + } + else if (this.portals && this.portals.length > 0) { + var portals = this.portals; + for (var index = 0; index < portals.length; index++) { + var portalItem = portals[parseInt(index.toString(), 10)]; + var closestItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(portalItem.containerInfo, '.' + className); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closestItem) && closestItem === templateEle) { + this.clearTemplate([templateName], index); + break; + } + } + } + }; + Accordion.prototype.getPersistData = function () { + var keyEntity = ['expandedIndices']; + return this.addOnPersist(keyEntity); + }; + /** + * Gets called when the model property changes.The data that describes the old and new values of the property that changed. + * + * @param {AccordionModel} newProp - It contains the new value of data. + * @param {AccordionModel} oldProp - It contains the old value of data. + * @returns {void} + * @private + */ + Accordion.prototype.onPropertyChanged = function (newProp, oldProp) { + var acrdn = this.element; + var isRefresh = false; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'items': + if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) { + var changedProp = Object.keys(newProp.items); + for (var j = 0; j < changedProp.length; j++) { + var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10); + var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]); + for (var k = 0; k < property.length; k++) { + var item = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)]; + var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])["" + property[parseInt(k.toString(), 10)]]; + var newVal = Object(newProp.items[parseInt(index.toString(), 10)])["" + property[parseInt(k.toString(), 10)]]; + var temp = property[parseInt(k.toString(), 10)]; + var content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CTENT, item); + if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) { + this.updateItem(item, index); + } + if (property[parseInt(k.toString(), 10)] === 'cssClass' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + if (oldVal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([item], oldVal.split(' ')); + } + if (newVal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([item], newVal.split(' ')); + } + } + if (property[parseInt(k.toString(), 10)] === 'visible' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + if (Object(newProp.items[parseInt(index.toString(), 10)])["" + property[parseInt(k.toString(), 10)]] === false) { + item.classList.add(CLS_ITEMHIDE); + } + else { + item.classList.remove(CLS_ITEMHIDE); + } + } + if (property[parseInt(k.toString(), 10)] === 'disabled' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + this.enableItem(index, !newVal); + } + if (property[parseInt(k.toString(), 10)] === 'content' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item) && item.children.length === 2) { + if (typeof newVal === 'function') { + if (this.isAngular || this.isReact) { + this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT); + } + var activeContent = item.querySelector('.' + CLS_CTENT); + activeContent.innerHTML = ''; + this.setTemplate(newVal, activeContent, index); + } + else { + if (item.classList.contains(CLS_SLCTED)) { + this.expandItem(false, index); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(item.querySelector('.' + CLS_CONTENT)); + } + } + } + } + } + else { + isRefresh = true; + } + break; + case 'dataSource': + case 'expandedIndices': + if (this.expandedIndices === null) { + this.expandedIndices = []; + } + isRefresh = true; + break; + case 'headerTemplate': + this.initializeHeaderTemplate(); + isRefresh = true; + break; + case 'itemTemplate': + this.initializeItemTemplate(); + isRefresh = true; + break; + case 'enableRtl': + if (newProp.enableRtl) { + this.add(acrdn, CLS_RTL); + } + else { + this.remove(acrdn, CLS_RTL); + } + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height) }); + break; + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width) }); + break; + case 'expandMode': + if (newProp.expandMode === 'Single' && this.expandedIndices.length > 1) { + this.expandItem(false); + } + break; + } + } + if (isRefresh) { + this.initExpand = []; + if (this.expandedIndices.length > 0) { + this.initExpand = this.expandedIndices; + } + this.destroyItems(); + this.renderItems(); + this.initItemExpand(); + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], AccordionItem) + ], Accordion.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], Accordion.prototype, "dataSource", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Accordion.prototype, "itemTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Accordion.prototype, "headerTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Accordion.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Accordion.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], Accordion.prototype, "expandedIndices", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Multiple') + ], Accordion.prototype, "expandMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Accordion.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, AccordionAnimationSettings) + ], Accordion.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Accordion.prototype, "clicked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Accordion.prototype, "expanding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Accordion.prototype, "expanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Accordion.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Accordion.prototype, "destroyed", void 0); + Accordion = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Accordion); + return Accordion; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/index.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/index.js ***! + \**************************************************************************/ +/*! exports provided: AccordionActionSettings, AccordionAnimationSettings, AccordionItem, Accordion */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _accordion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./accordion */ "./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/accordion.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionActionSettings", function() { return _accordion__WEBPACK_IMPORTED_MODULE_0__["AccordionActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionAnimationSettings", function() { return _accordion__WEBPACK_IMPORTED_MODULE_0__["AccordionAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionItem", function() { return _accordion__WEBPACK_IMPORTED_MODULE_0__["AccordionItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Accordion", function() { return _accordion__WEBPACK_IMPORTED_MODULE_0__["Accordion"]; }); + +/** + * Accordion all modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/appbar.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/appbar.js ***! + \************************************************************************/ +/*! exports provided: AppBar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppBar", function() { return AppBar; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + +// Constant variables +var CLS_APPBAR = 'e-appbar'; +var CLS_HORIZONTAL_BOTTOM = 'e-horizontal-bottom'; +var CLS_STICKY = 'e-sticky'; +var CLS_PROMINENT = 'e-prominent'; +var CLS_DENSE = 'e-dense'; +var CLS_RTL = 'e-rtl'; +var CLS_LIGHT = 'e-light'; +var CLS_DARK = 'e-dark'; +var CLS_PRIMARY = 'e-primary'; +var CLS_INHERIT = 'e-inherit'; +/** + * The AppBar displays the information and actions related to the current application screen. It is used to show branding, screen titles, navigation, and actions. + * Support to inherit colors from AppBar provided to Button, DropDownButton, Menu and TextBox. + * Set CssClass property with e-inherit CSS class to inherit the background and color from AppBar. + */ +var AppBar = /** @__PURE__ @class */ (function (_super) { + __extends(AppBar, _super); + /** + * Constructor for creating the AppBar widget + * + * @param {AppBarModel} options Accepts the AppBar model properties to initiate the rendering + * @param {string | HTMLElement} element Accepts the DOM element reference + */ + function AppBar(options, element) { + return _super.call(this, options, element) || this; + } + /** + * Removes the control from the DOM and also removes all its related events. + * + * @returns {void} + */ + AppBar.prototype.destroy = function () { + _super.prototype.destroy.call(this); + this.element.classList.remove(CLS_APPBAR); + this.element.removeAttribute('style'); + this.element.removeAttribute('role'); + }; + AppBar.prototype.getModuleName = function () { + return 'appbar'; + }; + AppBar.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + AppBar.prototype.preRender = function () { + // pre render code + }; + AppBar.prototype.render = function () { + if (this.element.tagName !== 'HEADER') { + this.element.setAttribute('role', 'header'); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.split(' ')); + } + if (this.position === 'Bottom') { + this.element.classList.add(CLS_HORIZONTAL_BOTTOM); + } + if (this.isSticky) { + this.element.classList.add(CLS_STICKY); + } + if (this.enableRtl) { + this.element.classList.add(CLS_RTL); + } + this.setHeightMode(); + this.setColorMode(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + this.setHtmlAttributes(this.htmlAttributes, this.element); + } + }; + AppBar.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'mode': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_DENSE, CLS_PROMINENT]); + this.setHeightMode(); + break; + case 'position': + if (this.position === 'Bottom') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_HORIZONTAL_BOTTOM); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_HORIZONTAL_BOTTOM); + } + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newProp.cssClass.split(' ')); + } + break; + case 'isSticky': + if (this.isSticky) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_STICKY); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_STICKY); + } + break; + case 'htmlAttributes': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.htmlAttributes)) { + var keys = Object.keys(oldProp.htmlAttributes); + for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) { + var key = keys_1[_b]; + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.htmlAttributes["" + key]); + } + else { + this.element.removeAttribute(key); + } + } + } + this.setHtmlAttributes(newProp.htmlAttributes, this.element); + } + break; + case 'colorMode': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_DARK, CLS_PRIMARY, CLS_INHERIT, CLS_LIGHT]); + this.setColorMode(); + break; + case 'enableRtl': + if (this.enableRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_RTL); + } + break; + } + } + }; + AppBar.prototype.setHtmlAttributes = function (attribute, element) { + var keys = Object.keys(attribute); + for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) { + var key = keys_2[_i]; + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([element], attribute["" + key]); + } + else { + element.setAttribute(key, attribute["" + key]); + } + } + }; + AppBar.prototype.setHeightMode = function () { + if (this.mode === 'Prominent') { + this.element.classList.add(CLS_PROMINENT); + } + else if (this.mode === 'Dense') { + this.element.classList.add(CLS_DENSE); + } + }; + AppBar.prototype.setColorMode = function () { + switch (this.colorMode) { + case 'Light': + this.element.classList.add(CLS_LIGHT); + break; + case 'Dark': + this.element.classList.add(CLS_DARK); + break; + case 'Primary': + this.element.classList.add(CLS_PRIMARY); + break; + case 'Inherit': + this.element.classList.add(CLS_INHERIT); + break; + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Regular') + ], AppBar.prototype, "mode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Top') + ], AppBar.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], AppBar.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], AppBar.prototype, "isSticky", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], AppBar.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Light') + ], AppBar.prototype, "colorMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], AppBar.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], AppBar.prototype, "destroyed", void 0); + AppBar = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], AppBar); + return AppBar; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/index.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/index.js ***! + \***********************************************************************/ +/*! exports provided: AppBar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _appbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./appbar */ "./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/appbar.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AppBar", function() { return _appbar__WEBPACK_IMPORTED_MODULE_0__["AppBar"]; }); + +/** AppBar export modules */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/breadcrumb.js": +/*!********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/breadcrumb.js ***! + \********************************************************************************/ +/*! exports provided: BreadcrumbOverflowMode, BreadcrumbItem, Breadcrumb */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbOverflowMode", function() { return BreadcrumbOverflowMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return BreadcrumbItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return Breadcrumb; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_lists__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-lists */ "./ej2-resources/22.1.37/scripts/ej2-lists/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var ICONRIGHT = 'e-icon-right'; +var ITEMTEXTCLASS = 'e-breadcrumb-text'; +var ICONCLASS = 'e-breadcrumb-icon'; +var MENUCLASS = 'e-breadcrumb-menu'; +var ITEMCLASS = 'e-breadcrumb-item'; +var POPUPCLASS = 'e-breadcrumb-popup'; +var WRAPMODECLASS = 'e-breadcrumb-wrap-mode'; +var SCROLLMODECLASS = 'e-breadcrumb-scroll-mode'; +var TABINDEX = 'tabindex'; +var DISABLEDCLASS = 'e-disabled'; +var ARIADISABLED = 'aria-disabled'; +var DOT = '.'; +/** + * Defines the Breadcrumb overflow modes. + */ +var BreadcrumbOverflowMode; +(function (BreadcrumbOverflowMode) { + /** + * Hidden mode shows the maximum number of items possible in the container space and hides the remaining items. + * Clicking on a previous item will make the hidden item visible. + */ + BreadcrumbOverflowMode["Hidden"] = "Hidden"; + /** + * Collapsed mode shows the first and last Breadcrumb items and hides the remaining items with a collapsed icon. + * When the collapsed icon is clicked, all items become visible and navigable. + */ + BreadcrumbOverflowMode["Collapsed"] = "Collapsed"; + /** + * Menu mode shows the number of Breadcrumb items that can be accommodated within the container space and creates a submenu with the remaining items. + */ + BreadcrumbOverflowMode["Menu"] = "Menu"; + /** + * Wrap mode wraps the items to multiple lines when the Breadcrumb’s width exceeds the container space. + */ + BreadcrumbOverflowMode["Wrap"] = "Wrap"; + /** + * Scroll mode shows an HTML scroll bar when the Breadcrumb’s width exceeds the container space. + */ + BreadcrumbOverflowMode["Scroll"] = "Scroll"; + /** + * None mode shows all the items in a single line. + */ + BreadcrumbOverflowMode["None"] = "None"; +})(BreadcrumbOverflowMode || (BreadcrumbOverflowMode = {})); +var BreadcrumbItem = /** @__PURE__ @class */ (function (_super) { + __extends(BreadcrumbItem, _super); + function BreadcrumbItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], BreadcrumbItem.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], BreadcrumbItem.prototype, "url", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], BreadcrumbItem.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], BreadcrumbItem.prototype, "disabled", void 0); + return BreadcrumbItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Breadcrumb is a graphical user interface that helps to identify or highlight the current location within a hierarchical structure of websites. + * The aim is to make the user aware of their current position in a hierarchy of website links. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Breadcrumb = /** @__PURE__ @class */ (function (_super) { + __extends(Breadcrumb, _super); + /** + * Constructor for creating the widget. + * + * @private + * @param {BreadcrumbModel} options - Specifies the Breadcrumb model. + * @param {string | HTMLElement} element - Specifies the element. + */ + function Breadcrumb(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isPopupCreated = false; + return _this; + } + /** + * @private + * @returns {void} + */ + Breadcrumb.prototype.preRender = function () { + // pre render code + }; + /** + * Initialize the control rendering. + * + * @private + * @returns {void} + */ + Breadcrumb.prototype.render = function () { + this.initialize(); + this.renderItems(this.items); + this.wireEvents(); + }; + Breadcrumb.prototype.initialize = function () { + this._maxItems = this.maxItems; + this.element.setAttribute('aria-label', 'breadcrumb'); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if (this.enableRtl) { + this.element.classList.add('e-rtl'); + } + if (this.disabled) { + this.element.classList.add(DISABLEDCLASS); + this.element.setAttribute(ARIADISABLED, 'true'); + } + if (this.overflowMode === 'Wrap') { + this.element.classList.add(WRAPMODECLASS); + } + else if (this.overflowMode === 'Scroll') { + this.element.classList.add(SCROLLMODECLASS); + } + this.initItems(); + this.initPvtProps(); + }; + Breadcrumb.prototype.initPvtProps = function () { + if (this.overflowMode === 'Hidden' && this._maxItems > 0) { + this.endIndex = this.getEndIndex(); + this.startIndex = this.endIndex + 1 - (this._maxItems - 1); + } + if (this.overflowMode === 'Menu') { + if (this._maxItems >= 0) { + this.startIndex = this._maxItems > 1 ? 1 : 0; + this.endIndex = this.getEndIndex(); + this.popupUl = this.createElement('ul', { attrs: { TABINDEX: '0', 'role': 'menu' } }); + } + else { + this.startIndex = this.endIndex = null; + } + } + }; + Breadcrumb.prototype.getEndIndex = function () { + var _this = this; + var endIndex; + if (this.activeItem) { + this.items.forEach(function (item, idx) { + if (item.url === _this.activeItem || item.text === _this.activeItem) { + endIndex = idx; + } + }); + } + else { + endIndex = this.items.length - 1; + } + return endIndex; + }; + Breadcrumb.prototype.initItems = function () { + if (!this.items.length) { + var baseUri = void 0; + var uri = void 0; + var items = []; + if (this.url) { + var url = new URL(this.url, window.location.origin); + baseUri = url.origin + '/'; + uri = url.href.split(baseUri)[1].split('/'); + } + else { + baseUri = window.location.origin + '/'; + uri = window.location.href.split(baseUri)[1].split('/'); + } + items.push({ iconCss: 'e-icons e-home', url: baseUri }); + for (var i = 0; i < uri.length; i++) { + if (uri[i]) { + items.push({ text: uri[i], url: baseUri + uri[i] }); + baseUri += uri[i] + '/'; + } + } + this.setProperties({ items: items }, true); + } + }; + Breadcrumb.prototype.renderItems = function (items) { + var _this = this; + var item; + var isSingleLevel; + var isIconRight = this.element.classList.contains(ICONRIGHT); + var itemsLength = items.length; + if (itemsLength) { + var isActiveItem = void 0; + var isLastItem = void 0; + var isLastItemInPopup_1; + var j_1 = 0; + var wrapDiv = void 0; + var len = (itemsLength * 2) - 1; + var isItemCancelled_1 = false; + var ol = this.createElement('ol', { className: this.overflowMode === 'Wrap' ? 'e-breadcrumb-wrapped-ol' : '' }); + var firstOl = this.createElement('ol', { className: this.overflowMode === 'Wrap' ? 'e-breadcrumb-first-ol' : '' }); + var showIcon = this.hasField(items, 'iconCss'); + var isCollasped = (this.overflowMode === 'Collapsed' && this._maxItems > 0 && itemsLength > this._maxItems && !this.isExpanded); + var isDefaultOverflowMode_1 = (this.overflowMode === 'Hidden' && this._maxItems > 0); + if (this.overflowMode === 'Menu' && this.popupUl) { + this.popupUl.innerHTML = ''; + } + var listBaseOptions = { + moduleName: this.getModuleName(), + showIcon: showIcon, + itemNavigable: true, + itemCreated: function (args) { + var isLastItem = args.curData.isLastItem; + if (isLastItem && args.item.children.length && !_this.itemTemplate) { + delete args.curData.isLastItem; + if (!isLastItemInPopup_1 && !_this.enableActiveItemNavigation) { + args.item.innerHTML = _this.createElement('span', { className: ITEMTEXTCLASS, innerHTML: args.item.children[0].innerHTML }).outerHTML; + } + } + if (args.curData.iconCss && !args.curData.text && !_this.itemTemplate) { + args.item.classList.add('e-icon-item'); + } + if (isDefaultOverflowMode_1) { + args.item.setAttribute('item-index', j_1.toString()); + } + var eventArgs = { + item: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, args.curData.properties ? + args.curData.properties : args.curData), element: args.item, cancel: false + }; + _this.trigger('beforeItemRender', eventArgs); + isItemCancelled_1 = eventArgs.cancel; + var containsRightIcon = (isIconRight || eventArgs.element.classList.contains(ICONRIGHT)); + if (containsRightIcon && args.curData.iconCss && !_this.itemTemplate) { + args.item.querySelector('.e-anchor-wrap').appendChild(args.item.querySelector(DOT + ICONCLASS)); + } + if (eventArgs.item.disabled) { + args.item.setAttribute(ARIADISABLED, 'true'); + args.item.classList.add(DISABLEDCLASS); + } + if ((eventArgs.item.disabled || _this.disabled) && args.item.children.length && !_this.itemTemplate) { + args.item.children[0].setAttribute(TABINDEX, '-1'); + } + if (args.curData.isEmptyUrl) { + args.item.children[0].removeAttribute('href'); + if ((!isLastItem || (isLastItem && _this.enableActiveItemNavigation)) && !(eventArgs.item.disabled + || _this.disabled)) { + args.item.children[0].setAttribute(TABINDEX, '0'); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(args.item.children[0], 'keydown', _this.keyDownHandler, _this); + } + } + args.item.removeAttribute('role'); + if (isLastItem) { + args.item.setAttribute('data-active-item', ''); + } + if (!_this.itemTemplate) { + _this.beforeItemRenderChanges(args.curData, eventArgs.item, args.item, containsRightIcon); + } + } + }; + for (var i = 0; i < len; (i % 2 && j_1++), i++) { + isActiveItem = (this.activeItem && (this.activeItem === items[j_1].url || + this.activeItem === items[j_1].text)); + if (isCollasped && i > 1 && i < len - 2) { + continue; + } + else if (isDefaultOverflowMode_1 && ((j_1 < this.startIndex || j_1 > this.endIndex) + && (i % 2 ? j_1 !== this.startIndex - 1 : true)) && j_1 !== 0) { + continue; + } + if (i % 2) { + // separator item + wrapDiv = this.createElement('div', { className: 'e-breadcrumb-item-wrapper' }); + listBaseOptions.template = this.separatorTemplate ? this.separatorTemplate : '/'; + listBaseOptions.itemClass = 'e-breadcrumb-separator'; + isSingleLevel = false; + item = [{ previousItem: items[j_1], nextItem: items[j_1 + 1] }]; + } + else { + // list item + listBaseOptions.itemClass = ''; + if (this.itemTemplate) { + listBaseOptions.template = this.itemTemplate; + isSingleLevel = false; + } + else { + isSingleLevel = true; + } + item = [Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, items[j_1].properties ? + items[j_1].properties + : items[j_1])]; + if (!item[0].url && !this.itemTemplate) { + item = [Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, item[0], { isEmptyUrl: true, url: '#' })]; + } + isLastItem = (isDefaultOverflowMode_1 || this.overflowMode === 'Menu') && (j_1 === this.endIndex); + if (((i === len - 1 || isLastItem) && !this.itemTemplate) || isActiveItem) { + item[0].isLastItem = true; + } + } + var parent_1 = ol; + var lastPopupItemIdx = this.startIndex + this.endIndex - this._maxItems; + if (this.overflowMode === 'Menu' && ((j_1 >= this.startIndex && (j_1 <= lastPopupItemIdx && (i % 2 ? !(j_1 === lastPopupItemIdx) : true)) && this.endIndex >= this._maxItems && this._maxItems > 0) || this._maxItems === 0)) { + if (i % 2) { + continue; + } + else { + parent_1 = this.popupUl; + if (isLastItem) { + isLastItemInPopup_1 = true; + } + } + } + else if (this.overflowMode === 'Wrap') { + if (i === 0) { + parent_1 = firstOl; + } + else { + parent_1 = wrapDiv; + } + } + var li = _ej2_lists__WEBPACK_IMPORTED_MODULE_1__["ListBase"].createList(this.createElement, item, listBaseOptions, isSingleLevel, this).childNodes; + if (!isItemCancelled_1) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(li, parent_1); + } + else if (isDefaultOverflowMode_1 || isCollasped || this.overflowMode === 'Menu' || this.overflowMode === 'Wrap') { + items.splice(j_1, 1); + this.initPvtProps(); + return this.reRenderItems(); + } + else if ((i === len - 1 || isLastItem)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(parent_1.lastElementChild); + } + if (this.overflowMode === 'Wrap' && i !== 0 && i % 2 === 0) { + ol.appendChild(wrapDiv); + } + if (isCollasped && i === 1) { + var li_1 = this.createElement('li', { className: 'e-icons e-breadcrumb-collapsed', attrs: { TABINDEX: '0' } }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(li_1, 'keyup', this.expandHandler, this); + ol.appendChild(li_1); + } + if (this.overflowMode === 'Menu' && this.startIndex === i && this.endIndex >= this._maxItems && this._maxItems >= 0) { + var menu = this.getMenuElement(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(menu, 'keyup', this.keyDownHandler, this); + ol.appendChild(menu); + } + if (isActiveItem || isLastItem) { + break; + } + if (isItemCancelled_1) { + i++; + } + } + if (this.isReact) { + this.renderReactTemplates(); + } + if (this.overflowMode === 'Wrap') { + this.element.appendChild(firstOl); + } + this.element.appendChild(ol); + this.calculateMaxItems(); + } + }; + Breadcrumb.prototype.calculateMaxItems = function () { + if (this.overflowMode === 'Hidden' || this.overflowMode === 'Collapsed' || this.overflowMode === 'Menu') { + var maxItems = void 0; + var width = this.element.offsetWidth; + var liElems = [].slice.call(this.element.children[0].children).reverse(); + var liWidth = this.overflowMode === 'Menu' ? 0 : liElems[liElems.length - 1].offsetWidth + (liElems[liElems.length - 2] ? liElems[liElems.length - 2].offsetWidth : 0); + if (this.overflowMode === 'Menu') { + var menuEle = this.getMenuElement(); + this.element.appendChild(menuEle); + liWidth += menuEle.offsetWidth; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(menuEle); + } + for (var i = 0; i < liElems.length - 2; i++) { + if (liWidth > width) { + maxItems = Math.ceil((i - 1) / 2) + ((this.overflowMode === 'Menu' && i <= 2) ? 0 : 1); + if (((this.maxItems > maxItems && !(this.maxItems > -1 && maxItems === -1)) || + this.maxItems === -1) && this._maxItems !== maxItems) { + this._maxItems = maxItems; + this.initPvtProps(); + return this.reRenderItems(); + } + else { + break; + } + } + else { + if (this.overflowMode === 'Menu' && i === 2) { + liWidth += liElems[liElems.length - 1].offsetWidth + liElems[liElems.length - 2].offsetWidth; + if (liWidth > width) { + this._maxItems = 1; + this.initPvtProps(); + return this.reRenderItems(); + } + } + if (!(this.overflowMode === 'Menu' && liElems[i].classList.contains(MENUCLASS))) { + liWidth += liElems[i].offsetWidth; + } + } + } + } + else if ((this.overflowMode === 'Wrap' || this.overflowMode === 'Scroll') && this._maxItems > 0) { + var width = 0; + var liElems = this.element.querySelectorAll(DOT + ITEMCLASS); + if (liElems.length > this._maxItems + this._maxItems - 1) { + for (var i = this.overflowMode === 'Wrap' ? 1 : 0; i < this._maxItems + this._maxItems - 1; i++) { + width += liElems[i].offsetWidth; + } + width = width + 5 + (parseInt(getComputedStyle(this.element.children[0]).paddingLeft, 10) * 2); + if (this.overflowMode === 'Wrap') { + this.element.querySelector('.e-breadcrumb-wrapped-ol').style.width = width + 'px'; + } + else { + this.element.style.width = width + 'px'; + } + } + } + }; + Breadcrumb.prototype.hasField = function (items, field) { + for (var i = 0, len = items.length; i < len; i++) { + if (items[i]["" + field]) { + return true; + } + } + return false; + }; + Breadcrumb.prototype.getMenuElement = function () { + return this.createElement('li', { className: 'e-icons e-breadcrumb-menu', attrs: { TABINDEX: '0' } }); + }; + Breadcrumb.prototype.beforeItemRenderChanges = function (prevItem, currItem, elem, isRightIcon) { + var wrapElem = elem.querySelector('.e-anchor-wrap'); + if (currItem.text !== prevItem.text) { + wrapElem.childNodes.forEach(function (child) { + if (child.nodeType === Node.TEXT_NODE) { + child.textContent = currItem.text; + } + }); + } + if (currItem.iconCss !== prevItem.iconCss && wrapElem) { // wrapElem - for checking it is item not a separator + var iconElem = elem.querySelector(DOT + ICONCLASS); + if (iconElem) { + if (currItem.iconCss) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([iconElem], prevItem.iconCss.split(' ')); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([iconElem], currItem.iconCss.split(' ')); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(iconElem); + } + } + else if (currItem.iconCss) { + var iconElem_1 = this.createElement('span', { className: ICONCLASS + ' ' + currItem.iconCss }); + if (isRightIcon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([iconElem_1], wrapElem); + } + else { + wrapElem.insertBefore(iconElem_1, wrapElem.childNodes[0]); + } + } + } + if (currItem.url !== prevItem.url && this.enableNavigation) { + var anchor = elem.querySelector('a.' + ITEMTEXTCLASS); + if (anchor) { + if (currItem.url) { + anchor.setAttribute('href', currItem.url); + } + else { + anchor.removeAttribute('href'); + } + } + } + }; + Breadcrumb.prototype.reRenderItems = function () { + this.element.innerHTML = ''; + this.renderItems(this.items); + }; + Breadcrumb.prototype.clickHandler = function (e) { + var li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, DOT + ITEMCLASS + ':not(.e-breadcrumb-separator)'); + if (!this.enableNavigation) { + e.preventDefault(); + } + if (li && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, DOT + ITEMTEXTCLASS) || this.itemTemplate)) { + var idx = void 0; + if (this.overflowMode === 'Wrap') { + idx = [].slice.call(this.element.querySelectorAll(DOT + ITEMCLASS)).indexOf(li); + } + else { + idx = [].slice.call(li.parentElement.children).indexOf(li); + } + if (this.overflowMode === 'Menu') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, DOT + POPUPCLASS)) { + idx += this.startIndex; + this.endIndex = idx; + if (e.type === 'keydown') { + this.documentClickHandler(e); + } + } + else if (this.element.querySelector(DOT + MENUCLASS)) { + if (idx > [].slice.call(this.element.children[0].children).indexOf(this.element.querySelector(DOT + MENUCLASS))) { + idx += (this.popupUl.childElementCount * 2) - 2; + idx = Math.floor(idx / 2); + this.endIndex = idx; + } + else { + this.startIndex = this.endIndex = idx; + } + } + else { + idx = Math.floor(idx / 2); + this.startIndex = this.endIndex = idx; + } + } + else { + idx = Math.floor(idx / 2); + } + if (this.overflowMode === 'Hidden' && this._maxItems > 0 && this.endIndex !== 0) { + idx = parseInt(li.getAttribute('item-index'), 10); + if (this.startIndex > 1) { + this.startIndex -= (this.endIndex - idx); + } + this.endIndex = idx; + } + this.trigger('itemClick', { element: li, item: this.items[idx], event: e }); + this.activeItem = this.items[idx].url || this.items[idx].text; + this.dataBind(); + } + if (e.target.classList.contains('e-breadcrumb-collapsed')) { + this.isExpanded = true; + this.reRenderItems(); + } + if (e.target.classList.contains(MENUCLASS) && !this.isPopupCreated) { + this.renderPopup(); + } + }; + Breadcrumb.prototype.renderPopup = function () { + var _this = this; + var wrapper = this.createElement('div', { className: POPUPCLASS + ' ' + this.cssClass + (this.enableRtl ? ' e-rtl' : '') }); + document.body.appendChild(wrapper); + this.isPopupCreated = true; + this.popupObj = new _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Popup"](wrapper, { + content: this.popupUl, + relateTo: this.element.querySelector(DOT + MENUCLASS), + enableRtl: this.enableRtl, + position: { X: 'left', Y: 'bottom' }, + collision: { X: 'fit', Y: 'flip' }, + open: function () { + _this.popupUl.focus(); + } + }); + this.popupWireEvents(); + this.popupObj.show(); + }; + Breadcrumb.prototype.documentClickHandler = function (e) { + if (this.overflowMode === 'Menu' && this.popupObj && this.popupObj.element.classList.contains('e-popup-open') && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, DOT + MENUCLASS)) { + this.popupObj.hide(); + this.popupObj.destroy(); + this.isPopupCreated = false; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.popupObj.element); + } + }; + Breadcrumb.prototype.resize = function () { + this._maxItems = this.maxItems; + this.initPvtProps(); + this.reRenderItems(); + }; + Breadcrumb.prototype.expandHandler = function (e) { + if (e.key === 'Enter') { + this.isExpanded = true; + this.reRenderItems(); + } + }; + Breadcrumb.prototype.keyDownHandler = function (e) { + if (e.key === 'Enter') { + this.clickHandler(e); + } + }; + Breadcrumb.prototype.popupKeyDownHandler = function (e) { + if (e.key === 'Escape') { + this.documentClickHandler(e); + } + }; + /** + * Called internally if any of the property value changed. + * + * @private + * @param {BreadcrumbModel} newProp - Specifies the new properties. + * @param {BreadcrumbModel} oldProp - Specifies the old properties. + * @returns {void} + */ + Breadcrumb.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'items': + case 'enableActiveItemNavigation': + this.reRenderItems(); + break; + case 'activeItem': + this._maxItems = this.maxItems; + this.initPvtProps(); + this.reRenderItems(); + break; + case 'overflowMode': + case 'maxItems': + this._maxItems = this.maxItems; + this.initPvtProps(); + this.reRenderItems(); + if (oldProp.overflowMode === 'Wrap') { + this.element.classList.remove(WRAPMODECLASS); + } + else if (newProp.overflowMode === 'Wrap') { + this.element.classList.add(WRAPMODECLASS); + } + if (oldProp.overflowMode === 'Scroll') { + this.element.classList.remove(SCROLLMODECLASS); + } + else if (newProp.overflowMode === 'Scroll') { + this.element.classList.add(SCROLLMODECLASS); + } + break; + case 'url': + this.initItems(); + this.reRenderItems(); + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if ((oldProp.cssClass && oldProp.cssClass.indexOf(ICONRIGHT) > -1) && !(newProp.cssClass && + newProp.cssClass.indexOf(ICONRIGHT) > -1) || !(oldProp.cssClass && oldProp.cssClass.indexOf(ICONRIGHT) > -1) && + (newProp.cssClass && newProp.cssClass.indexOf(ICONRIGHT) > -1)) { + this.reRenderItems(); + } + break; + case 'enableRtl': + this.element.classList.toggle('e-rtl'); + break; + case 'disabled': + this.element.classList.toggle(DISABLEDCLASS); + this.element.setAttribute(ARIADISABLED, newProp.disabled + ''); + break; + } + } + }; + Breadcrumb.prototype.wireEvents = function () { + this.delegateClickHanlder = this.documentClickHandler.bind(this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'click', this.delegateClickHanlder, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + window.addEventListener('resize', this.resize.bind(this)); + }; + Breadcrumb.prototype.popupWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.popupObj.element, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.popupObj.element, 'keydown', this.popupKeyDownHandler, this); + }; + Breadcrumb.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'click', this.delegateClickHanlder); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + window.removeEventListener('resize', this.resize.bind(this)); + if (this.popupObj) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.popupObj.element, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.popupObj.element, 'keydown', this.popupKeyDownHandler); + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + Breadcrumb.prototype.getPersistData = function () { + return this.addOnPersist(['activeItem']); + }; + /** + * Get module name. + * + * @private + * @returns {string} - Module Name + */ + Breadcrumb.prototype.getModuleName = function () { + return 'breadcrumb'; + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + Breadcrumb.prototype.destroy = function () { + var _this = this; + var classes = []; + var attributes = ['aria-label']; + if (this.cssClass) { + classes.concat(this.cssClass.split(' ')); + } + if (this.enableRtl) { + classes.push('e-rtl'); + } + if (this.disabled) { + classes.push(DISABLEDCLASS); + attributes.push(ARIADISABLED); + } + if (this.overflowMode === 'Wrap') { + classes.push(WRAPMODECLASS); + } + else if (this.overflowMode === 'Scroll') { + classes.push(SCROLLMODECLASS); + } + this.unWireEvents(); + this.element.innerHTML = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classes); + attributes.forEach(function (attribute) { + _this.element.removeAttribute(attribute); + }); + _super.prototype.destroy.call(this); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Breadcrumb.prototype, "url", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], BreadcrumbItem) + ], Breadcrumb.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Breadcrumb.prototype, "activeItem", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], Breadcrumb.prototype, "maxItems", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Menu') + ], Breadcrumb.prototype, "overflowMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Breadcrumb.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Breadcrumb.prototype, "itemTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('/') + ], Breadcrumb.prototype, "separatorTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Breadcrumb.prototype, "enableNavigation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Breadcrumb.prototype, "enableActiveItemNavigation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Breadcrumb.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Breadcrumb.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Breadcrumb.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Breadcrumb.prototype, "itemClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Breadcrumb.prototype, "created", void 0); + Breadcrumb = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Breadcrumb); + return Breadcrumb; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/index.js": +/*!***************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/index.js ***! + \***************************************************************************/ +/*! exports provided: BreadcrumbOverflowMode, BreadcrumbItem, Breadcrumb */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _breadcrumb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./breadcrumb */ "./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/breadcrumb.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbOverflowMode", function() { return _breadcrumb__WEBPACK_IMPORTED_MODULE_0__["BreadcrumbOverflowMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return _breadcrumb__WEBPACK_IMPORTED_MODULE_0__["BreadcrumbItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _breadcrumb__WEBPACK_IMPORTED_MODULE_0__["Breadcrumb"]; }); + +/** + * Breadcrumb modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/carousel.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/carousel.js ***! + \****************************************************************************/ +/*! exports provided: CarouselSwipeMode, CarouselItem, Carousel */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselSwipeMode", function() { return CarouselSwipeMode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return CarouselItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return Carousel; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + +// Constant variables +var CLS_CAROUSEL = 'e-carousel'; +var CLS_ACTIVE = 'e-active'; +var CLS_RTL = 'e-rtl'; +var CLS_PARTIAL = 'e-partial'; +var CLS_SWIPE = 'e-swipe'; +var CLS_SLIDE_CONTAINER = 'e-carousel-slide-container'; +var CLS_ITEMS = 'e-carousel-items'; +var CLS_CLONED = 'e-cloned'; +var CLS_ITEM = 'e-carousel-item'; +var CLS_PREVIOUS = 'e-previous'; +var CLS_NEXT = 'e-next'; +var CLS_PREV_ICON = 'e-previous-icon'; +var CLS_NEXT_ICON = 'e-next-icon'; +var CLS_NAVIGATORS = 'e-carousel-navigators'; +var CLS_INDICATORS = 'e-carousel-indicators'; +var CLS_INDICATOR_BARS = 'e-indicator-bars'; +var CLS_INDICATOR_BAR = 'e-indicator-bar'; +var CLS_INDICATOR = 'e-indicator'; +var CLS_ICON = 'e-icons'; +var CLS_PLAY_PAUSE = 'e-play-pause'; +var CLS_PLAY_ICON = 'e-play-icon'; +var CLS_PAUSE_ICON = 'e-pause-icon'; +var CLS_PREV_BUTTON = 'e-previous-button'; +var CLS_NEXT_BUTTON = 'e-next-button'; +var CLS_PLAY_BUTTON = 'e-play-button'; +var CLS_FLAT = 'e-flat'; +var CLS_ROUND = 'e-round'; +var CLS_HOVER_ARROWS = 'e-hover-arrows'; +var CLS_HOVER = 'e-carousel-hover'; +var CLS_TEMPLATE = 'e-template'; +var CLS_SLIDE_ANIMATION = 'e-carousel-slide-animation'; +var CLS_FADE_ANIMATION = 'e-carousel-fade-animation'; +var CLS_CUSTOM_ANIMATION = 'e-carousel-custom-animation'; +var CLS_ANIMATION_NONE = 'e-carousel-animation-none'; +var CLS_PREV_SLIDE = 'e-prev'; +var CLS_NEXT_SLIDE = 'e-next'; +var CLS_TRANSITION_START = 'e-transition-start'; +var CLS_TRANSITION_END = 'e-transition-end'; +/** + * Specifies the action (touch & mouse) which enables the slide swiping action in carousel. + * * Touch - Enables or disables the swiping action in touch interaction. + * * Mouse - Enables or disables the swiping action in mouse interaction. + * @aspNumberEnum + */ +var CarouselSwipeMode; +(function (CarouselSwipeMode) { + /** Enables or disables the swiping action in touch interaction. */ + CarouselSwipeMode[CarouselSwipeMode["Touch"] = 1] = "Touch"; + /** Enables or disables the swiping action in mouse interaction. */ + CarouselSwipeMode[CarouselSwipeMode["Mouse"] = 2] = "Mouse"; +})(CarouselSwipeMode || (CarouselSwipeMode = {})); +/** Specifies the carousel individual item. */ +var CarouselItem = /** @__PURE__ @class */ (function (_super) { + __extends(CarouselItem, _super); + function CarouselItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], CarouselItem.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], CarouselItem.prototype, "interval", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], CarouselItem.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], CarouselItem.prototype, "htmlAttributes", void 0); + return CarouselItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var Carousel = /** @__PURE__ @class */ (function (_super) { + __extends(Carousel, _super); + /** + * Constructor for creating the Carousel widget + * + * @param {CarouselModel} options Accepts the carousel model properties to initiate the rendering + * @param {string | HTMLElement} element Accepts the DOM element reference + */ + function Carousel(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isSwipe = false; + return _this; + } + Carousel.prototype.getModuleName = function () { + return CLS_CAROUSEL.replace('e-', ''); + }; + Carousel.prototype.getPersistData = function () { + return this.addOnPersist(['selectedIndex']); + }; + Carousel.prototype.preRender = function () { + this.keyConfigs = { + home: 'home', + end: 'end', + space: 'space', + moveLeft: 'leftarrow', + moveRight: 'rightarrow', + moveUp: 'uparrow', + moveDown: 'downarrow' + }; + var defaultLocale = { + nextSlide: 'Next slide', + of: 'of', + pauseSlideTransition: 'Pause slide transition', + playSlideTransition: 'Play slide transition', + previousSlide: 'Previous slide', + slide: 'Slide', + slideShow: 'Slide show' + }; + this.localeObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"](this.getModuleName(), defaultLocale, this.locale); + }; + Carousel.prototype.render = function () { + this.initialize(); + this.renderSlides(); + this.renderNavigators(); + this.renderPlayButton(); + this.renderIndicators(); + this.applyAnimation(); + this.wireEvents(); + }; + Carousel.prototype.onPropertyChanged = function (newProp, oldProp) { + var target; + var rtlElement; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'animationEffect': + this.applyAnimation(); + break; + case 'cssClass': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(this.element, [newProp.cssClass], [oldProp.cssClass]); + break; + case 'selectedIndex': + this.setActiveSlide(this.selectedIndex, oldProp.selectedIndex > this.selectedIndex ? 'Previous' : 'Next'); + this.autoSlide(); + break; + case 'htmlAttributes': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + this.setHtmlAttributes(this.htmlAttributes, this.element); + } + break; + case 'enableTouchSwipe': + if (!this.enableTouchSwipe && this.touchModule) { + this.touchModule.destroy(); + } + if (this.element.querySelector("." + CLS_ITEMS)) { + this.renderTouchActions(); + } + break; + case 'loop': + if (this.loop && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.autoSlideInterval)) { + this.applySlideInterval(); + } + this.handleNavigatorsActions(this.selectedIndex); + if (this.partialVisible || !(this.swipeMode === (~CarouselSwipeMode.Touch & ~CarouselSwipeMode.Mouse))) { + this.reRenderSlides(); + } + break; + case 'enableRtl': + rtlElement = [].slice.call(this.element.querySelectorAll("." + CLS_PREV_BUTTON + ",\n ." + CLS_NEXT_BUTTON + ", ." + CLS_PLAY_BUTTON)); + rtlElement.push(this.element); + if (this.enableRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(rtlElement, CLS_RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(rtlElement, CLS_RTL); + } + if (this.partialVisible || !(this.swipeMode === (~CarouselSwipeMode.Touch & ~CarouselSwipeMode.Mouse))) { + var cloneCount = this.loop ? this.getNumOfItems() : 0; + var slideWidth = this.itemsContainer.firstElementChild.clientWidth; + this.itemsContainer.style.transform = this.getTranslateX(slideWidth, this.selectedIndex + cloneCount); + } + break; + case 'buttonsVisibility': + target = this.element.querySelector("." + CLS_NAVIGATORS); + if (target) { + switch (this.buttonsVisibility) { + case 'Hidden': + this.resetTemplates(['previousButtonTemplate', 'nextButtonTemplate']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(target); + break; + case 'VisibleOnHover': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([].slice.call(target.childNodes), CLS_HOVER_ARROWS); + break; + case 'Visible': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([].slice.call(target.childNodes), CLS_HOVER_ARROWS); + break; + } + } + else { + this.renderNavigators(); + this.renderPlayButton(); + } + break; + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width) }); + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height) }); + break; + case 'autoPlay': + if (this.showPlayButton && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.playButtonTemplate)) { + this.playButtonClickHandler(null, true); + } + this.autoSlide(); + break; + case 'interval': + this.autoSlide(); + break; + case 'showIndicators': + case 'indicatorsType': + target = this.element.querySelector("." + CLS_INDICATORS); + if (target) { + this.resetTemplates(['indicatorsTemplate']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(target); + } + this.renderIndicators(); + break; + case 'showPlayButton': + target = this.element.querySelector("." + CLS_PLAY_PAUSE); + if (!this.showPlayButton && target) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(target); + this.resetTemplates(['playButtonTemplate']); + } + this.renderPlayButton(); + break; + case 'items': + case 'dataSource': + this.reRenderSlides(); + break; + case 'partialVisible': + if (this.partialVisible) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_PARTIAL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_PARTIAL); + } + this.reRenderSlides(); + break; + case 'swipeMode': + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mousedown touchstart', this.swipeStart); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mousemove touchmove', this.swiping); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseup touchend', this.swipStop); + this.swipeModehandlers(); + this.reRenderSlides(); + break; + } + } + }; + Carousel.prototype.reRenderSlides = function () { + var target = this.element.querySelector("." + CLS_ITEMS); + if (target) { + this.resetTemplates(['itemTemplate']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(target); + } + this.renderSlides(); + }; + Carousel.prototype.initialize = function () { + var carouselClasses = []; + if (this.cssClass) { + carouselClasses.push(this.cssClass); + } + if (this.enableRtl) { + carouselClasses.push(CLS_RTL); + } + if (this.partialVisible) { + carouselClasses.push(CLS_PARTIAL); + } + if (!(this.swipeMode === (~CarouselSwipeMode.Touch & ~CarouselSwipeMode.Mouse))) { + carouselClasses.push(CLS_SWIPE); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], carouselClasses); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width), 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height) }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'tabindex': '0', 'aria-roledescription': 'carousel', 'aria-label': this.localeObj.getConstant('slideShow') }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.htmlAttributes)) { + this.setHtmlAttributes(this.htmlAttributes, this.element); + } + }; + Carousel.prototype.renderSlides = function () { + var _this = this; + var slideContainer = this.element.querySelector('.' + CLS_SLIDE_CONTAINER); + if (!slideContainer) { + slideContainer = this.createElement('div', { className: CLS_SLIDE_CONTAINER }); + this.element.appendChild(slideContainer); + } + this.itemsContainer = this.createElement('div', { className: CLS_ITEMS, attrs: { 'aria-live': this.autoPlay ? 'off' : 'polite' } }); + slideContainer.appendChild(this.itemsContainer); + var numOfItems = this.getNumOfItems(); + if (numOfItems > 0 && this.loop) { + if (this.items.length > 0) { + this.items.slice(-numOfItems).forEach(function (item, index) { + _this.renderSlide(item, item.template, index, _this.itemsContainer, true); + }); + } + else if (this.dataSource.length > 0) { + this.dataSource.slice(-numOfItems).forEach(function (item, index) { + _this.renderSlide(item, _this.itemTemplate, index, _this.itemsContainer, true); + }); + } + } + if (this.items.length > 0) { + this.slideItems = this.items; + this.items.forEach(function (item, index) { + _this.renderSlide(item, item.template, index, _this.itemsContainer); + }); + } + else if (this.dataSource.length > 0) { + this.slideItems = this.dataSource; + this.dataSource.forEach(function (item, index) { + _this.renderSlide(item, _this.itemTemplate, index, _this.itemsContainer); + }); + } + if (numOfItems > 0 && this.loop) { + if (this.items.length > 0) { + this.items.slice(0, numOfItems).forEach(function (item, index) { + _this.renderSlide(item, item.template, index, _this.itemsContainer, true); + }); + } + else if (this.dataSource.length > 0) { + this.dataSource.slice(0, numOfItems).forEach(function (item, index) { + _this.renderSlide(item, _this.itemTemplate, index, _this.itemsContainer, true); + }); + } + } + this.renderTemplates(); + this.itemsContainer.style.setProperty('--carousel-items-count', "" + this.itemsContainer.children.length); + var slideWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.itemsContainer.firstElementChild) ? 0 : + this.itemsContainer.firstElementChild.clientWidth; + this.itemsContainer.style.transitionProperty = 'none'; + var cloneCount = this.loop ? numOfItems : 0; + this.itemsContainer.style.transform = this.getTranslateX(slideWidth, this.selectedIndex + cloneCount); + this.autoSlide(); + this.renderTouchActions(); + this.renderKeyboardActions(); + }; + Carousel.prototype.getTranslateX = function (slideWidth, count) { + if (count === void 0) { count = 1; } + return this.enableRtl ? "translateX(" + (slideWidth) * (count) + "px)" : + "translateX(" + -(slideWidth) * (count) + "px)"; + }; + Carousel.prototype.renderSlide = function (item, itemTemplate, index, container, isClone) { + if (isClone === void 0) { isClone = false; } + var itemEle = this.createElement('div', { + id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('carousel_item'), + className: CLS_ITEM + " " + (item.cssClass ? item.cssClass : '') + " " + (this.selectedIndex === index && !isClone ? CLS_ACTIVE : ''), + attrs: { + 'aria-hidden': this.selectedIndex === index && !isClone ? 'false' : 'true', 'data-index': index.toString(), + 'aria-role': 'group', 'aria-roledescription': 'slide' + } + }); + if (isClone) { + itemEle.classList.add(CLS_CLONED); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.htmlAttributes)) { + this.setHtmlAttributes(item.htmlAttributes, itemEle); + } + var templateId = this.element.id + '_template'; + var template = this.templateParser(itemTemplate)(item, this, 'itemTemplate', templateId, false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(template, itemEle); + container.appendChild(itemEle); + }; + Carousel.prototype.renderNavigators = function () { + if (this.buttonsVisibility === 'Hidden') { + return; + } + var navigators = this.createElement('div', { className: CLS_NAVIGATORS }); + var itemsContainer = this.element.querySelector("." + CLS_SLIDE_CONTAINER); + itemsContainer.insertAdjacentElement('afterend', navigators); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.slideItems) && this.slideItems.length > 1) { + this.renderNavigatorButton('Previous'); + this.renderNavigatorButton('Next'); + } + this.renderTemplates(); + }; + Carousel.prototype.renderNavigatorButton = function (direction) { + var buttonContainer = this.createElement('div', { + className: (direction === 'Previous' ? CLS_PREVIOUS : CLS_NEXT) + ' ' + (this.buttonsVisibility === 'VisibleOnHover' ? CLS_HOVER_ARROWS : '') + }); + if (direction === 'Previous' && this.previousButtonTemplate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([buttonContainer], CLS_TEMPLATE); + var templateId = this.element.id + '_previousButtonTemplate'; + var template = this.templateParser(this.previousButtonTemplate)({ type: 'Previous' }, this, 'previousButtonTemplate', templateId, false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(template, buttonContainer); + } + else if (direction === 'Next' && this.nextButtonTemplate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([buttonContainer], CLS_TEMPLATE); + var templateId = this.element.id + '_nextButtonTemplate'; + var template = this.templateParser(this.nextButtonTemplate)({ type: 'Next' }, this, 'nextButtonTemplate', templateId, false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(template, buttonContainer); + } + else { + var button = this.createElement('button', { + attrs: { 'aria-label': this.localeObj.getConstant(direction === 'Previous' ? 'previousSlide' : 'nextSlide'), 'type': 'button' } + }); + var buttonObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]({ + cssClass: CLS_FLAT + ' ' + CLS_ROUND + ' ' + (direction === 'Previous' ? CLS_PREV_BUTTON : CLS_NEXT_BUTTON), + iconCss: CLS_ICON + ' ' + (direction === 'Previous' ? CLS_PREV_ICON : CLS_NEXT_ICON), + enableRtl: this.enableRtl, + disabled: !this.loop && this.selectedIndex === (direction === 'Previous' ? 0 : this.slideItems.length - 1) + }); + buttonObj.appendTo(button); + buttonContainer.appendChild(button); + } + this.element.querySelector('.' + CLS_NAVIGATORS).appendChild(buttonContainer); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(buttonContainer, 'click', this.navigatorClickHandler, this); + }; + Carousel.prototype.renderPlayButton = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.slideItems) || this.buttonsVisibility === 'Hidden' || !this.showPlayButton || this.slideItems.length <= 1) { + return; + } + var playPauseWrap = this.createElement('div', { + className: CLS_PLAY_PAUSE + ' ' + (this.buttonsVisibility === 'VisibleOnHover' ? CLS_HOVER_ARROWS : '') + }); + if (this.playButtonTemplate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([playPauseWrap], CLS_TEMPLATE); + var templateId = this.element.id + '_playButtonTemplate'; + var template = this.templateParser(this.playButtonTemplate)({}, this, 'playButtonTemplate', templateId, false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(template, playPauseWrap); + } + else { + var playButton = this.createElement('button', { + attrs: { 'aria-label': this.localeObj.getConstant(this.autoPlay ? 'pauseSlideTransition' : 'playSlideTransition'), 'type': 'button' } + }); + var isLastSlide = this.selectedIndex === this.slideItems.length - 1 && !this.loop; + var buttonObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]({ + cssClass: CLS_FLAT + ' ' + CLS_ROUND + ' ' + CLS_PLAY_BUTTON, + iconCss: CLS_ICON + ' ' + (this.autoPlay && !isLastSlide ? CLS_PAUSE_ICON : CLS_PLAY_ICON), + isToggle: true, + enableRtl: this.enableRtl + }); + if (isLastSlide) { + this.setProperties({ autoPlay: false }, true); + playButton.setAttribute('aria-label', this.localeObj.getConstant('playSlideTransition')); + this.itemsContainer.setAttribute('aria-live', 'polite'); + } + buttonObj.appendTo(playButton); + playPauseWrap.appendChild(playButton); + } + var navigators = this.element.querySelector("." + CLS_NAVIGATORS); + navigators.insertBefore(playPauseWrap, navigators.lastElementChild); + this.renderTemplates(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(playPauseWrap, 'click', this.playButtonClickHandler, this); + }; + Carousel.prototype.renderIndicators = function () { + var _this = this; + if (!this.showIndicators) { + return; + } + var indicatorClass = 'e-default'; + if (!this.indicatorsTemplate) { + indicatorClass = "e-" + this.indicatorsType.toLowerCase(); + } + var indicatorWrap = this.createElement('div', { className: CLS_INDICATORS + " " + indicatorClass }); + var indicatorBars = this.createElement('div', { className: CLS_INDICATOR_BARS }); + indicatorWrap.appendChild(indicatorBars); + var progress; + if (this.slideItems) { + switch (this.indicatorsType) { + case 'Fraction': + if (this.indicatorsTemplate) { + this.renderIndicatorTemplate(indicatorBars, this.selectedIndex + 1); + } + else { + indicatorBars.innerText = this.selectedIndex + 1 + " / " + this.slideItems.length; + } + break; + case 'Progress': + if (this.indicatorsTemplate) { + this.renderIndicatorTemplate(indicatorBars, this.selectedIndex + 1); + } + else { + progress = this.createElement('div', { className: CLS_INDICATOR_BAR }); + progress.style.setProperty('--carousel-items-current', "" + (this.selectedIndex + 1)); + progress.style.setProperty('--carousel-items-count', "" + this.slideItems.length); + indicatorBars.appendChild(progress); + } + break; + case 'Default': + case 'Dynamic': + this.slideItems.forEach(function (item, index) { + var indicatorBar = _this.createElement('div', { + className: CLS_INDICATOR_BAR + ' ' + (_this.selectedIndex === index ? CLS_ACTIVE : _this.selectedIndex - 1 === index ? CLS_PREV_SLIDE : _this.selectedIndex + 1 === index ? CLS_NEXT_SLIDE : ''), + attrs: { 'data-index': index.toString(), 'aria-current': _this.selectedIndex === index ? 'true' : 'false' } + }); + indicatorBar.style.setProperty('--carousel-items-current', "" + _this.selectedIndex); + if (_this.indicatorsTemplate) { + _this.renderIndicatorTemplate(indicatorBar, index); + } + else if (_this.indicatorsType === 'Default') { + var indicator = _this.createElement('button', { className: CLS_INDICATOR, attrs: { 'type': 'button', 'aria-label': _this.localeObj.getConstant('slide') + ' ' + (index + 1) + ' ' + _this.localeObj.getConstant('of') + ' ' + _this.slideItems.length } }); + indicatorBar.appendChild(indicator); + indicator.appendChild(_this.createElement('div', {})); + var buttonObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]({ cssClass: 'e-flat e-small' }); + buttonObj.appendTo(indicator); + } + indicatorBars.appendChild(indicatorBar); + if (_this.indicatorsType === 'Default') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(indicatorBar, 'click', _this.indicatorClickHandler, _this); + } + }); + break; + } + } + this.element.appendChild(indicatorWrap); + }; + Carousel.prototype.renderIndicatorTemplate = function (indicatorBar, index) { + if (index === void 0) { index = 0; } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([indicatorBar], CLS_TEMPLATE); + var templateId = this.element.id + '_indicatorsTemplate'; + var template = this.templateParser(this.indicatorsTemplate)({ index: index, selectedIndex: this.selectedIndex }, this, 'indicatorsTemplate', templateId, false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(template, indicatorBar); + }; + Carousel.prototype.renderKeyboardActions = function () { + this.keyModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs }); + }; + Carousel.prototype.renderTouchActions = function () { + if (!this.enableTouchSwipe) { + return; + } + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { swipe: this.swipeHandler.bind(this) }); + }; + Carousel.prototype.applyAnimation = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_CUSTOM_ANIMATION, CLS_FADE_ANIMATION, CLS_SLIDE_ANIMATION, CLS_ANIMATION_NONE]); + switch (this.animationEffect) { + case 'Slide': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_SLIDE_ANIMATION); + break; + case 'Fade': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_FADE_ANIMATION); + break; + case 'None': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_ANIMATION_NONE); + break; + case 'Custom': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_CUSTOM_ANIMATION); + break; + } + }; + Carousel.prototype.autoSlide = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.slideItems) || this.slideItems.length <= 1) { + return; + } + this.resetSlideInterval(); + this.applySlideInterval(); + }; + Carousel.prototype.autoSlideChange = function () { + var activeSlide = this.element.querySelector("." + CLS_ACTIVE); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeSlide)) { + return; + } + var activeIndex = parseInt(activeSlide.dataset.index, 10); + if (!this.loop && activeIndex === this.slideItems.length - 1) { + this.resetSlideInterval(); + } + else { + var index = (activeIndex + 1) % this.slideItems.length; + if (!this.element.classList.contains(CLS_HOVER)) { + this.setActiveSlide(index, 'Next'); + } + this.autoSlide(); + } + }; + Carousel.prototype.applySlideInterval = function () { + var _this = this; + if (!this.autoPlay || this.element.classList.contains(CLS_HOVER)) { + return; + } + var itemInterval = this.interval; + if (this.items.length > 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.items[this.selectedIndex].interval)) { + itemInterval = this.items[this.selectedIndex].interval; + } + this.autoSlideInterval = setInterval(function () { return _this.autoSlideChange(); }, itemInterval); + }; + Carousel.prototype.resetSlideInterval = function () { + clearInterval(this.autoSlideInterval); + this.autoSlideInterval = null; + }; + Carousel.prototype.getSlideIndex = function (direction) { + var currentIndex = this.selectedIndex; + if (direction === 'Previous') { + currentIndex--; + if (currentIndex < 0) { + currentIndex = this.slideItems.length - 1; + } + } + else { + currentIndex++; + if (currentIndex === this.slideItems.length) { + currentIndex = 0; + } + } + return currentIndex; + }; + Carousel.prototype.setActiveSlide = function (currentIndex, direction, isSwiped) { + var _this = this; + if (isSwiped === void 0) { isSwiped = false; } + if (this.element.querySelectorAll("." + CLS_ITEM + "." + CLS_PREV_SLIDE + ",." + CLS_ITEM + "." + CLS_NEXT_SLIDE).length > 0) { + return; + } + var allSlides = [].slice.call(this.element.querySelectorAll("." + CLS_ITEM + ":not(.e-cloned)")); + var activeSlide = this.element.querySelector("." + CLS_ITEM + "." + CLS_ACTIVE); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeSlide) && this.showIndicators) { + var activeIndicator = this.element.querySelector("." + CLS_INDICATOR_BAR + "." + CLS_ACTIVE); + var activeIndex_1 = parseInt(activeIndicator.dataset.index, 10); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([allSlides[parseInt(activeIndex_1.toString(), 10)]], CLS_ACTIVE); + return; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeSlide)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([allSlides[parseInt(currentIndex.toString(), 10)]], CLS_ACTIVE); + return; + } + var activeIndex = parseInt(activeSlide.dataset.index, 10); + var currentSlide = allSlides[parseInt(currentIndex.toString(), 10)]; + var eventArgs = { + currentIndex: activeIndex, + nextIndex: currentIndex, + currentSlide: activeSlide, + nextSlide: currentSlide, + slideDirection: direction, + isSwiped: isSwiped, + cancel: false + }; + this.trigger('slideChanging', eventArgs, function (args) { + if (args.cancel) { + return; + } + _this.setProperties({ selectedIndex: currentIndex }, true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(args.currentSlide, { 'aria-hidden': 'true' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(args.nextSlide, { 'aria-hidden': 'false' }); + _this.refreshIndicators(activeIndex, currentIndex); + _this.slideChangedEventArgs = { + currentIndex: args.nextIndex, + previousIndex: args.currentIndex, + currentSlide: args.nextSlide, + previousSlide: args.currentSlide, + slideDirection: direction, + isSwiped: isSwiped + }; + var slideWidth = allSlides[parseInt(currentIndex.toString(), 10)].clientWidth; + var numOfItems = _this.getNumOfItems(); + if (!_this.isSwipe) { + _this.itemsContainer.style.transitionDuration = '0.6s'; + } + _this.isSwipe = false; + if ((_this.animationEffect === 'Fade')) { + _this.itemsContainer.classList.add('e-fade-in-out'); + } + else { + _this.itemsContainer.style.transitionProperty = 'transform'; + } + if (_this.loop) { + if (_this.slideChangedEventArgs.currentIndex === 0 && _this.slideChangedEventArgs.slideDirection === 'Next') { + _this.itemsContainer.style.transform = _this.getTranslateX(slideWidth, allSlides.length + numOfItems); + } + else if (_this.slideChangedEventArgs.currentIndex === _this.slideItems.length - 1 && _this.slideChangedEventArgs.slideDirection === 'Previous') { + _this.itemsContainer.style.transform = _this.partialVisible ? _this.getTranslateX(slideWidth) : 'translateX(0px)'; + } + else { + _this.itemsContainer.style.transform = _this.getTranslateX(slideWidth, currentIndex + numOfItems); + } + } + else { + _this.itemsContainer.style.transform = _this.getTranslateX(slideWidth, currentIndex); + } + if (_this.animationEffect === 'Slide') { + if (direction === 'Previous') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.nextSlide], CLS_PREV_SLIDE); + args.nextSlide.setAttribute('data-slide-height', args.nextSlide.offsetHeight.toString()); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.currentSlide, args.nextSlide], CLS_TRANSITION_END); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.nextSlide], CLS_NEXT_SLIDE); + args.nextSlide.setAttribute('data-slide-height', args.nextSlide.offsetHeight.toString()); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.currentSlide, args.nextSlide], CLS_TRANSITION_START); + } + } + else if (_this.animationEffect === 'Fade') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([args.currentSlide], CLS_ACTIVE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.nextSlide], CLS_ACTIVE); + } + else if (_this.animationEffect === 'Custom') { + if (direction === 'Previous') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.nextSlide], CLS_NEXT_SLIDE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.currentSlide], CLS_PREV_SLIDE); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.currentSlide], CLS_PREV_SLIDE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([args.nextSlide], CLS_NEXT_SLIDE); + } + } + else { + _this.onTransitionEnd(); + } + _this.handleNavigatorsActions(currentIndex); + }); + }; + Carousel.prototype.onTransitionEnd = function () { + var _this = this; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(this.element.querySelectorAll("." + CLS_ITEMS), 'e-fade-in-out'); + var numOfItems = this.getNumOfItems(); + if (this.slideChangedEventArgs) { + this.itemsContainer.style.transitionProperty = 'none'; + if (this.loop && (this.slideChangedEventArgs.currentIndex === 0 && this.slideChangedEventArgs.slideDirection === 'Next' || + this.slideChangedEventArgs.currentIndex === this.slideItems.length - 1 && this.slideChangedEventArgs.slideDirection === 'Previous')) { + var slideWidth = this.slideChangedEventArgs.currentSlide.clientWidth; + this.itemsContainer.style.transform = this.getTranslateX(slideWidth, this.slideChangedEventArgs.currentIndex + numOfItems); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.slideChangedEventArgs.currentSlide], CLS_ACTIVE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.slideChangedEventArgs.previousSlide], CLS_ACTIVE); + this.trigger('slideChanged', this.slideChangedEventArgs, function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(_this.element.querySelectorAll("." + CLS_ITEM), [CLS_PREV_SLIDE, CLS_NEXT_SLIDE, CLS_TRANSITION_START, CLS_TRANSITION_END]); + _this.slideChangedEventArgs = null; + }); + } + }; + Carousel.prototype.refreshIndicators = function (activeIndex, currentIndex) { + var _this = this; + var slideIndicator = this.element.querySelector("." + CLS_INDICATOR_BARS); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(slideIndicator)) { + return; + } + var indicators = [].slice.call(slideIndicator.childNodes); + switch (this.indicatorsType) { + case 'Default': + case 'Dynamic': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(indicators[parseInt(activeIndex.toString(), 10)], { 'aria-current': 'false' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(indicators[parseInt(currentIndex.toString(), 10)], { 'aria-current': 'true' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(indicators, [CLS_ACTIVE, CLS_PREV_SLIDE, CLS_NEXT_SLIDE]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([indicators[parseInt(currentIndex.toString(), 10)]], CLS_ACTIVE); + if (indicators[currentIndex - 1]) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([indicators[currentIndex - 1]], CLS_PREV_SLIDE); + } + if (indicators[currentIndex + 1]) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([indicators[currentIndex + 1]], CLS_NEXT_SLIDE); + } + indicators.forEach(function (item) { return item.style.setProperty('--carousel-items-current', "" + _this.selectedIndex); }); + break; + case 'Fraction': + if (this.indicatorsTemplate) { + if (slideIndicator.children.length > 0) { + slideIndicator.removeChild(slideIndicator.firstElementChild); + } + this.renderIndicatorTemplate(slideIndicator, currentIndex + 1); + } + else { + slideIndicator.innerText = this.selectedIndex + 1 + " / " + this.slideItems.length; + } + break; + case 'Progress': + if (this.indicatorsTemplate) { + if (slideIndicator.children.length > 0) { + slideIndicator.removeChild(slideIndicator.firstElementChild); + } + this.renderIndicatorTemplate(slideIndicator, currentIndex + 1); + } + else { + slideIndicator.firstElementChild.style.setProperty('--carousel-items-current', "" + (this.selectedIndex + 1)); + } + break; + } + }; + Carousel.prototype.setHtmlAttributes = function (attribute, element) { + var keys = Object.keys(attribute); + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + if (key === 'class') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([element], attribute["" + key]); + } + else { + element.setAttribute(key, attribute["" + key]); + } + } + }; + Carousel.prototype.templateParser = function (template) { + if (template) { + try { + if (typeof template !== 'function' && document.querySelectorAll(template).length) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(document.querySelector(template).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + catch (error) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + return undefined; + }; + Carousel.prototype.getNavigatorState = function (target, isPrevious) { + var button = target.querySelector("." + (isPrevious ? CLS_PREV_BUTTON : CLS_NEXT_BUTTON)); + if (button) { + var buttonObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(button, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + return buttonObj.disabled; + } + return false; + }; + Carousel.prototype.navigatorClickHandler = function (e) { + var target = e.currentTarget; + var isDisabled = this.getNavigatorState(target, target.classList.contains(CLS_PREVIOUS)); + if (isDisabled) { + return; + } + var direction = target.classList.contains(CLS_PREVIOUS) ? 'Previous' : 'Next'; + this.setActiveSlide(this.getSlideIndex(direction), direction); + this.autoSlide(); + }; + Carousel.prototype.indicatorClickHandler = function (e) { + var target = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, "." + CLS_INDICATOR_BAR); + var index = parseInt(target.dataset.index, 10); + if (this.selectedIndex !== index) { + this.setActiveSlide(index, this.selectedIndex > index ? 'Previous' : 'Next'); + this.autoSlide(); + } + }; + Carousel.prototype.playButtonClickHandler = function (e, isPropertyChange) { + if (isPropertyChange === void 0) { isPropertyChange = false; } + var playButton = this.element.querySelector("." + CLS_PLAY_BUTTON); + if (playButton) { + var buttonObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(playButton, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + if (!isPropertyChange) { + this.setProperties({ autoPlay: !this.autoPlay }, true); + } + playButton.setAttribute('aria-label', this.localeObj.getConstant(this.autoPlay ? 'pauseSlideTransition' : 'playSlideTransition')); + buttonObj.iconCss = CLS_ICON + ' ' + (this.autoPlay ? CLS_PAUSE_ICON : CLS_PLAY_ICON); + buttonObj.dataBind(); + this.itemsContainer.setAttribute('aria-live', this.autoPlay ? 'off' : 'polite'); + if (this.autoPlay && !this.loop && this.selectedIndex === this.slideItems.length - 1) { + this.setActiveSlide(0, 'Next'); + } + this.autoSlide(); + } + }; + Carousel.prototype.keyHandler = function (e) { + var direction; + var slideIndex; + var isSlideTransition = false; + var target = e.target; + e.preventDefault(); + switch (e.action) { + case 'space': + if (this.showIndicators && target.classList.contains(CLS_INDICATOR)) { + target.click(); + } + else if (target.classList.contains(CLS_CAROUSEL) || target.classList.contains(CLS_PLAY_BUTTON)) { + this.playButtonClickHandler(e); + } + else if (target.classList.contains(CLS_NEXT_BUTTON)) { + this.next(); + } + else if (target.classList.contains(CLS_PREV_BUTTON)) { + this.prev(); + } + break; + case 'end': + slideIndex = this.slideItems.length - 1; + direction = 'Next'; + isSlideTransition = true; + break; + case 'home': + slideIndex = 0; + direction = 'Previous'; + isSlideTransition = true; + break; + case 'moveUp': + case 'moveLeft': + case 'moveDown': + case 'moveRight': + if (this.showIndicators && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.indicatorsTemplate)) { + this.element.focus(); + } + direction = (e.action === 'moveUp' || e.action === 'moveLeft') ? 'Previous' : 'Next'; + slideIndex = this.getSlideIndex(direction); + isSlideTransition = !this.isSuspendSlideTransition(slideIndex, direction); + break; + } + if (isSlideTransition) { + this.setActiveSlide(slideIndex, direction); + this.autoSlide(); + isSlideTransition = false; + } + }; + Carousel.prototype.swipeHandler = function (e) { + if (this.element.classList.contains(CLS_HOVER) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.slideItems) || this.slideItems.length <= 1) { + return; + } + var direction = (e.swipeDirection === 'Right') ? 'Previous' : 'Next'; + var slideIndex = this.getSlideIndex(direction); + if (!this.isSuspendSlideTransition(slideIndex, direction)) { + this.setActiveSlide(slideIndex, direction, true); + this.autoSlide(); + } + }; + Carousel.prototype.isSuspendSlideTransition = function (index, direction) { + return !this.loop && (direction === 'Next' && index === 0 || direction === 'Previous' && index === this.slideItems.length - 1); + }; + Carousel.prototype.handleNavigatorsActions = function (index) { + if (this.buttonsVisibility === 'Hidden') { + return; + } + if (this.showPlayButton) { + var playButton = this.element.querySelector("." + CLS_PLAY_BUTTON); + var isLastSlide = this.selectedIndex === this.slideItems.length - 1 && !this.loop; + var isButtonUpdate = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.playButtonTemplate) && playButton && isLastSlide; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.playButtonTemplate) && playButton && !isLastSlide) { + isButtonUpdate = !playButton.classList.contains(CLS_ACTIVE); + } + if (isButtonUpdate) { + this.setProperties({ autoPlay: !isLastSlide }, true); + playButton.setAttribute('aria-label', this.localeObj.getConstant(this.autoPlay ? 'pauseSlideTransition' : 'playSlideTransition')); + this.itemsContainer.setAttribute('aria-live', this.autoPlay ? 'off' : 'polite'); + var buttonObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(playButton, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + buttonObj.iconCss = CLS_ICON + ' ' + (this.autoPlay ? CLS_PAUSE_ICON : CLS_PLAY_ICON); + buttonObj.dataBind(); + } + } + var prevButton = this.element.querySelector("." + CLS_PREV_BUTTON); + if (prevButton && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.previousButtonTemplate)) { + var buttonObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(prevButton, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + buttonObj.disabled = !this.loop && index === 0; + buttonObj.dataBind(); + } + var nextButton = this.element.querySelector("." + CLS_NEXT_BUTTON); + if (nextButton && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.nextButtonTemplate)) { + var buttonObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(nextButton, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + buttonObj.disabled = !this.loop && index === this.slideItems.length - 1; + buttonObj.dataBind(); + } + }; + Carousel.prototype.onHoverActions = function (e) { + var navigator = this.element.querySelector("." + CLS_NAVIGATORS); + switch (e.type) { + case 'mouseenter': + if (this.buttonsVisibility === 'VisibleOnHover' && navigator) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([].slice.call(navigator.childNodes), CLS_HOVER_ARROWS); + } + if (this.pauseOnHover) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_HOVER); + } + break; + case 'mouseleave': + if (this.buttonsVisibility === 'VisibleOnHover' && navigator) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([].slice.call(navigator.childNodes), CLS_HOVER_ARROWS); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_HOVER); + break; + } + this.autoSlide(); + }; + Carousel.prototype.onFocusActions = function (e) { + switch (e.type) { + case 'focusin': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLS_HOVER); + break; + case 'focusout': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLS_HOVER); + break; + } + this.autoSlide(); + }; + Carousel.prototype.destroyButtons = function () { + var buttonCollections = [].slice.call(this.element.querySelectorAll('.e-control.e-btn')); + for (var _i = 0, buttonCollections_1 = buttonCollections; _i < buttonCollections_1.length; _i++) { + var button = buttonCollections_1[_i]; + var instance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(button, _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]); + if (instance) { + instance.destroy(); + } + } + }; + Carousel.prototype.getNumOfItems = function () { + return this.partialVisible ? 2 : 1; + }; + Carousel.prototype.getTranslateValue = function (element) { + var style = getComputedStyle(element); + return window.WebKitCSSMatrix ? + new WebKitCSSMatrix(style.webkitTransform).m41 : 0; + }; + Carousel.prototype.swipeStart = function (e) { + if (!this.timeStampStart) { + this.timeStampStart = Date.now(); + } + this.isSwipe = false; + this.itemsContainer.classList.add('e-swipe-start'); + this.prevPageX = e.touches ? e.touches[0].pageX : e.pageX; + this.initialTranslate = this.getTranslateValue(this.itemsContainer); + }; + Carousel.prototype.swiping = function (e) { + if (!this.itemsContainer.classList.contains('e-swipe-start')) { + return; + } + e.preventDefault(); + var pageX = e.touches ? e.touches[0].pageX : e.pageX; + var positionDiff = this.prevPageX - (pageX); + if (!this.loop && ((this.enableRtl && ((this.selectedIndex === 0 && positionDiff > 0) || + (this.selectedIndex === this.itemsContainer.childElementCount - 1 && positionDiff < 0))) || + (!this.enableRtl && ((this.selectedIndex === 0 && positionDiff < 0) || + (this.selectedIndex === this.itemsContainer.childElementCount - 1 && positionDiff > 0))))) { + return; + } + this.itemsContainer.style.transform = "translateX(" + (this.initialTranslate + (this.enableRtl ? positionDiff : -positionDiff)) + "px)"; + }; + Carousel.prototype.swipStop = function () { + this.isSwipe = true; + var time = Date.now() - this.timeStampStart; + var distanceX = this.getTranslateValue(this.itemsContainer) - this.initialTranslate; + distanceX = distanceX < 0 ? distanceX * -1 : distanceX; + if (this.isSwipe) { + var offsetDist = distanceX * (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice ? 6 : 1.66); + this.itemsContainer.style.transitionDuration = (((_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice ? distanceX : offsetDist) / time) / 10) + 's'; + } + var slideWidth = this.itemsContainer.firstElementChild.clientWidth; + var threshold = slideWidth / 2; + this.itemsContainer.classList.remove('e-swipe-start'); + var value = this.getTranslateValue(this.itemsContainer); + if (value - this.initialTranslate < -threshold) { + this.swipeNavigation(!this.enableRtl); + } + else if (value - this.initialTranslate > threshold) { + this.swipeNavigation(this.enableRtl); + } + else { + this.itemsContainer.style.transform = "translateX(" + this.initialTranslate + "px)"; + if (this.animationEffect === 'Fade') { + this.itemsContainer.classList.add('e-fade-in-out'); + } + } + }; + Carousel.prototype.swipeNavigation = function (isRtl) { + if (isRtl) { + this.next(); + } + else { + this.prev(); + } + }; + Carousel.prototype.swipeModehandlers = function () { + if ((this.swipeMode & CarouselSwipeMode.Touch) === CarouselSwipeMode.Touch) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'touchstart', this.swipeStart, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'touchmove', this.swiping, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'touchend', this.swipStop, this); + } + if ((this.swipeMode & CarouselSwipeMode.Mouse) === CarouselSwipeMode.Mouse) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mousedown', this.swipeStart, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mousemove', this.swiping, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mouseup', this.swipStop, this); + } + if ((this.swipeMode === 0) && (this.swipeMode & CarouselSwipeMode.Mouse & CarouselSwipeMode.Touch) === + (CarouselSwipeMode.Mouse & CarouselSwipeMode.Touch)) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mousedown touchstart', this.swipeStart, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mousemove touchmove', this.swiping, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.itemsContainer, 'mouseup touchend', this.swipStop, this); + } + }; + Carousel.prototype.wireEvents = function () { + if (!(this.animationEffect === 'Custom')) { + this.swipeModehandlers(); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusin focusout', this.onFocusActions, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseenter mouseleave', this.onHoverActions, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element.firstElementChild, 'animationend', this.onTransitionEnd, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element.firstElementChild, 'transitionend', this.onTransitionEnd, this); + }; + Carousel.prototype.unWireEvents = function () { + var _this = this; + var indicators = [].slice.call(this.element.querySelectorAll("." + CLS_INDICATOR_BAR)); + indicators.forEach(function (indicator) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(indicator, 'click', _this.indicatorClickHandler); + }); + var navigators = [].slice.call(this.element.querySelectorAll("." + CLS_PREVIOUS + ",." + CLS_NEXT)); + navigators.forEach(function (navigator) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(navigator, 'click', _this.navigatorClickHandler); + }); + var playIcon = this.element.querySelector("." + CLS_PLAY_PAUSE); + if (playIcon) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(playIcon, 'click', this.playButtonClickHandler); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element.firstElementChild, 'animationend', this.onTransitionEnd); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element.firstElementChild, 'transitionend', this.onTransitionEnd); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].clearEvents(this.element); + }; + /** + * Method to transit from the current slide to the previous slide. + * + * @returns {void} + */ + Carousel.prototype.prev = function () { + if (!this.loop && this.selectedIndex === 0) { + return; + } + var index = (this.selectedIndex === 0) ? this.slideItems.length - 1 : this.selectedIndex - 1; + this.setActiveSlide(index, 'Previous'); + this.autoSlide(); + }; + /** + * Method to transit from the current slide to the next slide. + * + * @returns {void} + */ + Carousel.prototype.next = function () { + if (!this.loop && this.selectedIndex === this.slideItems.length - 1) { + return; + } + var index = (this.selectedIndex === this.slideItems.length - 1) ? 0 : this.selectedIndex + 1; + this.setActiveSlide(index, 'Next'); + this.autoSlide(); + }; + /** + * Method to play the slides programmatically. + * + * @returns {void} + */ + Carousel.prototype.play = function () { + var playIcon = this.element.querySelector("." + CLS_PLAY_ICON); + if (this.showPlayButton && playIcon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(playIcon, [CLS_PAUSE_ICON], [CLS_PLAY_ICON]); + var playButton = this.element.querySelector("." + CLS_PLAY_BUTTON); + playButton.setAttribute('aria-label', this.localeObj.getConstant('pauseSlideTransition')); + } + this.setProperties({ autoPlay: true }, true); + this.itemsContainer.setAttribute('aria-live', 'off'); + this.applySlideInterval(); + }; + /** + * Method to pause the slides programmatically. + * + * @returns {void} + */ + Carousel.prototype.pause = function () { + var pauseIcon = this.element.querySelector("." + CLS_PAUSE_ICON); + if (this.showPlayButton && pauseIcon) { + var playButton = this.element.querySelector("." + CLS_PLAY_BUTTON); + playButton.setAttribute('aria-label', this.localeObj.getConstant('playSlideTransition')); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(pauseIcon, [CLS_PLAY_ICON], [CLS_PAUSE_ICON]); + } + this.setProperties({ autoPlay: false }, true); + this.itemsContainer.setAttribute('aria-live', 'off'); + this.resetSlideInterval(); + }; + /** + * Method to render react and angular templates + * + * @returns {void} + * @private + */ + Carousel.prototype.renderTemplates = function () { + if (this.isAngular || this.isReact) { + this.renderReactTemplates(); + } + }; + /** + * Method to reset react and angular templates + * + * @param {string[]} templates Accepts the template ID + * @returns {void} + * @private + */ + Carousel.prototype.resetTemplates = function (templates) { + if (this.isAngular || this.isReact) { + this.clearTemplate(templates); + } + }; + /** + * Method for destroy the carousel component. + * + * @returns {void} + */ + Carousel.prototype.destroy = function () { + var _this = this; + this.resetTemplates(); + if (this.touchModule) { + this.touchModule.destroy(); + this.touchModule = null; + } + this.keyModule.destroy(); + this.keyModule = null; + this.resetSlideInterval(); + this.destroyButtons(); + this.unWireEvents(); + [].slice.call(this.element.children).forEach(function (ele) { _this.element.removeChild(ele); }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_CAROUSEL, this.cssClass, CLS_RTL]); + ['tabindex', 'role', 'style'].forEach(function (attr) { _this.element.removeAttribute(attr); }); + _super.prototype.destroy.call(this); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], CarouselItem) + ], Carousel.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Slide') + ], Carousel.prototype, "animationEffect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "previousButtonTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "nextButtonTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "indicatorsTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "playButtonTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], Carousel.prototype, "dataSource", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "itemTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Carousel.prototype, "selectedIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Carousel.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Carousel.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(5000) + ], Carousel.prototype, "interval", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Carousel.prototype, "autoPlay", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Carousel.prototype, "pauseOnHover", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Carousel.prototype, "loop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Carousel.prototype, "showPlayButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Carousel.prototype, "enableTouchSwipe", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Carousel.prototype, "showIndicators", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Default') + ], Carousel.prototype, "indicatorsType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Visible') + ], Carousel.prototype, "buttonsVisibility", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Carousel.prototype, "partialVisible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(CarouselSwipeMode.Touch) + ], Carousel.prototype, "swipeMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Carousel.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Carousel.prototype, "slideChanging", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Carousel.prototype, "slideChanged", void 0); + Carousel = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Carousel); + return Carousel; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/index.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/index.js ***! + \*************************************************************************/ +/*! exports provided: CarouselSwipeMode, CarouselItem, Carousel */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _carousel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./carousel */ "./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/carousel.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CarouselSwipeMode", function() { return _carousel__WEBPACK_IMPORTED_MODULE_0__["CarouselSwipeMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return _carousel__WEBPACK_IMPORTED_MODULE_0__["CarouselItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return _carousel__WEBPACK_IMPORTED_MODULE_0__["Carousel"]; }); + +/** Carousel export modules */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js ***! + \**************************************************************************/ +/*! exports provided: HScroll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HScroll", function() { return HScroll; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var CLS_ROOT = 'e-hscroll'; +var CLS_RTL = 'e-rtl'; +var CLS_DISABLE = 'e-overlay'; +var CLS_HSCROLLBAR = 'e-hscroll-bar'; +var CLS_HSCROLLCON = 'e-hscroll-content'; +var CLS_NAVARROW = 'e-nav-arrow'; +var CLS_NAVRIGHTARROW = 'e-nav-right-arrow'; +var CLS_NAVLEFTARROW = 'e-nav-left-arrow'; +var CLS_HSCROLLNAV = 'e-scroll-nav'; +var CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav'; +var CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav'; +var CLS_DEVICE = 'e-scroll-device'; +var CLS_OVERLAY = 'e-scroll-overlay'; +var CLS_RIGHTOVERLAY = 'e-scroll-right-overlay'; +var CLS_LEFTOVERLAY = 'e-scroll-left-overlay'; +var OVERLAY_MAXWID = 40; +/** + * HScroll module is introduces horizontal scroller when content exceeds the current viewing area. + * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone. + * Hidden content can be view by touch moving or icon click. + * ```html + *
+ * + * ``` + */ +var HScroll = /** @__PURE__ @class */ (function (_super) { + __extends(HScroll, _super); + /** + * Initializes a new instance of the HScroll class. + * + * @param {HScrollModel} options - Specifies HScroll model properties as options. + * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies. + */ + function HScroll(options, element) { + return _super.call(this, options, element) || this; + } + /** + * Initialize the event handler + * + * @private + * @returns {void} + */ + HScroll.prototype.preRender = function () { + this.browser = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name; + this.browserCheck = this.browser === 'mozilla'; + this.isDevice = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice; + this.customStep = true; + var element = this.element; + this.ieCheck = this.browser === 'edge' || this.browser === 'msie'; + this.initialize(); + if (element.id === '') { + element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('hscroll'); + this.uniqueId = true; + } + element.style.display = 'block'; + if (this.enableRtl) { + element.classList.add(CLS_RTL); + } + }; + /** + * To Initialize the horizontal scroll rendering + * + * @private + * @returns {void} + */ + HScroll.prototype.render = function () { + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.scrollEle, 'scroll', this.scrollHandler, this); + if (!this.isDevice) { + this.createNavIcon(this.element); + } + else { + this.element.classList.add(CLS_DEVICE); + this.createOverlay(this.element); + } + this.setScrollState(); + }; + HScroll.prototype.setScrollState = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollStep) || this.scrollStep < 0) { + this.scrollStep = this.scrollEle.offsetWidth; + this.customStep = false; + } + else { + this.customStep = true; + } + }; + HScroll.prototype.initialize = function () { + var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON }); + var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR }); + scrollDiv.setAttribute('tabindex', '-1'); + var ele = this.element; + var innerEle = [].slice.call(ele.children); + for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) { + var ele_1 = innerEle_1[_i]; + scrollEle.appendChild(ele_1); + } + scrollDiv.appendChild(scrollEle); + ele.appendChild(scrollDiv); + scrollDiv.style.overflowX = 'hidden'; + this.scrollEle = scrollDiv; + this.scrollItems = scrollEle; + }; + HScroll.prototype.getPersistData = function () { + var keyEntity = ['scrollStep']; + return this.addOnPersist(keyEntity); + }; + /** + * Returns the current module name. + * + * @returns {string} - It returns the current module name. + * @private + */ + HScroll.prototype.getModuleName = function () { + return 'hScroll'; + }; + /** + * Removes the control from the DOM and also removes all its related events. + * + * @returns {void} + */ + HScroll.prototype.destroy = function () { + var ele = this.element; + ele.style.display = ''; + ele.classList.remove(CLS_ROOT); + ele.classList.remove(CLS_DEVICE); + ele.classList.remove(CLS_RTL); + var nav = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele); + var overlay = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_OVERLAY, ele); + [].slice.call(overlay).forEach(function (ele) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + }); + for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) { + var elem = _a[_i]; + ele.appendChild(elem); + } + if (this.uniqueId) { + this.element.removeAttribute('id'); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.scrollEle); + if (nav.length > 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(nav[0]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nav[1])) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(nav[1]); + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.scrollEle, 'scroll', this.scrollHandler); + this.touchModule.destroy(); + this.touchModule = null; + _super.prototype.destroy.call(this); + }; + /** + * Specifies the value to disable/enable the HScroll component. + * When set to `true` , the component will be disabled. + * + * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true). + * @returns {void}. + */ + HScroll.prototype.disable = function (value) { + var navEles = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element); + if (value) { + this.element.classList.add(CLS_DISABLE); + } + else { + this.element.classList.remove(CLS_DISABLE); + } + [].slice.call(navEles).forEach(function (el) { + el.setAttribute('tabindex', !value ? '0' : '-1'); + }); + }; + HScroll.prototype.createOverlay = function (element) { + var id = element.id.concat('_nav'); + var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY }); + var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT); + var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight }); + var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + rightEle.appendChild(navItem); + var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY }); + if (this.ieCheck) { + rightEle.classList.add('e-ie-align'); + } + element.appendChild(rightOverlayEle); + element.appendChild(rightEle); + element.insertBefore(leftEle, element.firstChild); + this.eventBinding([rightEle]); + }; + HScroll.prototype.createNavIcon = function (element) { + var id = element.id.concat('_nav'); + var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT); + var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' }; + var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes }); + nav.setAttribute('aria-disabled', 'false'); + var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT); + var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' }; + var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes }); + navEle.setAttribute('aria-disabled', 'true'); + var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + navEle.appendChild(navLeftItem); + nav.appendChild(navItem); + element.appendChild(nav); + element.insertBefore(navEle, element.firstChild); + if (this.ieCheck) { + nav.classList.add('e-ie-align'); + navEle.classList.add('e-ie-align'); + } + this.eventBinding([nav, navEle]); + }; + HScroll.prototype.onKeyPress = function (e) { + var _this = this; + if (e.key === 'Enter') { + var timeoutFun_1 = function () { + _this.keyTimeout = true; + _this.eleScrolling(10, e.target, true); + }; + this.keyTimer = window.setTimeout(function () { + timeoutFun_1(); + }, 100); + } + }; + HScroll.prototype.onKeyUp = function (e) { + if (e.key !== 'Enter') { + return; + } + if (this.keyTimeout) { + this.keyTimeout = false; + } + else { + e.target.click(); + } + clearTimeout(this.keyTimer); + }; + HScroll.prototype.eventBinding = function (ele) { + var _this = this; + [].slice.call(ele).forEach(function (el) { + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 }); + el.addEventListener('keydown', _this.onKeyPress.bind(_this)); + el.addEventListener('keyup', _this.onKeyUp.bind(_this)); + el.addEventListener('mouseup', _this.repeatScroll.bind(_this)); + el.addEventListener('touchend', _this.repeatScroll.bind(_this)); + el.addEventListener('contextmenu', function (e) { + e.preventDefault(); + }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(el, 'click', _this.clickEventHandler, _this); + }); + }; + HScroll.prototype.repeatScroll = function () { + clearInterval(this.timeout); + }; + HScroll.prototype.tabHoldHandler = function (e) { + var _this = this; + var trgt = e.originalEvent.target; + trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt; + var scrollDis = 10; + var timeoutFun = function () { + _this.eleScrolling(scrollDis, trgt, true); + }; + this.timeout = window.setInterval(function () { + timeoutFun(); + }, 50); + }; + HScroll.prototype.contains = function (ele, className) { + return ele.classList.contains(className); + }; + HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) { + var rootEle = this.element; + var classList = trgt.classList; + if (classList.contains(CLS_HSCROLLNAV)) { + classList = trgt.querySelector('.' + CLS_NAVARROW).classList; + } + if (this.contains(rootEle, CLS_RTL) && this.browserCheck) { + scrollDis = -scrollDis; + } + if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) { + if (classList.contains(CLS_NAVRIGHTARROW)) { + this.frameScrollRequest(scrollDis, 'add', isContinuous); + } + else { + this.frameScrollRequest(scrollDis, '', isContinuous); + } + } + else { + if (classList.contains(CLS_NAVLEFTARROW)) { + this.frameScrollRequest(scrollDis, 'add', isContinuous); + } + else { + this.frameScrollRequest(scrollDis, '', isContinuous); + } + } + }; + HScroll.prototype.clickEventHandler = function (e) { + this.eleScrolling(this.scrollStep, e.target, false); + }; + HScroll.prototype.swipeHandler = function (e) { + var swipeEle = this.scrollEle; + var distance; + if (e.velocity <= 1) { + distance = e.distanceX / (e.velocity * 10); + } + else { + distance = e.distanceX / e.velocity; + } + var start = 0.5; + var animate = function () { + var step = Math.sin(start); + if (step <= 0) { + window.cancelAnimationFrame(step); + } + else { + if (e.swipeDirection === 'Left') { + swipeEle.scrollLeft += distance * step; + } + else if (e.swipeDirection === 'Right') { + swipeEle.scrollLeft -= distance * step; + } + start -= 0.5; + window.requestAnimationFrame(animate); + } + }; + animate(); + }; + HScroll.prototype.scrollUpdating = function (scrollVal, action) { + if (action === 'add') { + this.scrollEle.scrollLeft += scrollVal; + } + else { + this.scrollEle.scrollLeft -= scrollVal; + } + if (this.enableRtl && this.scrollEle.scrollLeft > 0) { + this.scrollEle.scrollLeft = 0; + } + }; + HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) { + var _this = this; + var step = 10; + if (isContinuous) { + this.scrollUpdating(scrollVal, action); + return; + } + if (!this.customStep) { + [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_OVERLAY, this.element)).forEach(function (el) { + scrollVal -= el.offsetWidth; + }); + } + var animate = function () { + var scrollValue; + var scrollStep; + if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) { + scrollValue = -scrollVal; + scrollStep = -step; + } + else { + scrollValue = scrollVal; + scrollStep = step; + } + if (scrollValue < step) { + window.cancelAnimationFrame(scrollStep); + } + else { + _this.scrollUpdating(scrollStep, action); + scrollVal -= scrollStep; + window.requestAnimationFrame(animate); + } + }; + animate(); + }; + HScroll.prototype.touchHandler = function (e) { + var ele = this.scrollEle; + var distance = e.distanceX; + if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) { + distance = -distance; + } + if (e.scrollDirection === 'Left') { + ele.scrollLeft = ele.scrollLeft + distance; + } + else if (e.scrollDirection === 'Right') { + ele.scrollLeft = ele.scrollLeft - distance; + } + }; + HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) { + if (this.isDevice) { + var arrowEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(addDisable) ? removeDisable : addDisable; + var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(addDisable)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]); + } + } + else if (addDisable && removeDisable) { + addDisable.classList.add(CLS_DISABLE); + addDisable.setAttribute('aria-disabled', 'true'); + addDisable.removeAttribute('tabindex'); + removeDisable.classList.remove(CLS_DISABLE); + removeDisable.setAttribute('aria-disabled', 'false'); + removeDisable.setAttribute('tabindex', '0'); + } + this.repeatScroll(); + }; + HScroll.prototype.scrollHandler = function (e) { + var target = e.target; + var width = target.offsetWidth; + var rootEle = this.element; + var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT); + var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT); + var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY); + var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY); + var scrollLeft = target.scrollLeft; + if (scrollLeft <= 0) { + scrollLeft = -scrollLeft; + } + if (this.isDevice) { + if (this.enableRtl && !(this.browserCheck || this.ieCheck)) { + leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY); + rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY); + } + if (scrollLeft < OVERLAY_MAXWID) { + leftOverlay.style.width = scrollLeft + 'px'; + } + else { + leftOverlay.style.width = '40px'; + } + if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) { + rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px'; + } + else { + rightOverlay.style.width = '40px'; + } + } + if (scrollLeft === 0) { + this.arrowDisabling(navLeftEle, navRightEle); + } + else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) { + this.arrowDisabling(navRightEle, navLeftEle); + } + else { + var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE); + if (disEle) { + disEle.classList.remove(CLS_DISABLE); + disEle.setAttribute('aria-disabled', 'false'); + disEle.setAttribute('tabindex', '0'); + } + } + }; + /** + * Gets called when the model property changes.The data that describes the old and new values of property that changed. + * + * @param {HScrollModel} newProp - It contains the new value of data. + * @param {HScrollModel} oldProp - It contains the old value of data. + * @returns {void} + * @private + */ + HScroll.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'scrollStep': + this.setScrollState(); + break; + case 'enableRtl': + newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL); + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], HScroll.prototype, "scrollStep", void 0); + HScroll = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], HScroll); + return HScroll; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/index.js": +/*!***********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/common/index.js ***! + \***********************************************************************/ +/*! exports provided: HScroll, VScroll, addScrolling, destroyScroll, MenuAnimationSettings, MenuItem, FieldSettings */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _h_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./h-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HScroll", function() { return _h_scroll__WEBPACK_IMPORTED_MODULE_0__["HScroll"]; }); + +/* harmony import */ var _v_scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScroll", function() { return _v_scroll__WEBPACK_IMPORTED_MODULE_1__["VScroll"]; }); + +/* harmony import */ var _menu_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./menu-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-scroll.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addScrolling", function() { return _menu_scroll__WEBPACK_IMPORTED_MODULE_2__["addScrolling"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "destroyScroll", function() { return _menu_scroll__WEBPACK_IMPORTED_MODULE_2__["destroyScroll"]; }); + +/* harmony import */ var _menu_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./menu-base */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-base.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MenuAnimationSettings", function() { return _menu_base__WEBPACK_IMPORTED_MODULE_3__["MenuAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return _menu_base__WEBPACK_IMPORTED_MODULE_3__["MenuItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return _menu_base__WEBPACK_IMPORTED_MODULE_3__["FieldSettings"]; }); + +/** + * Navigation Common modules + */ + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-base.js": +/*!***************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-base.js ***! + \***************************************************************************/ +/*! exports provided: FieldSettings, MenuItem, MenuAnimationSettings, MenuBase */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return FieldSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return MenuItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MenuAnimationSettings", function() { return MenuAnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MenuBase", function() { return MenuBase; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_lists__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-lists */ "./ej2-resources/22.1.37/scripts/ej2-lists/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _common_h_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/h-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js"); +/* harmony import */ var _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/v-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js"); +/* harmony import */ var _common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/menu-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-scroll.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + + + + +var ENTER = 'enter'; +var ESCAPE = 'escape'; +var FOCUSED = 'e-focused'; +var HEADER = 'e-menu-header'; +var SELECTED = 'e-selected'; +var SEPARATOR = 'e-separator'; +var UPARROW = 'uparrow'; +var DOWNARROW = 'downarrow'; +var LEFTARROW = 'leftarrow'; +var RIGHTARROW = 'rightarrow'; +var HOME = 'home'; +var END = 'end'; +var TAB = 'tab'; +var CARET = 'e-caret'; +var ITEM = 'e-menu-item'; +var DISABLED = 'e-disabled'; +var HIDE = 'e-menu-hide'; +var ICONS = 'e-icons'; +var RTL = 'e-rtl'; +var POPUP = 'e-menu-popup'; +var TEMPLATE_PROPERTY = 'Template'; +/** + * Configures the field options of the Menu. + */ +var FieldSettings = /** @__PURE__ @class */ (function (_super) { + __extends(FieldSettings, _super); + function FieldSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('id') + ], FieldSettings.prototype, "itemId", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('parentId') + ], FieldSettings.prototype, "parentId", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('text') + ], FieldSettings.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('iconCss') + ], FieldSettings.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('url') + ], FieldSettings.prototype, "url", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('separator') + ], FieldSettings.prototype, "separator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('items') + ], FieldSettings.prototype, "children", void 0); + return FieldSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Specifies menu items. + */ +var MenuItem = /** @__PURE__ @class */ (function (_super) { + __extends(MenuItem, _super); + function MenuItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MenuItem.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuItem.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MenuItem.prototype, "separator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], MenuItem) + ], MenuItem.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuItem.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuItem.prototype, "url", void 0); + return MenuItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Animation configuration settings. + */ +var MenuAnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(MenuAnimationSettings, _super); + function MenuAnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SlideDown') + ], MenuAnimationSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], MenuAnimationSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('ease') + ], MenuAnimationSettings.prototype, "easing", void 0); + return MenuAnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Base class for Menu and ContextMenu components. + * + * @private + */ +var MenuBase = /** @__PURE__ @class */ (function (_super) { + __extends(MenuBase, _super); + /** + * Constructor for creating the widget. + * + * @private + * @param {MenuBaseModel} options - Specifies the menu base model + * @param {string | HTMLUListElement} element - Specifies the element + */ + function MenuBase(options, element) { + var _this = _super.call(this, options, element) || this; + _this.navIdx = []; + _this.animation = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"]({}); + _this.isTapHold = false; + _this.tempItem = []; + _this.showSubMenuOn = 'Auto'; + return _this; + } + /** + * Initialized third party configuration settings. + * + * @private + * @returns {void} + */ + MenuBase.prototype.preRender = function () { + if (!this.isMenu) { + var ul = void 0; + if (this.element.tagName === 'EJS-CONTEXTMENU') { + ul = this.createElement('ul', { + id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName() + }); + var ejInst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]); + this.clonedElement = this.element; + this.element = ul; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInst, this.element); + } + else { + ul = this.createElement('ul', { id: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(this.getModuleName()) }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([].slice.call(this.element.cloneNode(true).children), ul); + var refEle = this.element.nextElementSibling; + if (refEle) { + this.element.parentElement.insertBefore(ul, refEle); + } + else { + this.element.parentElement.appendChild(ul); + } + this.clonedElement = ul; + } + this.clonedElement.style.display = 'none'; + } + if (this.element.tagName === 'EJS-MENU') { + var ele = this.element; + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', ele); + var ul = this.createElement('ul'); + var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' }); + for (var idx = 0, len = ele.attributes.length; idx < len; idx++) { + ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue); + } + ele.parentNode.insertBefore(wrapper, ele); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + ele = ul; + wrapper.appendChild(ele); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, ele); + this.clonedElement = wrapper; + this.element = ele; + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(this.getModuleName()); + } + } + }; + /** + * Initialize the control rendering. + * + * @private + * @returns {void} + */ + MenuBase.prototype.render = function () { + var _this = this; + this.initialize(); + this.renderItems(); + this.wireEvents(); + this.renderComplete(); + var wrapper = this.getWrapper(); + // eslint-disable-next-line + if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) { + requestAnimationFrame(function () { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl); + }); + } + }; + MenuBase.prototype.initialize = function () { + var wrapper = this.getWrapper(); + if (!wrapper) { + wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' }); + if (this.isMenu) { + this.element.parentElement.insertBefore(wrapper, this.element); + } + else { + document.body.appendChild(wrapper); + } + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + if (this.enableRtl) { + wrapper.classList.add(RTL); + } + wrapper.appendChild(this.element); + if (this.isMenu && this.hamburgerMode) { + if (!this.target) { + this.createHeaderContainer(wrapper); + } + } + this.defaultOption = this.showItemOnClick; + }; + MenuBase.prototype.renderItems = function () { + if (!this.items.length) { + var items = _ej2_lists__WEBPACK_IMPORTED_MODULE_1__["ListBase"].createJsonFromElement(this.element, { fields: { child: 'items' } }); + this.setProperties({ items: items }, true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isMenu) { + this.element = this.removeChildElement(this.element); + } + else { + this.element.innerHTML = ''; + } + } + var ul = this.createItems(this.items); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(Array.prototype.slice.call(ul.children), this.element); + this.element.classList.add('e-menu-parent'); + if (this.isMenu) { + if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) { + this.setBlankIconStyle(this.element); + } + if (this.enableScrolling) { + var wrapper = this.getWrapper(); + if (this.element.classList.contains('e-vertical')) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl); + } + else { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl); + } + } + } + }; + MenuBase.prototype.wireEvents = function () { + var wrapper = this.getWrapper(); + if (this.target) { + var target = void 0; + var targetElems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.target); + for (var i = 0, len = targetElems.length; i < len; i++) { + target = targetElems[i]; + if (this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'click', this.menuHeaderClickHandler, this); + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos) { + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](target, { tapHold: this.touchHandler.bind(this) }); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'contextmenu', this.cmenuHandler, this); + } + } + } + this.targetElement = target; + if (!this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler, this); + for (var _i = 0, _a = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["getScrollableParent"])(this.targetElement); _i < _a.length; _i++) { + var parent_1 = _a[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(parent_1, 'mousewheel DOMMouseScroll', this.scrollHandler, this); + } + } + } + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.delegateMoverHandler = this.moverHandler.bind(this); + this.delegateMouseDownHandler = this.mouseDownHandler.bind(this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousedown', this.delegateMouseDownHandler, this); + } + this.delegateClickHandler = this.clickHandler.bind(this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'click', this.delegateClickHandler, this); + this.wireKeyboardEvent(wrapper); + this.rippleFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(wrapper, { selector: '.' + ITEM }); + }; + MenuBase.prototype.wireKeyboardEvent = function (element) { + var keyConfigs = { + downarrow: DOWNARROW, + uparrow: UPARROW, + enter: ENTER, + leftarrow: LEFTARROW, + rightarrow: RIGHTARROW, + escape: ESCAPE + }; + if (this.isMenu) { + keyConfigs.home = HOME; + keyConfigs.end = END; + keyConfigs.tab = TAB; + } + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](element, { + keyAction: this.keyBoardHandler.bind(this), + keyConfigs: keyConfigs + }); + }; + MenuBase.prototype.mouseDownHandler = function (e) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper() + && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-' + this.getModuleName() + '-popup'))) { + this.closeMenu(this.isMenu ? null : this.navIdx.length, e); + } + }; + MenuBase.prototype.keyHandler = function (e) { + if (e.keyCode === 38 || e.keyCode === 40) { + if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) { + e.preventDefault(); + } + } + }; + MenuBase.prototype.keyBoardHandler = function (e) { + var actionName = ''; + var trgt = e.target; + var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical') + && this.navIdx.length < 1; + e.preventDefault(); + if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) { + this.removeLIStateByClass([FOCUSED, SELECTED], [Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.e-' + this.getModuleName() + '-wrapper')]); + } + if (actionNeeded) { + switch (e.action) { + case RIGHTARROW: + actionName = RIGHTARROW; + e.action = DOWNARROW; + break; + case LEFTARROW: + actionName = LEFTARROW; + e.action = UPARROW; + break; + case DOWNARROW: + actionName = DOWNARROW; + e.action = RIGHTARROW; + break; + case UPARROW: + actionName = UPARROW; + e.action = ''; + break; + } + } + else if (this.enableRtl) { + switch (e.action) { + case LEFTARROW: + actionNeeded = true; + actionName = LEFTARROW; + e.action = RIGHTARROW; + break; + case RIGHTARROW: + actionNeeded = true; + actionName = RIGHTARROW; + e.action = LEFTARROW; + break; + } + } + switch (e.action) { + case DOWNARROW: + case UPARROW: + case END: + case HOME: + case TAB: + this.upDownKeyHandler(e); + break; + case RIGHTARROW: + this.rightEnterKeyHandler(e); + break; + case LEFTARROW: + this.leftEscKeyHandler(e); + break; + case ENTER: + if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) { + this.menuHeaderClickHandler(e); + } + else { + this.rightEnterKeyHandler(e); + } + break; + case ESCAPE: + this.leftEscKeyHandler(e); + break; + } + if (actionNeeded) { + e.action = actionName; + } + }; + MenuBase.prototype.upDownKeyHandler = function (e) { + var cul = this.getUlByNavIdx(); + var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1; + var fliIdx = defaultIdx; + var fli = this.getLIByClass(cul, FOCUSED); + if (fli) { + if (e.action !== END && e.action !== HOME) { + fliIdx = this.getIdx(cul, fli); + } + fli.classList.remove(FOCUSED); + if (e.action !== END && e.action !== HOME) { + if (e.action === DOWNARROW) { + fliIdx++; + } + else { + fliIdx--; + } + if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) { + fliIdx = defaultIdx; + } + } + } + var cli = cul.children[fliIdx]; + fliIdx = this.isValidLI(cli, fliIdx, e.action); + cul.children[fliIdx].classList.add(FOCUSED); + cul.children[fliIdx].focus(); + }; + MenuBase.prototype.isValidLI = function (cli, index, action) { + var cul = this.getUlByNavIdx(); + var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1; + if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) { + if (action === DOWNARROW && index === cul.childElementCount - 1) { + index = defaultIdx; + } + else if (action === UPARROW && index === 0) { + index = defaultIdx; + } + else if ((action === DOWNARROW) || (action === RIGHTARROW)) { + index++; + } + else { + index--; + } + } + cli = cul.children[index]; + if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) { + index = this.isValidLI(cli, index, action); + } + return index; + }; + MenuBase.prototype.getUlByNavIdx = function (navIdxLen) { + var _this = this; + if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; } + if (this.isMenu) { + var popup = [this.getWrapper()].concat([].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + POPUP)))[navIdxLen]; + var popups_1 = []; + var allPopup = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + POPUP); + allPopup.forEach(function (elem) { + if (_this.element.id === elem.id.split('-')[2]) { + popups_1.push(elem); + } + }); + popup = [this.getWrapper()].concat([].slice.call(popups_1))[navIdxLen]; + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(popup) ? null : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-menu-parent', popup); + } + else { + return this.getWrapper().children[navIdxLen]; + } + }; + MenuBase.prototype.rightEnterKeyHandler = function (e) { + var eventArgs; + var cul = this.getUlByNavIdx(); + var fli = this.getLIByClass(cul, FOCUSED); + if (fli) { + var fliIdx = this.getIdx(cul, fli); + var navIdx = this.navIdx.concat(fliIdx); + var item = this.getItem(navIdx); + if (item.items.length) { + this.navIdx.push(fliIdx); + this.keyType = 'right'; + this.action = e.action; + this.openMenu(fli, item, -1, -1, e); + } + else { + if (e.action === ENTER) { + if (this.isMenu && this.navIdx.length === 0) { + this.removeLIStateByClass([SELECTED], [this.getWrapper()]); + } + else { + fli.classList.remove(FOCUSED); + } + fli.classList.add(SELECTED); + eventArgs = { element: fli, item: item, event: e }; + this.trigger('select', eventArgs); + this.closeMenu(null, e); + } + } + } + }; + MenuBase.prototype.leftEscKeyHandler = function (e) { + if (this.navIdx.length) { + this.keyType = 'left'; + this.closeMenu(this.navIdx.length, e); + } + else { + if (e.action === ESCAPE) { + this.closeMenu(null, e); + } + } + }; + MenuBase.prototype.scrollHandler = function (e) { + this.closeMenu(null, e); + }; + MenuBase.prototype.touchHandler = function (e) { + this.isTapHold = true; + this.cmenuHandler(e.originalEvent); + }; + MenuBase.prototype.cmenuHandler = function (e) { + e.preventDefault(); + this.currentTarget = e.target; + this.isCMenu = true; + this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1; + this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1; + this.closeMenu(null, e); + if (this.isCMenu) { + if (this.canOpen(e.target)) { + this.openMenu(null, null, this.pageY, this.pageX, e); + } + this.isCMenu = false; + } + }; + // eslint:disable-next-line:max-func-body-length + MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) { + var _this = this; + if (ulIndex === void 0) { ulIndex = 0; } + if (e === void 0) { e = null; } + if (this.isMenuVisible()) { + var sli = void 0; + var item_1; + var wrapper_1 = this.getWrapper(); + var beforeCloseArgs = void 0; + var items_1; + var popups = this.getPopups(); + var isClose = false; + var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount; + var ul_1 = this.isMenu && cnt !== 1 ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-ul', popups[cnt - 2]) + : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-menu-parent', wrapper_1)[cnt - 1]; + if (this.isMenu && ul_1.classList.contains('e-menu')) { + sli = this.getLIByClass(ul_1, SELECTED); + if (sli) { + sli.classList.remove(SELECTED); + } + isClose = true; + } + if (!isClose) { + var liElem_1 = e && e.target && this.getLI(e.target); + if (liElem_1) { + this.cli = liElem_1; + } + else { + this.cli = ul_1.children[0]; + } + item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null; + items_1 = item_1 ? item_1.items : this.items; + beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true }; + this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) { + var popupEle; + var closeArgs; + var popupId = ''; + var popupObj; + var isOpen = !observedCloseArgs.cancel; + if (isOpen || _this.isCMenu) { + if (_this.isMenu) { + popupEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(ul_1, '.' + POPUP); + if (_this.hamburgerMode) { + popupEle.parentElement.style.minHeight = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false'); + } + _this.unWireKeyboardEvent(popupEle); + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(popupEle.children[0], _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__["VScroll"]), popupEle.children[0]); + popupObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(popupEle, _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Popup"]); + popupObj.hide(); + popupId = popupEle.id; + popupObj.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(popupEle); + } + else { + _this.toggleAnimation(ul_1, false); + } + closeArgs = { element: ul_1, parentItem: item_1, items: items_1 }; + _this.trigger('onClose', closeArgs); + _this.navIdx.pop(); + if (!_this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(ul_1, 'keydown', _this.keyHandler); + if (_this.keyType === 'right') { + _this.keyType = ''; + } + } + } + _this.updateReactTemplate(); + var trgtliId; + var closedLi; + var trgtLi; + var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx(); + if (_this.isCMenu) { + if (_this.canOpen(e.target)) { + _this.openMenu(null, null, _this.pageY, _this.pageX, e); + } + _this.isCMenu = false; + } + if (_this.isMenu && trgtpopUp && popupId.length) { + // eslint-disable-next-line + trgtliId = new RegExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1]; + closedLi = trgtpopUp.querySelector('[id="' + trgtliId + '"]'); + trgtLi = (liElem_1 && trgtpopUp.querySelector('[id="' + liElem_1.id + '"]')); + } + else if (trgtpopUp) { + closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected'); + trgtLi = (liElem_1 && trgtpopUp.querySelector('[id="' + liElem_1.id + '"]')); + } + var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item'); + if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) { + _this.afterCloseMenu(e); + } + else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) { + var ele = (e && e.target.classList.contains('e-vscroll')) + ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-menu-wrapper') : null; + if (ele) { + ele = ele.querySelector('.e-menu-item'); + if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) { + _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true); + } + } + else { + _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e); + } + } + else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) || + _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) { + _this.closeMenu(null, e); + } + else if (isOpen && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ulIndex) && _this.navIdx.length) { + _this.closeMenu(null, e); + } + else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 && !_this.isMenusClosed) { + _this.isMenusClosed = true; + _this.closeMenu(0, e); + } + else if (isOpen && _this.isMenu && e && e.target && + _this.navIdx.length !== 0 && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-menu-parent.e-control')) { + _this.closeMenu(0, e); + } + else if (isOpen && !_this.isMenu && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) { + _this.closeMenu(null, e); + } + else { + if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) { + _this.afterCloseMenu(e); + } + else { + var cul = _this.getUlByNavIdx(); + var sli_1 = _this.getLIByClass(cul, SELECTED); + if (sli_1) { + sli_1.setAttribute('aria-expanded', 'false'); + sli_1.classList.remove(SELECTED); + if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') { + sli_1.classList.add(FOCUSED); + if (!e.target || !e.target.classList.contains('e-edit-template')) { + sli_1.focus(); + } + } + } + if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' && + liElem_1.getAttribute('aria-haspopup') === 'true') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(liElem_1, '.e-menu-parent.e-control')) { + _this.navIdx = []; + } + else { + _this.navIdx.pop(); + } + _this.navIdx.push(_this.cliIdx); + var item_2 = _this.getItem(_this.navIdx); + liElem_1.setAttribute('aria-expanded', 'true'); + _this.openMenu(liElem_1, item_2, -1, -1, e); + } + } + if (_this.navIdx.length < 1) { + if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') { + _this.showItemOnClick = _this.defaultOption; + _this.showSubMenuOn = 'Auto'; + } + } + } + _this.removeStateWrapper(); + }); + } + } + }; + MenuBase.prototype.updateReactTemplate = function () { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (this.isReact && this.template && this.navIdx.length === 0) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var portals = this.portals.splice(0, this.items.length); + this.clearTemplate(['template']); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.portals = portals; + this.renderReactTemplates(); + } + }; + MenuBase.prototype.getMenuItemModel = function (item, level) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + return null; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(level)) { + level = 0; + } + var fields = this.getFields(level); + return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator], + iconCss: item[fields.iconCss], url: item[fields.url] }; + }; + MenuBase.prototype.getPopups = function () { + var _this = this; + var popups = []; + [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) { + popups.push(elem); + } + }); + return popups; + }; + MenuBase.prototype.isMenuVisible = function () { + return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.element).valueOf())); + }; + MenuBase.prototype.canOpen = function (target) { + var canOpen = true; + if (this.filter) { + canOpen = false; + var filter = this.filter.split(' '); + for (var i = 0, len = filter.length; i < len; i++) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + filter[i])) { + canOpen = true; + break; + } + } + } + return canOpen; + }; + MenuBase.prototype.openMenu = function (li, item, top, left, e, target) { + var _this = this; + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (e === void 0) { e = null; } + if (target === void 0) { target = this.targetElement; } + var wrapper = this.getWrapper(); + this.lItem = li; + var elemId = this.element.id !== '' ? this.element.id : 'menu'; + this.isMenusClosed = false; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(top)) { + top = -1; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(left)) { + left = -1; + } + if (li) { + this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]); + if (!this.isMenu && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + wrapper.lastChild.style.display = 'none'; + var data = { + text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous' + }; + var hdata = new MenuItem(this.items[0], 'items', data, true); + var hli = this.createItems([hdata]).children[0]; + hli.classList.add(HEADER); + this.uList.insertBefore(hli, this.uList.children[0]); + } + if (this.isMenu) { + this.popupWrapper = this.createElement('div', { + className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup' + }); + if (this.hamburgerMode) { + top = li.offsetHeight; + li.appendChild(this.popupWrapper); + } + else { + document.body.appendChild(this.popupWrapper); + } + this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1; + this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical); + if (this.template) { + this.renderReactTemplates(); + } + if (this.hamburgerMode) { + this.calculateIndentSize(this.uList, li); + } + else { + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.popupWrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + this.popupObj.hide(); + } + if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) { + window.clearInterval(this.timer); + this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay); + } + else { + this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu'); + } + } + else { + this.uList.style.zIndex = this.element.style.zIndex; + wrapper.appendChild(this.uList); + if (!this.showItemOnClick && this.hoverDelay) { + window.clearInterval(this.timer); + this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay); + } + else { + this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none'); + } + } + } + else { + this.uList = this.element; + this.uList.style.zIndex = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["getZindexPartial"])(target ? target : this.element).toString(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e)) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var ev = document.createEvent('MouseEvents'); + ev.initEvent("click", true, false); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + var targetEvent = this.copyObject(ev, {}); + targetEvent.target = targetEvent.srcElement = target; + targetEvent.currentTarget = target; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none'); + } + else { + this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none'); + } + } + }; + MenuBase.prototype.copyObject = function (source, destination) { + for (var prop in source) { + destination["" + prop] = source["" + prop]; + } + return destination; + }; + MenuBase.prototype.calculateIndentSize = function (ul, li) { + var liStyle = getComputedStyle(li); + var liIndent = parseInt(liStyle.textIndent, 10); + if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) { + liIndent *= 2; + } + else { + liIndent += (liIndent / 4); + } + ul.style.textIndent = liIndent + 'px'; + var blankIconElem = ul.querySelectorAll('.e-blankicon'); + if (blankIconElem && blankIconElem.length) { + var menuIconElem = ul.querySelector('.e-menu-icon'); + var menuIconElemStyle = getComputedStyle(menuIconElem); + var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent); + for (var i = 0; i < blankIconElem.length; i++) { + blankIconElem[i].style.textIndent = blankIconIndent + 'px'; + } + } + }; + MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) { + var _this = this; + var popupObj = new _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Popup"](popupWrapper, { + actionOnScroll: this.hamburgerMode ? 'none' : 'reposition', + relateTo: li, + collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical || + this.enableRtl ? 'none' : 'flip', Y: 'fit' }, + position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' }, + targetType: 'relative', + enableRtl: this.enableRtl, + content: ul, + open: function () { + var scrollEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-menu-vscroll', popupObj.element); + if (scrollEle) { + scrollEle.style.height = 'inherit'; + scrollEle.style.maxHeight = ''; + } + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-ul', popupObj.element); + popupObj.element.style.maxHeight = ''; + ul.focus(); + _this.triggerOpen(ul); + } + }); + return popupObj; + }; + MenuBase.prototype.createHeaderContainer = function (wrapper) { + wrapper = wrapper || this.getWrapper(); + var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' }); + var tempTitle = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.title) : this.title; + var spanTitle = this.createElement('span', { + className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle + }); + var spanIcon = this.createElement('span', { + className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' } + }); + spanElem.appendChild(spanTitle); + spanElem.appendChild(spanIcon); + wrapper.insertBefore(spanElem, this.element); + }; + MenuBase.prototype.openHamburgerMenu = function (e) { + if (this.hamburgerMode) { + this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger'); + } + }; + MenuBase.prototype.closeHamburgerMenu = function (e) { + var _this = this; + var beforeCloseArgs = { element: this.element, parentItem: null, event: e, + items: this.items, cancel: false }; + this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) { + if (!observedHamburgerCloseArgs.cancel) { + _this.closeMenu(null, e); + _this.element.classList.add('e-hide-menu'); + _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items }); + } + }); + }; + MenuBase.prototype.callFit = function (element, x, y, top, left) { + return Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["fit"])(element, null, { X: x, Y: y }, { top: top, left: left }); + }; + MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) { + var _this = this; + var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items; + var eventArgs = { + element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto' + }; + var menuType = type; + this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) { + switch (menuType) { + case 'menu': + if (!_this.hamburgerMode) { + if (observedOpenArgs.showSubMenuOn !== 'Auto') { + _this.showItemOnClick = !_this.defaultOption; + _this.showSubMenuOn = observedOpenArgs.showSubMenuOn; + } + _this.top = observedOpenArgs.top; + _this.left = observedOpenArgs.left; + } + _this.popupWrapper.style.display = 'block'; + if (!_this.hamburgerMode) { + _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px'; + if (_this.enableScrolling) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl); + } + _this.checkScrollOffset(e); + } + if (!_this.hamburgerMode && !_this.left && !_this.top) { + _this.popupObj.refreshPosition(_this.lItem, true); + _this.left = parseInt(_this.popupWrapper.style.left, 10); + _this.top = parseInt(_this.popupWrapper.style.top, 10); + if (_this.enableRtl) { + _this.left = + _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2 + : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth; + } + // eslint-disable-next-line + if (_this.template && (_this.isReact || _this.isAngular)) { + requestAnimationFrame(function () { + _this.collision(); + _this.popupWrapper.style.display = ''; + }); + } + else { + _this.collision(); + _this.popupWrapper.style.display = ''; + } + } + else { + _this.popupObj.collision = { X: 'none', Y: 'none' }; + _this.popupWrapper.style.display = ''; + } + break; + case 'none': + _this.top = observedOpenArgs.top; + _this.left = observedOpenArgs.left; + break; + case 'hamburger': + if (!observedOpenArgs.cancel) { + _this.element.classList.remove('e-hide-menu'); + _this.triggerOpen(_this.element); + } + break; + } + if (menuType !== 'hamburger') { + if (observedOpenArgs.cancel) { + if (_this.isMenu) { + _this.popupObj.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(_this.popupWrapper); + } + else if (ul.className.indexOf('e-ul') > -1) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ul); + } + _this.navIdx.pop(); + } + else { + if (_this.isMenu) { + if (_this.hamburgerMode) { + _this.popupWrapper.style.top = _this.top + 'px'; + _this.popupWrapper.style.left = 0 + 'px'; + _this.toggleAnimation(_this.popupWrapper); + } + else { + _this.setBlankIconStyle(_this.popupWrapper); + _this.wireKeyboardEvent(_this.popupWrapper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(_this.popupWrapper, { selector: '.' + ITEM }); + _this.popupWrapper.style.left = _this.left + 'px'; + _this.popupWrapper.style.top = _this.top + 'px'; + var animationOptions = _this.animationSettings.effect !== 'None' ? { + name: _this.animationSettings.effect, duration: _this.animationSettings.duration, + timingFunction: _this.animationSettings.easing + } : null; + _this.popupObj.show(animationOptions, _this.lItem); + } + } + else { + _this.setBlankIconStyle(_this.uList); + _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left); + _this.toggleAnimation(_this.uList); + } + } + } + if (_this.keyType === 'right') { + var cul = _this.getUlByNavIdx(); + li.classList.remove(FOCUSED); + if (_this.isMenu && _this.navIdx.length === 1) { + _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]); + } + li.classList.add(SELECTED); + if (_this.action === ENTER) { + var eventArgs_1 = { element: li, item: item, event: e }; + _this.trigger('select', eventArgs_1); + } + li.focus(); + cul = _this.getUlByNavIdx(); + var index = _this.isValidLI(cul.children[0], 0, _this.action); + cul.children[index].classList.add(FOCUSED); + cul.children[index].focus(); + } + }); + }; + MenuBase.prototype.collision = function () { + var collide; + collide = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(this.popupWrapper, null, this.left, this.top); + if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1 + || collide.indexOf('left') > -1)) { + this.popupObj.collision.X = 'none'; + var offWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth; + this.left = + this.enableRtl ? Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["calculatePosition"])(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left + : this.left - this.popupWrapper.offsetWidth - offWidth + 2; + } + collide = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(this.popupWrapper, null, this.left, this.top); + if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) { + this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left; + } + this.popupWrapper.style.left = this.left + 'px'; + }; + MenuBase.prototype.setBlankIconStyle = function (menu) { + var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon')); + if (!blankIconList.length) { + return; + } + var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)'); + if (!iconLi) { + return; + } + var icon = iconLi.querySelector('.e-menu-icon'); + if (!icon) { + return; + } + var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } : + { padding: 'paddingLeft', margin: 'marginRight' }; + var iconCssProps = getComputedStyle(icon); + var iconSize = parseInt(iconCssProps.fontSize, 10); + if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) { + iconSize = parseInt(iconCssProps.width, 10); + } + // eslint:disable + var size = iconSize + parseInt( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + "px"; + blankIconList.forEach(function (li) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + li.style[cssProp.padding] = size; + }); + // eslint:enable + }; + MenuBase.prototype.checkScrollOffset = function (e) { + var wrapper = this.getWrapper(); + if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) { + var trgt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? this.element : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + ITEM); + var offsetEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-hscroll-bar', wrapper); + if (offsetEle.scrollLeft > trgt.offsetLeft) { + offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft); + } + var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth; + var offsetRight = trgt.offsetLeft + trgt.offsetWidth; + if (offsetLeft < offsetRight) { + offsetEle.scrollLeft += (offsetRight - offsetLeft); + } + } + }; + MenuBase.prototype.setPosition = function (li, ul, top, left) { + var px = 'px'; + this.toggleVisiblity(ul); + if (ul === this.element || (left > -1 && top > -1)) { + var collide = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(ul, null, left, top); + if (collide.indexOf('right') > -1) { + left = left - ul.offsetWidth; + } + if (collide.indexOf('bottom') > -1) { + var offset = this.callFit(ul, false, true, top, left); + top = offset.top - 20; + if (top < 0) { + var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height; + if (newTop > -1) { + top = newTop; + } + } + } + collide = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(ul, null, left, top); + if (collide.indexOf('left') > -1) { + var offset = this.callFit(ul, true, false, top, left); + left = offset.left; + } + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + top = Number(this.element.style.top.replace(px, '')); + left = Number(this.element.style.left.replace(px, '')); + } + else { + var x = this.enableRtl ? 'left' : 'right'; + var offset = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["calculatePosition"])(li, x, 'top'); + top = offset.top; + left = offset.left; + var collide = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top); + var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1; + if (xCollision) { + offset = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["calculatePosition"])(li, this.enableRtl ? 'right' : 'left', 'top'); + left = offset.left; + } + if (this.enableRtl || xCollision) { + left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth; + } + if (collide.indexOf('bottom') > -1) { + offset = this.callFit(ul, false, true, top, left); + top = offset.top; + } + } + } + this.toggleVisiblity(ul, false); + ul.style.top = top + px; + ul.style.left = left + px; + }; + MenuBase.prototype.toggleVisiblity = function (ul, isVisible) { + if (isVisible === void 0) { isVisible = true; } + ul.style.visibility = isVisible ? 'hidden' : ''; + ul.style.display = isVisible ? 'block' : 'none'; + }; + MenuBase.prototype.createItems = function (items) { + var _this = this; + var level = this.navIdx ? this.navIdx.length : 0; + var fields = this.getFields(level); + var showIcon = this.hasField(items, this.getField('iconCss', level)); + var listBaseOptions = { + showIcon: showIcon, + moduleName: 'menu', + fields: fields, + template: this.template, + itemNavigable: true, + itemCreating: function (args) { + if (!args.curData[args.fields[fields.id]]) { + args.curData[args.fields[fields.id]] = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('menuitem'); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.curData.htmlAttributes)) { + args.curData.htmlAttributes = {}; + } + Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' }); + if (_this.isMenu && !args.curData[_this.getField('separator', level)]) { + args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ? + args.curData[args.fields.text] : args.curData[args.fields.id]; + } + if (args.curData[args.fields[fields.iconCss]] === '') { + args.curData[args.fields[fields.iconCss]] = null; + } + }, + itemCreated: function (args) { + if (args.curData[_this.getField('separator', level)]) { + args.item.classList.add(SEPARATOR); + args.item.setAttribute('role', 'separator'); + } + if (showIcon && !args.curData[args.fields.iconCss] + && !args.curData[_this.getField('separator', level)]) { + args.item.classList.add('e-blankicon'); + } + if (args.curData[args.fields.child] + && args.curData[args.fields.child].length) { + var span = _this.createElement('span', { className: ICONS + ' ' + CARET }); + args.item.appendChild(span); + args.item.setAttribute('aria-haspopup', 'true'); + args.item.setAttribute('aria-expanded', 'false'); + args.item.classList.add('e-menu-caret-icon'); + } + if (_this.isMenu && _this.template) { + args.item.setAttribute('id', args.curData[args.fields.id].toString()); + args.item.removeAttribute('data-uid'); + if (args.item.classList.contains('e-level-1')) { + args.item.classList.remove('e-level-1'); + } + if (args.item.classList.contains('e-has-child')) { + args.item.classList.remove('e-has-child'); + } + args.item.removeAttribute('aria-level'); + } + var eventArgs = { item: args.curData, element: args.item }; + _this.trigger('beforeItemRender', eventArgs); + } + }; + this.setProperties({ 'items': this.items }, true); + if (this.isMenu) { + listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY; + } + var ul = _ej2_lists__WEBPACK_IMPORTED_MODULE_1__["ListBase"].createList(this.createElement, items, listBaseOptions, !this.template, this); + ul.setAttribute('tabindex', '0'); + if (this.isMenu) { + ul.setAttribute('role', 'menu'); + } + else { + ul.setAttribute('role', 'menubar'); + } + return ul; + }; + MenuBase.prototype.moverHandler = function (e) { + var trgt = e.target; + this.liTrgt = trgt; + var cli = this.getLI(trgt); + var wrapper = cli ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper(); + var hdrWrapper = this.getWrapper(); + var regex = new RegExp('-ej2menu-(.*)-popup'); + var ulId; + var isDifferentElem = false; + if (!wrapper) { + return; + } + if (wrapper.id !== '') { + ulId = regex.exec(wrapper.id)[1]; + } + else { + ulId = wrapper.querySelector('ul').id; + } + if (ulId !== this.element.id) { + this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]); + if (this.navIdx.length) { + isDifferentElem = true; + } + else { + return; + } + } + if (cli && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) { + this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]); + this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]); + cli.classList.add(FOCUSED); + if (!this.showItemOnClick) { + this.clickHandler(e); + } + } + else if (this.isMenu && this.showItemOnClick && !isDifferentElem) { + this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups())); + } + if (this.isMenu) { + if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.e-' + this.getModuleName() + '-popup')) + && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') { + this.removeLIStateByClass([FOCUSED], [wrapper]); + if (this.navIdx.length) { + this.isClosed = true; + this.closeMenu(null, e); + } + } + else if (isDifferentElem && !this.showItemOnClick) { + if (this.navIdx.length) { + this.isClosed = true; + this.closeMenu(null, e); + } + } + if (!this.isClosed) { + this.removeStateWrapper(); + } + this.isClosed = false; + } + }; + MenuBase.prototype.removeStateWrapper = function () { + if (this.liTrgt) { + var wrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.liTrgt, '.e-menu-vscroll'); + if (this.liTrgt.tagName === 'DIV' && wrapper) { + this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]); + } + } + }; + MenuBase.prototype.removeLIStateByClass = function (classList, element) { + var li; + var _loop_1 = function (i) { + classList.forEach(function (className) { + li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + className, element[i]); + if (li) { + li.classList.remove(className); + } + }); + }; + for (var i = 0; i < element.length; i++) { + _loop_1(i); + } + }; + MenuBase.prototype.getField = function (propName, level) { + if (level === void 0) { level = 0; } + var fieldName = this.fields["" + propName]; + return typeof fieldName === 'string' ? fieldName : + (!fieldName[level] ? fieldName[fieldName.length - 1].toString() + : fieldName[level].toString()); + }; + MenuBase.prototype.getFields = function (level) { + if (level === void 0) { level = 0; } + return { + id: this.getField('itemId', level), + iconCss: this.getField('iconCss', level), + text: this.getField('text', level), + url: this.getField('url', level), + child: this.getField('children', level), + separator: this.getField('separator', level) + }; + }; + MenuBase.prototype.hasField = function (items, field) { + for (var i = 0, len = items.length; i < len; i++) { + if (items[i]["" + field]) { + return true; + } + } + return false; + }; + MenuBase.prototype.menuHeaderClickHandler = function (e) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) { + return; + } + if (this.element.className.indexOf('e-hide-menu') > -1) { + this.openHamburgerMenu(e); + } + else { + this.closeHamburgerMenu(e); + } + }; + MenuBase.prototype.clickHandler = function (e) { + if (this.isTapHold) { + this.isTapHold = false; + } + else { + var wrapper = this.getWrapper(); + var trgt = e.target; + var cli = this.cli = this.getLI(trgt); + var regex = new RegExp('-ej2menu-(.*)-popup'); + var cliWrapper = cli ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(cli, '.e-' + this.getModuleName() + '-wrapper') : null; + var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0 + : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && this.isMenu) { + this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups())); + this.mouseDownHandler(e); + } + if (cli && cliWrapper && this.isMenu) { + var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id; + if (this.element.id !== cliWrapperId) { + return; + } + } + if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) { + this.setLISelected(cli); + var navIdx = this.getIndex(cli.id, true); + var item = this.getItem(navIdx); + var eventArgs = { element: cli, item: item, event: e }; + this.trigger('select', eventArgs); + } + if (isInstLI && (e.type === 'mouseover' || _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice || this.showItemOnClick)) { + var ul = void 0; + if (cli.classList.contains(HEADER)) { + ul = wrapper.children[this.navIdx.length - 1]; + this.toggleAnimation(ul); + var sli = this.getLIByClass(ul, SELECTED); + if (sli) { + sli.classList.remove(SELECTED); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(cli.parentNode); + this.navIdx.pop(); + } + else { + if (!cli.classList.contains(SEPARATOR)) { + this.showSubMenu = true; + var cul = cli.parentNode; + this.cliIdx = this.getIdx(cul, cli); + if (this.isMenu || !_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(cul, '.' + 'e-' + this.getModuleName() + '-wrapper')) + : this.getIdx(wrapper, cul); + if (this.navIdx[culIdx] === this.cliIdx) { + this.showSubMenu = false; + } + if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) { + var sli = this.getLIByClass(cul, SELECTED); + if (sli) { + sli.classList.remove(SELECTED); + } + this.isClosed = true; + this.keyType = 'click'; + if (this.showItemOnClick) { + this.setLISelected(cli); + } + this.closeMenu(culIdx + 1, e); + if (this.showItemOnClick) { + this.setLISelected(cli); + } + } + } + if (!this.isClosed) { + this.afterCloseMenu(e); + } + this.isClosed = false; + } + } + } + else { + if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.e-menu-vscroll')) { + var popupEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + POPUP); + var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1; + if (cIdx < this.navIdx.length) { + this.closeMenu(cIdx + 1, e); + if (popupEle) { + this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]); + } + } + } + else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN' + && trgt.classList.contains('e-menu-icon')) { + this.menuHeaderClickHandler(e); + } + else { + if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') && + !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) { + if (!cli) { + this.removeLIStateByClass([SELECTED], [wrapper]); + } + if (!cli || !cli.querySelector('.' + CARET)) { + this.closeMenu(null, e); + } + } + } + } + } + }; + MenuBase.prototype.afterCloseMenu = function (e) { + var isHeader; + if (this.showSubMenu) { + if (this.showItemOnClick && this.navIdx.length === 0) { + isHeader = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-menu-parent.e-control'); + } + else { + isHeader = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, '.e-menu-parent.e-control'); + } + var idx = this.navIdx.concat(this.cliIdx); + var item = this.getItem(idx); + if (item && item[this.getField('children', idx.length - 1)] && + item[this.getField('children', idx.length - 1)].length) { + if (e.type === 'mouseover' || (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && this.isMenu)) { + this.setLISelected(this.cli); + } + if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) { + this.cli.setAttribute('aria-expanded', 'true'); + this.navIdx.push(this.cliIdx); + this.openMenu(this.cli, item, null, null, e); + } + } + else { + if (e.type !== 'mouseover') { + this.closeMenu(null, e); + } + } + if (!isHeader) { + var cul = this.getUlByNavIdx(); + var sli = this.getLIByClass(cul, SELECTED); + if (sli) { + sli.setAttribute('aria-expanded', 'false'); + sli.classList.remove(SELECTED); + } + } + } + this.keyType = ''; + }; + MenuBase.prototype.setLISelected = function (li) { + var sli = this.getLIByClass(li.parentElement, SELECTED); + if (sli) { + sli.classList.remove(SELECTED); + } + if (!this.isMenu) { + li.classList.remove(FOCUSED); + } + li.classList.add(SELECTED); + }; + MenuBase.prototype.getLIByClass = function (ul, classname) { + for (var i = 0, len = ul.children.length; i < len; i++) { + if (ul.children[i].classList.contains(classname)) { + return ul.children[i]; + } + } + return null; + }; + /** + * This method is used to get the index of the menu item in the Menu based on the argument. + * + * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.getItemIndex = function (item, isUniqueId) { + var idx; + if (typeof item === 'string') { + idx = item; + } + else { + idx = item.id; + } + var isText = (isUniqueId === false) ? false : true; + var navIdx = this.getIndex(idx, isText); + return navIdx; + }; + /** + * This method is used to set the menu item in the Menu based on the argument. + * + * @param {MenuItem} item - item need to be updated. + * @param {string} id - id / text to be passed to update the item. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.setItem = function (item, id, isUniqueId) { + var idx; + if (isUniqueId) { + idx = id ? id : item.id; + } + else { + idx = id ? id : item.text; + } + var navIdx = this.getIndex(idx, isUniqueId); + var newItem = this.getItem(navIdx); + Object.assign(newItem, item); + }; + MenuBase.prototype.getItem = function (navIdx) { + navIdx = navIdx.slice(); + var idx = navIdx.pop(); + var items = this.getItems(navIdx); + return items[idx]; + }; + MenuBase.prototype.getItems = function (navIdx) { + var items = this.items; + for (var i = 0; i < navIdx.length; i++) { + items = items[navIdx[i]][this.getField('children', i)]; + } + return items; + }; + MenuBase.prototype.setItems = function (newItems, navIdx) { + var items = this.getItems(navIdx); + items.splice(0, items.length); + for (var i = 0; i < newItems.length; i++) { + items.splice(i, 0, newItems[i]); + } + }; + MenuBase.prototype.getIdx = function (ul, li, skipHdr) { + if (skipHdr === void 0) { skipHdr = true; } + var idx = Array.prototype.indexOf.call(ul.children, li); + if (skipHdr && ul.children[0].classList.contains(HEADER)) { + idx--; + } + return idx; + }; + MenuBase.prototype.getLI = function (elem) { + if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) { + return elem; + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(elem, 'li.e-menu-item'); + }; + MenuBase.prototype.updateItemsByNavIdx = function () { + var items = this.items; + var count = 0; + for (var index = 0; index < this.navIdx.length; index++) { + items = items[index].items; + if (!items) { + break; + } + count++; + var ul = this.getUlByNavIdx(count); + if (!ul) { + break; + } + this.updateItem(ul, items); + } + }; + MenuBase.prototype.removeChildElement = function (elem) { + while (elem.firstElementChild) { + elem.removeChild(elem.firstElementChild); + } + return elem; + }; + /** + * Called internally if any of the property value changed. + * + * @private + * @param {MenuBaseModel} newProp - Specifies the new properties + * @param {MenuBaseModel} oldProp - Specifies the old properties + * @returns {void} + */ + MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) { + var _this = this; + var wrapper = this.getWrapper(); + var _loop_2 = function (prop) { + switch (prop) { + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([wrapper], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + break; + case 'enableRtl': + wrapper.classList.toggle(RTL); + break; + case 'showItemOnClick': + this_1.unWireEvents(); + this_1.showItemOnClick = newProp.showItemOnClick; + this_1.wireEvents(); + break; + case 'enableScrolling': + if (newProp.enableScrolling) { + var ul_2; + if (this_1.element.classList.contains('e-vertical')) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl); + } + else { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl); + } + this_1.getPopups().forEach(function (wrapper) { + ul_2 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-ul', wrapper); + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl); + }); + } + else { + var ul_3 = wrapper.children[0]; + if (this_1.element.classList.contains('e-vertical')) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(ul_3, _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__["VScroll"]), ul_3); + } + else { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(ul_3, _common_h_scroll__WEBPACK_IMPORTED_MODULE_3__["HScroll"]), ul_3); + } + wrapper.style.overflow = ''; + wrapper.appendChild(this_1.element); + this_1.getPopups().forEach(function (wrapper) { + ul_3 = wrapper.children[0]; + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(ul_3, _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__["VScroll"]), ul_3); + wrapper.style.overflow = ''; + }); + } + break; + case 'items': { + var idx = void 0; + var navIdx = void 0; + var item = void 0; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (this_1.isReact && this_1.template) { + this_1.clearTemplate(['template']); + } + if (!Object.keys(oldProp.items).length) { + this_1.updateItem(this_1.element, this_1.items); + if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) { + if (this_1.element.classList.contains('e-vertical')) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl); + } + else { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["addScrolling"])(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl); + } + } + if (!this_1.hamburgerMode) { + for (var i = 1, count = wrapper.childElementCount; i < count; i++) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(wrapper.lastElementChild); + } + } + this_1.navIdx = []; + } + else { + var keys = Object.keys(newProp.items); + for (var i = 0; i < keys.length; i++) { + navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i])); + if (navIdx.length <= this_1.getWrapper().children.length) { + idx = navIdx.pop(); + item = this_1.getItems(navIdx); + this_1.insertAfter([item[idx]], item[idx].text); + this_1.removeItem(item, navIdx, idx); + this_1.setItems(item, navIdx); + } + navIdx.length = 0; + } + } + break; + } + } + }; + var this_1 = this; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + _loop_2(prop); + } + }; + MenuBase.prototype.updateItem = function (ul, items) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isMenu) { + ul = this.removeChildElement(ul); + } + else { + if (this.enableScrolling) { + var wrapper1 = this.getWrapper(); + var ul1 = wrapper1.children[0]; + if (this.element.classList.contains('e-vertical')) { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(ul1, _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__["VScroll"]), ul1); + } + else { + Object(_common_menu_scroll__WEBPACK_IMPORTED_MODULE_5__["destroyScroll"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(ul1, _common_h_scroll__WEBPACK_IMPORTED_MODULE_3__["HScroll"]), ul1); + } + } + ul.innerHTML = ''; + } + var lis = [].slice.call(this.createItems(items).children); + lis.forEach(function (li) { + ul.appendChild(li); + }); + }; + MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) { + index.push(idx); + var key = Object.keys(newProp.items[idx]).pop(); + if (key === 'items') { + var item = newProp.items[idx]; + var popStr = Object.keys(item.items).pop(); + if (popStr) { + this.getChangedItemIndex(item, index, Number(popStr)); + } + } + else { + if (key === 'isParentArray' && index.length > 1) { + index.pop(); + } + } + return index; + }; + MenuBase.prototype.removeItem = function (item, navIdx, idx) { + item.splice(idx, 1); + var uls = this.getWrapper().children; + if (navIdx.length < uls.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(uls[navIdx.length].children[idx]); + } + }; + /** + * Used to unwire the bind events. + * + * @private + * @param {string} targetSelctor - Specifies the target selector + * @returns {void} + */ + MenuBase.prototype.unWireEvents = function (targetSelctor) { + if (targetSelctor === void 0) { targetSelctor = this.target; } + var wrapper = this.getWrapper(); + if (targetSelctor) { + var target = void 0; + var touchModule = void 0; + var targetElems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(targetSelctor); + for (var i = 0, len = targetElems.length; i < len; i++) { + target = targetElems[i]; + if (this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'click', this.menuHeaderClickHandler); + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos) { + touchModule = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(target, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"]); + if (touchModule) { + touchModule.destroy(); + } + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'contextmenu', this.cmenuHandler); + } + } + } + if (!this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.targetElement, 'mousewheel DOMMouseScroll', this.scrollHandler); + for (var _i = 0, _a = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["getScrollableParent"])(this.targetElement); _i < _a.length; _i++) { + var parent_2 = _a[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(parent_2, 'mousewheel DOMMouseScroll', this.scrollHandler); + } + } + } + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousedown', this.delegateMouseDownHandler); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'click', this.delegateClickHandler); + this.unWireKeyboardEvent(wrapper); + this.rippleFn(); + }; + MenuBase.prototype.unWireKeyboardEvent = function (element) { + var keyboardModule = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"]); + if (keyboardModule) { + keyboardModule.destroy(); + } + }; + MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) { + var _this = this; + if (isMenuOpen === void 0) { isMenuOpen = true; } + var pUlHeight; + var pElement; + if (this.animationSettings.effect === 'None' || !isMenuOpen) { + this.end(ul, isMenuOpen); + } + else { + this.animation.animate(ul, { + name: this.animationSettings.effect, + duration: this.animationSettings.duration, + timingFunction: this.animationSettings.easing, + begin: function (options) { + if (_this.hamburgerMode) { + pElement = options.element.parentElement; + options.element.style.position = 'absolute'; + pUlHeight = pElement.offsetHeight; + options.element.style.maxHeight = options.element.offsetHeight + 'px'; + pElement.style.maxHeight = ''; + } + else { + options.element.style.display = 'block'; + options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px'; + } + }, + progress: function (options) { + if (_this.hamburgerMode) { + pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px'; + } + }, + end: function (options) { + if (_this.hamburgerMode) { + options.element.style.position = ''; + options.element.style.maxHeight = ''; + pElement.style.minHeight = ''; + options.element.style.top = 0 + 'px'; + options.element.children[0].focus(); + _this.triggerOpen(options.element.children[0]); + } + else { + _this.end(options.element, isMenuOpen); + } + } + }); + } + }; + MenuBase.prototype.triggerOpen = function (ul) { + var item = this.navIdx.length ? this.getItem(this.navIdx) : null; + var eventArgs = { + element: ul, parentItem: item, items: item ? item.items : this.items + }; + this.trigger('onOpen', eventArgs); + if (!this.isMenu) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(ul, 'keydown', this.keyHandler, this); + } + }; + MenuBase.prototype.end = function (ul, isMenuOpen) { + if (isMenuOpen) { + ul.style.display = 'block'; + ul.style.maxHeight = ''; + this.triggerOpen(ul); + if (ul.querySelector('.' + FOCUSED)) { + ul.querySelector('.' + FOCUSED).focus(); + } + else { + var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1]; + if (this.currentTarget) { + if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) { + if (ele) { + ele.querySelector('.' + SELECTED).focus(); + } + else { + this.element.focus(); + } + } + } + else { + if (ele) { + ele.querySelector('.' + SELECTED).focus(); + } + else { + this.element.focus(); + } + } + } + } + else { + if (ul === this.element) { + var fli = this.getLIByClass(this.element, FOCUSED); + if (fli) { + fli.classList.remove(FOCUSED); + } + var sli = this.getLIByClass(this.element, SELECTED); + if (sli) { + sli.classList.remove(SELECTED); + } + ul.style.display = 'none'; + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ul); + } + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + MenuBase.prototype.getPersistData = function () { + return ''; + }; + /** + * Get wrapper element. + * + * @returns {Element} - Wrapper element + * @private + */ + MenuBase.prototype.getWrapper = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, '.e-' + this.getModuleName() + '-wrapper'); + }; + MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) { + if (items === void 0) { items = this.items; } + if (nIndex === void 0) { nIndex = []; } + if (isCallBack === void 0) { isCallBack = false; } + if (level === void 0) { level = 0; } + var item; + level = isCallBack ? level + 1 : 0; + for (var i = 0, len = items.length; i < len; i++) { + item = items[i]; + if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) { + nIndex.push(i); + break; + } + else if (item[this.getField('children', level)] + && item[this.getField('children', level)].length) { + nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level); + if (nIndex[nIndex.length - 1] === -1) { + if (i !== len - 1) { + nIndex.pop(); + } + } + else { + nIndex.unshift(i); + break; + } + } + else { + if (i === len - 1) { + nIndex.push(-1); + } + } + } + return (!isCallBack && nIndex[0] === -1) ? [] : nIndex; + }; + /** + * This method is used to enable or disable the menu items in the Menu based on the items and enable argument. + * + * @param {string[]} items - Text items that needs to be enabled/disabled. + * @param {boolean} enable - Set `true`/`false` to enable/disable the list items. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.enableItems = function (items, enable, isUniqueId) { + if (enable === void 0) { enable = true; } + var ul; + var idx; + var navIdx; + var disabled = DISABLED; + var skipItem; + for (var i = 0; i < items.length; i++) { + navIdx = this.getIndex(items[i], isUniqueId); + if (this.navIdx.length) { + if (navIdx.length !== 1) { + skipItem = false; + for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) { + if (navIdx[i_1] !== this.navIdx[i_1]) { + skipItem = true; + break; + } + } + if (skipItem) { + continue; + } + } + } + else { + if (navIdx.length !== 1) { + continue; + } + } + idx = navIdx.pop(); + ul = this.getUlByNavIdx(navIdx.length); + if (ul && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(idx)) { + if (enable) { + if (this.isMenu) { + ul.children[idx].classList.remove(disabled); + ul.children[idx].removeAttribute('aria-disabled'); + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && !ul.classList.contains('e-contextmenu')) { + ul.children[idx + 1].classList.remove(disabled); + } + else { + ul.children[idx].classList.remove(disabled); + } + } + } + else { + if (this.isMenu) { + ul.children[idx].classList.add(disabled); + ul.children[idx].setAttribute('aria-disabled', 'true'); + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && !ul.classList.contains('e-contextmenu')) { + ul.children[idx + 1].classList.add(disabled); + } + else { + ul.children[idx].classList.add(disabled); + } + } + } + } + } + }; + /** + * This method is used to show the menu items in the Menu based on the items text. + * + * @param {string[]} items - Text items that needs to be shown. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.showItems = function (items, isUniqueId) { + this.showHideItems(items, false, isUniqueId); + }; + /** + * This method is used to hide the menu items in the Menu based on the items text. + * + * @param {string[]} items - Text items that needs to be hidden. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.hideItems = function (items, isUniqueId) { + this.showHideItems(items, true, isUniqueId); + }; + MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) { + var ul; + var index; + var navIdx; + for (var i = 0; i < items.length; i++) { + navIdx = this.getIndex(items[i], isUniqueId); + index = navIdx.pop(); + ul = this.getUlByNavIdx(navIdx.length); + if (ul) { + var validUl = isUniqueId ? ul.children[index].id : ul.children[index].textContent; + if (ishide && validUl === items[i]) { + ul.children[index].classList.add(HIDE); + } + else { + ul.children[index].classList.remove(HIDE); + } + } + } + }; + /** + * It is used to remove the menu items from the Menu based on the items text. + * + * @param {string[]} items Text items that needs to be removed. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.removeItems = function (items, isUniqueId) { + var idx; + var navIdx; + var iitems; + for (var i = 0; i < items.length; i++) { + navIdx = this.getIndex(items[i], isUniqueId); + idx = navIdx.pop(); + iitems = this.getItems(navIdx); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(idx)) { + this.removeItem(iitems, navIdx, idx); + } + } + }; + /** + * It is used to insert the menu items after the specified menu item text. + * + * @param {MenuItemModel[]} items - Items that needs to be inserted. + * @param {string} text - Text item after that the element to be inserted. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.insertAfter = function (items, text, isUniqueId) { + this.insertItems(items, text, isUniqueId); + }; + /** + * It is used to insert the menu items before the specified menu item text. + * + * @param {MenuItemModel[]} items - Items that needs to be inserted. + * @param {string} text - Text item before that the element to be inserted. + * @param {boolean} isUniqueId - Set `true` if it is a unique id. + * @returns {void} + */ + MenuBase.prototype.insertBefore = function (items, text, isUniqueId) { + this.insertItems(items, text, isUniqueId, false); + }; + MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) { + if (isAfter === void 0) { isAfter = true; } + var li; + var idx; + var navIdx; + var iitems; + var menuitem; + for (var i = 0; i < items.length; i++) { + navIdx = this.getIndex(text, isUniqueId); + idx = navIdx.pop(); + iitems = this.getItems(navIdx); + menuitem = new MenuItem(iitems[0], 'items', items[i], true); + iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem); + var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(idx) && navIdx.length < uls.length) { + idx = isAfter ? idx + 1 : idx; + li = this.createItems(iitems).children[idx]; + var ul = this.isMenu ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length]; + ul.insertBefore(li, ul.children[idx]); + } + } + }; + MenuBase.prototype.removeAttributes = function () { + var _this = this; + ['top', 'left', 'display', 'z-index'].forEach(function (key) { + _this.element.style.removeProperty(key); + }); + ['role', 'tabindex', 'class', 'style'].forEach(function (key) { + if (key === 'class' && _this.element.classList.contains('e-menu-parent')) { + _this.element.classList.remove('e-menu-parent'); + } + if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) { + _this.element.removeAttribute(key); + } + if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) { + _this.element.classList.remove('e-vertical'); + } + }); + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + MenuBase.prototype.destroy = function () { + var wrapper = this.getWrapper(); + if (wrapper) { + this.unWireEvents(); + if (!this.isMenu) { + this.clonedElement.style.display = ''; + if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]); + this.element = this.clonedElement; + } + else { + if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') { + this.setProperties({ 'items': [] }, true); + } + if (document.getElementById(this.clonedElement.id)) { + var refEle = this.clonedElement.nextElementSibling; + if (refEle && refEle !== wrapper) { + this.clonedElement.parentElement.insertBefore(this.element, refEle); + } + else { + this.clonedElement.parentElement.appendChild(this.element); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isMenu) { + this.element = this.removeChildElement(this.element); + } + else { + this.element.innerHTML = ''; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([].slice.call(this.clonedElement.children), this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.clonedElement); + this.removeAttributes(); + } + } + this.clonedElement = null; + } + else { + this.closeMenu(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isMenu) { + this.element = this.removeChildElement(this.element); + } + else { + this.element.innerHTML = ''; + } + this.removeAttributes(); + wrapper.parentNode.insertBefore(this.element, wrapper); + this.clonedElement = null; + } + if (this.isMenu && this.clonedElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element); + wrapper.style.display = ''; + wrapper.classList.remove('e-' + this.getModuleName() + '-wrapper'); + wrapper.removeAttribute('data-ripple'); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(wrapper); + } + _super.prototype.destroy.call(this); + if (this.template) { + this.clearTemplate(['template']); + } + } + this.rippleFn = null; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "onOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "onClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "select", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], MenuBase.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuBase.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], MenuBase.prototype, "hoverDelay", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MenuBase.prototype, "showItemOnClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuBase.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], MenuBase.prototype, "filter", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], MenuBase.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MenuBase.prototype, "enableScrolling", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], MenuBase.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings) + ], MenuBase.prototype, "fields", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], MenuItem) + ], MenuBase.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings) + ], MenuBase.prototype, "animationSettings", void 0); + MenuBase = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], MenuBase); + return MenuBase; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-scroll.js": +/*!*****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-scroll.js ***! + \*****************************************************************************/ +/*! exports provided: addScrolling, destroyScroll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addScrolling", function() { return addScrolling; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "destroyScroll", function() { return destroyScroll; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _v_scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js"); +/* harmony import */ var _h_scroll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./h-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js"); + + + +/** + * Used to add scroll in menu. + * + * @param {createElementType} createElement - Specifies the create element model + * @param {HTMLElement} container - Specifies the element container + * @param {HTMLElement} content - Specifies the content element + * @param {string} scrollType - Specifies the scroll type + * @param {boolean} enableRtl - Specifies the enable RTL property + * @param {boolean} offset - Specifies the offset value + * @returns {HTMLElement} - Element + * @hidden + */ +function addScrolling(createElement, container, content, scrollType, enableRtl, offset) { + var containerOffset; + var contentOffset; + var parentElem = container.parentElement; + if (scrollType === 'vscroll') { + containerOffset = offset || container.getBoundingClientRect().height; + contentOffset = content.getBoundingClientRect().height; + } + else { + containerOffset = container.getBoundingClientRect().width; + contentOffset = content.getBoundingClientRect().width; + } + if (containerOffset < contentOffset) { + return createScrollbar(createElement, container, content, scrollType, enableRtl, offset); + } + else if (parentElem) { + var width = parentElem.getBoundingClientRect().width; + if (width < containerOffset && scrollType === 'hscroll') { + contentOffset = width; + container.style.maxWidth = width + 'px'; + return createScrollbar(createElement, container, content, scrollType, enableRtl, offset); + } + return content; + } + else { + return content; + } +} +/** + * Used to create scroll bar in menu. + * + * @param {createElementType} createElement - Specifies the create element model + * @param {HTMLElement} container - Specifies the element container + * @param {HTMLElement} content - Specifies the content element + * @param {string} scrollType - Specifies the scroll type + * @param {boolean} enableRtl - Specifies the enable RTL property + * @param {boolean} offset - Specifies the offset value + * @returns {HTMLElement} - Element + * @hidden + */ +function createScrollbar(createElement, container, content, scrollType, enableRtl, offset) { + var scrollEle = createElement('div', { className: 'e-menu-' + scrollType }); + container.appendChild(scrollEle); + scrollEle.appendChild(content); + if (offset) { + scrollEle.style.overflow = 'hidden'; + scrollEle.style.height = offset + 'px'; + } + else { + scrollEle.style.maxHeight = container.style.maxHeight; + container.style.overflow = 'hidden'; + } + var scrollObj; + if (scrollType === 'vscroll') { + scrollObj = new _v_scroll__WEBPACK_IMPORTED_MODULE_1__["VScroll"]({ enableRtl: enableRtl }, scrollEle); + scrollObj.scrollStep = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-' + scrollType + '-bar', container).offsetHeight / 2; + } + else { + scrollObj = new _h_scroll__WEBPACK_IMPORTED_MODULE_2__["HScroll"]({ enableRtl: enableRtl }, scrollEle); + scrollObj.scrollStep = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-' + scrollType + '-bar', container).offsetWidth; + } + return scrollEle; +} +/** + * Used to destroy the scroll option. + * + * @param {VScroll | HScroll} scrollObj - Specifies the scroller object + * @param {Element} element - Specifies the element + * @param {HTMLElement} skipEle - Specifies the skip element + * @returns {void} + * @hidden + */ +function destroyScroll(scrollObj, element, skipEle) { + if (scrollObj) { + var menu = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-menu-parent', element); + if (menu) { + if (!skipEle || skipEle === menu) { + scrollObj.destroy(); + element.parentElement.appendChild(menu); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(element); + } + } + else { + scrollObj.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(element); + } + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js ***! + \**************************************************************************/ +/*! exports provided: VScroll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VScroll", function() { return VScroll; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var CLS_ROOT = 'e-vscroll'; +var CLS_RTL = 'e-rtl'; +var CLS_DISABLE = 'e-overlay'; +var CLS_VSCROLLBAR = 'e-vscroll-bar'; +var CLS_VSCROLLCON = 'e-vscroll-content'; +var CLS_NAVARROW = 'e-nav-arrow'; +var CLS_NAVUPARROW = 'e-nav-up-arrow'; +var CLS_NAVDOWNARROW = 'e-nav-down-arrow'; +var CLS_VSCROLLNAV = 'e-scroll-nav'; +var CLS_VSCROLLNAVUP = 'e-scroll-up-nav'; +var CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav'; +var CLS_DEVICE = 'e-scroll-device'; +var CLS_OVERLAY = 'e-scroll-overlay'; +var CLS_UPOVERLAY = 'e-scroll-up-overlay'; +var CLS_DOWNOVERLAY = 'e-scroll-down-overlay'; +var OVERLAY_MAXWID = 40; +/** + * VScroll module is introduces vertical scroller when content exceeds the current viewing area. + * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone. + * Hidden content can be view by touch moving or icon click. + * ```html + *
+ * + * ``` + */ +var VScroll = /** @__PURE__ @class */ (function (_super) { + __extends(VScroll, _super); + /** + * Initializes a new instance of the VScroll class. + * + * @param {VScrollModel} options - Specifies VScroll model properties as options. + * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies. + */ + function VScroll(options, element) { + return _super.call(this, options, element) || this; + } + /** + * Initialize the event handler + * + * @private + * @returns {void} + */ + VScroll.prototype.preRender = function () { + this.browser = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name; + this.browserCheck = this.browser === 'mozilla'; + this.isDevice = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice; + this.customStep = true; + var ele = this.element; + this.ieCheck = this.browser === 'edge' || this.browser === 'msie'; + this.initialize(); + if (ele.id === '') { + ele.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('vscroll'); + this.uniqueId = true; + } + ele.style.display = 'block'; + if (this.enableRtl) { + ele.classList.add(CLS_RTL); + } + }; + /** + * To Initialize the vertical scroll rendering + * + * @private + * @returns {void} + */ + VScroll.prototype.render = function () { + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.scrollEle, 'scroll', this.scrollEventHandler, this); + if (!this.isDevice) { + this.createNavIcon(this.element); + } + else { + this.element.classList.add(CLS_DEVICE); + this.createOverlayElement(this.element); + } + this.setScrollState(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'wheel', this.wheelEventHandler, this); + }; + VScroll.prototype.setScrollState = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollStep) || this.scrollStep < 0) { + this.scrollStep = this.scrollEle.offsetHeight; + this.customStep = false; + } + else { + this.customStep = true; + } + }; + VScroll.prototype.initialize = function () { + var scrollCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_VSCROLLCON }); + var scrollBar = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_VSCROLLBAR }); + scrollBar.setAttribute('tabindex', '-1'); + var ele = this.element; + var innerEle = [].slice.call(ele.children); + for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) { + var ele_1 = innerEle_1[_i]; + scrollCnt.appendChild(ele_1); + } + scrollBar.appendChild(scrollCnt); + ele.appendChild(scrollBar); + scrollBar.style.overflow = 'hidden'; + this.scrollEle = scrollBar; + this.scrollItems = scrollCnt; + }; + VScroll.prototype.getPersistData = function () { + var keyEntity = ['scrollStep']; + return this.addOnPersist(keyEntity); + }; + /** + * Returns the current module name. + * + * @returns {string} - It returns the current module name. + * @private + */ + VScroll.prototype.getModuleName = function () { + return 'vScroll'; + }; + /** + * Removes the control from the DOM and also removes all its related events. + * + * @returns {void} + */ + VScroll.prototype.destroy = function () { + var el = this.element; + el.style.display = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_ROOT, CLS_DEVICE, CLS_RTL]); + var navs = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el); + var overlays = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_OVERLAY, el); + [].slice.call(overlays).forEach(function (ele) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + }); + for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) { + var elem = _a[_i]; + el.appendChild(elem); + } + if (this.uniqueId) { + this.element.removeAttribute('id'); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.scrollEle); + if (navs.length > 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(navs[0]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(navs[1])) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(navs[1]); + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.scrollEle, 'scroll', this.scrollEventHandler); + this.touchModule.destroy(); + this.touchModule = null; + _super.prototype.destroy.call(this); + }; + /** + * Specifies the value to disable/enable the VScroll component. + * When set to `true` , the component will be disabled. + * + * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true). + * @returns {void}. + */ + VScroll.prototype.disable = function (value) { + var navEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element); + if (value) { + this.element.classList.add(CLS_DISABLE); + } + else { + this.element.classList.remove(CLS_DISABLE); + } + [].slice.call(navEle).forEach(function (el) { + el.setAttribute('tabindex', !value ? '0' : '-1'); + }); + }; + VScroll.prototype.createOverlayElement = function (element) { + var id = element.id.concat('_nav'); + var downOverlayEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY }); + var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN); + var downEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { id: id.concat('down'), className: clsDown }); + var navItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + downEle.appendChild(navItem); + var upEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY }); + if (this.ieCheck) { + downEle.classList.add('e-ie-align'); + } + element.appendChild(downOverlayEle); + element.appendChild(downEle); + element.insertBefore(upEle, element.firstChild); + this.eventBinding([downEle]); + }; + VScroll.prototype.createNavIcon = function (element) { + var id = element.id.concat('_nav'); + var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN); + var nav = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { id: id.concat('_down'), className: clsDown }); + nav.setAttribute('aria-disabled', 'false'); + var navItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP); + var navElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE }); + navElement.setAttribute('aria-disabled', 'true'); + var navUpItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' }); + navElement.appendChild(navUpItem); + nav.appendChild(navItem); + nav.setAttribute('tabindex', '0'); + element.appendChild(nav); + element.insertBefore(navElement, element.firstChild); + if (this.ieCheck) { + nav.classList.add('e-ie-align'); + navElement.classList.add('e-ie-align'); + } + this.eventBinding([nav, navElement]); + }; + VScroll.prototype.onKeyPress = function (ev) { + var _this = this; + if (ev.key === 'Enter') { + var timeoutFun_1 = function () { + _this.keyTimeout = true; + _this.eleScrolling(10, ev.target, true); + }; + this.keyTimer = window.setTimeout(function () { + timeoutFun_1(); + }, 100); + } + }; + VScroll.prototype.onKeyUp = function (ev) { + if (ev.key !== 'Enter') { + return; + } + if (this.keyTimeout) { + this.keyTimeout = false; + } + else { + ev.target.click(); + } + clearTimeout(this.keyTimer); + }; + VScroll.prototype.eventBinding = function (element) { + var _this = this; + [].slice.call(element).forEach(function (ele) { + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 }); + ele.addEventListener('keydown', _this.onKeyPress.bind(_this)); + ele.addEventListener('keyup', _this.onKeyUp.bind(_this)); + ele.addEventListener('mouseup', _this.repeatScroll.bind(_this)); + ele.addEventListener('touchend', _this.repeatScroll.bind(_this)); + ele.addEventListener('contextmenu', function (e) { + e.preventDefault(); + }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(ele, 'click', _this.clickEventHandler, _this); + }); + }; + VScroll.prototype.repeatScroll = function () { + clearInterval(this.timeout); + }; + VScroll.prototype.tabHoldHandler = function (ev) { + var _this = this; + var trgt = ev.originalEvent.target; + trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt; + var scrollDistance = 10; + var timeoutFun = function () { + _this.eleScrolling(scrollDistance, trgt, true); + }; + this.timeout = window.setInterval(function () { + timeoutFun(); + }, 50); + }; + VScroll.prototype.contains = function (element, className) { + return element.classList.contains(className); + }; + VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) { + var classList = trgt.classList; + if (classList.contains(CLS_VSCROLLNAV)) { + classList = trgt.querySelector('.' + CLS_NAVARROW).classList; + } + if (classList.contains(CLS_NAVDOWNARROW)) { + this.frameScrollRequest(scrollDis, 'add', isContinuous); + } + else if (classList.contains(CLS_NAVUPARROW)) { + this.frameScrollRequest(scrollDis, '', isContinuous); + } + }; + VScroll.prototype.clickEventHandler = function (event) { + this.eleScrolling(this.scrollStep, event.target, false); + }; + VScroll.prototype.wheelEventHandler = function (e) { + e.preventDefault(); + this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false); + }; + VScroll.prototype.swipeHandler = function (e) { + var swipeElement = this.scrollEle; + var distance; + if (e.velocity <= 1) { + distance = e.distanceY / (e.velocity * 10); + } + else { + distance = e.distanceY / e.velocity; + } + var start = 0.5; + var animate = function () { + var step = Math.sin(start); + if (step <= 0) { + window.cancelAnimationFrame(step); + } + else { + if (e.swipeDirection === 'Up') { + swipeElement.scrollTop += distance * step; + } + else if (e.swipeDirection === 'Down') { + swipeElement.scrollTop -= distance * step; + } + start -= 0.02; + window.requestAnimationFrame(animate); + } + }; + animate(); + }; + VScroll.prototype.scrollUpdating = function (scrollVal, action) { + if (action === 'add') { + this.scrollEle.scrollTop += scrollVal; + } + else { + this.scrollEle.scrollTop -= scrollVal; + } + }; + VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) { + var _this = this; + var step = 10; + if (isContinuous) { + this.scrollUpdating(scrollValue, action); + return; + } + if (!this.customStep) { + [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_OVERLAY, this.element)).forEach(function (el) { + scrollValue -= el.offsetHeight; + }); + } + var animate = function () { + if (scrollValue < step) { + window.cancelAnimationFrame(step); + } + else { + _this.scrollUpdating(step, action); + scrollValue -= step; + window.requestAnimationFrame(animate); + } + }; + animate(); + }; + VScroll.prototype.touchHandler = function (e) { + var el = this.scrollEle; + var distance = e.distanceY; + if (e.scrollDirection === 'Up') { + el.scrollTop = el.scrollTop + distance; + } + else if (e.scrollDirection === 'Down') { + el.scrollTop = el.scrollTop - distance; + } + }; + VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) { + if (this.isDevice) { + var arrowEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(addDisableCls) ? removeDisableCls : addDisableCls; + var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(addDisableCls)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]); + } + } + else { + addDisableCls.classList.add(CLS_DISABLE); + addDisableCls.setAttribute('aria-disabled', 'true'); + addDisableCls.removeAttribute('tabindex'); + removeDisableCls.classList.remove(CLS_DISABLE); + removeDisableCls.setAttribute('aria-disabled', 'false'); + removeDisableCls.setAttribute('tabindex', '0'); + } + this.repeatScroll(); + }; + VScroll.prototype.scrollEventHandler = function (e) { + var target = e.target; + var height = target.offsetHeight; + var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP); + var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN); + var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY); + var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY); + var scrollTop = target.scrollTop; + if (scrollTop <= 0) { + scrollTop = -scrollTop; + } + if (this.isDevice) { + if (scrollTop < OVERLAY_MAXWID) { + upOverlay.style.height = scrollTop + 'px'; + } + else { + upOverlay.style.height = '40px'; + } + if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) { + downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px'; + } + else { + downOverlay.style.height = '40px'; + } + } + if (scrollTop === 0) { + this.arrowDisabling(navUpEle, navDownEle); + } + else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) { + this.arrowDisabling(navDownEle, navUpEle); + } + else { + var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE); + if (disEle) { + disEle.classList.remove(CLS_DISABLE); + disEle.setAttribute('aria-disabled', 'false'); + disEle.setAttribute('tabindex', '0'); + } + } + }; + /** + * Gets called when the model property changes.The data that describes the old and new values of property that changed. + * + * @param {VScrollModel} newProp - It contains the new value of data. + * @param {VScrollModel} oldProp - It contains the old value of data. + * @returns {void} + * @private + */ + VScroll.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'scrollStep': + this.setScrollState(); + break; + case 'enableRtl': + if (newProp.enableRtl) { + this.element.classList.add(CLS_RTL); + } + else { + this.element.classList.remove(CLS_RTL); + } + break; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], VScroll.prototype, "scrollStep", void 0); + VScroll = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], VScroll); + return VScroll; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/context-menu.js": +/*!************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/context-menu.js ***! + \************************************************************************************/ +/*! exports provided: ContextMenu */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContextMenu", function() { return ContextMenu; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _common_menu_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/menu-base */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-base.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/triple-slash-reference */ +/// + + + +/** + * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation. + * ```html + *
+ *
    + * ``` + * ```typescript + * + * ``` + */ +var ContextMenu = /** @__PURE__ @class */ (function (_super) { + __extends(ContextMenu, _super); + /** + * Constructor for creating the widget. + * + * @private + * @param {ContextMenuModel} options - Specifies the context menu model + * @param {string} element - Specifies the element + */ + function ContextMenu(options, element) { + return _super.call(this, options, element) || this; + } + /** + * For internal use only - prerender processing. + * + * @private + * @returns {void} + */ + ContextMenu.prototype.preRender = function () { + this.isMenu = false; + this.element.id = this.element.id || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('ej2-contextmenu'); + _super.prototype.preRender.call(this); + }; + ContextMenu.prototype.initialize = function () { + _super.prototype.initialize.call(this); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'role': 'menubar', 'tabindex': '0' }); + this.element.style.zIndex = Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["getZindexPartial"])(this.element).toString(); + }; + /** + * This method is used to open the ContextMenu in specified position. + * + * @param {number} top - To specify ContextMenu vertical positioning. + * @param {number} left - To specify ContextMenu horizontal positioning. + * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target. + * @function open + * @returns {void} + */ + ContextMenu.prototype.open = function (top, left, target) { + _super.prototype.openMenu.call(this, null, null, top, left, null, target); + }; + /** + * Closes the ContextMenu if it is opened. + * + * @function close + * @returns {void} + */ + ContextMenu.prototype.close = function () { + _super.prototype.closeMenu.call(this); + }; + /** + * Called internally if any of the property value changed. + * + * @private + * @param {ContextMenuModel} newProp - Specifies new properties + * @param {ContextMenuModel} oldProp - Specifies old properties + * @returns {void} + */ + ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) { + _super.prototype.onPropertyChanged.call(this, newProp, oldProp); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'filter': + this.close(); + this.filter = newProp.filter; + break; + case 'target': + this.unWireEvents(oldProp.target); + this.wireEvents(); + break; + } + } + }; + /** + * Get module name. + * + * @returns {string} - Module Name + * @private + */ + ContextMenu.prototype.getModuleName = function () { + return 'contextmenu'; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ContextMenu.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], ContextMenu.prototype, "filter", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _common_menu_base__WEBPACK_IMPORTED_MODULE_2__["MenuItem"]) + ], ContextMenu.prototype, "items", void 0); + ContextMenu = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], ContextMenu); + return ContextMenu; +}(_common_menu_base__WEBPACK_IMPORTED_MODULE_2__["MenuBase"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/index.js": +/*!*****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/index.js ***! + \*****************************************************************************/ +/*! exports provided: ContextMenu */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _context_menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./context-menu */ "./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/context-menu.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextMenu", function() { return _context_menu__WEBPACK_IMPORTED_MODULE_0__["ContextMenu"]; }); + +/** + * ContextMenu modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/index.js": +/*!****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/index.js ***! + \****************************************************************/ +/*! exports provided: HScroll, VScroll, addScrolling, destroyScroll, MenuAnimationSettings, MenuItem, FieldSettings, Item, Toolbar, AccordionActionSettings, AccordionAnimationSettings, AccordionItem, Accordion, ContextMenu, Menu, TabActionSettings, TabAnimationSettings, Header, TabItem, Tab, FieldsSettings, ActionSettings, NodeAnimationSettings, TreeView, Sidebar, BreadcrumbOverflowMode, BreadcrumbItem, Breadcrumb, CarouselSwipeMode, CarouselItem, Carousel, AppBar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HScroll", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["HScroll"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VScroll", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["VScroll"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addScrolling", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["addScrolling"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "destroyScroll", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["destroyScroll"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MenuAnimationSettings", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["MenuAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MenuItem", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["MenuItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldSettings", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["FieldSettings"]; }); + +/* harmony import */ var _toolbar_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toolbar/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return _toolbar_index__WEBPACK_IMPORTED_MODULE_1__["Item"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toolbar", function() { return _toolbar_index__WEBPACK_IMPORTED_MODULE_1__["Toolbar"]; }); + +/* harmony import */ var _accordion_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./accordion/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/accordion/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionActionSettings", function() { return _accordion_index__WEBPACK_IMPORTED_MODULE_2__["AccordionActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionAnimationSettings", function() { return _accordion_index__WEBPACK_IMPORTED_MODULE_2__["AccordionAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AccordionItem", function() { return _accordion_index__WEBPACK_IMPORTED_MODULE_2__["AccordionItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Accordion", function() { return _accordion_index__WEBPACK_IMPORTED_MODULE_2__["Accordion"]; }); + +/* harmony import */ var _context_menu_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./context-menu/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/context-menu/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ContextMenu", function() { return _context_menu_index__WEBPACK_IMPORTED_MODULE_3__["ContextMenu"]; }); + +/* harmony import */ var _menu_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./menu/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/menu/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Menu", function() { return _menu_index__WEBPACK_IMPORTED_MODULE_4__["Menu"]; }); + +/* harmony import */ var _tab_index__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./tab/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/tab/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabActionSettings", function() { return _tab_index__WEBPACK_IMPORTED_MODULE_5__["TabActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabAnimationSettings", function() { return _tab_index__WEBPACK_IMPORTED_MODULE_5__["TabAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _tab_index__WEBPACK_IMPORTED_MODULE_5__["Header"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabItem", function() { return _tab_index__WEBPACK_IMPORTED_MODULE_5__["TabItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tab", function() { return _tab_index__WEBPACK_IMPORTED_MODULE_5__["Tab"]; }); + +/* harmony import */ var _treeview_index__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./treeview/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldsSettings", function() { return _treeview_index__WEBPACK_IMPORTED_MODULE_6__["FieldsSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionSettings", function() { return _treeview_index__WEBPACK_IMPORTED_MODULE_6__["ActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeAnimationSettings", function() { return _treeview_index__WEBPACK_IMPORTED_MODULE_6__["NodeAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TreeView", function() { return _treeview_index__WEBPACK_IMPORTED_MODULE_6__["TreeView"]; }); + +/* harmony import */ var _sidebar_index__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sidebar/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sidebar", function() { return _sidebar_index__WEBPACK_IMPORTED_MODULE_7__["Sidebar"]; }); + +/* harmony import */ var _breadcrumb_index__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./breadcrumb/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/breadcrumb/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbOverflowMode", function() { return _breadcrumb_index__WEBPACK_IMPORTED_MODULE_8__["BreadcrumbOverflowMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return _breadcrumb_index__WEBPACK_IMPORTED_MODULE_8__["BreadcrumbItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return _breadcrumb_index__WEBPACK_IMPORTED_MODULE_8__["Breadcrumb"]; }); + +/* harmony import */ var _carousel_index__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./carousel/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/carousel/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CarouselSwipeMode", function() { return _carousel_index__WEBPACK_IMPORTED_MODULE_9__["CarouselSwipeMode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return _carousel_index__WEBPACK_IMPORTED_MODULE_9__["CarouselItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Carousel", function() { return _carousel_index__WEBPACK_IMPORTED_MODULE_9__["Carousel"]; }); + +/* harmony import */ var _appbar_index__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./appbar/index */ "./ej2-resources/22.1.37/scripts/ej2-navigations/appbar/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AppBar", function() { return _appbar_index__WEBPACK_IMPORTED_MODULE_10__["AppBar"]; }); + +/** + * Navigation all modules + */ + + + + + + + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/menu/index.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/menu/index.js ***! + \*********************************************************************/ +/*! exports provided: Menu */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./menu */ "./ej2-resources/22.1.37/scripts/ej2-navigations/menu/menu.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Menu", function() { return _menu__WEBPACK_IMPORTED_MODULE_0__["Menu"]; }); + +/** + * Menu modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/menu/menu.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/menu/menu.js ***! + \********************************************************************/ +/*! exports provided: Menu */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Menu", function() { return Menu; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_menu_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/menu-base */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/menu-base.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/triple-slash-reference */ +/// + + + +var VMENU = 'e-vertical'; +var SCROLLABLE = 'e-scrollable'; +var HAMBURGER = 'e-hamburger'; +/** + * The Menu is a graphical user interface that serve as navigation headers for your application or site. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Menu = /** @__PURE__ @class */ (function (_super) { + __extends(Menu, _super); + /** + * Constructor for creating the component. + * + * @private + * @param {MenuModel} options - Specifies the menu model + * @param {string} element - Specifies the element + */ + function Menu(options, element) { + var _this = _super.call(this, options, element) || this; + _this.tempItems = []; + return _this; + } + /** + * Get module name. + * + * @private + * @returns {string} - Module Name + */ + Menu.prototype.getModuleName = function () { + return 'menu'; + }; + /** + * For internal use only - prerender processing. + * + * @private + * @returns {void} + */ + Menu.prototype.preRender = function () { + this.isMenu = true; + this.element.id = this.element.id || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('ej2-menu'); + if (this.template) { + try { + if (typeof this.template !== 'function' && document.querySelectorAll(this.template).length) { + this.template = document.querySelector(this.template).innerHTML.trim(); + this.clearChanges(); + } + } + catch (e) { + /* action on catch */ + } + this.updateMenuItems(this.items); + } + else { + this.updateMenuItems(this.items); + } + _super.prototype.preRender.call(this); + }; + Menu.prototype.initialize = function () { + _super.prototype.initialize.call(this); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'role': 'menubar', 'tabindex': '0' }); + if (this.orientation === 'Vertical') { + this.element.classList.add(VMENU); + if (this.hamburgerMode && !this.target) { + this.element.previousElementSibling.classList.add(VMENU); + } + this.element.setAttribute('aria-orientation', 'vertical'); + } + else { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && !this.enableScrolling) { + this.element.parentElement.classList.add(SCROLLABLE); + } + } + if (this.hamburgerMode) { + this.element.parentElement.classList.add(HAMBURGER); + if (this.orientation === 'Horizontal') { + this.element.classList.add('e-hide-menu'); + } + } + }; + Menu.prototype.updateMenuItems = function (items) { + this.tempItems = items; + this.items = []; + this.tempItems.map(this.createMenuItems, this); + this.setProperties({ items: this.items }, true); + this.tempItems = []; + }; + /** + * Called internally if any of the property value changed. + * + * @private + * @param {MenuModel} newProp - Specifies the new properties. + * @param {MenuModel} oldProp - Specifies the old properties. + * @returns {void} + */ + Menu.prototype.onPropertyChanged = function (newProp, oldProp) { + var _this = this; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'orientation': + if (newProp.orientation === 'Vertical') { + this.element.classList.add(VMENU); + if (this.hamburgerMode) { + if (!this.target) { + this.element.previousElementSibling.classList.add(VMENU); + } + this.element.classList.remove('e-hide-menu'); + } + this.element.setAttribute('aria-orientation', 'vertical'); + } + else { + this.element.classList.remove(VMENU); + if (this.hamburgerMode) { + if (!this.target) { + this.element.previousElementSibling.classList.remove(VMENU); + } + this.element.classList.add('e-hide-menu'); + } + this.element.removeAttribute('aria-orientation'); + } + break; + case 'items': + if (!Object.keys(oldProp.items).length) { + this.updateMenuItems(newProp.items); + } + break; + case 'hamburgerMode': + if (!this.element.previousElementSibling) { + _super.prototype.createHeaderContainer.call(this); + } + if (newProp.hamburgerMode) { + this.element.parentElement.classList.add(HAMBURGER); + [].slice.call(this.element.getElementsByClassName('e-blankicon')).forEach(function (li) { + li.style[_this.enableRtl ? 'paddingRight' : 'paddingLeft'] = ''; + }); + } + else { + this.element.parentElement.classList.remove(HAMBURGER); + if (this.orientation === 'Vertical') { + this.setBlankIconStyle(this.element); + } + } + if (this.orientation === 'Vertical') { + if (!this.target) { + this.element.previousElementSibling.classList.add(VMENU); + } + this.element.classList.remove('e-hide-menu'); + } + else { + if (this.target) { + this.element.previousElementSibling.classList.add(VMENU); + } + else { + this.element.previousElementSibling.classList.remove(VMENU); + } + this.element.classList[newProp.hamburgerMode ? 'add' : 'remove']('e-hide-menu'); + } + break; + case 'title': + if (this.hamburgerMode && this.element.previousElementSibling) { + newProp.title = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(newProp.title) : newProp.title; + this.element.previousElementSibling.querySelector('.e-menu-title').innerHTML = newProp.title; + } + break; + case 'target': + if (this.hamburgerMode) { + this.unWireEvents(oldProp.target); + this.wireEvents(); + if (this.orientation === 'Horizontal') { + if (!newProp.target) { + if (!this.element.previousElementSibling) { + _super.prototype.createHeaderContainer.call(this); + } + this.element.previousElementSibling.classList.remove(VMENU); + } + else { + this.element.previousElementSibling.classList.add(VMENU); + } + this.element.classList.add('e-hide-menu'); + } + } + break; + } + } + _super.prototype.onPropertyChanged.call(this, newProp, oldProp); + }; + Menu.prototype.createMenuItems = function (item) { + var idx; + var i; + var items = this.items; + var pIdField = this.getField('parentId'); + if (item["" + pIdField]) { + idx = this.getIndex(item["" + pIdField].toString(), true); + for (i = 0; i < idx.length; i++) { + if (!items[idx[i]].items) { + items[idx[i]].items = []; + } + items = items[idx[i]].items; + } + items.push(item); + } + else { + this.items.push(item); + } + }; + /** + * This method is used to open the Menu in hamburger mode. + * + * @function open + * @returns {void} + */ + Menu.prototype.open = function () { + _super.prototype.openHamburgerMenu.call(this); + }; + /** + * Closes the Menu if it is opened in hamburger mode. + * + * @function close + * @returns {void} + */ + Menu.prototype.close = function () { + _super.prototype.closeHamburgerMenu.call(this); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Horizontal') + ], Menu.prototype, "orientation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Menu.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Menu.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Menu.prototype, "enableScrolling", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Menu.prototype, "hamburgerMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Menu') + ], Menu.prototype, "title", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Menu.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, _common_menu_base__WEBPACK_IMPORTED_MODULE_1__["FieldSettings"]) + ], Menu.prototype, "fields", void 0); + Menu = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Menu); + return Menu; +}(_common_menu_base__WEBPACK_IMPORTED_MODULE_1__["MenuBase"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/index.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/index.js ***! + \************************************************************************/ +/*! exports provided: Sidebar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar */ "./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/sidebar.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Sidebar", function() { return _sidebar__WEBPACK_IMPORTED_MODULE_0__["Sidebar"]; }); + +/** + * Sidebar modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/sidebar.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/sidebar/sidebar.js ***! + \**************************************************************************/ +/*! exports provided: Sidebar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Sidebar", function() { return Sidebar; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + +var CONTROL = 'e-control'; +var ROOT = 'e-sidebar'; +var DOCKER = 'e-dock'; +var CLOSE = 'e-close'; +var OPEN = 'e-open'; +var TRASITION = 'e-transition'; +var DEFAULTBACKDROP = 'e-sidebar-overlay'; +var RTL = 'e-rtl'; +var RIGHT = 'e-right'; +var LEFT = 'e-left'; +var OVER = 'e-over'; +var PUSH = 'e-push'; +var SLIDE = 'e-slide'; +var VISIBILITY = 'e-visibility'; +var DISPLAY = 'e-sidebar-display'; +var MAINCONTENTANIMATION = 'e-content-animation'; +var DISABLEANIMATION = 'e-disable-animation'; +var CONTEXT = 'e-sidebar-context'; +var SIDEBARABSOLUTE = 'e-sidebar-absolute'; +/** + * Sidebar is an expandable or collapsible + * component that typically act as a side container to place the primary or secondary content alongside of the main content. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Sidebar = /** @__PURE__ @class */ (function (_super) { + __extends(Sidebar, _super); + /* eslint-enable */ + function Sidebar(options, element) { + return _super.call(this, options, element) || this; + } + Sidebar.prototype.preRender = function () { + this.setWidth(); + }; + Sidebar.prototype.render = function () { + this.initialize(); + this.wireEvents(); + this.renderComplete(); + }; + Sidebar.prototype.initialize = function () { + this.setTarget(); + this.addClass(); + this.setZindex(); + if (this.enableDock) { + this.setDock(); + } + if (this.isOpen) { + this.show(); + this.firstRender = true; + } + else { + this.setMediaQuery(); + } + this.checkType(true); + this.setType(this.type); + this.setCloseOnDocumentClick(); + this.setEnableRTL(); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.windowWidth = window.innerWidth; + } + }; + Sidebar.prototype.setEnableRTL = function () { + (this.enableRtl ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], RTL); + }; + Sidebar.prototype.setTarget = function () { + this.targetEle = this.element.nextElementSibling; + this.sidebarEleCopy = this.element.cloneNode(true); + if (typeof (this.target) === 'string') { + this.setProperties({ target: document.querySelector(this.target) }, true); + } + if (this.target) { + this.target.insertBefore(this.element, this.target.children[0]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], SIDEBARABSOLUTE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.target], CONTEXT); + this.targetEle = this.getTargetElement(); + } + }; + Sidebar.prototype.getTargetElement = function () { + var siblingElement = this.element.nextElementSibling; + while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(siblingElement)) { + if (!siblingElement.classList.contains(ROOT)) { + break; + } + siblingElement = siblingElement.nextElementSibling; + } + return siblingElement; + }; + Sidebar.prototype.setCloseOnDocumentClick = function () { + if (this.closeOnDocumentClick) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousedown touchstart', this.documentclickHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousedown touchstart', this.documentclickHandler); + } + }; + Sidebar.prototype.setWidth = function () { + if (this.enableDock && this.position === 'Left') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': this.setDimension(this.dockSize) }); + } + else if (this.enableDock && this.position === 'Right') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': this.setDimension(this.dockSize) }); + } + else if (!this.enableDock) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': this.setDimension(this.width) }); + } + }; + Sidebar.prototype.setDimension = function (width) { + if (typeof width === 'number') { + width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else if (typeof width === 'string') { + width = (width.match(/px|%|em/)) ? width : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(width); + } + else { + width = '100%'; + } + return width; + }; + Sidebar.prototype.setZindex = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'z-index': '' + this.zIndex }); + }; + Sidebar.prototype.addClass = function () { + if (this.element.tagName === 'EJS-SIDEBAR') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], DISPLAY); + } + var classELement = document.querySelector('.e-main-content'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(classELement || this.targetEle)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([classELement || this.targetEle], [MAINCONTENTANIMATION]); + } + this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : null; + if (!this.enableDock && this.type !== 'Auto') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [VISIBILITY]); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [OPEN, CLOSE, RIGHT, LEFT, SLIDE, PUSH, OVER]); + this.element.classList.add(ROOT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], (this.position === 'Right') ? RIGHT : LEFT); + if (this.enableDock) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], DOCKER); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tabIndex)) { + this.element.setAttribute('tabindex', this.tabIndex); + } + if (this.type === 'Auto' && !_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.show(); + } + else if (!this.isOpen) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLOSE); + } + }; + Sidebar.prototype.checkType = function (val) { + if (!(this.type === 'Push' || this.type === 'Over' || this.type === 'Slide')) { + this.type = 'Auto'; + } + else { + if (!this.element.classList.contains(CLOSE) && !val) { + this.hide(); + } + } + }; + Sidebar.prototype.transitionEnd = function (e) { + this.setDock(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) && !this.firstRender) { + this.triggerChange(); + } + this.firstRender = false; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'transitionend', this.transitionEnd); + }; + Sidebar.prototype.destroyBackDrop = function () { + var sibling = document.querySelector('.e-main-content') || this.targetEle; + if (this.target && this.showBackdrop && sibling && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.defaultBackdropDiv)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.defaultBackdropDiv], DEFAULTBACKDROP); + } + else if (this.showBackdrop && this.modal) { + this.modal.style.display = 'none'; + this.modal.outerHTML = ''; + this.modal = null; + } + }; + /* eslint-disable */ + /** + * Hide the Sidebar component, if it is in an open state. + * + * @returns {void} + * + */ + Sidebar.prototype.hide = function (e) { + var _this = this; + var closeArguments = { + model: this, + element: this.element, + cancel: false, + isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e), + event: (e || null) + }; + this.trigger('close', closeArguments, function (observedcloseArgs) { + if (!observedcloseArgs.cancel) { + if (_this.element.classList.contains(CLOSE)) { + return; + } + if (_this.element.classList.contains(OPEN) && !_this.animate) { + _this.triggerChange(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(_this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(_this.enableDock ? _this.dockSize : _this.width) }); + _this.setType(_this.type); + var sibling = document.querySelector('.e-main-content') || _this.targetEle; + if (!_this.enableDock && sibling) { + sibling.style.transform = 'translateX(' + 0 + 'px)'; + sibling.style[_this.position === 'Left' ? 'marginLeft' : 'marginRight'] = '0px'; + } + _this.destroyBackDrop(); + _this.setAnimation(); + if (_this.type === 'Slide') { + document.body.classList.remove('e-sidebar-overflow'); + } + _this.setProperties({ isOpen: false }, true); + if (_this.enableDock) { + setTimeout(function () { return _this.setTimeOut(); }, 50); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(_this.element, 'transitionend', _this.transitionEnd, _this); + } + }); + }; + Sidebar.prototype.setTimeOut = function () { + var sibling = document.querySelector('.e-main-content') || this.targetEle; + var elementWidth = this.element.getBoundingClientRect().width; + if (this.element.classList.contains(OPEN) && sibling && !(this.type === 'Over' && this.enableDock)) { + if (this.position === 'Left') { + sibling.style.marginLeft = this.setDimension(this.width === 'auto' ? elementWidth : this.width); + } + else { + sibling.style.marginRight = this.setDimension(this.width === 'auto' ? elementWidth : this.width); + } + } + else if (this.element.classList.contains(CLOSE) && sibling) { + if (this.position === 'Left') { + sibling.style.marginLeft = this.setDimension(this.dockSize === 'auto' ? elementWidth : this.dockSize); + } + else { + sibling.style.marginRight = this.setDimension(this.dockSize === 'auto' ? elementWidth : this.dockSize); + } + } + }; + /* eslint-disable */ + /** + * Shows the Sidebar component, if it is in closed state. + * + * @returns {void} + */ + Sidebar.prototype.show = function (e) { + var _this = this; + var openArguments = { + model: this, + element: this.element, + cancel: false, + isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e), + event: (e || null) + }; + this.trigger('open', openArguments, function (observedopenArgs) { + if (!observedopenArgs.cancel) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], VISIBILITY); + if (_this.element.classList.contains(OPEN)) { + return; + } + if (_this.element.classList.contains(CLOSE) && !_this.animate) { + _this.triggerChange(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], [OPEN, TRASITION]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(_this.element, { 'transform': '' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(_this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(_this.width) }); + _this.setType(_this.type); + _this.createBackDrop(); + _this.setAnimation(); + if (_this.type === 'Slide') { + document.body.classList.add('e-sidebar-overflow'); + } + _this.setProperties({ isOpen: true }, true); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(_this.element, 'transitionend', _this.transitionEnd, _this); + } + }); + }; + Sidebar.prototype.setAnimation = function () { + if (this.animate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], DISABLEANIMATION); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], DISABLEANIMATION); + } + }; + Sidebar.prototype.triggerChange = function () { + var changeArguments = { name: 'change', element: this.element }; + this.trigger('change', changeArguments); + }; + Sidebar.prototype.setDock = function () { + if (this.enableDock && this.position === 'Left' && !this.getState()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'transform': 'translateX(' + -100 + '%) translateX(' + this.setDimension(this.dockSize) + ')' }); + } + else if (this.enableDock && this.position === 'Right' && !this.getState()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'transform': 'translateX(' + 100 + '%) translateX(' + '-' + this.setDimension(this.dockSize) + ')' }); + } + if (this.element.classList.contains(CLOSE) && this.enableDock) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': this.setDimension(this.dockSize) }); + } + }; + Sidebar.prototype.createBackDrop = function () { + if (this.target && this.showBackdrop && this.getState()) { + var targetString = this.target; + var sibling = document.querySelector('.e-main-content') || this.targetEle; + this.defaultBackdropDiv = this.createElement('div'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.defaultBackdropDiv], DEFAULTBACKDROP); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.defaultBackdropDiv, { height: targetString.style.height }); + sibling.appendChild(this.defaultBackdropDiv); + } + else if (this.showBackdrop && !this.modal && this.getState()) { + this.modal = this.createElement('div'); + this.modal.className = DEFAULTBACKDROP; + this.modal.style.display = 'block'; + document.body.appendChild(this.modal); + } + }; + Sidebar.prototype.getPersistData = function () { + return this.addOnPersist(['type', 'position', 'isOpen']); + }; + /** + * Returns the current module name. + * + * @returns {string} - returns module name. + * @private + * + */ + Sidebar.prototype.getModuleName = function () { + return 'sidebar'; + }; + /** + * Shows or hides the Sidebar based on the current state. + * + * @returns {void} + */ + Sidebar.prototype.toggle = function () { + if (this.element.classList.contains(OPEN)) { + this.hide(); + } + else { + this.show(); + } + }; + Sidebar.prototype.getState = function () { + return this.element.classList.contains(OPEN) ? true : false; + }; + Sidebar.prototype.setMediaQuery = function () { + if (this.mediaQuery) { + var media = false; + if (typeof (this.mediaQuery) === 'string') { + media = window.matchMedia(this.mediaQuery).matches; + } + else { + media = (this.mediaQuery).matches; + } + if (media && this.windowWidth !== window.innerWidth) { + this.show(); + } + else if (this.getState() && this.windowWidth !== window.innerWidth) { + this.hide(); + } + } + }; + Sidebar.prototype.resize = function () { + if (this.type === 'Auto') { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], OVER); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], PUSH); + } + } + this.setMediaQuery(); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.windowWidth = window.innerWidth; + } + }; + Sidebar.prototype.documentclickHandler = function (e) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + CONTROL + '' + '.' + ROOT)) { + return; + } + this.hide(e); + }; + Sidebar.prototype.enableGestureHandler = function (args) { + if (!this.isOpen && this.position === 'Left' && args.swipeDirection === 'Right' && + (args.startX <= 20 && args.distanceX >= 50 && args.velocity >= 0.5)) { + this.show(); + } + else if (this.isOpen && this.position === 'Left' && args.swipeDirection === 'Left') { + this.hide(); + } + else if (this.isOpen && this.position === 'Right' && args.swipeDirection === 'Right') { + this.hide(); + } + else if (!this.isOpen && this.position === 'Right' && args.swipeDirection === 'Left' + && (window.innerWidth - args.startX <= 20 && args.distanceX >= 50 && args.velocity >= 0.5)) { + this.show(); + } + }; + Sidebar.prototype.setEnableGestures = function () { + if (this.enableGestures) { + this.mainContentEle = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](document.body, { swipe: this.enableGestureHandler.bind(this) }); + this.sidebarEle = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { swipe: this.enableGestureHandler.bind(this) }); + } + else { + if (this.mainContentEle && this.sidebarEle) { + this.mainContentEle.destroy(); + this.sidebarEle.destroy(); + } + } + }; + Sidebar.prototype.wireEvents = function () { + this.setEnableGestures(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'resize', this.resize, this); + }; + Sidebar.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'resize', this.resize); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousedown touchstart', this.documentclickHandler); + if (this.mainContentEle) { + this.mainContentEle.destroy(); + } + if (this.sidebarEle) { + this.sidebarEle.destroy(); + } + }; + /** + * Called internally if any of the property value changed. + * + * @param {SidebarModel} newProp - specifies newProp value. + * @param {SidebarModel} oldProp - specifies oldProp value. + * @returns {void} + * @private + * + */ + Sidebar.prototype.onPropertyChanged = function (newProp, oldProp) { + var sibling = document.querySelector('.e-main-content') || this.targetEle; + var isRendered = this.isServerRendered; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'isOpen': + if (this.isOpen) { + this.show(); + } + else { + this.hide(); + } + break; + case 'width': + this.setWidth(); + if (!this.getState()) { + this.setDock(); + } + break; + case 'animate': + this.setAnimation(); + break; + case 'type': + this.checkType(false); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [VISIBILITY]); + this.addClass(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.type === 'Auto' ? (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice ? ['e-over'] : + ['e-push']) : ['e-' + this.type.toLowerCase()]); + break; + case 'position': + this.element.style.transform = ''; + this.setDock(); + if (sibling) { + sibling.style[this.position === 'Left' ? 'marginRight' : 'marginLeft'] = '0px'; + } + if (this.position === 'Right') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], LEFT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], RIGHT); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], RIGHT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], LEFT); + } + this.setType(this.type); + break; + case 'showBackdrop': + if (this.showBackdrop) { + this.createBackDrop(); + } + else { + if (this.modal) { + this.modal.style.display = 'none'; + this.modal.outerHTML = ''; + this.modal = null; + } + } + break; + case 'target': + if (typeof (this.target) === 'string') { + this.setProperties({ target: document.querySelector(this.target) }, true); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], SIDEBARABSOLUTE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([oldProp.target], CONTEXT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(sibling, { 'margin-left': 0, 'margin-right': 0 }); + document.body.insertAdjacentElement('afterbegin', this.element); + } + this.isServerRendered = false; + _super.prototype.refresh.call(this); + this.isServerRendered = isRendered; + break; + case 'closeOnDocumentClick': + this.setCloseOnDocumentClick(); + break; + case 'enableDock': + if (!this.getState()) { + this.setDock(); + } + break; + case 'zIndex': + this.setZindex(); + break; + case 'mediaQuery': + this.setMediaQuery(); + break; + case 'enableGestures': + this.setEnableGestures(); + break; + case 'enableRtl': + this.setEnableRTL(); + break; + } + } + }; + Sidebar.prototype.setType = function (type) { + var elementWidth = this.element.getBoundingClientRect().width; + this.setZindex(); + var sibling = document.querySelector('.e-main-content') || this.targetEle; + if (sibling) { + sibling.style.transform = 'translateX(' + 0 + 'px)'; + if (!_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && this.type !== 'Auto' && !(this.type === 'Over' && this.enableDock)) { + sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = '0px'; + } + } + var margin = this.position === 'Left' ? elementWidth + 'px' : elementWidth + 'px'; + var eleWidth = this.position === 'Left' ? elementWidth : -(elementWidth); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [PUSH, OVER, SLIDE]); + switch (type) { + case 'Push': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [PUSH]); + if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) { + sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin; + } + break; + case 'Slide': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [SLIDE]); + if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) { + sibling.style.transform = 'translateX(' + eleWidth + 'px)'; + } + break; + case 'Over': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [OVER]); + if (this.enableDock && (this.element.classList.contains(CLOSE) || this.isOpen)) { + if (sibling) { + sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = this.setDimension(this.dockSize); + } + } + break; + case 'Auto': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [TRASITION]); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + if (sibling && (this.enableDock) && !this.getState()) { + sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], PUSH); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], OVER); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], PUSH); + if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) { + sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin; + } + } + this.createBackDrop(); + } + }; + /** + * Removes the control from the DOM and detaches all its related event handlers. Also it removes the attributes and classes. + * + * @returns {void} + * + */ + Sidebar.prototype.destroy = function () { + _super.prototype.destroy.call(this); + if (this.target) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.target], CONTEXT); + } + this.destroyBackDrop(); + if (this.element) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [OPEN, CLOSE, PUSH, SLIDE, OVER, LEFT, RIGHT, TRASITION]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], SIDEBARABSOLUTE); + this.element.style.width = ''; + this.element.style.zIndex = ''; + this.element.style.transform = ''; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.sidebarEleCopy.getAttribute('tabindex'))) { + this.element.setAttribute('tabindex', this.tabIndex); + } + else { + this.element.removeAttribute('tabindex'); + } + } + this.windowWidth = null; + var sibling = document.querySelector('.e-main-content') || this.targetEle; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(sibling)) { + sibling.style.margin = ''; + sibling.style.transform = ''; + } + this.unWireEvents(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Sidebar.prototype, "dockSize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Sidebar.prototype, "mediaQuery", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "enableDock", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('en-US') + ], Sidebar.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Sidebar.prototype, "enableGestures", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "isOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "enableRtl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Sidebar.prototype, "animate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Sidebar.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "closeOnDocumentClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], Sidebar.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Sidebar.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Sidebar.prototype, "showBackdrop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], Sidebar.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Sidebar.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1000) + ], Sidebar.prototype, "zIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sidebar.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sidebar.prototype, "close", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sidebar.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sidebar.prototype, "change", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Sidebar.prototype, "destroyed", void 0); + Sidebar = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Sidebar); + return Sidebar; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/tab/index.js": +/*!********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/tab/index.js ***! + \********************************************************************/ +/*! exports provided: TabActionSettings, TabAnimationSettings, Header, TabItem, Tab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _tab__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tab */ "./ej2-resources/22.1.37/scripts/ej2-navigations/tab/tab.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabActionSettings", function() { return _tab__WEBPACK_IMPORTED_MODULE_0__["TabActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabAnimationSettings", function() { return _tab__WEBPACK_IMPORTED_MODULE_0__["TabAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return _tab__WEBPACK_IMPORTED_MODULE_0__["Header"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabItem", function() { return _tab__WEBPACK_IMPORTED_MODULE_0__["TabItem"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tab", function() { return _tab__WEBPACK_IMPORTED_MODULE_0__["Tab"]; }); + +/** + * Tab modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/tab/tab.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/tab/tab.js ***! + \******************************************************************/ +/*! exports provided: TabActionSettings, TabAnimationSettings, Header, TabItem, Tab */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabActionSettings", function() { return TabActionSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabAnimationSettings", function() { return TabAnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Header", function() { return Header; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabItem", function() { return TabItem; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tab", function() { return Tab; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _toolbar_toolbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toolbar/toolbar */ "./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/toolbar.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + +var CLS_TAB = 'e-tab'; +var CLS_HEADER = 'e-tab-header'; +var CLS_BLA_TEM = 'blazor-template'; +var CLS_CONTENT = 'e-content'; +var CLS_NEST = 'e-nested'; +var CLS_ITEMS = 'e-items'; +var CLS_ITEM = 'e-item'; +var CLS_TEMPLATE = 'e-template'; +var CLS_RTL = 'e-rtl'; +var CLS_ACTIVE = 'e-active'; +var CLS_DISABLE = 'e-disable'; +var CLS_HIDDEN = 'e-hidden'; +var CLS_FOCUS = 'e-focused'; +var CLS_ICONS = 'e-icons'; +var CLS_ICON = 'e-icon'; +var CLS_ICON_TAB = 'e-icon-tab'; +var CLS_ICON_CLOSE = 'e-close-icon'; +var CLS_CLOSE_SHOW = 'e-close-show'; +var CLS_TEXT = 'e-tab-text'; +var CLS_INDICATOR = 'e-indicator'; +var CLS_WRAP = 'e-tab-wrap'; +var CLS_TEXT_WRAP = 'e-text-wrap'; +var CLS_TAB_ICON = 'e-tab-icon'; +var CLS_TB_ITEMS = 'e-toolbar-items'; +var CLS_TB_ITEM = 'e-toolbar-item'; +var CLS_TB_POP = 'e-toolbar-pop'; +var CLS_TB_POPUP = 'e-toolbar-popup'; +var CLS_HOR_NAV = 'e-hor-nav'; +var CLS_POPUP_OPEN = 'e-popup-open'; +var CLS_POPUP_CLOSE = 'e-popup-close'; +var CLS_PROGRESS = 'e-progress'; +var CLS_IGNORE = 'e-ignore'; +var CLS_OVERLAY = 'e-overlay'; +var CLS_HSCRCNT = 'e-hscroll-content'; +var CLS_VSCRCNT = 'e-vscroll-content'; +var CLS_VTAB = 'e-vertical-tab'; +var CLS_VERTICAL = 'e-vertical'; +var CLS_VLEFT = 'e-vertical-left'; +var CLS_VRIGHT = 'e-vertical-right'; +var CLS_HBOTTOM = 'e-horizontal-bottom'; +var CLS_FILL = 'e-fill-mode'; +var TABITEMPREFIX = 'tabitem_'; +var CLS_REORDER_ACTIVE_ITEM = 'e-reorder-active-item'; +/** + * Objects used for configuring the Tab selecting item action properties. + */ +var TabActionSettings = /** @__PURE__ @class */ (function (_super) { + __extends(TabActionSettings, _super); + function TabActionSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SlideLeftIn') + ], TabActionSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(600) + ], TabActionSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('ease') + ], TabActionSettings.prototype, "easing", void 0); + return TabActionSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Objects used for configuring the Tab animation properties. + */ +var TabAnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(TabAnimationSettings, _super); + function TabAnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideLeftIn', duration: 600, easing: 'ease' }, TabActionSettings) + ], TabAnimationSettings.prototype, "previous", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideRightIn', duration: 600, easing: 'ease' }, TabActionSettings) + ], TabAnimationSettings.prototype, "next", void 0); + return TabAnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Objects used for configuring the Tab item header properties. + */ +var Header = /** @__PURE__ @class */ (function (_super) { + __extends(Header, _super); + function Header() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Header.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Header.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('left') + ], Header.prototype, "iconPosition", void 0); + return Header; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * An array of object that is used to configure the Tab. + */ +var TabItem = /** @__PURE__ @class */ (function (_super) { + __extends(TabItem, _super); + function TabItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, Header) + ], TabItem.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TabItem.prototype, "headerTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], TabItem.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], TabItem.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TabItem.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], TabItem.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TabItem.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], TabItem.prototype, "tabIndex", void 0); + return TabItem; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Tab is a content panel to show multiple contents in a single space, one at a time. + * Each Tab item has an associated content, that will be displayed based on the active Tab header item. + * ```html + *
    + * + * ``` + */ +var Tab = /** @__PURE__ @class */ (function (_super) { + __extends(Tab, _super); + /** + * Initializes a new instance of the Tab class. + * + * @param {TabModel} options - Specifies Tab model properties as options. + * @param {string | HTMLElement} element - Specifies the element that is rendered as a Tab. + */ + function Tab(options, element) { + var _this = _super.call(this, options, element) || this; + _this.show = {}; + _this.hide = {}; + _this.maxHeight = 0; + _this.title = 'Close'; + _this.isInteracted = false; + _this.lastIndex = 0; + _this.isAdd = false; + _this.isIconAlone = false; + _this.draggableItems = []; + _this.resizeContext = _this.refreshActiveTabBorder.bind(_this); + /** + * Contains the keyboard configuration of the Tab. + */ + _this.keyConfigs = { + tab: 'tab', + home: 'home', + end: 'end', + enter: 'enter', + space: 'space', + delete: 'delete', + moveLeft: 'leftarrow', + moveRight: 'rightarrow', + moveUp: 'uparrow', + moveDown: 'downarrow' + }; + return _this; + } + /** + * Removes the component from the DOM and detaches all its related event handlers, attributes and classes. + * + * @returns {void} + */ + Tab.prototype.destroy = function () { + if (this.isReact || this.isAngular) { + this.clearTemplate(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tbObj)) { + this.tbObj.destroy(); + this.tbObj = null; + } + this.unWireEvents(); + this.element.removeAttribute('aria-disabled'); + this.expTemplateContent(); + if (!this.isTemplate) { + while (this.element.firstElementChild) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.element.firstElementChild); + } + } + else { + var cntEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element); + this.element.classList.remove(CLS_TEMPLATE); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cntEle)) { + cntEle.innerHTML = this.cnt; + } + } + if (this.btnCls) { + this.btnCls = null; + } + this.hdrEle = null; + this.cntEle = null; + this.tbItems = null; + this.tbItem = null; + this.tbPop = null; + this.prevItem = null; + this.popEle = null; + this.bdrLine = null; + this.content = null; + this.dragItem = null; + this.cloneElement = null; + this.draggingItems = []; + if (this.draggableItems && this.draggableItems.length > 0) { + for (var i = 0; i < this.draggableItems.length; i++) { + this.draggableItems[i].destroy(); + this.draggableItems[i] = null; + } + this.draggableItems = []; + } + _super.prototype.destroy.call(this); + this.trigger('destroyed'); + }; + /** + * Refresh the tab component + * + * @returns {void} + */ + Tab.prototype.refresh = function () { + if (this.isReact) { + this.clearTemplate(); + } + _super.prototype.refresh.call(this); + if (this.isReact) { + this.renderReactTemplates(); + } + }; + /** + * Initialize component + * + * @private + * @returns {void} + */ + Tab.prototype.preRender = function () { + var nested = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, '.' + CLS_CONTENT); + this.prevIndex = 0; + this.isNested = false; + this.isPopup = false; + this.initRender = true; + this.isSwiped = false; + this.itemIndexArray = []; + this.templateEle = []; + if (this.allowDragAndDrop) { + this.dragArea = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dragArea) ? this.dragArea : '#' + this.element.id + ' ' + ('.' + CLS_HEADER); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nested)) { + nested.parentElement.classList.add(CLS_NEST); + this.isNested = true; + } + var name = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name; + var css = (name === 'msie') ? 'e-ie' : (name === 'edge') ? 'e-edge' : (name === 'safari') ? 'e-safari' : ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width), 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height) }); + this.setCssClass(this.element, this.cssClass, true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-disabled': 'false' }); + this.setCssClass(this.element, css, true); + this.updatePopAnimationConfig(); + }; + /** + * Initialize the component rendering + * + * @private + * @returns {void} + */ + Tab.prototype.render = function () { + this.btnCls = this.createElement('span', { className: CLS_ICONS + ' ' + CLS_ICON_CLOSE, attrs: { title: this.title } }); + this.tabId = this.element.id.length > 0 ? ('-' + this.element.id) : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getRandomId"])(); + this.renderContainer(); + this.wireEvents(); + this.initRender = false; + }; + Tab.prototype.renderContainer = function () { + var ele = this.element; + this.items.forEach(function (item, index) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.id) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.setProperties)) { + item.setProperties({ id: TABITEMPREFIX + index.toString() }, true); + } + }); + if (this.items.length > 0 && ele.children.length === 0) { + ele.appendChild(this.createElement('div', { className: CLS_CONTENT })); + this.setOrientation(this.headerPlacement, this.createElement('div', { className: CLS_HEADER })); + this.isTemplate = false; + } + else if (this.element.children.length > 0) { + this.isTemplate = true; + ele.classList.add(CLS_TEMPLATE); + var header = ele.querySelector('.' + CLS_HEADER); + if (header && this.headerPlacement === 'Bottom') { + this.setOrientation(this.headerPlacement, header); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, this.element)) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element))) { + this.renderHeader(); + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tbItems)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.tbItems, { selector: '.e-tab-wrap' }); + } + this.renderContent(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element).length > 0) { + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element); + this.bdrLine = this.createElement('div', { className: CLS_INDICATOR + ' ' + CLS_HIDDEN + ' ' + CLS_IGNORE }); + var scrCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + this.scrCntClass, this.tbItems); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrCnt)) { + scrCnt.insertBefore(this.bdrLine, scrCnt.firstChild); + } + else { + this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstChild); + } + this.setContentHeight(true); + this.select(this.selectedItem); + } + this.setRTL(this.enableRtl); + } + }; + Tab.prototype.renderHeader = function () { + var _this = this; + var hdrPlace = this.headerPlacement; + var tabItems = []; + this.hdrEle = this.getTabHeader(); + this.addVerticalClass(); + if (!this.isTemplate) { + tabItems = this.parseObject(this.items, 0); + } + else { + if (this.element.children.length > 1 && this.element.children[1].classList.contains(CLS_HEADER)) { + this.setProperties({ headerPlacement: 'Bottom' }, true); + } + var count = this.hdrEle.children.length; + var hdrItems = []; + for (var i = 0; i < count; i++) { + hdrItems.push(this.hdrEle.children.item(i)); + } + if (count > 0) { + var tabItems_1 = this.createElement('div', { className: CLS_ITEMS }); + this.hdrEle.appendChild(tabItems_1); + hdrItems.forEach(function (item, index) { + _this.lastIndex = index; + var attr = { + className: CLS_ITEM, id: CLS_ITEM + _this.tabId + '_' + index + }; + var txt = _this.createElement('span', { + className: CLS_TEXT, attrs: { 'role': 'presentation' } + }).outerHTML; + var cont = _this.createElement('div', { + className: CLS_TEXT_WRAP, innerHTML: txt + _this.btnCls.outerHTML + }).outerHTML; + var wrap = _this.createElement('div', { + className: CLS_WRAP, innerHTML: cont, + attrs: { role: 'tab', tabIndex: '-1', 'aria-selected': 'false', 'aria-controls': CLS_CONTENT + _this.tabId + '_' + index, 'aria-disabled': 'false' } + }); + wrap.querySelector('.' + CLS_TEXT).appendChild(item); + tabItems_1.appendChild(_this.createElement('div', attr)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, tabItems_1)[index].appendChild(wrap); + }); + } + } + this.tbObj = new _toolbar_toolbar__WEBPACK_IMPORTED_MODULE_1__["Toolbar"]({ + width: (hdrPlace === 'Left' || hdrPlace === 'Right') ? 'auto' : '100%', + height: (hdrPlace === 'Left' || hdrPlace === 'Right') ? '100%' : 'auto', + overflowMode: this.overflowMode, + items: (tabItems.length !== 0) ? tabItems : [], + clicked: this.clickHandler.bind(this), + scrollStep: this.scrollStep, + enableHtmlSanitizer: this.enableHtmlSanitizer, + cssClass: this.cssClass + }); + this.tbObj.isStringTemplate = true; + this.tbObj.createElement = this.createElement; + this.tbObj.appendTo(this.hdrEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.hdrEle, { role: 'tablist' }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute('aria-label'))) { + this.hdrEle.setAttribute('aria-label', this.element.getAttribute('aria-label')); + this.element.removeAttribute('aria-label'); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.getAttribute('aria-labelledby'))) { + this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby')); + this.element.removeAttribute('aria-labelledby'); + } + this.setCloseButton(this.showCloseButton); + var toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(toolbarHeader)) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(toolbarHeader.id) || toolbarHeader.id === '') { + toolbarHeader.id = this.element.id + '_' + 'tab_header_items'; + } + } + }; + Tab.prototype.renderContent = function () { + this.cntEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element); + var hdrItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element); + if (this.isTemplate) { + this.cnt = (this.cntEle.children.length > 0) ? this.cntEle.innerHTML : ''; + var contents = this.cntEle.children; + for (var i = 0; i < hdrItem.length; i++) { + if (contents.length - 1 >= i) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([contents.item(i)], CLS_ITEM); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(contents.item(i), { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + i }); + contents.item(i).id = CLS_CONTENT + this.tabId + '_' + i; + } + } + } + }; + Tab.prototype.reRenderItems = function () { + this.renderContainer(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cntEle)) { + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.cntEle, { swipe: this.swipeHandler.bind(this) }); + } + }; + Tab.prototype.parseObject = function (items, index) { + var _this = this; + var tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-tab-header .' + CLS_TB_ITEM, this.element); + var maxId = this.lastIndex; + if (!this.isReplace && tbItems.length > 0) { + var idList_1 = []; + tbItems.forEach(function (item) { + idList_1.push(_this.getIndexFromEle(item.id)); + }); + maxId = Math.max.apply(Math, idList_1); + } + var tItems = []; + var txtWrapEle; + var spliceArray = []; + var i = 0; + items.forEach(function (item, i) { + var pos = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.iconPosition)) ? '' : item.header.iconPosition; + var css = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.iconCss)) ? '' : item.header.iconCss; + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.headerTemplate)) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.text) || + ((item.header.text.length === 0)) && (css === ''))) { + spliceArray.push(i); + return; + } + var txt = item.headerTemplate || item.header.text; + if (typeof txt === 'string' && _this.enableHtmlSanitizer) { + txt = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(txt); + } + var itemIndex; + if (_this.isReplace && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.tbId) && _this.tbId !== '') { + itemIndex = parseInt(_this.tbId.substring(_this.tbId.lastIndexOf('_') + 1), 10); + _this.tbId = ''; + } + else { + itemIndex = index + i; + } + _this.lastIndex = ((tbItems.length === 0) ? i : ((_this.isReplace) ? (itemIndex) : (maxId + 1 + i))); + var disabled = (item.disabled) ? ' ' + CLS_DISABLE + ' ' + CLS_OVERLAY : ''; + var hidden = (item.visible === false) ? ' ' + CLS_HIDDEN : ''; + txtWrapEle = _this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } }); + var tHtml = ((txt instanceof Object) ? txt.outerHTML : txt); + var txtEmpty = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tHtml) && tHtml !== ''); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(txt.tagName)) { + txtWrapEle.appendChild(txt); + } + else { + _this.headerTextCompile(txtWrapEle, txt, i); + } + var tEle; + var icon = _this.createElement('span', { + className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css + }); + var tCont = _this.createElement('div', { className: CLS_TEXT_WRAP }); + tCont.appendChild(txtWrapEle); + if ((txt !== '' && txt !== undefined) && css !== '') { + if ((pos === 'left' || pos === 'top')) { + tCont.insertBefore(icon, tCont.firstElementChild); + } + else { + tCont.appendChild(icon); + } + tEle = txtWrapEle; + _this.isIconAlone = false; + } + else { + tEle = ((css === '') ? txtWrapEle : icon); + if (tEle === icon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(txtWrapEle); + tCont.appendChild(icon); + _this.isIconAlone = true; + } + } + var tabIndex = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.tabIndex) ? '-1' : item.tabIndex.toString(); + var wrapAttrs = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'false', 'aria-disabled': 'false' }; + tCont.appendChild(_this.btnCls.cloneNode(true)); + var wrap = _this.createElement('div', { className: CLS_WRAP, attrs: wrapAttrs }); + wrap.appendChild(tCont); + if (_this.itemIndexArray === []) { + _this.itemIndexArray.push(CLS_ITEM + _this.tabId + '_' + _this.lastIndex); + } + else { + _this.itemIndexArray.splice((index + i), 0, CLS_ITEM + _this.tabId + '_' + _this.lastIndex); + } + var attrObj = { + id: CLS_ITEM + _this.tabId + '_' + _this.lastIndex, 'data-id': item.id + }; + var tItem = { htmlAttributes: attrObj, template: wrap }; + tItem.cssClass = ((item.cssClass !== undefined) ? item.cssClass : ' ') + ' ' + disabled + ' ' + hidden + ' ' + + ((css !== '') ? 'e-i' + pos : '') + ' ' + ((!txtEmpty) ? CLS_ICON : ''); + if (pos === 'top' || pos === 'bottom') { + _this.element.classList.add('e-vertical-icon'); + } + tItems.push(tItem); + i++; + }); + if (!this.isAdd) { + spliceArray.forEach(function (spliceItemIndex) { + _this.items.splice(spliceItemIndex, 1); + }); + } + if (this.isIconAlone) { + this.element.classList.add(CLS_ICON_TAB); + } + else { + this.element.classList.remove(CLS_ICON_TAB); + } + return tItems; + }; + Tab.prototype.removeActiveClass = function () { + var tabHeader = this.getTabHeader(); + if (tabHeader) { + var tabItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, tabHeader); + [].slice.call(tabItems).forEach(function (node) { return node.classList.remove(CLS_ACTIVE); }); + [].slice.call(tabItems).forEach(function (node) { return node.firstElementChild.setAttribute('aria-selected', 'false'); }); + } + }; + Tab.prototype.checkPopupOverflow = function (ele) { + this.tbPop = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_POP, this.element); + var popIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-hor-nav', this.element); + var tbrItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, this.element); + var lastChild = tbrItems.lastChild; + var isOverflow = false; + if (!this.isVertical() && ((this.enableRtl && ((popIcon.offsetLeft + popIcon.offsetWidth) > tbrItems.offsetLeft)) + || (!this.enableRtl && popIcon.offsetLeft < tbrItems.offsetWidth))) { + isOverflow = true; + } + else if (this.isVertical() && (popIcon.offsetTop < lastChild.offsetTop + lastChild.offsetHeight)) { + isOverflow = true; + } + if (isOverflow) { + ele.classList.add(CLS_TB_POPUP); + this.tbPop.insertBefore(ele, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_POPUP, this.tbPop)[0]); + } + return true; + }; + Tab.prototype.popupHandler = function (target) { + var ripEle = target.querySelector('.e-ripple-element'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ripEle)) { + ripEle.outerHTML = ''; + target.querySelector('.' + CLS_WRAP).classList.remove('e-ripple'); + } + this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle); + var lastChild = this.tbItem[this.tbItem.length - 1]; + if (this.tbItem.length !== 0) { + target.classList.remove(CLS_TB_POPUP); + target.removeAttribute('style'); + this.tbItems.appendChild(target); + this.actEleId = target.id; + if (this.checkPopupOverflow(lastChild)) { + var prevEle = this.tbItems.lastChild.previousElementSibling; + this.checkPopupOverflow(prevEle); + } + this.isPopup = true; + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.tbItems).length - 1; + }; + Tab.prototype.setCloseButton = function (val) { + var trg = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, this.element); + if (val === true) { + trg.classList.add(CLS_CLOSE_SHOW); + } + else { + trg.classList.remove(CLS_CLOSE_SHOW); + } + this.tbObj.refreshOverflow(); + this.refreshActiveTabBorder(); + }; + Tab.prototype.prevCtnAnimation = function (prev, current) { + var animation; + var checkRTL = this.enableRtl || this.element.classList.contains(CLS_RTL); + if (this.isPopup || prev <= current) { + if (this.animation.previous.effect === 'SlideLeftIn') { + animation = { + name: 'SlideLeftOut', + duration: this.animation.previous.duration, timingFunction: this.animation.previous.easing + }; + } + else { + animation = null; + } + } + else { + if (this.animation.next.effect === 'SlideRightIn') { + animation = { + name: 'SlideRightOut', + duration: this.animation.next.duration, timingFunction: this.animation.next.easing + }; + } + else { + animation = null; + } + } + return animation; + }; + Tab.prototype.triggerPrevAnimation = function (oldCnt, prevIndex) { + var _this = this; + var animateObj = this.prevCtnAnimation(prevIndex, this.selectedItem); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animateObj)) { + animateObj.begin = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(oldCnt, { 'position': 'absolute' }); + oldCnt.classList.add(CLS_PROGRESS); + oldCnt.classList.add('e-view'); + }; + animateObj.end = function () { + oldCnt.style.display = 'none'; + oldCnt.classList.remove(CLS_ACTIVE); + oldCnt.classList.remove(CLS_PROGRESS); + oldCnt.classList.remove('e-view'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(oldCnt, { 'display': '', 'position': '' }); + if (oldCnt.childNodes.length === 0 && !_this.isTemplate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(oldCnt); + } + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animateObj).animate(oldCnt); + } + else { + oldCnt.classList.remove(CLS_ACTIVE); + } + }; + Tab.prototype.triggerAnimation = function (id, value) { + var _this = this; + var prevIndex = this.prevIndex; + var oldCnt; + var itemCollection = [].slice.call(this.element.querySelector('.' + CLS_CONTENT).children); + itemCollection.forEach(function (item) { + if (item.id === _this.prevActiveEle) { + oldCnt = item; + } + }); + var prevEle = this.tbItem[prevIndex]; + var newCnt = this.getTrgContent(this.cntEle, this.extIndex(id)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldCnt) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(prevEle)) { + var idNo = this.extIndex(prevEle.id); + oldCnt = this.getTrgContent(this.cntEle, idNo); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newCnt)) { + this.prevActiveEle = newCnt.id; + } + var isPrevent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.animation) || this.animation.next === {} || this.animation.previous === {} + || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.animation.next.effect) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.animation.previous.effect) + || this.animation.previous.effect == 'None' || this.animation.next.effect == 'None'; + if (this.initRender || value === false || this.animation === {} || isPrevent) { + if (oldCnt && oldCnt !== newCnt) { + oldCnt.classList.remove(CLS_ACTIVE); + } + return; + } + var cnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element); + var animateObj; + if (this.prevIndex > this.selectedItem && !this.isPopup) { + var openEff = this.animation.previous.effect; + animateObj = { + name: ((openEff === 'None') ? '' : ((openEff !== 'SlideLeftIn') ? openEff : 'SlideLeftIn')), + duration: this.animation.previous.duration, + timingFunction: this.animation.previous.easing + }; + } + else if (this.isPopup || this.prevIndex < this.selectedItem || this.prevIndex === this.selectedItem) { + var clsEff = this.animation.next.effect; + animateObj = { + name: ((clsEff === 'None') ? '' : ((clsEff !== 'SlideRightIn') ? clsEff : 'SlideRightIn')), + duration: this.animation.next.duration, + timingFunction: this.animation.next.easing + }; + } + animateObj.progress = function () { + cnt.classList.add(CLS_PROGRESS); + _this.setActiveBorder(); + }; + animateObj.end = function () { + cnt.classList.remove(CLS_PROGRESS); + newCnt.classList.add(CLS_ACTIVE); + }; + if (!this.initRender && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldCnt)) { + this.triggerPrevAnimation(oldCnt, prevIndex); + } + this.isPopup = false; + if (animateObj.name === '') { + newCnt.classList.add(CLS_ACTIVE); + } + else { + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animateObj).animate(newCnt); + } + }; + Tab.prototype.keyPressed = function (trg) { + var trgParent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_HEADER + ' .' + CLS_TB_ITEM); + var trgIndex = this.getEleIndex(trgParent); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popEle) && trg.classList.contains('e-hor-nav')) { + (this.popEle.classList.contains(CLS_POPUP_OPEN)) ? this.popObj.hide(this.hide) : this.popObj.show(this.show); + } + else if (trg.classList.contains('e-scroll-nav')) { + trg.click(); + } + else { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trgParent) && trgParent.classList.contains(CLS_ACTIVE) === false) { + this.selectTab(trgIndex, null, true); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popEle)) { + this.popObj.hide(this.hide); + } + } + } + }; + Tab.prototype.getTabHeader = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element)) { + return undefined; + } + var headers = [].slice.call(this.element.children).filter(function (e) { return e.classList.contains(CLS_HEADER); }); + if (headers.length > 0) { + return headers[0]; + } + else { + var wrap = [].slice.call(this.element.children).filter(function (e) { return !e.classList.contains(CLS_BLA_TEM); })[0]; + if (!wrap) { + return undefined; + } + return [].slice.call(wrap.children).filter(function (e) { return e.classList.contains(CLS_HEADER); })[0]; + } + }; + Tab.prototype.getEleIndex = function (item) { + return Array.prototype.indexOf.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.getTabHeader()), item); + }; + Tab.prototype.extIndex = function (id) { + return id.replace(CLS_ITEM + this.tabId + '_', ''); + }; + Tab.prototype.expTemplateContent = function () { + var _this = this; + this.templateEle.forEach(function (eleStr) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.element.querySelector(eleStr))) { + document.body.appendChild(_this.element.querySelector(eleStr)).style.display = 'none'; + } + }); + }; + Tab.prototype.templateCompile = function (ele, cnt, index) { + var tempEle = this.createElement('div'); + this.compileElement(tempEle, cnt, 'content', index); + if (tempEle.childNodes.length !== 0) { + ele.appendChild(tempEle); + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Tab.prototype.compileElement = function (ele, val, prop, index) { + var templateFn; + if (typeof val === 'string') { + val = val.trim(); + if (this.isVue) { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(val)); + } + else { + ele.innerHTML = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(val); + } + } + else { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(val); + } + var templateFUN; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateFn)) { + templateFUN = templateFn({}, this, prop); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateFn) && templateFUN.length > 0) { + [].slice.call(templateFUN).forEach(function (el) { + ele.appendChild(el); + }); + } + }; + Tab.prototype.headerTextCompile = function (element, text, index) { + this.compileElement(element, text, 'headerTemplate', index); + }; + Tab.prototype.getContent = function (ele, cnt, callType, index) { + var eleStr; + cnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cnt) ? "" : cnt; + if (typeof cnt === 'string' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cnt.innerHTML)) { + if (typeof cnt === 'string' && this.enableHtmlSanitizer) { + cnt = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(cnt); + } + if (cnt[0] === '.' || cnt[0] === '#') { + if (document.querySelectorAll(cnt).length) { + var eleVal = document.querySelector(cnt); + eleStr = eleVal.outerHTML.trim(); + if (callType === 'clone') { + ele.appendChild(eleVal.cloneNode(true)); + } + else { + ele.appendChild(eleVal); + eleVal.style.display = ''; + } + } + else { + this.templateCompile(ele, cnt, index); + } + } + else { + this.templateCompile(ele, cnt, index); + } + } + else { + ele.appendChild(cnt); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleStr)) { + if (this.templateEle.indexOf(cnt.toString()) === -1) { + this.templateEle.push(cnt.toString()); + } + } + }; + Tab.prototype.getTrgContent = function (cntEle, no) { + var ele; + if (this.element.classList.contains(CLS_NEST)) { + ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_NEST + '> .' + CLS_CONTENT + ' > #' + CLS_CONTENT + this.tabId + '_' + no, this.element); + } + else { + ele = this.findEle(cntEle.children, CLS_CONTENT + this.tabId + '_' + no); + } + return ele; + }; + Tab.prototype.findEle = function (items, key) { + var ele; + for (var i = 0; i < items.length; i++) { + if (items[i].id === key) { + ele = items[i]; + break; + } + } + return ele; + }; + Tab.prototype.isVertical = function () { + var isVertical = (this.headerPlacement === 'Left' || this.headerPlacement === 'Right') ? true : false; + this.scrCntClass = (isVertical) ? CLS_VSCRCNT : CLS_HSCRCNT; + return isVertical; + }; + Tab.prototype.addVerticalClass = function () { + if (this.isVertical()) { + var tbPos = (this.headerPlacement === 'Left') ? CLS_VLEFT : CLS_VRIGHT; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.hdrEle], [CLS_VERTICAL, tbPos]); + if (!this.element.classList.contains(CLS_NEST)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [CLS_VTAB, tbPos]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.hdrEle], [CLS_VTAB, tbPos]); + } + } + if (this.headerPlacement === 'Bottom') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.hdrEle], [CLS_HBOTTOM]); + } + }; + Tab.prototype.updatePopAnimationConfig = function () { + this.show = { name: (this.isVertical() ? 'FadeIn' : 'SlideDown'), duration: 100 }; + this.hide = { name: (this.isVertical() ? 'FadeOut' : 'SlideUp'), duration: 100 }; + }; + Tab.prototype.changeOrientation = function (place) { + this.setOrientation(place, this.hdrEle); + var activeTab = this.hdrEle.querySelector('.' + CLS_ACTIVE); + var isVertical = this.hdrEle.classList.contains(CLS_VERTICAL) ? true : false; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_VTAB]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.hdrEle], [CLS_VERTICAL, CLS_VLEFT, CLS_VRIGHT]); + if (isVertical !== this.isVertical()) { + this.changeToolbarOrientation(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeTab) && activeTab.classList.contains(CLS_TB_POPUP)) { + this.popupHandler(activeTab); + } + } + this.addVerticalClass(); + this.setActiveBorder(); + this.focusItem(); + }; + Tab.prototype.focusItem = function () { + var curActItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(' #' + CLS_ITEM + this.tabId + '_' + this.selectedItem, this.hdrEle); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(curActItem)) { + curActItem.firstElementChild.focus(); + } + }; + Tab.prototype.changeToolbarOrientation = function () { + this.tbObj.setProperties({ height: (this.isVertical() ? '100%' : 'auto'), width: (this.isVertical() ? 'auto' : '100%') }, true); + this.tbObj.changeOrientation(); + this.updatePopAnimationConfig(); + }; + Tab.prototype.setOrientation = function (place, ele) { + var headerPos = Array.prototype.indexOf.call(this.element.children, ele); + var contentPos = Array.prototype.indexOf.call(this.element.children, this.element.querySelector('.' + CLS_CONTENT)); + if (place === 'Bottom' && (contentPos > headerPos)) { + this.element.appendChild(ele); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ele], [CLS_HBOTTOM]); + this.element.insertBefore(ele, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element)); + } + }; + Tab.prototype.setCssClass = function (ele, cls, val) { + if (cls === '') { + return; + } + var list = cls.split(' '); + for (var i = 0; i < list.length; i++) { + if (val) { + ele.classList.add(list[i]); + } + else { + ele.classList.remove(list[i]); + } + } + }; + Tab.prototype.setContentHeight = function (val) { + if (this.element.classList.contains(CLS_FILL)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], [CLS_FILL]); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cntEle)) { + return; + } + var hdrEle = this.getTabHeader(); + if (this.heightAdjustMode === 'None') { + if (this.height === 'auto') { + return; + } + else { + if (!this.isVertical()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.cntEle, { 'height': (this.element.clientHeight - hdrEle.offsetHeight) + 'px' }); + } + } + } + else if (this.heightAdjustMode === 'Fill') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], [CLS_FILL]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': '100%' }); + this.cntEle.style.height = 'calc(100% - ' + this.hdrEle.offsetHeight + 'px)'; + } + else if (this.heightAdjustMode === 'Auto') { + if (this.isTemplate === true) { + var cnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_CONTENT + ' > .' + CLS_ITEM, this.element); + for (var i = 0; i < cnt.length; i++) { + cnt[i].setAttribute('style', 'display:block; visibility: visible'); + this.maxHeight = Math.max(this.maxHeight, this.getHeight(cnt[i])); + cnt[i].style.removeProperty('display'); + cnt[i].style.removeProperty('visibility'); + } + } + else { + this.cntEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element); + if (val === true) { + this.cntEle.appendChild(this.createElement('div', { + id: (CLS_CONTENT + this.tabId + '_' + 0), className: CLS_ITEM + ' ' + CLS_ACTIVE, + attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + 0 } + })); + } + var ele = this.cntEle.children.item(0); + for (var i = 0; i < this.items.length; i++) { + this.getContent(ele, this.items[i].content, 'clone', i); + this.maxHeight = Math.max(this.maxHeight, this.getHeight(ele)); + while (ele.firstChild) { + ele.removeChild(ele.firstChild); + } + } + if (this.isReact) { + this.clearTemplate(['content']); + } + this.templateEle = []; + this.getContent(ele, this.items[0].content, 'render', 0); + if (this.prevIndex !== this.selectedItem) { + ele.classList.remove(CLS_ACTIVE); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.cntEle, { 'height': this.maxHeight + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.cntEle, { 'height': 'auto' }); + } + }; + Tab.prototype.getHeight = function (ele) { + var cs = window.getComputedStyle(ele); + return ele.offsetHeight + parseFloat(cs.getPropertyValue('padding-top')) + parseFloat(cs.getPropertyValue('padding-bottom')) + + parseFloat(cs.getPropertyValue('margin-top')) + parseFloat(cs.getPropertyValue('margin-bottom')); + }; + Tab.prototype.setActiveBorder = function () { + var trgHdrEle = this.getTabHeader(); + var trg = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, trgHdrEle); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trg)) { + return; + } + if (!this.reorderActiveTab) { + if (trg.classList.contains(CLS_TB_POPUP) && !this.bdrLine.classList.contains(CLS_HIDDEN)) { + this.bdrLine.classList.add(CLS_HIDDEN); + } + if (trgHdrEle && !trgHdrEle.classList.contains(CLS_REORDER_ACTIVE_ITEM)) { + trgHdrEle.classList.add(CLS_REORDER_ACTIVE_ITEM); + } + } + else if (trgHdrEle) { + trgHdrEle.classList.remove(CLS_REORDER_ACTIVE_ITEM); + } + var root = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_TAB); + if (this.element !== root) { + return; + } + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, trgHdrEle); + var bar = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_INDICATOR, trgHdrEle); + var scrollCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS + ' .' + this.scrCntClass, trgHdrEle); + if (this.isVertical()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'left': '', 'right': '' }); + var tbHeight = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrollCnt)) ? this.tbItems.offsetHeight : scrollCnt.offsetHeight; + if (tbHeight !== 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'top': trg.offsetTop + 'px', 'height': trg.offsetHeight + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'top': 0, 'height': 0 }); + } + } + else { + if (this.overflowMode === 'MultiRow') { + var top_1 = this.headerPlacement === 'Bottom' ? trg.offsetTop : trg.offsetHeight + trg.offsetTop; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'top': top_1 + 'px', 'height': '' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'top': '', 'height': '' }); + } + var tbWidth = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrollCnt)) ? this.tbItems.offsetWidth : scrollCnt.offsetWidth; + if (tbWidth !== 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'left': trg.offsetLeft + 'px', 'right': tbWidth - (trg.offsetLeft + trg.offsetWidth) + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(bar, { 'left': 'auto', 'right': 'auto' }); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.bdrLine) && !trg.classList.contains(CLS_TB_POPUP)) { + this.bdrLine.classList.remove(CLS_HIDDEN); + } + }; + Tab.prototype.setActive = function (value, skipDataBind, isInteracted) { + if (skipDataBind === void 0) { skipDataBind = false; } + if (isInteracted === void 0) { isInteracted = false; } + this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.getTabHeader()); + var trg = this.tbItem[value]; + if (value < 0 || isNaN(value) || this.tbItem.length === 0) { + return; + } + if (value >= 0 && !skipDataBind) { + this.allowServerDataBinding = false; + this.setProperties({ selectedItem: value }, true); + this.allowServerDataBinding = true; + if (!this.initRender) { + this.serverDataBind(); + } + } + if (trg.classList.contains(CLS_ACTIVE)) { + this.setActiveBorder(); + return; + } + if (!this.isTemplate) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(trg.firstElementChild, { 'aria-controls': CLS_CONTENT + this.tabId + '_' + value }); + } + var id = trg.id; + this.removeActiveClass(); + trg.classList.add(CLS_ACTIVE); + trg.firstElementChild.setAttribute('aria-selected', 'true'); + var no = Number(this.extIndex(id)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.prevActiveEle)) { + this.prevActiveEle = CLS_CONTENT + this.tabId + '_' + no; + } + if (this.isTemplate) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element).children.length > 0) { + var trg_1 = this.findEle(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element).children, CLS_CONTENT + this.tabId + '_' + no); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trg_1)) { + trg_1.classList.add(CLS_ACTIVE); + } + this.triggerAnimation(id, this.enableAnimation); + } + } + else { + this.cntEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element); + var item = this.getTrgContent(this.cntEle, this.extIndex(id)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + this.cntEle.appendChild(this.createElement('div', { + id: CLS_CONTENT + this.tabId + '_' + this.extIndex(id), className: CLS_ITEM + ' ' + CLS_ACTIVE, + attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + this.extIndex(id) } + })); + var eleTrg = this.getTrgContent(this.cntEle, this.extIndex(id)); + var itemIndex = Array.prototype.indexOf.call(this.itemIndexArray, id); + this.getContent(eleTrg, this.items[itemIndex].content, 'render', itemIndex); + } + else { + item.classList.add(CLS_ACTIVE); + } + this.triggerAnimation(id, this.enableAnimation); + } + this.setActiveBorder(); + this.refreshItemVisibility(trg); + if (!this.initRender && !skipDataBind) { + var eventArg = { + previousItem: this.prevItem, + previousIndex: this.prevIndex, + selectedItem: trg, + selectedIndex: value, + selectedContent: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content), + isSwiped: this.isSwiped, + isInteracted: isInteracted, + preventFocus: false + }; + this.trigger('selected', eventArg, function (selectEventArgs) { + if (!selectEventArgs.preventFocus) { + trg.firstElementChild.focus(); + } + }); + } + }; + Tab.prototype.setItems = function (items) { + this.isReplace = true; + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, this.getTabHeader()); + this.tbObj.items = this.parseObject(items, 0); + this.tbObj.dataBind(); + this.isReplace = false; + }; + Tab.prototype.setRTL = function (value) { + this.tbObj.enableRtl = value; + this.tbObj.dataBind(); + this.setCssClass(this.element, CLS_RTL, value); + this.refreshActiveBorder(); + }; + Tab.prototype.refreshActiveBorder = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.bdrLine)) { + this.bdrLine.classList.add(CLS_HIDDEN); + } + this.setActiveBorder(); + }; + Tab.prototype.showPopup = function (config) { + var tbPop = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-popup.e-toolbar-pop', this.hdrEle); + if (tbPop.classList.contains('e-popup-close')) { + var tbPopObj = (tbPop && tbPop.ej2_instances[0]); + tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right'; + tbPopObj.dataBind(); + tbPopObj.show(config); + } + }; + Tab.prototype.bindDraggable = function () { + var _this = this; + if (this.allowDragAndDrop) { + var tabHeader = this.element.querySelector('.' + CLS_HEADER); + if (tabHeader) { + var items = tabHeader.querySelectorAll('.' + CLS_TB_ITEM); + items.forEach(function (element) { + _this.initializeDrag(element); + }); + } + } + }; + Tab.prototype.wireEvents = function () { + this.bindDraggable(); + window.addEventListener('resize', this.resizeContext); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseover', this.hoverHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.spaceKeyDown, this); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cntEle)) { + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.cntEle, { swipe: this.swipeHandler.bind(this) }); + } + this.keyModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs }); + this.tabKeyModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.keyHandler.bind(this), + keyConfigs: { openPopup: 'shift+f10', tab: 'tab', shiftTab: 'shift+tab' }, + eventName: 'keydown' + }); + }; + Tab.prototype.unWireEvents = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.keyModule)) { + this.keyModule.destroy(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tabKeyModule)) { + this.tabKeyModule.destroy(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cntEle) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.touchModule)) { + this.touchModule.destroy(); + this.touchModule = null; + } + window.removeEventListener('resize', this.resizeContext); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseover', this.hoverHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', this.spaceKeyDown); + this.element.classList.remove(CLS_RTL); + this.element.classList.remove(CLS_FOCUS); + }; + Tab.prototype.clickHandler = function (args) { + this.element.classList.remove(CLS_FOCUS); + var trg = args.originalEvent.target; + var trgParent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_TB_ITEM); + var trgIndex = this.getEleIndex(trgParent); + if (trg.classList.contains(CLS_ICON_CLOSE)) { + this.removeTab(trgIndex); + } + else if (this.isVertical() && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_HOR_NAV)) { + this.showPopup(this.show); + } + else { + this.isPopup = false; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trgParent) && (trgIndex !== this.selectedItem)) { + this.selectTab(trgIndex, args.originalEvent, true); + } + } + }; + Tab.prototype.swipeHandler = function (e) { + if (e.velocity < 3 && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e.originalEvent.changedTouches)) { + return; + } + if (this.isNested) { + this.element.setAttribute('data-swipe', 'true'); + } + var nestedTab = this.element.querySelector('[data-swipe="true"]'); + if (nestedTab) { + nestedTab.removeAttribute('data-swipe'); + return; + } + this.isSwiped = true; + if (e.swipeDirection === 'Right' && this.selectedItem !== 0) { + for (var k = this.selectedItem - 1; k >= 0; k--) { + if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) { + this.selectTab(k, null, true); + break; + } + } + } + else if (e.swipeDirection === 'Left' && (this.selectedItem !== Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element).length - 1)) { + for (var i = this.selectedItem + 1; i < this.tbItem.length; i++) { + if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) { + this.selectTab(i, null, true); + break; + } + } + } + this.isSwiped = false; + }; + Tab.prototype.spaceKeyDown = function (e) { + if ((e.keyCode === 32 && e.which === 32) || (e.keyCode === 35 && e.which === 35)) { + var clstHead = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + CLS_HEADER); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(clstHead)) { + e.preventDefault(); + } + } + }; + Tab.prototype.keyHandler = function (e) { + if (this.element.classList.contains(CLS_DISABLE)) { + return; + } + this.element.classList.add(CLS_FOCUS); + var trg = e.target; + var tabHeader = this.getTabHeader(); + var actEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_ACTIVE, tabHeader); + this.popEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_POP, tabHeader); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popEle)) { + this.popObj = this.popEle.ej2_instances[0]; + } + var item = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(document.activeElement, '.' + CLS_TB_ITEM); + var trgParent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_TB_ITEM); + switch (e.action) { + case 'space': + case 'enter': + if (trg.parentElement.classList.contains(CLS_DISABLE)) { + return; + } + if (e.action === 'enter' && trg.classList.contains('e-hor-nav')) { + this.showPopup(this.show); + break; + } + this.keyPressed(trg); + break; + case 'tab': + case 'shiftTab': + if (trg.classList.contains(CLS_WRAP) + && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trg, '.' + CLS_TB_ITEM).classList.contains(CLS_ACTIVE) === false) { + trg.setAttribute('tabindex', trg.getAttribute('data-tabindex')); + } + if (this.popObj && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element)) { + this.popObj.hide(this.hide); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actEle) && actEle.children.item(0).getAttribute('tabindex') === '-1') { + actEle.children.item(0).setAttribute('tabindex', '0'); + } + break; + case 'moveLeft': + case 'moveRight': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + this.refreshItemVisibility(item); + } + break; + case 'openPopup': + e.preventDefault(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popEle) && this.popEle.classList.contains(CLS_POPUP_CLOSE)) { + this.popObj.show(this.show); + } + break; + case 'delete': + if (this.showCloseButton === true && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trgParent)) { + var nxtSib = trgParent.nextSibling; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nxtSib) && nxtSib.classList.contains(CLS_TB_ITEM)) { + nxtSib.firstElementChild.focus(); + } + this.removeTab(this.getEleIndex(trgParent)); + } + this.setActiveBorder(); + break; + } + }; + Tab.prototype.refreshItemVisibility = function (target) { + var scrCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + this.scrCntClass, this.tbItems); + if (!this.isVertical() && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrCnt)) { + var scrBar = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-hscroll-bar', this.tbItems); + scrBar.removeAttribute('tabindex'); + var scrStart = scrBar.scrollLeft; + var scrEnd = scrStart + scrBar.offsetWidth; + var eleStart = target.offsetLeft; + var eleWidth = target.offsetWidth; + var eleEnd = target.offsetLeft + target.offsetWidth; + if ((scrStart < eleStart) && (scrEnd < eleEnd)) { + var eleViewRange = scrEnd - eleStart; + scrBar.scrollLeft = scrStart + (eleWidth - eleViewRange); + } + else { + if ((scrStart > eleStart) && (scrEnd > eleEnd)) { + var eleViewRange = eleEnd - scrStart; + scrBar.scrollLeft = scrStart - (eleWidth - eleViewRange); + } + } + } + else { + return; + } + }; + Tab.prototype.getIndexFromEle = function (id) { + return parseInt(id.substring(id.lastIndexOf('_') + 1), 10); + }; + Tab.prototype.hoverHandler = function (e) { + var trg = e.target; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trg.classList) && trg.classList.contains(CLS_ICON_CLOSE)) { + trg.setAttribute('title', new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('tab', { closeButtonTitle: this.title }, this.locale).getConstant('closeButtonTitle')); + } + }; + Tab.prototype.evalOnPropertyChangeItems = function (newProp, oldProp) { + if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) { + var changedProp = Object.keys(newProp.items); + for (var i = 0; i < changedProp.length; i++) { + var index = parseInt(Object.keys(newProp.items)[i], 10); + var properties = Object.keys(newProp.items[index]); + for (var j = 0; j < properties.length; j++) { + var oldVal = Object(oldProp.items[index])[properties[j]]; + var newVal = Object(newProp.items[index])[properties[j]]; + var hdr = this.element.querySelectorAll('.' + CLS_TB_ITEM)[index]; + var itemIndex = void 0; + if (hdr && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(hdr.id) && hdr.id !== '') { + itemIndex = this.getIndexFromEle(hdr.id); + } + else { + itemIndex = index; + } + var hdrItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS + ' #' + CLS_ITEM + this.tabId + '_' + itemIndex, this.element); + var cntItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT + ' #' + CLS_CONTENT + this.tabId + '_' + itemIndex, this.element); + if (properties[j] === 'header' || properties[j] === 'headerTemplate') { + var icon = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.items[index].header) || + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss; + var textVal = this.items[index].headerTemplate || this.items[index].header.text; + if (properties[j] === 'headerTemplate') { + this.clearTabTemplate(hdrItem, properties[j], CLS_TB_ITEM); + } + if ((textVal === '') && (icon === '')) { + this.removeTab(index); + } + else { + this.tbId = hdr.id; + var arr = []; + arr.push(this.items[index]); + this.items.splice(index, 1); + this.itemIndexArray.splice(index, 1); + this.tbObj.items.splice(index, 1); + var isHiddenEle = hdrItem.classList.contains(CLS_HIDDEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(hdrItem); + this.isReplace = true; + this.addTab(arr, index); + if (isHiddenEle) { + this.hideTab(index); + } + this.isReplace = false; + } + } + if (properties[j] === 'content' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cntItem)) { + var strVal = typeof newVal === 'string' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newVal.innerHTML); + if (strVal && (newVal[0] === '.' || newVal[0] === '#') && newVal.length) { + var eleVal = document.querySelector(newVal); + cntItem.appendChild(eleVal); + eleVal.style.display = ''; + } + else if (newVal === '' && oldVal[0] === '#') { + document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none'; + cntItem.innerHTML = newVal; + } + else if (this.isAngular || this.isReact) { + this.clearTabTemplate(cntItem, properties[j], CLS_ITEM); + cntItem.innerHTML = ''; + this.templateCompile(cntItem, newVal, index); + } + else if (typeof newVal !== 'function') { + cntItem.innerHTML = newVal; + } + } + if (properties[j] === 'cssClass') { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(hdrItem)) { + hdrItem.classList.remove(oldVal); + hdrItem.classList.add(newVal); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cntItem)) { + cntItem.classList.remove(oldVal); + cntItem.classList.add(newVal); + } + } + if (properties[j] === 'disabled') { + this.enableTab(index, ((newVal === true) ? false : true)); + } + if (properties[j] === 'visible') { + this.hideTab(index, ((newVal === true) ? false : true)); + } + } + } + } + else { + this.lastIndex = 0; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tbObj)) { + this.reRenderItems(); + } + else { + if (this.isReact || this.isAngular) { + this.clearTemplate(); + } + this.setItems(newProp.items); + if (this.templateEle.length > 0) { + this.expTemplateContent(); + } + this.templateEle = []; + var selectElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element); + while (selectElement.firstElementChild) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(selectElement.firstElementChild); + } + this.select(this.selectedItem); + this.draggableItems = []; + this.bindDraggable(); + } + } + }; + Tab.prototype.clearTabTemplate = function (templateEle, templateName, className) { + if (this.registeredTemplate && this.registeredTemplate[templateName]) { + var registeredTemplates = this.registeredTemplate; + for (var index = 0; index < registeredTemplates[templateName].length; index++) { + var registeredItem = registeredTemplates[templateName][index].rootNodes[0]; + var closestItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(registeredItem, '.' + className); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closestItem) && closestItem === templateEle) { + this.clearTemplate([templateName], [registeredTemplates[templateName][index]]); + break; + } + } + } + else if (this.portals && this.portals.length > 0) { + var portals = this.portals; + for (var index = 0; index < portals.length; index++) { + var portalItem = portals[index]; + var closestItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(portalItem.containerInfo, '.' + className); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closestItem) && closestItem === templateEle) { + this.clearTemplate([templateName], index); + break; + } + } + } + }; + Tab.prototype.initializeDrag = function (target) { + var _this = this; + var dragObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"](target, { + dragArea: this.dragArea, + dragTarget: '.' + CLS_TB_ITEM, + clone: true, + helper: this.helper.bind(this), + dragStart: this.itemDragStart.bind(this), + drag: function (e) { + var dragIndex = _this.getEleIndex(_this.dragItem); + var dropIndex; + var dropItem; + var dragArgs = { + draggedItem: _this.dragItem, + event: e.event, + target: e.target, + droppedItem: e.target.closest('.' + CLS_TB_ITEM), + clonedElement: _this.cloneElement, + index: dragIndex + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e.target.closest('.' + CLS_TAB)) && !e.target.closest('.' + CLS_TAB).isEqualNode(_this.element) && + _this.dragArea !== '.' + CLS_HEADER) { + _this.trigger('dragging', dragArgs); + } + else { + if (!(e.target.closest(_this.dragArea)) && _this.overflowMode !== 'Popup') { + document.body.style.cursor = 'not-allowed'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.cloneElement], CLS_HIDDEN); + if (_this.dragItem.classList.contains(CLS_HIDDEN)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.dragItem], CLS_HIDDEN); + } + _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible'; + } + else { + document.body.style.cursor = ''; + _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden'; + if (_this.cloneElement.classList.contains(CLS_HIDDEN)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.cloneElement], CLS_HIDDEN); + } + } + if (_this.overflowMode === 'Scrollable' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.element.querySelector('.e-hscroll'))) { + var scrollRightNavEle = _this.element.querySelector('.e-scroll-right-nav'); + var scrollLeftNavEle = _this.element.querySelector('.e-scroll-left-nav'); + var hscrollBar = _this.element.querySelector('.e-hscroll-bar'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrollRightNavEle) && Math.abs((scrollRightNavEle.offsetWidth / 2) + + scrollRightNavEle.offsetLeft) > _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) { + hscrollBar.scrollLeft -= 10; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(scrollLeftNavEle) && Math.abs((scrollLeftNavEle.offsetLeft + scrollLeftNavEle.offsetWidth) - + _this.cloneElement.offsetLeft) > (scrollLeftNavEle.offsetWidth / 2)) { + hscrollBar.scrollLeft += 10; + } + } + _this.cloneElement.style.pointerEvents = 'none'; + dropItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + CLS_TB_ITEM + '.e-draggable'); + var scrollContentWidth = 0; + if (_this.overflowMode === 'Scrollable' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.element.querySelector('.e-hscroll'))) { + scrollContentWidth = _this.element.querySelector('.e-hscroll-content').offsetWidth; + } + if (dropItem != null && !dropItem.isSameNode(_this.dragItem) && + dropItem.closest('.' + CLS_TAB).isSameNode(_this.dragItem.closest('.' + CLS_TAB))) { + dropIndex = _this.getEleIndex(dropItem); + if (dropIndex < dragIndex && + (Math.abs((dropItem.offsetLeft + dropItem.offsetWidth) - + _this.cloneElement.offsetLeft) > (dropItem.offsetWidth / 2))) { + _this.dragAction(dropItem, dragIndex, dropIndex); + } + if (dropIndex > dragIndex && + (Math.abs(dropItem.offsetWidth / 2) + dropItem.offsetLeft - + scrollContentWidth) < _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) { + _this.dragAction(dropItem, dragIndex, dropIndex); + } + } + _this.droppedIndex = _this.getEleIndex(_this.dragItem); + _this.trigger('dragging', dragArgs); + } + }, + dragStop: this.itemDragStop.bind(this) + }); + this.draggableItems.push(dragObj); + }; + Tab.prototype.helper = function (e) { + this.cloneElement = this.createElement('div'); + if (e.element) { + this.cloneElement = (e.element.cloneNode(true)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.cloneElement], 'e-tab-clone-element'); + if (this.element.querySelector('.' + CLS_HEADER).classList.contains(CLS_CLOSE_SHOW)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.cloneElement], CLS_CLOSE_SHOW); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.cloneElement.querySelector('.' + CLS_WRAP)], 'e-ripple'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cloneElement.querySelector('.e-ripple-element'))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.cloneElement.querySelector('.e-ripple-element')); + } + document.body.appendChild(this.cloneElement); + } + return this.cloneElement; + }; + Tab.prototype.itemDragStart = function (e) { + var _this = this; + this.draggingItems = this.items.map(function (x) { return x; }); + this.dragItem = e.element; + var dragArgs = { + draggedItem: e.element, + event: e.event, + target: e.target, + droppedItem: null, + index: this.getEleIndex(this.dragItem), + clonedElement: this.cloneElement, + cancel: false + }; + this.trigger('onDragStart', dragArgs, function (tabitemDragArgs) { + if (tabitemDragArgs.cancel) { + var dragObj = e.element.ej2_instances[0]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dragObj)) { + dragObj.intDestroy(e.event); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(_this.cloneElement); + } + else { + _this.removeActiveClass(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN); + _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden'; + } + }); + }; + Tab.prototype.dragAction = function (dropItem, dragsIndex, dropIndex) { + if (this.items.length > 0) { + var item = this.draggingItems[dragsIndex]; + this.draggingItems.splice(dragsIndex, 1); + this.draggingItems.splice(dropIndex, 0, item); + } + if (this.overflowMode === 'MultiRow') { + dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling); + } + if (dragsIndex > dropIndex) { + if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) { + if (this.overflowMode === 'Extended') { + if (dropItem.isSameNode(dropItem.parentElement.lastChild)) { + var popupContainer = this.dragItem.parentNode; + dropItem.parentNode.insertBefore(this.dragItem, dropItem); + popupContainer.insertBefore(dropItem.parentElement.lastChild, popupContainer.childNodes[0]); + } + else { + this.dragItem.parentNode.insertBefore((dropItem.parentElement.lastChild), this.dragItem.parentElement.childNodes[0]); + dropItem.parentNode.insertBefore(this.dragItem, dropItem); + } + } + else { + var lastEle = (dropItem.parentElement).lastChild; + if (dropItem.isSameNode(lastEle)) { + var popupContainer = this.dragItem.parentNode; + dropItem.parentNode.insertBefore(this.dragItem, dropItem); + popupContainer.insertBefore(lastEle, popupContainer.childNodes[0]); + } + else { + this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]); + dropItem.parentNode.insertBefore(this.dragItem, dropItem); + } + } + } + else { + this.dragItem.parentNode.insertBefore(this.dragItem, dropItem); + } + } + if (dragsIndex < dropIndex) { + if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) { + if (this.overflowMode === 'Extended') { + this.dragItem.parentElement.appendChild(dropItem.parentElement.firstElementChild); + dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextSibling); + } + else { + this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]); + dropItem.parentNode.insertBefore(this.dragItem, dropItem); + } + } + else { + this.dragItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling); + } + } + }; + Tab.prototype.itemDragStop = function (e) { + var _this = this; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.cloneElement); + this.cloneElement = null; + this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible'; + document.body.style.cursor = ''; + var dragStopArgs = { + draggedItem: this.dragItem, + event: e.event, + target: e.target, + droppedItem: this.tbItem[this.droppedIndex], + clonedElement: null, + index: this.droppedIndex, + cancel: false + }; + this.trigger('dragged', dragStopArgs, function (tabItemDropArgs) { + if (tabItemDropArgs.cancel) { + _this.refresh(); + } + else { + if (_this.items.length > 0 && _this.draggingItems.length > 0) { + _this.items = _this.draggingItems; + _this.selectedItem = _this.droppedIndex; + _this.refresh(); + } + else { + _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN); + _this.selectTab(_this.droppedIndex, null, true); + } + } + }); + this.dragItem = null; + }; + /** + * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled. + * + * @param {number} index - Index value of target Tab item. + * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled. + * By default, isEnable is true. + * @returns {void}. + */ + Tab.prototype.enableTab = function (index, value) { + var tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element)[index]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tbItems)) { + return; + } + if (value === true) { + tbItems.classList.remove(CLS_DISABLE, CLS_OVERLAY); + tbItems.firstElementChild.setAttribute('tabindex', tbItems.firstElementChild.getAttribute('data-tabindex')); + } + else { + tbItems.classList.add(CLS_DISABLE, CLS_OVERLAY); + tbItems.firstElementChild.removeAttribute('tabindex'); + if (tbItems.classList.contains(CLS_ACTIVE)) { + this.select(index + 1); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.items[index])) { + this.items[index].disabled = !value; + this.dataBind(); + } + tbItems.firstElementChild.setAttribute('aria-disabled', (value === true) ? 'false' : 'true'); + }; + /** + * Adds new items to the Tab that accepts an array as Tab items. + * + * @param {TabItemModel[]} items - An array of item that is added to the Tab. + * @param {number} index - Number value that determines where the items to be added. By default, index is 0. + * @returns {void}. + */ + Tab.prototype.addTab = function (items, index) { + var _this = this; + var addArgs = { addedItems: items, cancel: false }; + if (!this.isReplace) { + this.trigger('adding', addArgs, function (tabAddingArgs) { + if (!tabAddingArgs.cancel) { + _this.addingTabContent(items, index); + } + }); + } + else { + this.addingTabContent(items, index); + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Tab.prototype.addingTabContent = function (items, index) { + var _this = this; + var lastEleIndex = 0; + this.hdrEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_HEADER, this.element); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.hdrEle)) { + this.items = items; + this.reRenderItems(); + this.bindDraggable(); + } + else { + var itemsCount = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.e-tab-header .' + CLS_TB_ITEM, this.element).length; + if (itemsCount !== 0) { + lastEleIndex = this.lastIndex + 1; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + index = itemsCount - 1; + } + if (itemsCount < index || index < 0 || isNaN(index)) { + return; + } + if (itemsCount === 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.hdrEle)) { + this.hdrEle.style.display = ''; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.bdrLine)) { + this.bdrLine.classList.add(CLS_HIDDEN); + } + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, this.getTabHeader()); + this.isAdd = true; + var tabItems_2 = this.parseObject(items, index); + this.isAdd = false; + var i_1 = 0; + var textValue_1; + items.forEach(function (item, place) { + textValue_1 = item.headerTemplate || item.header.text; + if (!(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.headerTemplate || item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(textValue_1) || + (textValue_1.length === 0) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.iconCss))) { + if (tabItems_2[place]) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.id)) { + item.id = CLS_ITEM + _this.tabId + '_' + TABITEMPREFIX + (lastEleIndex + place).toString(); + } + tabItems_2[place].htmlAttributes['data-id'] = item.id; + } + _this.items.splice((index + i_1), 0, item); + i_1++; + } + if (_this.isTemplate && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.text)) { + var no = lastEleIndex + place; + var ele = _this.createElement('div', { + id: CLS_CONTENT + _this.tabId + '_' + no, className: CLS_ITEM, + attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + '_' + no } + }); + _this.cntEle.insertBefore(ele, _this.cntEle.children[(index + place)]); + var eleTrg = _this.getTrgContent(_this.cntEle, no.toString()); + _this.getContent(eleTrg, item.content, 'render', index); + } + }); + this.tbObj.addItems(tabItems_2, index); + if (!this.isReplace) { + this.trigger('added', { addedItems: items }); + } + if (this.selectedItem === index) { + this.select(index); + } + else { + this.setActiveBorder(); + this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.getTabHeader()); + } + this.bindDraggable(); + } + }; + /** + * Removes the items in the Tab from the specified index. + * + * @param {number} index - Index of target item that is going to be removed. + * @returns {void}. + */ + Tab.prototype.removeTab = function (index) { + var _this = this; + var trg = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element)[index]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trg)) { + return; + } + var removeArgs = { removedItem: trg, removedIndex: index, cancel: false }; + this.trigger('removing', removeArgs, function (tabRemovingArgs) { + if (!tabRemovingArgs.cancel) { + var header = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + CLS_ITEM + _this.tabId + '_' + _this.extIndex(trg.id), Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, _this.element)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(header)) { + _this.clearTabTemplate(header, 'headerTemplate', CLS_TB_ITEM); + } + _this.tbObj.removeItems(index); + if (_this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(_this.itemIndexArray, trg.id))) { + index = Array.prototype.indexOf.call(_this.itemIndexArray, trg.id); + } + var targetEleIndex = _this.itemIndexArray.indexOf(trg.id); + _this.items.splice(targetEleIndex, 1); + _this.itemIndexArray.splice(targetEleIndex, 1); + _this.refreshActiveBorder(); + var cntTrg = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + CLS_CONTENT + _this.tabId + '_' + _this.extIndex(trg.id), Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, _this.element)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cntTrg)) { + _this.clearTabTemplate(cntTrg, 'content', CLS_ITEM); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(cntTrg); + } + _this.trigger('removed', tabRemovingArgs); + if (_this.draggableItems && _this.draggableItems.length > 0) { + _this.draggableItems[index].destroy(); + _this.draggableItems[index] = null; + _this.draggableItems.splice(index, 1); + } + if (trg.classList.contains(CLS_ACTIVE)) { + index = (index > Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM + ':not(.' + CLS_TB_POPUP + ')', _this.element).length - 1) ? index - 1 : index; + _this.enableAnimation = false; + _this.selectedItem = index; + _this.select(index); + } + else if (index !== _this.selectedItem) { + if (index < _this.selectedItem) { + index = _this.itemIndexArray.indexOf(_this.tbItem[_this.selectedItem].id); + _this.setProperties({ selectedItem: index > -1 ? index : _this.selectedItem }, true); + _this.prevIndex = _this.selectedItem; + } + _this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, _this.getTabHeader()); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, _this.element).length === 0) { + _this.hdrEle.style.display = 'none'; + } + _this.enableAnimation = true; + } + }); + }; + /** + * Shows or hides the Tab that is in the specified index. + * + * @param {number} index - Index value of target item. + * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true. + * @returns {void}. + */ + Tab.prototype.hideTab = function (index, value) { + var items; + var item = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, this.element)[index]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item)) { + return; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(value)) { + value = true; + } + this.bdrLine.classList.add(CLS_HIDDEN); + if (value === true) { + item.classList.add(CLS_HIDDEN); + items = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems); + if (items.length !== 0 && item.classList.contains(CLS_ACTIVE)) { + if (index !== 0) { + for (var i = index - 1; i >= 0; i--) { + if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) { + this.select(i); + break; + } + else if (i === 0) { + for (var k = index + 1; k < this.tbItem.length; k++) { + if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) { + this.select(k); + break; + } + } + } + } + } + else { + for (var k = index + 1; k < this.tbItem.length; k++) { + if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) { + this.select(k); + break; + } + } + } + } + else if (items.length === 0) { + this.element.classList.add(CLS_HIDDEN); + } + } + else { + this.element.classList.remove(CLS_HIDDEN); + items = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems); + item.classList.remove(CLS_HIDDEN); + if (items.length === 0) { + this.select(index); + } + } + this.setActiveBorder(); + item.setAttribute('aria-hidden', '' + value); + if (this.overflowMode === 'Popup' && this.tbObj) { + this.tbObj.refreshOverflow(); + } + }; + Tab.prototype.selectTab = function (args, event, isInteracted) { + if (event === void 0) { event = null; } + if (isInteracted === void 0) { isInteracted = false; } + this.isInteracted = isInteracted; + this.select(args, event); + }; + /** + * Specifies the index or HTMLElement to select an item from the Tab. + * + * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab. + * @param {Event} event - An event which takes place in DOM. + * @returns {void} + */ + Tab.prototype.select = function (args, event) { + var _this = this; + var tabHeader = this.getTabHeader(); + this.tbItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEMS, tabHeader); + this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEM, tabHeader); + this.content = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_CONTENT, this.element); + this.prevItem = this.tbItem[this.prevIndex]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.selectedItem) || (this.selectedItem < 0) || (this.tbItem.length <= this.selectedItem) || isNaN(this.selectedItem)) { + this.selectedItem = 0; + } + else { + this.selectedID = this.extIndex(this.tbItem[this.selectedItem].id); + } + var trg = this.tbItem[args]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(trg)) { + this.selectedID = '0'; + } + else { + this.selectingID = this.extIndex(trg.id); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.prevItem) && !this.prevItem.classList.contains(CLS_DISABLE)) { + this.prevItem.children.item(0).setAttribute('tabindex', this.prevItem.firstElementChild.getAttribute('tabindex')); + } + var eventArg = { + event: event, + previousItem: this.prevItem, + previousIndex: this.prevIndex, + selectedItem: this.tbItem[this.selectedItem], + selectedIndex: this.selectedItem, + selectedContent: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content) ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + CLS_CONTENT + this.tabId + '_' + this.selectedID, this.content) : null, + selectingItem: trg, + selectingIndex: args, + selectingContent: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content) ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content) : null, + isSwiped: this.isSwiped, + isInteracted: this.isInteracted, + cancel: false + }; + if (!this.initRender) { + this.trigger('selecting', eventArg, function (selectArgs) { + if (!selectArgs.cancel) { + _this.selectingContent(args, _this.isInteracted); + } + }); + } + else { + this.selectingContent(args, this.isInteracted); + } + this.isInteracted = false; + }; + Tab.prototype.selectingContent = function (args, isInteracted) { + if (typeof args === 'number') { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE) || + this.tbItem[args].classList.contains(CLS_HIDDEN))) { + for (var i = args + 1; i < this.items.length; i++) { + if (this.items[i].disabled === false && this.items[i].visible === true) { + args = i; + break; + } + else { + args = 0; + } + } + } + if (this.tbItem.length > args && args >= 0 && !isNaN(args)) { + this.prevIndex = this.selectedItem; + this.prevItem = this.tbItem[this.prevIndex]; + if (this.tbItem[args].classList.contains(CLS_TB_POPUP) && this.reorderActiveTab) { + this.setActive(this.popupHandler(this.tbItem[args]), null, isInteracted); + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.items) && this.items.length > 0) && this.allowDragAndDrop) { + this.tbItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle); + var item = this.items[args]; + this.items.splice(args, 1); + this.items.splice(this.tbItem.length - 1, 0, item); + var itemId = this.itemIndexArray[args]; + this.itemIndexArray.splice(args, 1); + this.itemIndexArray.splice(this.tbItem.length - 1, 0, itemId); + } + } + else { + this.setActive(args, null, isInteracted); + } + } + else { + this.setActive(0, null, isInteracted); + } + } + else if (args instanceof (HTMLElement)) { + this.setActive(this.getEleIndex(args), null, isInteracted); + } + }; + /** + * Gets the item index from the Tab. + * + * @param {string} tabItemId - Item ID is used for getting index from the Tab. + * @returns {number} - It returns item index. + */ + Tab.prototype.getItemIndex = function (tabItemId) { + var tabIndex; + for (var i = 0; i < this.tbItem.length; i++) { + var value = this.tbItem[i].getAttribute('data-id'); + if (tabItemId === value) { + tabIndex = i; + break; + } + } + return tabIndex; + }; + /** + * Specifies the value to disable/enable the Tab component. + * When set to `true`, the component will be disabled. + * + * @param {boolean} value - Based on this Boolean value, Tab will be enabled (false) or disabled (true). + * @returns {void}. + */ + Tab.prototype.disable = function (value) { + this.setCssClass(this.element, CLS_DISABLE, value); + this.element.setAttribute('aria-disabled', '' + value); + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - It returns the persisted state. + */ + Tab.prototype.getPersistData = function () { + return this.addOnPersist(['selectedItem', 'actEleId']); + }; + /** + * Returns the current module name. + * + * @returns {string} - It returns the current module name. + * @private + */ + Tab.prototype.getModuleName = function () { + return 'tab'; + }; + /** + * Gets called when the model property changes.The data that describes the old and new values of the property that changed. + * + * @param {TabModel} newProp - It contains the new value of data. + * @param {TabModel} oldProp - It contains the old value of data. + * @returns {void} + * @private + */ + Tab.prototype.onPropertyChanged = function (newProp, oldProp) { + var _this = this; + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { width: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width) }); + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { height: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height) }); + this.setContentHeight(false); + break; + case 'cssClass': + var headerEle = this.element.querySelector('.' + CLS_HEADER); + if (oldProp.cssClass !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.cssClass)) { + this.setCssClass(this.element, oldProp.cssClass, false); + this.setCssClass(this.element, newProp.cssClass, true); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(headerEle)) { + this.setCssClass(headerEle, oldProp.cssClass, false); + this.setCssClass(headerEle, newProp.cssClass, true); + } + } + else { + this.setCssClass(this.element, newProp.cssClass, true); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(headerEle)) { + this.setCssClass(headerEle, newProp.cssClass, true); + } + } + break; + case 'items': + this.evalOnPropertyChangeItems(newProp, oldProp); + break; + case 'showCloseButton': + this.setCloseButton(newProp.showCloseButton); + break; + case 'reorderActiveTab': + this.refreshActiveTabBorder(); + break; + case 'selectedItem': + this.selectedItem = oldProp.selectedItem; + this.select(newProp.selectedItem); + break; + case 'headerPlacement': + this.changeOrientation(newProp.headerPlacement); + break; + case 'enableRtl': + this.setRTL(newProp.enableRtl); + break; + case 'overflowMode': + this.tbObj.overflowMode = newProp.overflowMode; + this.tbObj.dataBind(); + this.refreshActiveTabBorder(); + break; + case 'heightAdjustMode': + this.setContentHeight(false); + this.select(this.selectedItem); + break; + case 'scrollStep': + if (this.tbObj) { + this.tbObj.scrollStep = this.scrollStep; + } + break; + case 'allowDragAndDrop': + this.bindDraggable(); + break; + case 'dragArea': + if (this.allowDragAndDrop) { + this.draggableItems.forEach(function (item) { + item.dragArea = _this.dragArea; + }); + this.refresh(); + } + break; + } + } + }; + /** + * To refresh the active tab contents. + * + * @returns {void} + */ + Tab.prototype.refreshActiveTab = function () { + if (this.isReact && this.isTemplate) { + this.clearTemplate(); + } + if (!this.isTemplate) { + if (this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).children[0]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]); + var item = this.items[this.selectedItem]; + var pos = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.iconPosition)) ? '' : item.header.iconPosition; + var css = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.header.iconCss)) ? '' : item.header.iconCss; + var text = item.headerTemplate || item.header.text; + var txtWrap = this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(text.tagName)) { + txtWrap.appendChild(text); + } + else { + this.headerTextCompile(txtWrap, text, this.selectedItem); + } + var tEle = void 0; + var icon = this.createElement('span', { + className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css + }); + var tConts = this.createElement('div', { className: CLS_TEXT_WRAP }); + tConts.appendChild(txtWrap); + if ((text !== '' && text !== undefined) && css !== '') { + if ((pos === 'left' || pos === 'top')) { + tConts.insertBefore(icon, tConts.firstElementChild); + } + else { + tConts.appendChild(icon); + } + tEle = txtWrap; + this.isIconAlone = false; + } + else { + tEle = ((css === '') ? txtWrap : icon); + if (tEle === icon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(txtWrap); + tConts.appendChild(icon); + this.isIconAlone = true; + } + } + var tabIndex = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.tabIndex) ? '-1' : item.tabIndex.toString(); + var wrapAtt = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'true', 'aria-disabled': 'false' }; + tConts.appendChild(this.btnCls.cloneNode(true)); + var wraper = this.createElement('div', { className: CLS_WRAP, attrs: wrapAtt }); + wraper.appendChild(tConts); + if (pos === 'top' || pos === 'bottom') { + this.element.classList.add('e-vertical-icon'); + } + this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wraper); + var crElem = this.createElement('div'); + var cnt = item.content; + var eleStr = void 0; + if (typeof cnt === 'string' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cnt.innerHTML)) { + if (typeof cnt === 'string' && this.enableHtmlSanitizer) { + cnt = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(cnt); + } + if (cnt[0] === '.' || cnt[0] === '#') { + if (document.querySelectorAll(cnt).length) { + var eleVal = document.querySelector(cnt); + eleStr = eleVal.outerHTML.trim(); + crElem.appendChild(eleVal); + eleVal.style.display = ''; + } + else { + this.compileElement(crElem, cnt, 'content', this.selectedItem); + } + } + else { + this.compileElement(crElem, cnt, 'content', this.selectedItem); + } + } + else { + crElem.appendChild(cnt); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleStr)) { + if (this.templateEle.indexOf(cnt.toString()) === -1) { + this.templateEle.push(cnt.toString()); + } + } + this.element.querySelector('.' + CLS_ITEM + '.' + CLS_ACTIVE).appendChild(crElem); + } + } + else { + var tabItems = this.element.querySelector('.' + CLS_TB_ITEMS); + var element = this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE); + var index = this.getIndexFromEle(element.id); + var header = element.innerText; + var detachContent = this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]; + var mainContents = detachContent.innerHTML; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(detachContent); + var attr = { + className: CLS_TB_ITEM + ' ' + CLS_TEMPLATE + ' ' + CLS_ACTIVE, id: CLS_ITEM + this.tabId + '_' + index + }; + var txtString = this.createElement('span', { + className: CLS_TEXT, innerHTML: header, attrs: { 'role': 'presentation' } + }).outerHTML; + var conte = this.createElement('div', { + className: CLS_TEXT_WRAP, innerHTML: txtString + this.btnCls.outerHTML + }).outerHTML; + var tabIndex = element.firstElementChild.getAttribute('data-tabindex'); + var wrap = this.createElement('div', { + className: CLS_WRAP, innerHTML: conte, + attrs: { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-controls': CLS_CONTENT + this.tabId + '_' + index, 'aria-selected': 'true', 'aria-disabled': 'false' } + }); + tabItems.insertBefore(this.createElement('div', attr), tabItems.children[index + 1]); + this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wrap); + var crElem = this.createElement('div', { innerHTML: mainContents }); + this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).appendChild(crElem); + } + if (this.isReact) { + this.renderReactTemplates(); + } + }; + /** + * To refresh the active tab indicator. + * + * @returns {void} + */ + Tab.prototype.refreshActiveTabBorder = function () { + var activeEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE, this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeEle) && this.reorderActiveTab) { + this.select(this.getEleIndex(activeEle)); + } + this.refreshActiveBorder(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], TabItem) + ], Tab.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Tab.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Tab.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Tab.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Tab.prototype, "selectedItem", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Top') + ], Tab.prototype, "headerPlacement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Content') + ], Tab.prototype, "heightAdjustMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Scrollable') + ], Tab.prototype, "overflowMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Dynamic') + ], Tab.prototype, "loadOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tab.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tab.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tab.prototype, "showCloseButton", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Tab.prototype, "reorderActiveTab", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Tab.prototype, "scrollStep", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Tab.prototype, "dragArea", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tab.prototype, "allowDragAndDrop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, TabAnimationSettings) + ], Tab.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "adding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "added", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "selecting", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "selected", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "removing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "removed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "onDragStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "dragging", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "dragged", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tab.prototype, "destroyed", void 0); + Tab = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Tab); + return Tab; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/index.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/index.js ***! + \************************************************************************/ +/*! exports provided: Item, Toolbar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toolbar */ "./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/toolbar.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return _toolbar__WEBPACK_IMPORTED_MODULE_0__["Item"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Toolbar", function() { return _toolbar__WEBPACK_IMPORTED_MODULE_0__["Toolbar"]; }); + +/** + * Toolbar modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/toolbar.js": +/*!**************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/toolbar/toolbar.js ***! + \**************************************************************************/ +/*! exports provided: Item, Toolbar */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return Item; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Toolbar", function() { return Toolbar; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _common_h_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/h-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/h-scroll.js"); +/* harmony import */ var _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common/v-scroll */ "./ej2-resources/22.1.37/scripts/ej2-navigations/common/v-scroll.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + + + + + + + +var CLS_VERTICAL = 'e-vertical'; +var CLS_ITEMS = 'e-toolbar-items'; +var CLS_ITEM = 'e-toolbar-item'; +var CLS_RTL = 'e-rtl'; +var CLS_SEPARATOR = 'e-separator'; +var CLS_POPUPICON = 'e-popup-up-icon'; +var CLS_POPUPDOWN = 'e-popup-down-icon'; +var CLS_POPUPOPEN = 'e-popup-open'; +var CLS_TEMPLATE = 'e-template'; +var CLS_DISABLE = 'e-overlay'; +var CLS_POPUPTEXT = 'e-toolbar-text'; +var CLS_TBARTEXT = 'e-popup-text'; +var CLS_TBAROVERFLOW = 'e-overflow-show'; +var CLS_POPOVERFLOW = 'e-overflow-hide'; +var CLS_TBARBTN = 'e-tbar-btn'; +var CLS_TBARNAV = 'e-hor-nav'; +var CLS_TBARSCRLNAV = 'e-scroll-nav'; +var CLS_TBARRIGHT = 'e-toolbar-right'; +var CLS_TBARLEFT = 'e-toolbar-left'; +var CLS_TBARCENTER = 'e-toolbar-center'; +var CLS_TBARPOS = 'e-tbar-pos'; +var CLS_HSCROLLCNT = 'e-hscroll-content'; +var CLS_VSCROLLCNT = 'e-vscroll-content'; +var CLS_HSCROLLBAR = 'e-hscroll-bar'; +var CLS_POPUPNAV = 'e-hor-nav'; +var CLS_POPUPCLASS = 'e-toolbar-pop'; +var CLS_POPUP = 'e-toolbar-popup'; +var CLS_TBARBTNTEXT = 'e-tbar-btn-text'; +var CLS_TBARNAVACT = 'e-nav-active'; +var CLS_TBARIGNORE = 'e-ignore'; +var CLS_POPPRI = 'e-popup-alone'; +var CLS_HIDDEN = 'e-hidden'; +var CLS_MULTIROW = 'e-toolbar-multirow'; +var CLS_MULTIROWPOS = 'e-multirow-pos'; +var CLS_MULTIROW_SEPARATOR = 'e-multirow-separator'; +var CLS_EXTENDABLE_SEPARATOR = 'e-extended-separator'; +var CLS_EXTEANDABLE_TOOLBAR = 'e-extended-toolbar'; +var CLS_EXTENDABLECLASS = 'e-toolbar-extended'; +var CLS_EXTENDPOPUP = 'e-expended-nav'; +var CLS_EXTENDEDPOPOPEN = 'e-tbar-extended'; +/** + * An item object that is used to configure Toolbar commands. + */ +var Item = /** @__PURE__ @class */ (function (_super) { + __extends(Item, _super); + function Item() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Item.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Item.prototype, "showAlwaysInPopup", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Item.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "prefixIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "suffixIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Item.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], Item.prototype, "overflow", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Button') + ], Item.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Both') + ], Item.prototype, "showTextOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Item.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "tooltipText", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], Item.prototype, "align", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Item.prototype, "click", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(-1) + ], Item.prototype, "tabIndex", void 0); + return Item; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * The Toolbar control contains a group of commands that are aligned horizontally. + * ```html + *
    + * + * ``` + */ +var Toolbar = /** @__PURE__ @class */ (function (_super) { + __extends(Toolbar, _super); + /** + * Initializes a new instance of the Toolbar class. + * + * @param {ToolbarModel} options - Specifies Toolbar model properties as options. + * @param { string | HTMLElement} element - Specifies the element that is rendered as a Toolbar. + */ + function Toolbar(options, element) { + var _this = _super.call(this, options, element) || this; + _this.resizeContext = _this.resize.bind(_this); + /** + * Contains the keyboard configuration of the Toolbar. + */ + _this.keyConfigs = { + moveLeft: 'leftarrow', + moveRight: 'rightarrow', + moveUp: 'uparrow', + moveDown: 'downarrow', + popupOpen: 'enter', + popupClose: 'escape', + tab: 'tab', + home: 'home', + end: 'end' + }; + return _this; + } + /** + * Removes the control from the DOM and also removes all its related events. + * + * @returns {void}. + */ + Toolbar.prototype.destroy = function () { + var _this = this; + if (this.isReact || this.isAngular) { + this.clearTemplate(); + } + var btnItems = this.element.querySelectorAll('.e-control.e-btn'); + [].slice.call(btnItems).forEach(function (el) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(el) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(el.ej2_instances) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(el.ej2_instances[0]) && !(el.ej2_instances[0].isDestroyed)) { + el.ej2_instances[0].destroy(); + } + }); + this.unwireEvents(); + this.tempId.forEach(function (ele) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.element.querySelector(ele))) { + document.body.appendChild(_this.element.querySelector(ele)).style.display = 'none'; + } + }); + this.destroyItems(); + while (this.element.lastElementChild) { + this.element.removeChild(this.element.lastElementChild); + } + if (this.trgtEle) { + this.element.appendChild(this.ctrlTem); + this.trgtEle = null; + this.ctrlTem = null; + } + if (this.popObj) { + this.popObj.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.popObj.element); + } + if (this.activeEle) { + this.activeEle = null; + } + this.popObj = null; + this.tbarAlign = null; + this.tbarItemsCol = []; + this.remove(this.element, 'e-toolpop'); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], this.cssClass.split(' ')); + } + this.element.removeAttribute('style'); + ['aria-disabled', 'aria-orientation', 'role'].forEach(function (attrb) { + return _this.element.removeAttribute(attrb); + }); + _super.prototype.destroy.call(this); + }; + /** + * Initialize the event handler + * + * @private + * @returns {void} + */ + Toolbar.prototype.preRender = function () { + var eventArgs = { enableCollision: this.enableCollision, scrollStep: this.scrollStep }; + this.trigger('beforeCreate', eventArgs); + this.enableCollision = eventArgs.enableCollision; + this.scrollStep = eventArgs.scrollStep; + this.scrollModule = null; + this.popObj = null; + this.tempId = []; + this.tbarItemsCol = this.items; + this.isVertical = this.element.classList.contains(CLS_VERTICAL) ? true : false; + this.isExtendedOpen = false; + this.popupPriCount = 0; + if (this.enableRtl) { + this.add(this.element, CLS_RTL); + } + }; + Toolbar.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + window.addEventListener('resize', this.resizeContext); + if (this.allowKeyboard) { + this.wireKeyboardEvent(); + } + }; + Toolbar.prototype.wireKeyboardEvent = function () { + this.keyModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs + }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.docKeyDown, this); + this.updateTabIndex('0'); + }; + Toolbar.prototype.updateTabIndex = function (tabIndex) { + var ele = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.firstElementChild)) { + var dataTabIndex = ele.firstElementChild.getAttribute('data-tabindex'); + if (dataTabIndex && dataTabIndex === '-1' && ele.firstElementChild.tagName !== 'INPUT') { + ele.firstElementChild.setAttribute('tabindex', tabIndex); + } + } + }; + Toolbar.prototype.unwireKeyboardEvent = function () { + if (this.keyModule) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', this.docKeyDown); + this.keyModule.destroy(); + this.keyModule = null; + } + }; + Toolbar.prototype.docKeyDown = function (e) { + if (e.target.tagName === 'INPUT') { + return; + } + var popCheck = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popObj) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element) && this.overflowMode !== 'Extended'; + if (e.keyCode === 9 && e.target.classList.contains('e-hor-nav') === true && popCheck) { + this.popObj.hide({ name: 'FadeOut', duration: 100 }); + } + var keyCheck = (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 35 || e.keyCode === 36); + if (keyCheck) { + e.preventDefault(); + } + }; + Toolbar.prototype.unwireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + this.destroyScroll(); + this.unwireKeyboardEvent(); + window.removeEventListener('resize', this.resizeContext); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'scroll', this.docEvent); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'click', this.docEvent); + }; + Toolbar.prototype.clearProperty = function () { + this.tbarEle = []; + this.tbarAlgEle = { lefts: [], centers: [], rights: [] }; + }; + Toolbar.prototype.docEvent = function (e) { + var popEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-popup'); + if (this.popObj && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element) && !popEle && this.overflowMode === 'Popup') { + this.popObj.hide({ name: 'FadeOut', duration: 100 }); + } + }; + Toolbar.prototype.destroyScroll = function () { + if (this.scrollModule) { + if (this.tbarAlign) { + this.add(this.scrollModule.element, CLS_TBARPOS); + } + this.scrollModule.destroy(); + this.scrollModule = null; + } + }; + Toolbar.prototype.destroyItems = function () { + if (this.element) { + [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(el); }); + } + if (this.tbarAlign) { + var tbarItems = this.element.querySelector('.' + CLS_ITEMS); + [].slice.call(tbarItems.children).forEach(function (el) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(el); + }); + this.tbarAlign = false; + this.remove(tbarItems, CLS_TBARPOS); + } + this.clearProperty(); + }; + Toolbar.prototype.destroyMode = function () { + if (this.scrollModule) { + this.remove(this.scrollModule.element, CLS_RTL); + this.destroyScroll(); + } + this.remove(this.element, CLS_EXTENDEDPOPOPEN); + this.remove(this.element, CLS_EXTEANDABLE_TOOLBAR); + var tempEle = this.element.querySelector('.e-toolbar-multirow'); + if (tempEle) { + this.remove(tempEle, CLS_MULTIROW); + } + if (this.popObj) { + this.popupRefresh(this.popObj.element, true); + } + }; + Toolbar.prototype.add = function (ele, val) { + ele.classList.add(val); + }; + Toolbar.prototype.remove = function (ele, val) { + ele.classList.remove(val); + }; + Toolbar.prototype.elementFocus = function (ele) { + var fChild = ele.firstElementChild; + if (fChild) { + fChild.focus(); + this.activeEleSwitch(ele); + } + else { + ele.focus(); + } + }; + Toolbar.prototype.clstElement = function (tbrNavChk, trgt) { + var clst; + if (tbrNavChk && this.popObj && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element)) { + clst = this.popObj.element.querySelector('.' + CLS_ITEM); + } + else if (this.element === trgt || tbrNavChk) { + clst = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )'); + } + else { + clst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_ITEM); + } + return clst; + }; + Toolbar.prototype.keyHandling = function (clst, e, trgt, navChk, scrollChk) { + var popObj = this.popObj; + var rootEle = this.element; + var popAnimate = { name: 'FadeOut', duration: 100 }; + var value = e.action === 'moveUp' ? 'previous' : 'next'; + var ele; + var nodes; + switch (e.action) { + case 'moveRight': + if (this.isVertical) { + return; + } + if (rootEle === trgt) { + this.elementFocus(clst); + } + else if (!navChk) { + this.eleFocus(clst, 'next'); + } + break; + case 'moveLeft': + if (this.isVertical) { + return; + } + if (!navChk) { + this.eleFocus(clst, 'previous'); + } + break; + case 'home': + case 'end': + if (clst) { + var popupCheck = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(clst, '.e-popup'); + var extendedPopup = this.element.querySelector('.' + CLS_EXTENDABLECLASS); + if (this.overflowMode === 'Extended' && extendedPopup && extendedPopup.classList.contains('e-popup-open')) { + popupCheck = e.action === 'end' ? extendedPopup : null; + } + if (popupCheck) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element)) { + nodes = [].slice.call(popupCheck.children); + if (e.action === 'home') { + ele = this.focusFirstVisibleEle(nodes); + } + else { + ele = this.focusLastVisibleEle(nodes); + } + } + } + else { + nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')'); + if (e.action === 'home') { + ele = this.focusFirstVisibleEle(nodes); + } + else { + ele = this.focusLastVisibleEle(nodes); + } + } + if (ele) { + this.elementFocus(ele); + } + } + break; + case 'moveUp': + case 'moveDown': + if (!this.isVertical) { + if (popObj && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.e-popup')) { + var popEle = popObj.element; + var popFrstEle = popEle.firstElementChild; + if ((value === 'previous' && popFrstEle === clst)) { + popEle.lastElementChild.firstChild.focus(); + } + else if (value === 'next' && popEle.lastElementChild === clst) { + popFrstEle.firstChild.focus(); + } + else { + this.eleFocus(clst, value); + } + } + else if (e.action === 'moveDown' && popObj && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(popObj.element)) { + this.elementFocus(clst); + } + } + else { + if (e.action === 'moveUp') { + this.eleFocus(clst, 'previous'); + } + else { + this.eleFocus(clst, 'next'); + } + } + break; + case 'tab': + if (!scrollChk && !navChk) { + var ele_1 = clst.firstElementChild; + if (rootEle === trgt) { + if (this.activeEle) { + this.activeEle.focus(); + } + else { + this.activeEleRemove(ele_1); + ele_1.focus(); + } + } + } + break; + case 'popupClose': + if (popObj && this.overflowMode !== 'Extended') { + popObj.hide(popAnimate); + } + break; + case 'popupOpen': + if (!navChk) { + return; + } + if (popObj && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(popObj.element)) { + popObj.element.style.top = rootEle.offsetHeight + 'px'; + popObj.show({ name: 'FadeIn', duration: 100 }); + } + else { + popObj.hide(popAnimate); + } + break; + } + }; + Toolbar.prototype.keyActionHandler = function (e) { + var trgt = e.target; + if (trgt.tagName === 'INPUT' || trgt.tagName === 'TEXTAREA' || this.element.classList.contains(CLS_DISABLE)) { + return; + } + e.preventDefault(); + var tbrNavChk = trgt.classList.contains(CLS_TBARNAV); + var tbarScrollChk = trgt.classList.contains(CLS_TBARSCRLNAV); + var clst = this.clstElement(tbrNavChk, trgt); + if (clst || tbarScrollChk) { + this.keyHandling(clst, e, trgt, tbrNavChk, tbarScrollChk); + } + }; + /** + * Specifies the value to disable/enable the Toolbar component. + * When set to `true`, the component will be disabled. + * + * @param {boolean} value - Based on this Boolean value, Toolbar will be enabled (false) or disabled (true). + * @returns {void}. + */ + Toolbar.prototype.disable = function (value) { + var rootEle = this.element; + if (value) { + rootEle.classList.add(CLS_DISABLE); + } + else { + rootEle.classList.remove(CLS_DISABLE); + } + if (this.activeEle) { + this.activeEle.setAttribute('tabindex', this.activeEle.getAttribute('data-tabindex')); + } + if (this.scrollModule) { + this.scrollModule.disable(value); + } + if (this.popObj) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(this.popObj.element) && this.overflowMode !== 'Extended') { + this.popObj.hide(); + } + rootEle.querySelector('#' + rootEle.id + '_nav').setAttribute('tabindex', !value ? '0' : '-1'); + } + }; + Toolbar.prototype.eleContains = function (el) { + return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(el) || !el.classList.contains(CLS_ITEM); + }; + Toolbar.prototype.focusFirstVisibleEle = function (nodes) { + var element; + var index = 0; + while (index < nodes.length) { + var ele = nodes[parseInt(index.toString(), 10)]; + if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) { + return ele; + } + index++; + } + return element; + }; + Toolbar.prototype.focusLastVisibleEle = function (nodes) { + var element; + var index = nodes.length - 1; + while (index >= 0) { + var ele = nodes[parseInt(index.toString(), 10)]; + if (!ele.classList.contains(CLS_HIDDEN) && !ele.classList.contains(CLS_DISABLE)) { + return ele; + } + index--; + } + return element; + }; + Toolbar.prototype.eleFocus = function (closest, pos) { + var sib = Object(closest)[pos + 'ElementSibling']; + if (sib) { + var skipEle = this.eleContains(sib); + if (skipEle) { + this.eleFocus(sib, pos); + return; + } + this.elementFocus(sib); + } + else if (this.tbarAlign) { + var elem = Object(closest.parentElement)[pos + 'ElementSibling']; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(elem) && elem.children.length === 0) { + elem = Object(elem)[pos + 'ElementSibling']; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(elem) && elem.children.length > 0) { + if (pos === 'next') { + var el = elem.querySelector('.' + CLS_ITEM); + if (this.eleContains(el)) { + this.eleFocus(el, pos); + } + else { + el.firstElementChild.focus(); + this.activeEleSwitch(el); + } + } + else { + var el = elem.lastElementChild; + if (this.eleContains(el)) { + this.eleFocus(el, pos); + } + else { + this.elementFocus(el); + } + } + } + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(closest)) { + var tbrItems = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')' + ':not(.' + CLS_DISABLE + ')' + ':not(.' + CLS_HIDDEN + ')'); + if (pos === 'next' && tbrItems) { + this.elementFocus(tbrItems[0]); + } + else if (pos === 'previous' && tbrItems) { + this.elementFocus(tbrItems[tbrItems.length - 1]); + } + } + }; + Toolbar.prototype.clickHandler = function (e) { + var _this = this; + var trgt = e.target; + var ele = this.element; + var isPopupElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '.' + CLS_POPUPCLASS)); + var clsList = trgt.classList; + var popupNav = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, ('.' + CLS_TBARNAV)); + if (!popupNav) { + popupNav = trgt; + } + if (!ele.children[0].classList.contains('e-hscroll') && !ele.children[0].classList.contains('e-vscroll') + && (clsList.contains(CLS_TBARNAV))) { + clsList = trgt.querySelector('.e-icons').classList; + } + if (clsList.contains(CLS_POPUPICON) || clsList.contains(CLS_POPUPDOWN)) { + this.popupClickHandler(ele, popupNav, CLS_RTL); + } + var itemObj; + var clst = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + CLS_ITEM); + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(clst) || clst.classList.contains(CLS_DISABLE)) && !popupNav.classList.contains(CLS_TBARNAV)) { + return; + } + if (clst) { + var tempItem = this.items[this.tbarEle.indexOf(clst)]; + itemObj = tempItem; + } + var eventArgs = { originalEvent: e, item: itemObj }; + if (itemObj && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(itemObj.click)) { + this.trigger('items[' + this.tbarEle.indexOf(clst) + '].click', eventArgs); + } + if (!eventArgs.cancel) { + this.trigger('clicked', eventArgs, function (clickedArgs) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.popObj) && isPopupElement && !clickedArgs.cancel && _this.overflowMode === 'Popup' && + clickedArgs.item && clickedArgs.item.type !== 'Input') { + _this.popObj.hide({ name: 'FadeOut', duration: 100 }); + } + }); + } + }; + Toolbar.prototype.popupClickHandler = function (ele, popupNav, CLS_RTL) { + var popObj = this.popObj; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(popObj.element)) { + popupNav.classList.remove(CLS_TBARNAVACT); + popObj.hide({ name: 'FadeOut', duration: 100 }); + } + else { + if (ele.classList.contains(CLS_RTL)) { + popObj.enableRtl = true; + popObj.position = { X: 'left', Y: 'top' }; + } + if (popObj.offsetX === 0 && !ele.classList.contains(CLS_RTL)) { + popObj.enableRtl = false; + popObj.position = { X: 'right', Y: 'top' }; + } + popObj.dataBind(); + popObj.refreshPosition(); + popObj.element.style.top = this.getElementOffsetY() + 'px'; + if (this.overflowMode === 'Extended') { + popObj.element.style.minHeight = '0px'; + } + popupNav.classList.add(CLS_TBARNAVACT); + popObj.show({ name: 'FadeIn', duration: 100 }); + } + }; + /** + * To Initialize the control rendering + * + * @private + * @returns {void} + */ + Toolbar.prototype.render = function () { + this.initialize(); + this.renderControl(); + this.wireEvents(); + this.renderComplete(); + }; + Toolbar.prototype.initialize = function () { + var width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width); + var height = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name !== 'msie' || this.height !== 'auto' || this.overflowMode === 'MultiRow') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': height }); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': width }); + var ariaAttr = { + 'role': 'toolbar', 'aria-disabled': 'false', + 'aria-orientation': !this.isVertical ? 'horizontal' : 'vertical' + }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, ariaAttr); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.split(' ')); + } + }; + Toolbar.prototype.renderControl = function () { + var ele = this.element; + this.trgtEle = (ele.children.length > 0) ? ele.querySelector('div') : null; + this.tbarAlgEle = { lefts: [], centers: [], rights: [] }; + this.renderItems(); + this.renderLayout(); + }; + Toolbar.prototype.renderLayout = function () { + this.renderOverflowMode(); + if (this.tbarAlign) { + this.itemPositioning(); + } + if (this.popObj && this.popObj.element.childElementCount > 1 && this.checkPopupRefresh(this.element, this.popObj.element)) { + this.popupRefresh(this.popObj.element, false); + } + this.separator(); + }; + Toolbar.prototype.itemsAlign = function (items, itemEleDom) { + var innerItem; + var innerPos; + if (!this.tbarEle) { + this.tbarEle = []; + } + for (var i = 0; i < items.length; i++) { + innerItem = this.renderSubComponent(items[parseInt(i.toString(), 10)], i); + if (this.tbarEle.indexOf(innerItem) === -1) { + this.tbarEle.push(innerItem); + } + if (!this.tbarAlign) { + this.tbarItemAlign(items[parseInt(i.toString(), 10)], itemEleDom, i); + } + innerPos = itemEleDom.querySelector('.e-toolbar-' + items[parseInt(i.toString(), 10)].align.toLowerCase()); + if (innerPos) { + if (!(items[parseInt(i.toString(), 10)].showAlwaysInPopup && items[parseInt(i.toString(), 10)].overflow !== 'Show')) { + this.tbarAlgEle[(items[parseInt(i.toString(), 10)].align + 's').toLowerCase()].push(innerItem); + } + innerPos.appendChild(innerItem); + } + else { + itemEleDom.appendChild(innerItem); + } + } + if (this.isReact) { + var portals = 'portals'; + this.notify('render-react-toolbar-template', this["" + portals]); + this.renderReactTemplates(); + } + }; + /** + * @hidden + * @returns {void} + */ + Toolbar.prototype.changeOrientation = function () { + var ele = this.element; + if (this.isVertical) { + ele.classList.remove(CLS_VERTICAL); + this.isVertical = false; + if (this.height === 'auto' || this.height === '100%') { + ele.style.height = this.height; + } + ele.setAttribute('aria-orientation', 'horizontal'); + } + else { + ele.classList.add(CLS_VERTICAL); + this.isVertical = true; + ele.setAttribute('aria-orientation', 'vertical'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height), 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width) }); + } + this.destroyMode(); + this.refreshOverflow(); + }; + Toolbar.prototype.initScroll = function (element, innerItems) { + if (!this.scrollModule && this.checkOverflow(element, innerItems[0])) { + if (this.tbarAlign) { + this.element.querySelector('.' + CLS_ITEMS + ' .' + CLS_TBARCENTER).removeAttribute('style'); + } + if (this.isVertical) { + this.scrollModule = new _common_v_scroll__WEBPACK_IMPORTED_MODULE_4__["VScroll"]({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]); + } + else { + this.scrollModule = new _common_h_scroll__WEBPACK_IMPORTED_MODULE_3__["HScroll"]({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([innerItems[0]], this.cssClass.split(' ')); + } + this.remove(this.scrollModule.element, CLS_TBARPOS); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { overflow: 'hidden' }); + } + }; + Toolbar.prototype.itemWidthCal = function (items) { + var _this = this; + var width = 0; + var style; + [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, items)).forEach(function (el) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(el)) { + style = window.getComputedStyle(el); + width += _this.isVertical ? el.offsetHeight : el.offsetWidth; + width += parseFloat(_this.isVertical ? style.marginTop : style.marginRight); + width += parseFloat(_this.isVertical ? style.marginBottom : style.marginLeft); + } + }); + return width; + }; + Toolbar.prototype.getScrollCntEle = function (innerItem) { + var trgClass = (this.isVertical) ? '.e-vscroll-content' : '.e-hscroll-content'; + return innerItem.querySelector(trgClass); + }; + Toolbar.prototype.checkOverflow = function (element, innerItem) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(innerItem) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(element)) { + return false; + } + var eleWidth = this.isVertical ? element.offsetHeight : element.offsetWidth; + var itemWidth = this.isVertical ? innerItem.offsetHeight : innerItem.offsetWidth; + if (this.tbarAlign || this.scrollModule || (eleWidth === itemWidth)) { + itemWidth = this.itemWidthCal(this.scrollModule ? this.getScrollCntEle(innerItem) : innerItem); + } + var popNav = element.querySelector('.' + CLS_TBARNAV); + var scrollNav = element.querySelector('.' + CLS_TBARSCRLNAV); + var navEleWidth = 0; + if (popNav) { + navEleWidth = this.isVertical ? popNav.offsetHeight : popNav.offsetWidth; + } + else if (scrollNav) { + navEleWidth = this.isVertical ? (scrollNav.offsetHeight * (2)) : (scrollNav.offsetWidth * 2); + } + if (itemWidth > eleWidth - navEleWidth) { + return true; + } + else { + return false; + } + }; + /** + * Refresh the whole Toolbar component without re-rendering. + * - It is used to manually refresh the Toolbar overflow modes such as scrollable, popup, multi row, and extended. + * - It will refresh the Toolbar component after loading items dynamically. + * + * @returns {void}. + */ + Toolbar.prototype.refreshOverflow = function () { + this.resize(); + }; + Toolbar.prototype.toolbarAlign = function (innerItems) { + if (this.tbarAlign) { + this.add(innerItems, CLS_TBARPOS); + this.itemPositioning(); + } + }; + Toolbar.prototype.renderOverflowMode = function () { + var ele = this.element; + var innerItems = ele.querySelector('.' + CLS_ITEMS); + var priorityCheck = this.popupPriCount > 0; + if (ele && ele.children.length > 0) { + this.offsetWid = ele.offsetWidth; + this.remove(this.element, 'e-toolpop'); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie' && this.height === 'auto') { + ele.style.height = ''; + } + switch (this.overflowMode) { + case 'Scrollable': + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollModule)) { + this.initScroll(ele, [].slice.call(ele.getElementsByClassName(CLS_ITEMS))); + } + break; + case 'Popup': + this.add(this.element, 'e-toolpop'); + if (this.tbarAlign) { + this.removePositioning(); + } + if (this.checkOverflow(ele, innerItems) || priorityCheck) { + this.setOverflowAttributes(ele); + } + this.toolbarAlign(innerItems); + break; + case 'MultiRow': + this.add(innerItems, CLS_MULTIROW); + if (this.checkOverflow(ele, innerItems) && this.tbarAlign) { + this.removePositioning(); + this.add(innerItems, CLS_MULTIROWPOS); + } + if (ele.style.overflow === 'hidden') { + ele.style.overflow = ''; + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie' || ele.style.height !== 'auto') { + ele.style.height = 'auto'; + } + break; + case 'Extended': + this.add(this.element, CLS_EXTEANDABLE_TOOLBAR); + if (this.checkOverflow(ele, innerItems) || priorityCheck) { + if (this.tbarAlign) { + this.removePositioning(); + } + this.setOverflowAttributes(ele); + } + this.toolbarAlign(innerItems); + } + } + }; + Toolbar.prototype.setOverflowAttributes = function (ele) { + this.createPopupEle(ele, [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEMS + ' .' + CLS_ITEM, ele))); + var ariaAttr = { + 'tabindex': '0', 'role': 'button', 'aria-haspopup': 'true', + 'aria-label': 'overflow' + }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element.querySelector('.' + CLS_TBARNAV), ariaAttr); + }; + Toolbar.prototype.separator = function () { + var element = this.element; + var eleItem = [].slice.call(element.querySelectorAll('.' + CLS_SEPARATOR)); + var multiVar = element.querySelector('.' + CLS_MULTIROW_SEPARATOR); + var extendVar = element.querySelector('.' + CLS_EXTENDABLE_SEPARATOR); + var eleInlineItem = this.overflowMode === 'MultiRow' ? multiVar : extendVar; + if (eleInlineItem !== null) { + if (this.overflowMode === 'MultiRow') { + eleInlineItem.classList.remove(CLS_MULTIROW_SEPARATOR); + } + else if (this.overflowMode === 'Extended') { + eleInlineItem.classList.remove(CLS_EXTENDABLE_SEPARATOR); + } + } + for (var i = 0; i <= eleItem.length - 1; i++) { + if (eleItem[parseInt(i.toString(), 10)].offsetLeft < 30 && eleItem[parseInt(i.toString(), 10)].offsetLeft !== 0) { + if (this.overflowMode === 'MultiRow') { + eleItem[parseInt(i.toString(), 10)].classList.add(CLS_MULTIROW_SEPARATOR); + } + else if (this.overflowMode === 'Extended') { + eleItem[parseInt(i.toString(), 10)].classList.add(CLS_EXTENDABLE_SEPARATOR); + } + } + } + }; + Toolbar.prototype.createPopupEle = function (ele, innerEle) { + var innerNav = ele.querySelector('.' + CLS_TBARNAV); + var vertical = this.isVertical; + if (!innerNav) { + this.createPopupIcon(ele); + } + innerNav = ele.querySelector('.' + CLS_TBARNAV); + var innerNavDom = (vertical ? innerNav.offsetHeight : innerNav.offsetWidth); + var eleWidth = ((vertical ? ele.offsetHeight : ele.offsetWidth) - (innerNavDom)); + this.element.classList.remove('e-rtl'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { direction: 'initial' }); + this.checkPriority(ele, innerEle, eleWidth, true); + if (this.enableRtl) { + this.element.classList.add('e-rtl'); + } + this.element.style.removeProperty('direction'); + this.createPopup(); + }; + Toolbar.prototype.pushingPoppedEle = function (tbarObj, popupPri, ele, eleHeight, sepHeight) { + var element = tbarObj.element; + var poppedEle = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS))); + var nodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TBAROVERFLOW, ele); + var nodeIndex = 0; + var nodePri = 0; + poppedEle.forEach(function (el, index) { + nodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TBAROVERFLOW, ele); + if (el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0) { + if (tbarObj.tbResize && nodes.length > index) { + ele.insertBefore(el, nodes[parseInt(index.toString(), 10)]); + ++nodePri; + } + else { + ele.insertBefore(el, ele.children[nodes.length]); + ++nodePri; + } + } + else if (el.classList.contains(CLS_TBAROVERFLOW)) { + ele.insertBefore(el, ele.firstChild); + ++nodePri; + } + else if (tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && nodes.length === 0) { + ele.insertBefore(el, ele.firstChild); + ++nodePri; + } + else if (el.classList.contains(CLS_POPOVERFLOW)) { + popupPri.push(el); + } + else if (tbarObj.tbResize) { + ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]); + ++nodeIndex; + } + else { + ele.appendChild(el); + } + if (el.classList.contains(CLS_SEPARATOR)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(el, { display: '', height: sepHeight + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(el, { display: '', height: eleHeight + 'px' }); + } + }); + popupPri.forEach(function (el) { + ele.appendChild(el); + }); + var tbarEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, element.querySelector('.' + CLS_ITEMS)); + for (var i = tbarEle.length - 1; i >= 0; i--) { + var tbarElement = tbarEle[parseInt(i.toString(), 10)]; + if (tbarElement.classList.contains(CLS_SEPARATOR) && this.overflowMode !== 'Extended') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(tbarElement, { display: 'none' }); + } + else { + break; + } + } + }; + Toolbar.prototype.createPopup = function () { + var element = this.element; + var sepHeight; + var sepItem; + if (this.overflowMode === 'Extended') { + sepItem = element.querySelector('.' + CLS_SEPARATOR); + sepHeight = + (element.style.height === 'auto' || element.style.height === '') ? null : (sepItem && sepItem.offsetHeight); + } + var eleItem = element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_POPUP + ')'); + var eleHeight = (element.style.height === 'auto' || element.style.height === '') ? null : (eleItem && eleItem.offsetHeight); + var ele; + var popupPri = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + element.id + '_popup.' + CLS_POPUPCLASS, element)) { + ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('#' + element.id + '_popup.' + CLS_POPUPCLASS, element); + } + else { + var extendEle = this.createElement('div', { + id: element.id + '_popup', className: CLS_POPUPCLASS + ' ' + CLS_EXTENDABLECLASS + }); + var popupEle = this.createElement('div', { id: element.id + '_popup', className: CLS_POPUPCLASS }); + ele = this.overflowMode === 'Extended' ? extendEle : popupEle; + } + this.pushingPoppedEle(this, popupPri, ele, eleHeight, sepHeight); + this.popupInit(element, ele); + }; + Toolbar.prototype.getElementOffsetY = function () { + return (this.overflowMode === 'Extended' && window.getComputedStyle(this.element).getPropertyValue('box-sizing') === 'border-box' ? + this.element.clientHeight : this.element.offsetHeight); + }; + Toolbar.prototype.popupInit = function (element, ele) { + if (!this.popObj) { + element.appendChild(ele); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ele], this.cssClass.split(' ')); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { overflow: '' }); + var eleStyles = window.getComputedStyle(this.element); + var popup = new _ej2_popups__WEBPACK_IMPORTED_MODULE_1__["Popup"](null, { + relateTo: this.element, + offsetY: (this.isVertical) ? 0 : this.getElementOffsetY(), + enableRtl: this.enableRtl, + open: this.popupOpen.bind(this), + close: this.popupClose.bind(this), + collision: { Y: this.enableCollision ? 'flip' : 'none' }, + position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' } + }); + if (this.overflowMode === 'Extended') { + popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2); + popup.offsetX = 0; + } + popup.appendTo(ele); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'scroll', this.docEvent.bind(this)); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'click ', this.docEvent.bind(this)); + popup.element.style.maxHeight = popup.element.offsetHeight + 'px'; + if (this.isVertical) { + popup.element.style.visibility = 'hidden'; + } + if (this.isExtendedOpen) { + var popupNav = this.element.querySelector('.' + CLS_TBARNAV); + popupNav.classList.add(CLS_TBARNAVACT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(popupNav.firstElementChild, [CLS_POPUPICON], [CLS_POPUPDOWN]); + this.element.querySelector('.' + CLS_EXTENDABLECLASS).classList.add(CLS_POPUPOPEN); + } + else { + popup.hide(); + } + this.popObj = popup; + } + else { + var popupEle = this.popObj.element; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(popupEle, { maxHeight: '', display: 'block' }); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' }); + } + }; + Toolbar.prototype.tbarPopupHandler = function (isOpen) { + if (this.overflowMode === 'Extended') { + if (isOpen) { + this.add(this.element, CLS_EXTENDEDPOPOPEN); + } + else { + this.remove(this.element, CLS_EXTENDEDPOPOPEN); + } + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Toolbar.prototype.popupOpen = function (e) { + var popObj = this.popObj; + if (!this.isVertical) { + popObj.offsetY = this.getElementOffsetY(); + popObj.dataBind(); + } + var popupEle = this.popObj.element; + var toolEle = this.popObj.element.parentElement; + var popupNav = toolEle.querySelector('.' + CLS_TBARNAV); + popupNav.setAttribute('aria-expanded', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(popObj.element, { height: 'auto', maxHeight: '' }); + popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px'; + if (this.overflowMode === 'Extended') { + popObj.element.style.minHeight = ''; + } + var popupElePos = popupEle.offsetTop + popupEle.offsetHeight + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"])(toolEle).top; + var popIcon = popupNav.firstElementChild; + popupNav.classList.add(CLS_TBARNAVACT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(popIcon, [CLS_POPUPICON], [CLS_POPUPDOWN]); + this.tbarPopupHandler(true); + var scrollVal = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(window.scrollY) ? 0 : window.scrollY; + if (!this.isVertical && ((window.innerHeight + scrollVal) < popupElePos) && (this.element.offsetTop < popupEle.offsetHeight)) { + var overflowHeight = (popupEle.offsetHeight - ((popupElePos - window.innerHeight - scrollVal) + 5)); + popObj.height = overflowHeight + 'px'; + for (var i = 0; i <= popupEle.childElementCount; i++) { + var ele = popupEle.children[parseInt(i.toString(), 10)]; + if (ele.offsetTop + ele.offsetHeight > overflowHeight) { + overflowHeight = ele.offsetTop; + break; + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(popObj.element, { maxHeight: overflowHeight + 'px' }); + } + else if (this.isVertical) { + var tbEleData = this.element.getBoundingClientRect(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' }); + } + if (popObj) { + var popupOffset = popupEle.getBoundingClientRect(); + if (popupOffset.right > document.documentElement.clientWidth && popupOffset.width > toolEle.getBoundingClientRect().width) { + popObj.collision = { Y: 'none' }; + popObj.dataBind(); + } + popObj.refreshPosition(); + } + }; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + Toolbar.prototype.popupClose = function (e) { + var element = this.element; + var popupNav = element.querySelector('.' + CLS_TBARNAV); + popupNav.setAttribute('aria-expanded', 'false'); + var popIcon = popupNav.firstElementChild; + popupNav.classList.remove(CLS_TBARNAVACT); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(popIcon, [CLS_POPUPDOWN], [CLS_POPUPICON]); + this.tbarPopupHandler(false); + }; + Toolbar.prototype.checkPriority = function (ele, inEle, eleWidth, pre) { + var popPriority = this.popupPriCount > 0; + var len = inEle.length; + var eleWid = eleWidth; + var eleOffset; + var checkoffset; + var sepCheck = 0; + var itemCount = 0; + var itemPopCount = 0; + var checkClass = function (ele, val) { + var rVal = false; + val.forEach(function (cls) { + if (ele.classList.contains(cls)) { + rVal = true; + } + }); + return rVal; + }; + for (var i = len - 1; i >= 0; i--) { + var mrgn = void 0; + var compuStyle = window.getComputedStyle(inEle[parseInt(i.toString(), 10)]); + if (this.isVertical) { + mrgn = parseFloat((compuStyle).marginTop); + mrgn += parseFloat((compuStyle).marginBottom); + } + else { + mrgn = parseFloat((compuStyle).marginRight); + mrgn += parseFloat((compuStyle).marginLeft); + } + var fstEleCheck = inEle[parseInt(i.toString(), 10)] === this.tbarEle[0]; + if (fstEleCheck) { + this.tbarEleMrgn = mrgn; + } + eleOffset = this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : inEle[parseInt(i.toString(), 10)].offsetWidth; + var eleWid_1 = fstEleCheck ? (eleOffset + mrgn) : eleOffset; + if (checkClass(inEle[parseInt(i.toString(), 10)], [CLS_POPPRI]) && popPriority) { + inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP); + if (this.isVertical) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' }); + } + itemPopCount++; + } + if (this.isVertical) { + checkoffset = + (inEle[parseInt(i.toString(), 10)].offsetTop + inEle[parseInt(i.toString(), 10)].offsetHeight + mrgn) > eleWidth; + } + else { + checkoffset = + (inEle[parseInt(i.toString(), 10)].offsetLeft + inEle[parseInt(i.toString(), 10)].offsetWidth + mrgn) > eleWidth; + } + if (checkoffset) { + if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_SEPARATOR)) { + if (this.overflowMode === 'Extended') { + var sepEle = inEle[parseInt(i.toString(), 10)]; + if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) { + inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP); + itemPopCount++; + } + itemCount++; + } + else if (this.overflowMode === 'Popup') { + if (sepCheck > 0 && itemCount === itemPopCount) { + var sepEle = inEle[i + itemCount + (sepCheck - 1)]; + if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(sepEle, { display: 'none' }); + } + } + sepCheck++; + itemCount = 0; + itemPopCount = 0; + } + } + else { + itemCount++; + } + if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_TBAROVERFLOW) && pre) { + eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : + inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn)); + } + else if (!checkClass(inEle[parseInt(i.toString(), 10)], [CLS_SEPARATOR, CLS_TBARIGNORE])) { + inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP); + if (this.isVertical) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' }); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' }); + } + itemPopCount++; + } + else { + eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : + inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn)); + } + } + } + if (pre) { + var popedEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM + ':not(.' + CLS_POPUP + ')', this.element); + this.checkPriority(ele, popedEle, eleWid, false); + } + }; + Toolbar.prototype.createPopupIcon = function (element) { + var id = element.id.concat('_nav'); + var className = 'e-' + element.id.concat('_nav ' + CLS_POPUPNAV); + className = this.overflowMode === 'Extended' ? className + ' ' + CLS_EXTENDPOPUP : className; + var nav = this.createElement('div', { id: id, className: className }); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie' || _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'edge') { + nav.classList.add('e-ie-align'); + } + var navItem = this.createElement('div', { className: CLS_POPUPDOWN + ' e-icons' }); + nav.appendChild(navItem); + nav.setAttribute('tabindex', '0'); + nav.setAttribute('role', 'button'); + element.appendChild(nav); + }; + Toolbar.prototype.tbarPriRef = function (inEle, indx, sepPri, el, des, elWid, wid, ig, eleStyles) { + var ignoreCount = ig; + var popEle = this.popObj.element; + var query = '.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_TBAROVERFLOW + ')'; + var priEleCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_POPUP + ':not(.' + CLS_TBAROVERFLOW + ')', popEle).length; + var checkClass = function (ele, val) { + return ele.classList.contains(val); + }; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(query, inEle).length === 0) { + var eleSep = inEle.children[indx - (indx - sepPri) - 1]; + var ignoreCheck = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleSep) && checkClass(eleSep, CLS_TBARIGNORE)); + if ((!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleSep) && checkClass(eleSep, CLS_SEPARATOR) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(eleSep)) || ignoreCheck) { + eleSep.style.display = 'unset'; + var eleSepWidth = eleSep.offsetWidth + (parseFloat(window.getComputedStyle(eleSep).marginRight) * 2); + var prevSep = eleSep.previousElementSibling; + if ((elWid + eleSepWidth) < wid || des) { + inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(prevSep)) { + prevSep.style.display = ''; + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(el, eleStyles); + if (prevSep.classList.contains(CLS_SEPARATOR)) { + prevSep.style.display = 'none'; + } + } + eleSep.style.display = ''; + } + else { + inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]); + } + } + else { + inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - priEleCnt]); + } + }; + Toolbar.prototype.popupRefresh = function (popupEle, destroy) { + var _this = this; + var ele = this.element; + var isVer = this.isVertical; + var innerEle = ele.querySelector('.' + CLS_ITEMS); + var popNav = ele.querySelector('.' + CLS_TBARNAV); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(popNav)) { + return; + } + innerEle.removeAttribute('style'); + popupEle.style.display = 'block'; + var dimension; + if (isVer) { + dimension = ele.offsetHeight - (popNav.offsetHeight + innerEle.offsetHeight); + } + else { + dimension = ele.offsetWidth - (popNav.offsetWidth + innerEle.offsetWidth); + } + var popupEleWidth = 0; + [].slice.call(popupEle.children).forEach(function (el) { + popupEleWidth += _this.popupEleWidth(el); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(el, { 'position': '' }); + }); + if ((dimension + (isVer ? popNav.offsetHeight : popNav.offsetWidth)) > (popupEleWidth) && this.popupPriCount === 0) { + destroy = true; + } + this.popupEleRefresh(dimension, popupEle, destroy); + popupEle.style.display = ''; + if (popupEle.children.length === 0 && popNav && this.popObj) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(popNav); + popNav = null; + this.popObj.destroy(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.popObj.element); + this.popObj = null; + } + }; + Toolbar.prototype.ignoreEleFetch = function (index, innerEle) { + var ignoreEle = [].slice.call(innerEle.querySelectorAll('.' + CLS_TBARIGNORE)); + var ignoreInx = []; + var count = 0; + if (ignoreEle.length > 0) { + ignoreEle.forEach(function (ele) { + ignoreInx.push([].slice.call(innerEle.children).indexOf(ele)); + }); + } + else { + return 0; + } + ignoreInx.forEach(function (val) { + if (val <= index) { + count++; + } + }); + return count; + }; + Toolbar.prototype.checkPopupRefresh = function (root, popEle) { + popEle.style.display = 'block'; + var elWid = this.popupEleWidth(popEle.firstElementChild); + popEle.firstElementChild.style.removeProperty('Position'); + var tbarWidth = root.offsetWidth - root.querySelector('.' + CLS_TBARNAV).offsetWidth; + var tbarItemsWid = root.querySelector('.' + CLS_ITEMS).offsetWidth; + popEle.style.removeProperty('display'); + if (tbarWidth > (elWid + tbarItemsWid)) { + return true; + } + return false; + }; + Toolbar.prototype.popupEleWidth = function (el) { + el.style.position = 'absolute'; + var elWidth = this.isVertical ? el.offsetHeight : el.offsetWidth; + var btnText = el.querySelector('.' + CLS_TBARBTNTEXT); + if (el.classList.contains('e-tbtn-align') || el.classList.contains(CLS_TBARTEXT)) { + var btn = el.children[0]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(btnText) && el.classList.contains(CLS_TBARTEXT)) { + btnText.style.display = 'none'; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(btnText) && el.classList.contains(CLS_POPUPTEXT)) { + btnText.style.display = 'block'; + } + btn.style.minWidth = '0%'; + elWidth = parseFloat(!this.isVertical ? el.style.minWidth : el.style.minHeight); + btn.style.minWidth = ''; + btn.style.minHeight = ''; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(btnText)) { + btnText.style.display = ''; + } + } + return elWidth; + }; + Toolbar.prototype.popupEleRefresh = function (width, popupEle, destroy) { + var popPriority = this.popupPriCount > 0; + var eleSplice = this.tbarEle; + var priEleCnt; + var index; + var innerEle = this.element.querySelector('.' + CLS_ITEMS); + var ignoreCount = 0; + var _loop_1 = function (el) { + if (el.classList.contains(CLS_POPPRI) && popPriority && !destroy) { + return "continue"; + } + var elWidth = this_1.popupEleWidth(el); + if (el === this_1.tbarEle[0]) { + elWidth += this_1.tbarEleMrgn; + } + el.style.position = ''; + if (elWidth < width || destroy) { + var inlineStyles = { minWidth: el.style.minWidth, height: el.style.height, minHeight: el.style.minHeight }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(el, { minWidth: '', height: '', minHeight: '' }); + if (!el.classList.contains(CLS_POPOVERFLOW)) { + el.classList.remove(CLS_POPUP); + } + index = this_1.tbarEle.indexOf(el); + if (this_1.tbarAlign) { + var pos = this_1.items[parseInt(index.toString(), 10)].align; + index = this_1.tbarAlgEle[(pos + 's').toLowerCase()].indexOf(el); + eleSplice = this_1.tbarAlgEle[(pos + 's').toLowerCase()]; + innerEle = this_1.element.querySelector('.' + CLS_ITEMS + ' .' + 'e-toolbar-' + pos.toLowerCase()); + } + var sepBeforePri_1 = 0; + if (this_1.overflowMode !== 'Extended') { + eleSplice.slice(0, index).forEach(function (el) { + if (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) { + if (el.classList.contains(CLS_SEPARATOR)) { + el.style.display = ''; + width -= el.offsetWidth; + } + sepBeforePri_1++; + } + }); + } + ignoreCount = this_1.ignoreEleFetch(index, innerEle); + if (el.classList.contains(CLS_TBAROVERFLOW)) { + this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount, inlineStyles); + width -= el.offsetWidth; + } + else if (index === 0) { + innerEle.insertBefore(el, innerEle.firstChild); + width -= el.offsetWidth; + } + else { + priEleCnt = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length; + innerEle.insertBefore(el, innerEle.children[(index + ignoreCount) - priEleCnt]); + width -= el.offsetWidth; + } + el.style.height = ''; + } + else { + return "break"; + } + }; + var this_1 = this; + for (var _i = 0, _a = [].slice.call(popupEle.children); _i < _a.length; _i++) { + var el = _a[_i]; + var state_1 = _loop_1(el); + if (state_1 === "break") + break; + } + var checkOverflow = this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]); + if (checkOverflow && !destroy) { + this.renderOverflowMode(); + } + }; + Toolbar.prototype.removePositioning = function () { + var item = this.element.querySelector('.' + CLS_ITEMS); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item) || !item.classList.contains(CLS_TBARPOS)) { + return; + } + this.remove(item, CLS_TBARPOS); + var innerItem = [].slice.call(item.childNodes); + innerItem[1].removeAttribute('style'); + innerItem[2].removeAttribute('style'); + }; + Toolbar.prototype.refreshPositioning = function () { + var item = this.element.querySelector('.' + CLS_ITEMS); + this.add(item, CLS_TBARPOS); + this.itemPositioning(); + }; + Toolbar.prototype.itemPositioning = function () { + var item = this.element.querySelector('.' + CLS_ITEMS); + var margin; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item) || !item.classList.contains(CLS_TBARPOS)) { + return; + } + var popupNav = this.element.querySelector('.' + CLS_TBARNAV); + var innerItem; + if (this.scrollModule) { + var trgClass = (this.isVertical) ? CLS_VSCROLLCNT : CLS_HSCROLLCNT; + innerItem = [].slice.call(item.querySelector('.' + trgClass).children); + } + else { + innerItem = [].slice.call(item.childNodes); + } + if (this.isVertical) { + margin = innerItem[0].offsetHeight + innerItem[2].offsetHeight; + } + else { + margin = innerItem[0].offsetWidth + innerItem[2].offsetWidth; + } + var tbarWid = this.isVertical ? this.element.offsetHeight : this.element.offsetWidth; + if (popupNav) { + tbarWid -= (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth); + var popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px'; + innerItem[2].removeAttribute('style'); + if (this.isVertical) { + if (this.enableRtl) { + innerItem[2].style.top = popWid; + } + else { + innerItem[2].style.bottom = popWid; + } + } + else { + if (this.enableRtl) { + innerItem[2].style.left = popWid; + } + else { + innerItem[2].style.right = popWid; + } + } + } + if (tbarWid <= margin) { + return; + } + var value = (((tbarWid - margin)) - (!this.isVertical ? innerItem[1].offsetWidth : innerItem[1].offsetHeight)) / 2; + innerItem[1].removeAttribute('style'); + var mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px'; + if (this.isVertical) { + if (this.enableRtl) { + innerItem[1].style.marginBottom = mrgn; + } + else { + innerItem[1].style.marginTop = mrgn; + } + } + else { + if (this.enableRtl) { + innerItem[1].style.marginRight = mrgn; + } + else { + innerItem[1].style.marginLeft = mrgn; + } + } + }; + Toolbar.prototype.tbarItemAlign = function (item, itemEle, pos) { + var _this = this; + if (item.showAlwaysInPopup && item.overflow !== 'Show') { + return; + } + var alignDiv = []; + alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT })); + alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER })); + alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT })); + if (pos === 0 && item.align !== 'Left') { + alignDiv.forEach(function (ele) { + itemEle.appendChild(ele); + }); + this.tbarAlign = true; + this.add(itemEle, CLS_TBARPOS); + } + else if (item.align !== 'Left') { + var alignEle = itemEle.childNodes; + var leftAlign_1 = alignDiv[0]; + [].slice.call(alignEle).forEach(function (el) { + _this.tbarAlgEle.lefts.push(el); + leftAlign_1.appendChild(el); + }); + itemEle.appendChild(leftAlign_1); + itemEle.appendChild(alignDiv[1]); + itemEle.appendChild(alignDiv[2]); + this.tbarAlign = true; + this.add(itemEle, CLS_TBARPOS); + } + }; + Toolbar.prototype.ctrlTemplate = function () { + var _this = this; + this.ctrlTem = this.trgtEle.cloneNode(true); + this.add(this.trgtEle, CLS_ITEMS); + this.tbarEle = []; + var innerEle = [].slice.call(this.trgtEle.children); + innerEle.forEach(function (ele) { + if (ele.tagName === 'DIV') { + _this.tbarEle.push(ele); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.firstElementChild)) { + ele.firstElementChild.setAttribute('aria-disabled', 'false'); + } + _this.add(ele, CLS_ITEM); + } + }); + }; + Toolbar.prototype.renderItems = function () { + var ele = this.element; + var items = this.items; + if (this.trgtEle != null) { + this.ctrlTemplate(); + } + else if (ele && items.length > 0) { + var itemEleDom = void 0; + if (ele && ele.children.length > 0) { + itemEleDom = ele.querySelector('.' + CLS_ITEMS); + } + if (!itemEleDom) { + itemEleDom = this.createElement('div', { className: CLS_ITEMS }); + } + this.itemsAlign(items, itemEleDom); + ele.appendChild(itemEleDom); + } + }; + Toolbar.prototype.setAttr = function (attr, element) { + var key = Object.keys(attr); + var keyVal; + for (var i = 0; i < key.length; i++) { + keyVal = key[parseInt(i.toString(), 10)]; + if (keyVal === 'class') { + this.add(element, attr["" + keyVal]); + } + else { + element.setAttribute(keyVal, attr["" + keyVal]); + } + } + }; + /** + * Enables or disables the specified Toolbar item. + * + * @param {number|HTMLElement|NodeList} items - DOM element or an array of items to be enabled or disabled. + * @param {boolean} isEnable - Boolean value that determines whether the command should be enabled or disabled. + * By default, `isEnable` is set to true. + * @returns {void}. + */ + Toolbar.prototype.enableItems = function (items, isEnable) { + var elements = items; + var len = elements.length; + var ele; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(isEnable)) { + isEnable = true; + } + var enable = function (isEnable, ele) { + if (isEnable) { + ele.classList.remove(CLS_DISABLE); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.firstElementChild)) { + ele.firstElementChild.setAttribute('aria-disabled', 'false'); + } + } + else { + ele.classList.add(CLS_DISABLE); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.firstElementChild)) { + ele.firstElementChild.setAttribute('aria-disabled', 'true'); + } + } + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(len) && len >= 1) { + for (var a = 0, element = [].slice.call(elements); a < len; a++) { + var itemElement = element[parseInt(a.toString(), 10)]; + if (typeof (itemElement) === 'number') { + ele = this.getElementByIndex(itemElement); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return; + } + else { + elements[parseInt(a.toString(), 10)] = ele; + } + } + else { + ele = itemElement; + } + enable(isEnable, ele); + } + if (isEnable) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(elements, CLS_DISABLE); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(elements, CLS_DISABLE); + } + } + else { + if (typeof (elements) === 'number') { + ele = this.getElementByIndex(elements); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return; + } + } + else { + ele = items; + } + enable(isEnable, ele); + } + }; + Toolbar.prototype.getElementByIndex = function (index) { + if (this.tbarEle[parseInt(index.toString(), 10)]) { + return this.tbarEle[parseInt(index.toString(), 10)]; + } + return null; + }; + /** + * Adds new items to the Toolbar that accepts an array as Toolbar items. + * + * @param {ItemModel[]} items - DOM element or an array of items to be added to the Toolbar. + * @param {number} index - Number value that determines where the command is to be added. By default, index is 0. + * @returns {void}. + */ + Toolbar.prototype.addItems = function (items, index) { + var innerItems; + this.extendedOpen(); + var itemsDiv = this.element.querySelector('.' + CLS_ITEMS); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(itemsDiv)) { + this.itemsRerender(items); + return; + } + var innerEle; + var itemAgn = 'Left'; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + index = 0; + } + items.forEach(function (e) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e.align) && e.align !== 'Left' && itemAgn === 'Left') { + itemAgn = e.align; + } + }); + for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { + var item = items_1[_i]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.type)) { + item.type = 'Button'; + } + innerItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element); + item.align = itemAgn; + innerEle = this.renderSubComponent(item, index); + if (this.tbarEle.length >= index && innerItems.length >= 0) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollModule)) { + this.destroyMode(); + } + var algIndex = item.align[0] === 'L' ? 0 : item.align[0] === 'C' ? 1 : 2; + var ele = void 0; + if (!this.tbarAlign && itemAgn !== 'Left') { + this.tbarItemAlign(item, itemsDiv, 1); + this.tbarAlign = true; + ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)]; + ele.appendChild(innerEle); + this.tbarAlgEle[(item.align + 's').toLowerCase()].push(innerEle); + this.refreshPositioning(); + } + else if (this.tbarAlign) { + ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)]; + ele.insertBefore(innerEle, ele.children[parseInt(index.toString(), 10)]); + this.tbarAlgEle[(item.align + 's').toLowerCase()].splice(index, 0, innerEle); + this.refreshPositioning(); + } + else if (innerItems.length === 0) { + innerItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEMS, this.element); + innerItems[0].appendChild(innerEle); + } + else { + innerItems[0].parentNode.insertBefore(innerEle, innerItems[parseInt(index.toString(), 10)]); + } + this.items.splice(index, 0, item); + if (item.template) { + this.tbarEle.splice(this.tbarEle.length - 1, 1); + } + this.tbarEle.splice(index, 0, innerEle); + index++; + this.offsetWid = itemsDiv.offsetWidth; + } + } + itemsDiv.style.width = ''; + this.renderOverflowMode(); + if (this.isReact) { + this.renderReactTemplates(); + } + }; + /** + * Removes the items from the Toolbar. Acceptable arguments are index of item/HTMLElement/node list. + * + * @param {number|HTMLElement|NodeList|HTMLElement[]} args + * Index or DOM element or an Array of item which is to be removed from the Toolbar. + * @returns {void}. + */ + Toolbar.prototype.removeItems = function (args) { + var elements = args; + var index; + var innerItems = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element)); + if (typeof (elements) === 'number') { + index = parseInt(args.toString(), 10); + this.removeItemByIndex(index, innerItems); + } + else { + if (elements && elements.length > 1) { + for (var _i = 0, _a = [].slice.call(elements); _i < _a.length; _i++) { + var ele = _a[_i]; + index = this.tbarEle.indexOf(ele); + this.removeItemByIndex(index, innerItems); + innerItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element); + } + } + else { + var ele = (elements && elements.length && elements.length === 1) ? elements[0] : args; + index = innerItems.indexOf(ele); + this.removeItemByIndex(index, innerItems); + } + } + this.resize(); + }; + Toolbar.prototype.removeItemByIndex = function (index, innerItems) { + if (this.tbarEle[parseInt(index.toString(), 10)] && innerItems[parseInt(index.toString(), 10)]) { + var eleIdx = this.tbarEle.indexOf(innerItems[parseInt(index.toString(), 10)]); + if (this.tbarAlign) { + var indexAgn = this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].indexOf(this.tbarEle[parseInt(eleIdx.toString(), 10)]); + this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].splice(parseInt(indexAgn.toString(), 10), 1); + } + if (this.isReact) { + this.clearTemplate(); + } + var btnItem = innerItems[parseInt(index.toString(), 10)].querySelector('.e-control.e-btn'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(btnItem) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(btnItem.ej2_instances[0]) && !(btnItem.ej2_instances[0].isDestroyed)) { + btnItem.ej2_instances[0].destroy(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(innerItems[parseInt(index.toString(), 10)]); + this.items.splice(eleIdx, 1); + this.tbarEle.splice(eleIdx, 1); + } + }; + Toolbar.prototype.templateRender = function (templateProp, innerEle, item, index) { + var itemType = item.type; + var eleObj = templateProp; + var isComponent; + if (typeof (templateProp) === 'object') { + isComponent = typeof (eleObj.appendTo) === 'function'; + } + if (typeof (templateProp) === 'string' || !isComponent) { + var templateFn = void 0; + var val = templateProp; + var regEx = new RegExp(/<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i); + val = (typeof (templateProp) === 'string') ? templateProp.trim() : templateProp; + try { + if (typeof (templateProp) === 'object' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateProp.tagName)) { + innerEle.appendChild(templateProp); + } + else if (typeof (templateProp) === 'string' && regEx.test(val)) { + innerEle.innerHTML = val; + } + else if (document.querySelectorAll(val).length) { + var ele = document.querySelector(val); + var tempStr = ele.outerHTML.trim(); + innerEle.appendChild(ele); + ele.style.display = ''; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempStr)) { + this.tempId.push(val); + } + } + else { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(val); + } + } + catch (e) { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(val); + } + var tempArray = void 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateFn)) { + var toolbarTemplateID = this.element.id + index + '_template'; + tempArray = templateFn({}, this, 'template', toolbarTemplateID, this.isStringTemplate); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempArray) && tempArray.length > 0) { + [].slice.call(tempArray).forEach(function (ele) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.tagName)) { + ele.style.display = ''; + } + innerEle.appendChild(ele); + }); + } + } + else if (itemType === 'Input') { + var ele = this.createElement('input'); + if (item.id) { + ele.id = item.id; + } + else { + ele.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('tbr-ipt'); + } + innerEle.appendChild(ele); + eleObj.appendTo(ele); + } + this.add(innerEle, CLS_TEMPLATE); + this.tbarEle.push(innerEle); + }; + Toolbar.prototype.buttonRendering = function (item, innerEle) { + var dom = this.createElement('button', { className: CLS_TBARBTN }); + dom.setAttribute('type', 'button'); + var textStr = item.text; + var iconCss; + var iconPos; + if (item.id) { + dom.id = item.id; + } + else { + dom.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-tbr-btn'); + } + var btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' }); + if (textStr) { + btnTxt.innerHTML = this.enableHtmlSanitizer ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(textStr) : textStr; + dom.appendChild(btnTxt); + dom.classList.add('e-tbtn-txt'); + } + else { + this.add(innerEle, 'e-tbtn-align'); + } + if (item.prefixIcon || item.suffixIcon) { + if ((item.prefixIcon && item.suffixIcon) || item.prefixIcon) { + iconCss = item.prefixIcon + ' e-icons'; + iconPos = 'Left'; + } + else { + iconCss = item.suffixIcon + ' e-icons'; + iconPos = 'Right'; + } + } + var btnObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_2__["Button"]({ iconCss: iconCss, iconPosition: iconPos }); + btnObj.createElement = this.createElement; + btnObj.appendTo(dom); + if (item.width) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(dom, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(item.width) }); + } + return dom; + }; + Toolbar.prototype.renderSubComponent = function (item, index) { + var dom; + var innerEle = this.createElement('div', { className: CLS_ITEM }); + var tempDom = this.createElement('div', { + innerHTML: this.enableHtmlSanitizer ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(item.tooltipText) : item.tooltipText + }); + if (!this.tbarEle) { + this.tbarEle = []; + } + if (item.htmlAttributes) { + this.setAttr(item.htmlAttributes, innerEle); + } + if (item.tooltipText) { + innerEle.setAttribute('title', tempDom.textContent); + } + if (item.cssClass) { + innerEle.className = innerEle.className + ' ' + item.cssClass; + } + if (item.template) { + this.templateRender(item.template, innerEle, item, index); + } + else { + switch (item.type) { + case 'Button': + dom = this.buttonRendering(item, innerEle); + dom.setAttribute('tabindex', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.tabIndex) ? '-1' : item.tabIndex.toString()); + dom.setAttribute('data-tabindex', Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(item.tabIndex) ? '-1' : item.tabIndex.toString()); + dom.setAttribute('aria-label', (item.text || item.tooltipText)); + dom.setAttribute('aria-disabled', 'false'); + innerEle.appendChild(dom); + innerEle.addEventListener('click', this.itemClick.bind(this)); + break; + case 'Separator': + this.add(innerEle, CLS_SEPARATOR); + break; + } + } + if (item.showTextOn) { + var sTxt = item.showTextOn; + if (sTxt === 'Toolbar') { + this.add(innerEle, CLS_POPUPTEXT); + this.add(innerEle, 'e-tbtn-align'); + } + else if (sTxt === 'Overflow') { + this.add(innerEle, CLS_TBARTEXT); + } + } + if (item.overflow) { + var overflow = item.overflow; + if (overflow === 'Show') { + this.add(innerEle, CLS_TBAROVERFLOW); + } + else if (overflow === 'Hide') { + if (!innerEle.classList.contains(CLS_SEPARATOR)) { + this.add(innerEle, CLS_POPOVERFLOW); + } + } + } + if (item.overflow !== 'Show' && item.showAlwaysInPopup && !innerEle.classList.contains(CLS_SEPARATOR)) { + this.add(innerEle, CLS_POPPRI); + this.popupPriCount++; + } + if (item.disabled) { + this.add(innerEle, CLS_DISABLE); + } + if (item.visible === false) { + this.add(innerEle, CLS_HIDDEN); + } + return innerEle; + }; + Toolbar.prototype.getDataTabindex = function (ele) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.getAttribute('data-tabindex')) ? '-1' : ele.getAttribute('data-tabindex'); + }; + Toolbar.prototype.itemClick = function (e) { + this.activeEleSwitch(e.currentTarget); + }; + Toolbar.prototype.activeEleSwitch = function (ele) { + this.activeEleRemove(ele.firstElementChild); + this.activeEle.focus(); + }; + Toolbar.prototype.activeEleRemove = function (curEle) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.activeEle)) { + this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle)); + } + this.activeEle = curEle; + if (this.getDataTabindex(this.activeEle) === '-1') { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) { + this.updateTabIndex('-1'); + curEle.removeAttribute('tabindex'); + } + else { + this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle)); + } + } + }; + Toolbar.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * Returns the current module name. + * + * @returns {string} - Returns the module name as string. + * @private + */ + Toolbar.prototype.getModuleName = function () { + return 'toolbar'; + }; + Toolbar.prototype.itemsRerender = function (newProp) { + this.items = this.tbarItemsCol; + if (this.isReact || this.isAngular) { + this.clearTemplate(); + } + this.destroyMode(); + this.destroyItems(); + this.items = newProp; + this.tbarItemsCol = this.items; + this.renderItems(); + this.renderOverflowMode(); + if (this.isReact) { + this.renderReactTemplates(); + } + }; + Toolbar.prototype.resize = function () { + var ele = this.element; + this.tbResize = true; + if (this.tbarAlign) { + this.itemPositioning(); + } + if (this.popObj && this.overflowMode === 'Popup') { + this.popObj.hide(); + } + var checkOverflow = this.checkOverflow(ele, ele.getElementsByClassName(CLS_ITEMS)[0]); + if (!checkOverflow) { + this.destroyScroll(); + var multirowele = ele.querySelector('.' + CLS_ITEMS); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(multirowele)) { + this.remove(multirowele, CLS_MULTIROWPOS); + if (this.tbarAlign) { + this.add(multirowele, CLS_TBARPOS); + } + } + } + if (checkOverflow && this.scrollModule && (this.offsetWid === ele.offsetWidth)) { + return; + } + if (this.offsetWid > ele.offsetWidth || checkOverflow) { + this.renderOverflowMode(); + } + if (this.popObj) { + if (this.overflowMode === 'Extended') { + var eleStyles = window.getComputedStyle(this.element); + this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2); + } + if (this.tbarAlign) { + this.removePositioning(); + } + this.popupRefresh(this.popObj.element, false); + if (this.tbarAlign) { + this.refreshPositioning(); + } + } + if (this.element.querySelector('.' + CLS_HSCROLLBAR)) { + this.scrollStep = this.element.querySelector('.' + CLS_HSCROLLBAR).offsetWidth; + } + this.offsetWid = ele.offsetWidth; + this.tbResize = false; + this.separator(); + }; + Toolbar.prototype.extendedOpen = function () { + var sib = this.element.querySelector('.' + CLS_EXTENDABLECLASS); + if (this.overflowMode === 'Extended' && sib) { + this.isExtendedOpen = sib.classList.contains(CLS_POPUPOPEN); + } + }; + Toolbar.prototype.updateHideEleTabIndex = function (ele, isHidden, isElement, eleIndex, innerItems) { + if (isElement) { + eleIndex = innerItems.indexOf(ele); + } + var nextEle = innerItems[++eleIndex]; + while (nextEle) { + var skipEle = this.eleContains(nextEle); + if (!skipEle) { + var dataTabIndex = nextEle.firstElementChild.getAttribute('data-tabindex'); + if (isHidden && dataTabIndex === '-1') { + nextEle.firstElementChild.setAttribute('tabindex', '0'); + } + else if (dataTabIndex !== nextEle.firstElementChild.getAttribute('tabindex')) { + nextEle.firstElementChild.setAttribute('tabindex', dataTabIndex); + } + break; + } + nextEle = innerItems[++eleIndex]; + } + }; + /** + * Gets called when the model property changes.The data that describes the old and new values of the property that changed. + * + * @param {ToolbarModel} newProp - It contains new value of the data. + * @param {ToolbarModel} oldProp - It contains old value of the data. + * @returns {void} + * @private + */ + Toolbar.prototype.onPropertyChanged = function (newProp, oldProp) { + var tEle = this.element; + var wid = tEle.offsetWidth; + this.extendedOpen(); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'items': + if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) { + var changedProb = Object.keys(newProp.items); + for (var i = 0; i < changedProb.length; i++) { + var index = parseInt(Object.keys(newProp.items)[parseInt(i.toString(), 10)], 10); + var property = Object.keys(newProp.items[parseInt(index.toString(), 10)])[0]; + var newProperty = Object(newProp.items[parseInt(index.toString(), 10)])["" + property]; + if (typeof newProperty !== 'function') { + if (this.tbarAlign || property === 'align') { + this.refresh(); + this.trigger('created'); + break; + } + var popupPriCheck = property === 'showAlwaysInPopup' && !newProperty; + var booleanCheck = property === 'overflow' && this.popupPriCount !== 0; + if ((popupPriCheck) || (this.items[parseInt(index.toString(), 10)].showAlwaysInPopup) && booleanCheck) { + --this.popupPriCount; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollModule)) { + this.destroyMode(); + } + var itemCol = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEMS + ' .' + CLS_ITEM, tEle)); + if (this.isReact && this.items[parseInt(index.toString(), 10)].template) { + this.clearTemplate(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(itemCol[parseInt(index.toString(), 10)]); + this.tbarEle.splice(index, 1); + this.addItems([this.items[parseInt(index.toString(), 10)]], index); + this.items.splice(index, 1); + if (this.items[parseInt(index.toString(), 10)].template) { + this.tbarEle.splice(this.items.length, 1); + } + } + } + } + else { + this.itemsRerender(newProp.items); + } + break; + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(tEle, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width) }); + this.refreshOverflow(); + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height) }); + break; + case 'overflowMode': + this.destroyMode(); + this.renderOverflowMode(); + if (this.enableRtl) { + this.add(tEle, CLS_RTL); + } + this.refreshOverflow(); + break; + case 'enableRtl': + if (newProp.enableRtl) { + this.add(tEle, CLS_RTL); + } + else { + this.remove(tEle, CLS_RTL); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.scrollModule)) { + if (newProp.enableRtl) { + this.add(this.scrollModule.element, CLS_RTL); + } + else { + this.remove(this.scrollModule.element, CLS_RTL); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popObj)) { + if (newProp.enableRtl) { + this.add(this.popObj.element, CLS_RTL); + } + else { + this.remove(this.popObj.element, CLS_RTL); + } + } + if (this.tbarAlign) { + this.itemPositioning(); + } + break; + case 'scrollStep': + if (this.scrollModule) { + this.scrollModule.scrollStep = this.scrollStep; + } + break; + case 'enableCollision': + if (this.popObj) { + this.popObj.collision = { Y: this.enableCollision ? 'flip' : 'none' }; + } + break; + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newProp.cssClass.split(' ')); + } + break; + case 'allowKeyboard': + this.unwireKeyboardEvent(); + if (newProp.allowKeyboard) { + this.wireKeyboardEvent(); + } + break; + } + } + }; + /** + * Shows or hides the Toolbar item that is in the specified index. + * + * @param {number | HTMLElement} index - Index value of target item or DOM element of items to be hidden or shown. + * @param {boolean} value - Based on this Boolean value, item will be hide (true) or show (false). By default, value is false. + * @returns {void}. + */ + Toolbar.prototype.hideItem = function (index, value) { + var isElement = (typeof (index) === 'object') ? true : false; + var eleIndex = index; + var ele; + if (!isElement && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleIndex)) { + return; + } + var innerItems = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element)); + if (isElement) { + ele = index; + } + else if (this.tbarEle[parseInt(eleIndex.toString(), 10)]) { + var innerItems_1 = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CLS_ITEM, this.element)); + ele = innerItems_1[parseInt(eleIndex.toString(), 10)]; + } + if (ele) { + if (value) { + ele.classList.add(CLS_HIDDEN); + if (!ele.classList.contains(CLS_SEPARATOR)) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele.firstElementChild.getAttribute('tabindex')) || + ele.firstElementChild.getAttribute('tabindex') !== '-1') { + this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems); + } + } + } + else { + ele.classList.remove(CLS_HIDDEN); + if (!ele.classList.contains(CLS_SEPARATOR)) { + this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems); + } + } + this.refreshOverflow(); + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], Item) + ], Toolbar.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Toolbar.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Toolbar.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Toolbar.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Scrollable') + ], Toolbar.prototype, "overflowMode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Toolbar.prototype, "scrollStep", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Toolbar.prototype, "enableCollision", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Toolbar.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Toolbar.prototype, "allowKeyboard", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Toolbar.prototype, "clicked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Toolbar.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Toolbar.prototype, "destroyed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Toolbar.prototype, "beforeCreate", void 0); + Toolbar = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Toolbar); + return Toolbar; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/index.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/index.js ***! + \*************************************************************************/ +/*! exports provided: FieldsSettings, ActionSettings, NodeAnimationSettings, TreeView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _treeview__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./treeview */ "./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/treeview.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FieldsSettings", function() { return _treeview__WEBPACK_IMPORTED_MODULE_0__["FieldsSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ActionSettings", function() { return _treeview__WEBPACK_IMPORTED_MODULE_0__["ActionSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodeAnimationSettings", function() { return _treeview__WEBPACK_IMPORTED_MODULE_0__["NodeAnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TreeView", function() { return _treeview__WEBPACK_IMPORTED_MODULE_0__["TreeView"]; }); + +/** + * TreeView modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/treeview.js": +/*!****************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-navigations/treeview/treeview.js ***! + \****************************************************************************/ +/*! exports provided: FieldsSettings, ActionSettings, NodeAnimationSettings, TreeView */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FieldsSettings", function() { return FieldsSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionSettings", function() { return ActionSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodeAnimationSettings", function() { return NodeAnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TreeView", function() { return TreeView; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-data */ "./ej2-resources/22.1.37/scripts/ej2-data/index.js"); +/* harmony import */ var _ej2_lists__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-lists */ "./ej2-resources/22.1.37/scripts/ej2-lists/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _ej2_inputs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../ej2-inputs */ "./ej2-resources/22.1.37/scripts/ej2-inputs/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + + + + + + +var ROOT = 'e-treeview'; +var CONTROL = 'e-control'; +var COLLAPSIBLE = 'e-icon-collapsible'; +var EXPANDABLE = 'e-icon-expandable'; +var LISTITEM = 'e-list-item'; +var LISTTEXT = 'e-list-text'; +var LISTWRAP = 'e-text-wrap'; +var IELISTWRAP = 'e-ie-wrap'; +var PARENTITEM = 'e-list-parent'; +var HOVER = 'e-hover'; +var ACTIVE = 'e-active'; +var LOAD = 'e-icons-spinner'; +var PROCESS = 'e-process'; +var ICON = 'e-icons'; +var TEXTWRAP = 'e-text-content'; +var INPUT = 'e-input'; +var INPUTGROUP = 'e-input-group'; +var TREEINPUT = 'e-tree-input'; +var EDITING = 'e-editing'; +var RTL = 'e-rtl'; +var INTERACTION = 'e-interaction'; +var DRAGITEM = 'e-drag-item'; +var DROPPABLE = 'e-droppable'; +var DRAGGING = 'e-dragging'; +var SIBLING = 'e-sibling'; +var DROPIN = 'e-drop-in'; +var DROPNEXT = 'e-drop-next'; +var DROPOUT = 'e-drop-out'; +var NODROP = 'e-no-drop'; +var FULLROWWRAP = 'e-fullrow-wrap'; +var FULLROW = 'e-fullrow'; +var SELECTED = 'e-selected'; +var EXPANDED = 'e-expanded'; +var NODECOLLAPSED = 'e-node-collapsed'; +var DISABLE = 'e-disable'; +var DROPCOUNT = 'e-drop-count'; +var CHECK = 'e-check'; +var INDETERMINATE = 'e-stop'; +var CHECKBOXWRAP = 'e-checkbox-wrapper'; +var CHECKBOXFRAME = 'e-frame'; +var CHECKBOXRIPPLE = 'e-ripple-container'; +var RIPPLE = 'e-ripple'; +var RIPPLEELMENT = 'e-ripple-element'; +var FOCUS = 'e-node-focus'; +var IMAGE = 'e-list-img'; +var BIGGER = 'e-bigger'; +var SMALL = 'e-small'; +var CHILD = 'e-has-child'; +var ITEM_ANIMATION_ACTIVE = 'e-animation-active'; +var DISABLED = 'e-disabled'; +var PREVENTSELECT = 'e-prevent'; +var treeAriaAttr = { + treeRole: 'group', + itemRole: 'treeitem', + listRole: 'group', + itemText: '', + wrapperRole: '' +}; +/** + * Configures the fields to bind to the properties of node in the TreeView component. + */ +var FieldsSettings = /** @__PURE__ @class */ (function (_super) { + __extends(FieldsSettings, _super); + function FieldsSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('child') + ], FieldsSettings.prototype, "child", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])([]) + ], FieldsSettings.prototype, "dataSource", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('expanded') + ], FieldsSettings.prototype, "expanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('hasChildren') + ], FieldsSettings.prototype, "hasChildren", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('htmlAttributes') + ], FieldsSettings.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('iconCss') + ], FieldsSettings.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('id') + ], FieldsSettings.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('imageUrl') + ], FieldsSettings.prototype, "imageUrl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('isChecked') + ], FieldsSettings.prototype, "isChecked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('parentID') + ], FieldsSettings.prototype, "parentID", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], FieldsSettings.prototype, "query", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('selectable') + ], FieldsSettings.prototype, "selectable", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('selected') + ], FieldsSettings.prototype, "selected", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], FieldsSettings.prototype, "tableName", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('text') + ], FieldsSettings.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('tooltip') + ], FieldsSettings.prototype, "tooltip", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('navigateUrl') + ], FieldsSettings.prototype, "navigateUrl", void 0); + return FieldsSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Configures animation settings for the TreeView component. + */ +var ActionSettings = /** @__PURE__ @class */ (function (_super) { + __extends(ActionSettings, _super); + function ActionSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('SlideDown') + ], ActionSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], ActionSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('linear') + ], ActionSettings.prototype, "easing", void 0); + return ActionSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Configures the animation settings for expanding and collapsing nodes in TreeView. + */ +var NodeAnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(NodeAnimationSettings, _super); + function NodeAnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideUp', duration: 400, easing: 'linear' }, ActionSettings) + ], NodeAnimationSettings.prototype, "collapse", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ effect: 'SlideDown', duration: 400, easing: 'linear' }, ActionSettings) + ], NodeAnimationSettings.prototype, "expand", void 0); + return NodeAnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * The TreeView component is used to represent hierarchical data in a tree like structure with advanced + * functions to perform edit, drag and drop, selection with check-box, and more. + * ```html + *
    + * ``` + * ```typescript + * let treeObj: TreeView = new TreeView(); + * treeObj.appendTo('#tree'); + * ``` + */ +var TreeView = /** @__PURE__ @class */ (function (_super) { + __extends(TreeView, _super); + function TreeView(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isRefreshed = false; + _this.preventExpand = false; + _this.checkedElement = []; + _this.disableNode = []; + // eslint-disable-next-line + _this.validArr = []; + _this.validNodes = []; + _this.expandChildren = []; + _this.isFieldChange = false; + _this.changeDataSource = false; + _this.hasTemplate = false; + _this.isFirstRender = false; + // Specifies whether the node is dropped or not + _this.isNodeDropped = false; + _this.isInteracted = false; + _this.isRightClick = false; + _this.mouseDownStatus = false; + return _this; + } + TreeView_1 = TreeView; + /** + * Get component name. + * + * @returns {string} - returns module name. + * @private + */ + TreeView.prototype.getModuleName = function () { + return 'treeview'; + }; + /** + * Initialize the event handler + * + * @returns {void} + */ + TreeView.prototype.preRender = function () { + var _this = this; + this.checkActionNodes = []; + this.parentNodeCheck = []; + this.dragStartAction = false; + this.isAnimate = false; + this.keyConfigs = { + escape: 'escape', + end: 'end', + enter: 'enter', + f2: 'f2', + home: 'home', + moveDown: 'downarrow', + moveLeft: 'leftarrow', + moveRight: 'rightarrow', + moveUp: 'uparrow', + ctrlDown: 'ctrl+downarrow', + ctrlUp: 'ctrl+uparrow', + ctrlEnter: 'ctrl+enter', + ctrlHome: 'ctrl+home', + ctrlEnd: 'ctrl+end', + ctrlA: 'ctrl+A', + shiftDown: 'shift+downarrow', + shiftUp: 'shift+uparrow', + shiftEnter: 'shift+enter', + shiftHome: 'shift+home', + shiftEnd: 'shift+end', + csDown: 'ctrl+shift+downarrow', + csUp: 'ctrl+shift+uparrow', + csEnter: 'ctrl+shift+enter', + csHome: 'ctrl+shift+home', + csEnd: 'ctrl+shift+end', + space: 'space', + shiftSpace: 'shift+space', + ctrlSpace: 'ctrl+space' + }; + this.listBaseOption = { + expandCollapse: true, + showIcon: true, + expandIconClass: EXPANDABLE, + ariaAttributes: treeAriaAttr, + expandIconPosition: 'Left', + itemCreated: function (e) { + _this.beforeNodeCreate(e); + }, + enableHtmlSanitizer: this.enableHtmlSanitizer, + itemNavigable: this.fullRowNavigable + }; + this.updateListProp(this.fields); + this.aniObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"]({}); + this.treeList = []; + this.isLoaded = false; + this.isInitalExpand = false; + this.expandChildren = []; + this.index = 0; + this.setTouchClass(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.selectedNodes)) { + this.setProperties({ selectedNodes: [] }, true); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.checkedNodes)) { + this.setProperties({ checkedNodes: [] }, true); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.expandedNodes)) { + this.setProperties({ expandedNodes: [] }, true); + } + else { + this.isInitalExpand = true; + } + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - returns the persisted data + * @hidden + */ + TreeView.prototype.getPersistData = function () { + var keyEntity = ['selectedNodes', 'checkedNodes', 'expandedNodes']; + return this.addOnPersist(keyEntity); + }; + /** + * To Initialize the control rendering + * + * @private + * @returns {void} + */ + TreeView.prototype.render = function () { + this.initialRender = true; + this.initialize(); + this.setDataBinding(false); + this.setDisabledMode(); + this.setExpandOnType(); + if (!this.disabled) { + this.setRipple(); + } + this.wireEditingEvents(this.allowEditing); + this.setDragAndDrop(this.allowDragAndDrop); + if (!this.disabled) { + this.wireEvents(); + } + this.initialRender = false; + this.renderComplete(); + }; + TreeView.prototype.initialize = function () { + this.element.setAttribute('role', 'tree'); + this.element.setAttribute('aria-activedescendant', this.element.id + '_active'); + this.setCssClass(null, this.cssClass); + this.setEnableRtl(); + this.setFullRow(this.fullRowSelect); + this.setTextWrap(); + this.nodeTemplateFn = this.templateComplier(this.nodeTemplate); + }; + TreeView.prototype.setDisabledMode = function () { + if (this.disabled) { + this.element.classList.add(DISABLED); + } + else { + this.element.classList.remove(DISABLED); + } + }; + TreeView.prototype.setEnableRtl = function () { + (this.enableRtl ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], RTL); + }; + TreeView.prototype.setRipple = function () { + var tempStr = '.' + FULLROW + ',.' + TEXTWRAP; + var rippleModel = { + selector: tempStr, + ignore: '.' + TEXTWRAP + ' > .' + ICON + ',.' + INPUTGROUP + ',.' + INPUT + ', .' + CHECKBOXWRAP + }; + this.rippleFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, rippleModel); + var iconModel = { + selector: '.' + TEXTWRAP + ' > .' + ICON, + isCenterRipple: true + }; + this.rippleIconFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(this.element, iconModel); + }; + TreeView.prototype.setFullRow = function (isEnabled) { + (isEnabled ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], FULLROWWRAP); + }; + TreeView.prototype.setMultiSelect = function (isEnabled) { + var firstUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, this.element); + if (isEnabled) { + firstUl.setAttribute('aria-multiselectable', 'true'); + } + else { + firstUl.removeAttribute('aria-multiselectable'); + } + }; + // eslint-disable-next-line + TreeView.prototype.templateComplier = function (template) { + if (template) { + this.hasTemplate = true; + // eslint-disable-next-line + var e = void 0; + this.element.classList.add(INTERACTION); + try { + if (typeof template !== 'function' && document.querySelectorAll(template).length) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(document.querySelector(template).innerHTML.trim()); + } + else { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + catch (e) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + } + } + this.element.classList.remove(INTERACTION); + return undefined; + }; + TreeView.prototype.setDataBinding = function (changeDataSource) { + var _this = this; + this.treeList.push('false'); + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + /* eslint-disable */ + this.isOffline = this.fields.dataSource.dataSource.offline; + if (this.fields.dataSource.ready) { + this.fields.dataSource.ready.then(function (e) { + /* eslint-disable */ + _this.isOffline = _this.fields.dataSource.dataSource.offline; + if (_this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && _this.isOffline) { + _this.treeList.pop(); + _this.treeData = e.result; + _this.isNumberTypeId = _this.getType(); + _this.setRootData(); + _this.renderItems(true); + if (_this.treeList.length === 0 && !_this.isLoaded) { + _this.finalize(); + } + } + }).catch(function (e) { + _this.trigger('actionFailure', { error: e }); + }); + } + else { + this.fields.dataSource.executeQuery(this.getQuery(this.fields)).then(function (e) { + _this.treeList.pop(); + _this.treeData = e.result; + _this.isNumberTypeId = _this.getType(); + _this.setRootData(); + if (changeDataSource) { + _this.changeDataSource = true; + } + _this.renderItems(true); + _this.changeDataSource = false; + if (_this.treeList.length === 0 && !_this.isLoaded) { + _this.finalize(); + } + }).catch(function (e) { + _this.trigger('actionFailure', { error: e }); + }); + } + } + else { + this.treeList.pop(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.fields.dataSource)) { + this.rootData = this.treeData = []; + } + else { + this.treeData = JSON.parse(JSON.stringify(this.fields.dataSource)); + this.setRootData(); + } + this.isNumberTypeId = this.getType(); + this.renderItems(false); + } + if (this.treeList.length === 0 && !this.isLoaded) { + this.finalize(); + } + }; + TreeView.prototype.getQuery = function (mapper, value) { + if (value === void 0) { value = null; } + var columns = []; + var query; + if (!mapper.query) { + query = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"](); + var prop = this.getActualProperties(mapper); + for (var _i = 0, _a = Object.keys(prop); _i < _a.length; _i++) { + var col = _a[_i]; + if (col !== 'dataSource' && col !== 'tableName' && col !== 'child' && !!mapper[col] + && col !== 'url' && columns.indexOf(mapper[col]) === -1) { + columns.push(mapper[col]); + } + } + query.select(columns); + if (prop.hasOwnProperty('tableName')) { + query.from(mapper.tableName); + } + } + else { + query = mapper.query.clone(); + } + _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].addSorting(this.sortOrder, mapper.text, query); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(value) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.parentID)) { + query.where(mapper.parentID, 'equal', (this.isNumberTypeId ? parseFloat(value) : value)); + } + return query; + }; + TreeView.prototype.getType = function () { + return this.treeData[0] ? ((typeof Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, this.treeData[0]) === 'number') ? true : false) : false; + }; + TreeView.prototype.setRootData = function () { + this.dataType = this.getDataType(this.treeData, this.fields); + if (this.dataType === 1) { + this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID); + var rootItems = this.getChildNodes(this.treeData, undefined, true); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(rootItems)) { + this.rootData = []; + } + else { + this.rootData = rootItems; + } + } + else { + this.rootData = this.treeData; + } + }; + TreeView.prototype.renderItems = function (isSorted) { + /* eslint-disable */ + this.listBaseOption.ariaAttributes.level = 1; + var sortedData = this.getSortedData(this.rootData); + this.ulElement = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createList(this.createElement, isSorted ? this.rootData : sortedData, this.listBaseOption); + this.element.appendChild(this.ulElement); + var rootNodes = this.ulElement.querySelectorAll('.e-list-item'); + if (this.loadOnDemand === false) { + var i = 0; + while (i < rootNodes.length) { + this.renderChildNodes(rootNodes[i], true, null, true); + i++; + } + } + var parentEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + PARENTITEM, this.element); + if ((parentEle.length === 1 && (rootNodes && rootNodes.length !== 0)) || this.loadOnDemand) { + this.finalizeNode(this.element); + } + this.parentNodeCheck = []; + this.parentCheckData = []; + this.updateCheckedStateFromDS(); + if (this.autoCheck && this.showCheckBox && !this.isLoaded) { + this.updateParentCheckState(); + } + }; + /** + * Update the checkedNodes from datasource at initial rendering + */ + TreeView.prototype.updateCheckedStateFromDS = function (id) { + this.validNodes = []; + if (this.treeData && this.showCheckBox) { + if (this.dataType === 1) { + var mapper = this.fields; + var resultData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.isChecked, 'equal', true, false)); + for (var i = 0; i < resultData.length; i++) { + var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null; + var resultPId = resultData[i][this.fields.parentID] ? resultData[i][this.fields.parentID].toString() : null; + if (this.checkedNodes.indexOf(resultId) === -1 && !(this.isLoaded)) { + this.checkedNodes.push(resultId); + } + if (resultData[i][this.fields.hasChildren]) { + var id_1 = resultData[i][this.fields.id]; + var childData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData). + executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.parentID, 'equal', id_1, false)); + for (var child = 0; child < childData.length; child++) { + var childId = childData[child][this.fields.id] ? childData[child][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(childId) === -1 && this.autoCheck) { + this.checkedNodes.push(childId); + } + } + } + } + for (var i = 0; i < this.checkedNodes.length; i++) { + var mapper_1 = this.fields; + var checkState = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData). + executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper_1.id, 'equal', this.checkedNodes[i], true)); + if (checkState[0] && this.autoCheck) { + this.getCheckedNodeDetails(mapper_1, checkState); + this.checkIndeterminateState(checkState[0]); + } + if (checkState.length > 0) { + var checkedId = checkState[0][this.fields.id] ? checkState[0][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) { + this.validNodes.push(checkedId); + } + } + var checkedData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData). + executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper_1.parentID, 'equal', this.checkedNodes[i], true)); + for (var index = 0; index < checkedData.length; index++) { + var checkedId = checkedData[index][this.fields.id] ? checkedData[index][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(checkedId) === -1 && this.autoCheck) { + this.checkedNodes.push(checkedId); + } + if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) { + this.validNodes.push(checkedId); + } + } + } + } + else if (this.dataType === 2 || (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && + this.isOffline)) { + for (var index = 0; index < this.treeData.length; index++) { + var fieldId = this.treeData[index][this.fields.id] ? this.treeData[index][this.fields.id].toString() : ''; + if (this.treeData[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(fieldId) === -1) { + this.checkedNodes.push(fieldId); + } + if (this.checkedNodes.indexOf(fieldId) > -1 && this.validNodes.indexOf(fieldId) === -1) { + this.validNodes.push(fieldId); + } + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), this.treeData[index]); + if (childItems) { + this.updateChildCheckState(childItems, this.treeData[index]); + } + } + this.validNodes = (this.enablePersistence) ? this.checkedNodes : this.validNodes; + } + this.setProperties({ checkedNodes: this.validNodes }, true); + } + }; + /** + * To check whether the list data has sub child and to change the parent check state accordingly + */ + TreeView.prototype.getCheckedNodeDetails = function (mapper, checkNodes) { + var id = checkNodes[0][this.fields.parentID] ? checkNodes[0][this.fields.parentID].toString() : null; + var count = 0; + var element = this.element.querySelector('[data-uid="' + checkNodes[0][this.fields.id] + '"]'); + var parentEle = this.element.querySelector('[data-uid="' + checkNodes[0][this.fields.parentID] + '"]'); + if (!element && !parentEle) { + var len = this.parentNodeCheck.length; + if (this.parentNodeCheck.indexOf(id) === -1) { + this.parentNodeCheck.push(id); + } + var childNodes = this.getChildNodes(this.treeData, id); + for (var i = 0; i < childNodes.length; i++) { + var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(childId) !== -1) { + count++; + } + if (count === childNodes.length && this.checkedNodes.indexOf(id) === -1) { + this.checkedNodes.push(id); + } + } + var preElement = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData). + executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.id, 'equal', id, true)); + this.getCheckedNodeDetails(mapper, preElement); + } + else if (parentEle) { + var check = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECK, parentEle); + if (!check) { + this.changeState(parentEle, 'indeterminate', null, true, true); + } + } + }; + /** + * Update the checkedNodes and parent state when all the child Nodes are in checkedstate at initial rendering + */ + TreeView.prototype.updateParentCheckState = function () { + var indeterminate = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + INDETERMINATE, this.element); + var childCheckedElement; + for (var i = 0; i < indeterminate.length; i++) { + var node = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(indeterminate[i], '.' + LISTITEM); + var nodeId = node.getAttribute('data-uid').toString(); + if (this.dataType === 1) { + childCheckedElement = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData). + executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(this.fields.parentID, 'equal', nodeId, true)); + } + else { + childCheckedElement = this.getChildNodes(this.treeData, nodeId); + } + var count = 0; + if (childCheckedElement) { + for (var j = 0; j < childCheckedElement.length; j++) { + var childId = childCheckedElement[j][this.fields.id].toString(); + if (this.checkedNodes.indexOf(childId) !== -1) { + count++; + } + } + if (count === childCheckedElement.length) { + var nodeCheck = node.getAttribute('data-uid'); + if (this.checkedNodes.indexOf(nodeCheck) === -1) { + this.checkedNodes.push(nodeCheck); + } + this.changeState(node, 'check', null, true, true); + } + else if (count === 0 && this.checkedNodes.length === 0) { + this.changeState(node, 'uncheck', null, true, true); + } + } + } + }; + /** + * Change the parent to indeterminate state whenever the child is in checked state which is not rendered in DOM + */ + TreeView.prototype.checkIndeterminateState = function (data) { + var element; + if (this.dataType === 1) { + element = this.element.querySelector('[data-uid="' + data[this.fields.parentID] + '"]'); + } + else { + element = this.element.querySelector('[data-uid="' + data[this.fields.id] + '"]'); + } + if (element) { + var ariaChecked = element.querySelector('.' + CHECKBOXWRAP).getAttribute('aria-checked'); + if (ariaChecked !== 'true') { + this.changeState(element, 'indeterminate', null, true, true); + } + } + else if (this.dataType === 2) { + var len = this.parentNodeCheck.length; + if (this.parentNodeCheck.indexOf(data[this.fields.id].toString()) === -1) { + this.parentNodeCheck.push(data[this.fields.id].toString()); + } + } + }; + /** + * Update the checkedNodes for child and subchild from datasource (hierarchical datasource) at initial rendering + */ + TreeView.prototype.updateChildCheckState = function (childItems, treeData) { + var count = 0; + var checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : ''; + for (var index = 0; index < childItems.length; index++) { + var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : ''; + if (childItems[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(checkedChild) === -1) { + this.checkedNodes.push(checkedChild); + } + if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1 && this.autoCheck) { + this.checkedNodes.push(checkedChild); + } + if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) { + count++; + } + if (this.checkedNodes.indexOf(checkedChild) > -1 && this.validNodes.indexOf(checkedChild) === -1) { + this.validNodes.push(checkedChild); + } + var subChildItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), childItems[index]); + if (subChildItems && subChildItems.length) { + if (this.parentCheckData.indexOf(treeData) === -1) + this.parentCheckData.push(treeData); + this.updateChildCheckState(subChildItems, childItems[index]); + } + if (count === childItems.length && this.autoCheck && this.checkedNodes.indexOf(checkedParent) === -1) { + this.checkedNodes.push(checkedParent); + } + } + if (count !== 0 && this.autoCheck) { + this.checkIndeterminateState(treeData); + for (var len = 0; len < this.parentCheckData.length; len++) { + if ((treeData !== this.parentCheckData[len]) && (this.parentCheckData[len])) { + this.checkIndeterminateState(this.parentCheckData[len]); + } + } + } + this.parentCheckData = []; + }; + TreeView.prototype.beforeNodeCreate = function (e) { + if (this.showCheckBox) { + var checkboxEle = Object(_ej2_buttons__WEBPACK_IMPORTED_MODULE_3__["createCheckBox"])(this.createElement, true, { cssClass: this.touchClass }); + checkboxEle.setAttribute('role', 'checkbox'); + checkboxEle.setAttribute('aria-label', 'checkbox'); + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, e.item); + var id = e.item.getAttribute('data-uid'); + e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon) ? 0 : 1]); + var checkValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(e.fields.isChecked, e.curData); + if (this.checkedNodes.indexOf(id) > -1) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK); + checkboxEle.setAttribute('aria-checked', 'true'); + this.addCheck(e.item); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(checkValue) && checkValue.toString() === 'true') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK); + checkboxEle.setAttribute('aria-checked', 'true'); + this.addCheck(e.item); + } + else { + checkboxEle.setAttribute('aria-checked', 'false'); + } + var frame = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXFRAME, checkboxEle); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(frame, 'mousedown', this.frameMouseHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(frame, 'mouseup', this.frameMouseHandler, this); + } + if (this.fullRowSelect) { + this.createFullRow(e.item); + } + if (this.allowMultiSelection && !e.item.classList.contains(SELECTED)) { + e.item.setAttribute('aria-selected', 'false'); + } + var fields = e.fields; + this.addActionClass(e, fields.selected, SELECTED); + this.addActionClass(e, fields.expanded, EXPANDED); + e.item.setAttribute("tabindex", "-1"); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(e.item, 'focus', this.focusIn, this); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.nodeTemplateFn)) { + var textEle = e.item.querySelector('.' + LISTTEXT); + var dataId = e.item.getAttribute('data-uid'); + textEle.innerHTML = ''; + this.renderNodeTemplate(e.curData, textEle, dataId); + } + var eventArgs = { + node: e.item, + nodeData: e.curData, + text: e.text, + }; + if (!this.isRefreshed) { + this.trigger('drawNode', eventArgs); + if (e.curData[this.fields.selectable] === false && !this.showCheckBox) { + e.item.classList.add(PREVENTSELECT); + e.item.firstElementChild.setAttribute('style', 'cursor: not-allowed'); + } + } + }; + TreeView.prototype.frameMouseHandler = function (e) { + var rippleSpan = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXRIPPLE, e.target.parentElement); + Object(_ej2_buttons__WEBPACK_IMPORTED_MODULE_3__["rippleMouseHandler"])(e, rippleSpan); + }; + TreeView.prototype.addActionClass = function (e, action, cssClass) { + var data = e.curData; + var actionValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(action, data); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(actionValue) && actionValue.toString() !== 'false') { + e.item.classList.add(cssClass); + } + }; + TreeView.prototype.getDataType = function (ds, mapper) { + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + for (var i = 0; i < ds.length; i++) { + if (this.isOffline) { + if ((typeof mapper.child === 'string') && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, ds[i])) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.parentID, ds[i]))) { + return 1; + } + } + else if ((typeof mapper.child === 'string') && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, ds[i]))) { + return 1; + } + } + return 2; + } + for (var i = 0, len = ds.length; i < len; i++) { + if ((typeof mapper.child === 'string') && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, ds[i]))) { + return 2; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.parentID, ds[i])) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.hasChildren, ds[i]))) { + return 1; + } + } + return 1; + }; + TreeView.prototype.getGroupedData = function (dataSource, groupBy) { + var cusQuery = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().group(groupBy); + var ds = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].getDataSource(dataSource, cusQuery); + var grpItem = []; + for (var j = 0; j < ds.length; j++) { + var itemObj = ds[j].items; + grpItem.push(itemObj); + } + return grpItem; + }; + TreeView.prototype.getSortedData = function (list) { + if (list && this.sortOrder !== 'None') { + list = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].getDataSource(list, _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].addSorting(this.sortOrder, this.fields.text)); + } + return list; + }; + TreeView.prototype.finalizeNode = function (element) { + var iNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + IMAGE, element); + for (var k = 0; k < iNodes.length; k++) { + iNodes[k].setAttribute('alt', IMAGE); + } + if (this.isLoaded) { + var sNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SELECTED, element); + for (var i = 0; i < sNodes.length; i++) { + this.selectNode(sNodes[i], null); + break; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(sNodes, SELECTED); + } + var cNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM + ':not(.' + EXPANDED + ')', element); + for (var j = 0; j < cNodes.length; j++) { + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, cNodes[j]); + if (icon && icon.classList.contains(EXPANDABLE)) { + this.disableExpandAttr(cNodes[j]); + } + } + var eNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + EXPANDED, element); + if (!this.isInitalExpand) { + for (var i = 0; i < eNodes.length; i++) { + this.renderChildNodes(eNodes[i]); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(eNodes, EXPANDED); + this.updateList(); + if (this.isLoaded) { + this.updateCheckedProp(); + } + }; + TreeView.prototype.updateCheckedProp = function () { + if (this.showCheckBox) { + var nodes = [].concat([], this.checkedNodes); + this.setProperties({ checkedNodes: nodes }, true); + } + }; + TreeView.prototype.ensureIndeterminate = function () { + if (this.autoCheck) { + var liElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('li', this.element); + var ulElement = void 0; + for (var i = 0; i < liElement.length; i++) { + if (liElement[i].classList.contains(LISTITEM)) { + ulElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, liElement[i]); + if (ulElement) { + this.ensureParentCheckState(liElement[i]); + } + else { + this.ensureChildCheckState(liElement[i]); + } + } + } + } + else { + var indeterminate = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + INDETERMINATE, this.element); + for (var i = 0; i < indeterminate.length; i++) { + indeterminate[i].classList.remove(INDETERMINATE); + } + } + }; + TreeView.prototype.ensureParentCheckState = function (element) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + if (element.classList.contains(ROOT)) { + return; + } + var ulElement = element; + if (element.classList.contains(LISTITEM)) { + ulElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, element); + } + var checkedNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CHECK, ulElement); + var indeterminateNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + INDETERMINATE, ulElement); + var nodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM, ulElement); + var checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0]; + if (nodes.length === checkedNodes.length) { + this.changeState(checkBoxEle, 'check', null, true, true); + } + else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) { + this.changeState(checkBoxEle, 'indeterminate', null, true, true); + } + else if (checkedNodes.length === 0) { + this.changeState(checkBoxEle, 'uncheck', null, true, true); + } + var parentUL = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(element, '.' + PARENTITEM); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentUL)) { + var currentParent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(parentUL, '.' + LISTITEM); + this.ensureParentCheckState(currentParent); + } + } + }; + TreeView.prototype.ensureChildCheckState = function (element, e) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + var childElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, element); + var checkBoxes = void 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childElement)) { + checkBoxes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CHECKBOXWRAP, childElement); + var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK); + var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE); + var childCheck = childElement.querySelectorAll('li'); + var expandState = childElement.parentElement.getAttribute('aria-expanded'); + var checkedState = void 0; + for (var index = 0; index < checkBoxes.length; index++) { + var childId = childCheck[index].getAttribute('data-uid'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.currentLoadData) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.isChecked, this.currentLoadData[index]))) { + checkedState = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.isChecked, this.currentLoadData[index]) ? 'check' : 'uncheck'; + if (this.ele !== -1) { + checkedState = isChecked ? 'check' : 'uncheck'; + } + if ((checkedState === 'uncheck') && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(this.parentNodeCheck) && this.autoCheck + && this.parentNodeCheck.indexOf(childId) !== -1)) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1); + checkedState = 'indeterminate'; + } + } + else { + var isNodeChecked = checkBoxes[index].getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK); + if (isChecked) { + checkedState = 'check'; + } + else if (isNodeChecked && !this.isLoaded) { + checkedState = 'check'; + } + else if (this.checkedNodes.indexOf(childId) !== -1 && this.isLoaded && (parentCheck || isChecked)) { + checkedState = 'check'; + } + else if (childCheck[index].classList.contains(CHILD) && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(this.parentNodeCheck) && this.autoCheck + && (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) { + checkedState = 'indeterminate'; + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1); + } + else if (this.dataType === 1 && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(this.parentNodeCheck) && this.autoCheck && + (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) { + checkedState = 'indeterminate'; + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1); + } + else { + checkedState = 'uncheck'; + } + } + this.changeState(checkBoxes[index], checkedState, e, true, true); + } + } + if (this.autoCheck && this.isLoaded) { + this.updateParentCheckState(); + } + } + }; + TreeView.prototype.doCheckBoxAction = function (nodes, doCheck) { + var li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM, this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + for (var len = nodes.length; len >= 0; len--) { + var liEle = void 0; + if (nodes.length === 1) { + liEle = this.getElement(nodes[len - 1]); + } + else { + liEle = this.getElement(nodes[len]); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + var node = void 0; + node = nodes[len - nodes.length] ? nodes[len - nodes.length].toString() : nodes[len] ? nodes[len].toString() : null; + if (node !== '' && doCheck && node) { + this.setValidCheckedNode(node); + this.dynamicCheckState(node, doCheck); + } + else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) { + this.checkedNodes.splice(this.checkedNodes.indexOf(node), 1); + var childItems = this.getChildNodes(this.treeData, node); + if (childItems) { + for (var i = 0; i < childItems.length; i++) { + var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(id) !== -1) { + this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1); + var ele = this.element.querySelector('[data-uid="' + id + '"]'); + if (ele) { + this.changeState(ele, 'uncheck', null); + } + } + } + if (this.parentNodeCheck.indexOf(node) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(node), 1); + } + } + if (node) { + this.dynamicCheckState(node, doCheck); + } + this.updateField(this.treeData, this.fields, node, 'isChecked', null); + } + continue; + } + var checkBox = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM + ' .' + CHECKBOXWRAP, liEle); + this.validateCheckNode(checkBox, !doCheck, liEle, null); + } + } + else { + var checkBoxes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + CHECKBOXWRAP, this.element); + if (this.loadOnDemand) { + for (var index = 0; index < checkBoxes.length; index++) { + this.updateFieldChecked(checkBoxes[index], doCheck); + this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck', null, null, null, doCheck); + } + } + else { + for (var index = 0; index < checkBoxes.length; index++) { + this.updateFieldChecked(checkBoxes[index], doCheck); + this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck'); + } + } + } + if (nodes) { + for (var j = 0; j < nodes.length; j++) { + var node = nodes[j] ? nodes[j].toString() : ''; + if (!doCheck) { + this.updateField(this.treeData, this.fields, node, 'isChecked', null); + } + } + } + if (this.autoCheck) { + this.updateParentCheckState(); + } + }; + TreeView.prototype.updateFieldChecked = function (checkbox, doCheck) { + var currLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(checkbox, '.' + LISTITEM); + var id = currLi.getAttribute('data-uid'); + var nodeDetails = this.getNodeData(currLi); + if (nodeDetails.isChecked === 'true' && !doCheck) { + this.updateField(this.treeData, this.fields, id, 'isChecked', null); + } + }; + /** + * Changes the parent and child check state while changing the checkedNodes via setmodel + */ + TreeView.prototype.dynamicCheckState = function (node, doCheck) { + if (this.dataType === 1) { + var count = 0; + var resultId = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(this.fields.id, 'equal', node, true)); + if (resultId[0]) { + var id = resultId[0][this.fields.id] ? resultId[0][this.fields.id].toString() : null; + var parent_1 = resultId[0][this.fields.parentID] ? resultId[0][this.fields.parentID].toString() : null; + var parentElement = this.element.querySelector('[data-uid="' + parent_1 + '"]'); + var indeterminate = parentElement ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INDETERMINATE, parentElement) : null; + var check = parentElement ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECK, parentElement) : null; + var element = this.element.querySelector('[data-uid="' + id + '"]'); + var childNodes = this.getChildNodes(this.treeData, parent_1); + if (childNodes) { + for (var i = 0; i < childNodes.length; i++) { + var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(childId) !== -1) { + count++; + } + } + } + if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (id === node) && this.autoCheck) { + this.changeState(parentElement, 'indeterminate', null); + } + else if (this.checkedNodes.indexOf(node) === -1 && element && (id === node) && !doCheck) { + this.changeState(element, 'uncheck', null); + } + else if (this.checkedNodes.indexOf(node) !== -1 && element && (id === node) && doCheck) { + this.changeState(element, 'check', null); + } + else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck + && count !== 0) { + this.changeState(parentElement, 'indeterminate', null); + } + else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck + && count === 0) { + this.changeState(parentElement, 'uncheck', null); + } + else if (!element && !parentElement && (id === node) && this.autoCheck) { + this.updateIndeterminate(node, doCheck); + } + } + } + else if (this.dataType === 2 || (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && + this.isOffline)) { + var id = void 0; + var parentElement = void 0; + var check = void 0; + for (var i = 0; i < this.treeData.length; i++) { + id = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : ''; + parentElement = this.element.querySelector('[data-uid="' + id + '"]'); + check = parentElement ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECK, parentElement) : null; + if (this.checkedNodes.indexOf(id) === -1 && parentElement && check && !doCheck) { + this.changeState(parentElement, 'uncheck', null); + } + var subChild = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), this.treeData[i]); + if (subChild) { + this.updateChildIndeterminate(subChild, id, node, doCheck, id); + } + } + } + }; + /** + * updates the parent and child check state while changing the checkedNodes via setmodel for listData + */ + TreeView.prototype.updateIndeterminate = function (node, doCheck) { + var indeterminateData = this.getTreeData(node); + var count = 0; + var parent; + if (this.dataType === 1) { + parent = indeterminateData[0][this.fields.parentID] ? indeterminateData[0][this.fields.parentID].toString() : null; + } + var childNodes = this.getChildNodes(this.treeData, parent); + if (childNodes) { + for (var i = 0; i < childNodes.length; i++) { + var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(childId) !== -1) { + count++; + } + } + } + var parentElement = this.element.querySelector('[data-uid="' + parent + '"]'); + if (parentElement && doCheck) { + this.changeState(parentElement, 'indeterminate', null); + } + else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count !== 0) { + this.changeState(parentElement, 'indeterminate', null); + } + else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count === 0) { + this.changeState(parentElement, 'uncheck', null); + } + else if (!parentElement) { + if (!doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent), 1); + } + else if (doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) === -1) { + this.parentNodeCheck.push(parent); + } + else if (!doCheck && this.checkedNodes.indexOf(parent) !== -1 && this.parentNodeCheck.indexOf(parent) === -1 + && count !== 0) { + this.parentNodeCheck.push(parent); + } + this.updateIndeterminate(parent, doCheck); + if (this.checkedNodes.indexOf(parent) !== -1 && !doCheck) { + this.checkedNodes.splice(this.checkedNodes.indexOf(parent), 1); + } + } + }; + /** + * updates the parent and child check state while changing the checkedNodes via setmodel for hierarchical data + */ + TreeView.prototype.updateChildIndeterminate = function (subChild, parent, node, doCheck, child) { + var count = 0; + for (var j = 0; j < subChild.length; j++) { + var subId = subChild[j][this.fields.id] ? subChild[j][this.fields.id].toString() : ''; + if (this.checkedNodes.indexOf(subId) !== -1) { + count++; + } + var parentElement = this.element.querySelector('[data-uid="' + parent + '"]'); + var indeterminate = parentElement ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + INDETERMINATE, parentElement) : null; + var check = parentElement ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECK, parentElement) : null; + var element = this.element.querySelector('[data-uid="' + subId + '"]'); + var childElementCheck = element ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECK, element) : null; + if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (subId === node) && this.autoCheck) { + this.changeState(parentElement, 'indeterminate', null); + } + else if (this.checkedNodes.indexOf(node) === -1 && parentElement && !element && (subId === node) && !doCheck) { + if (this.autoCheck) { + this.changeState(parentElement, 'uncheck', null); + } + else { + if (count !== 0) { + this.changeState(parentElement, 'indeterminate', null); + } + else { + this.changeState(parentElement, 'uncheck', null); + } + } + } + else if (this.checkedNodes.indexOf(node) === -1 && element && (subId === node) && !doCheck) { + this.changeState(element, 'uncheck', null); + } + else if (this.checkedNodes.indexOf(node) === -1 && indeterminate && (subId === node) && this.autoCheck && count === 0 + && !doCheck) { + indeterminate.classList.remove(INDETERMINATE); + } + else if (this.checkedNodes.indexOf(node) === -1 && !element && check && (subId === node) && count === 0) { + this.changeState(parentElement, 'uncheck', null); + } + else if (this.checkedNodes.indexOf(subId) === -1 && element && childElementCheck && count === 0) { + this.changeState(element, 'uncheck', null); + } + else if (!element && !parentElement && (subId === node) || (this.parentNodeCheck.indexOf(parent) !== -1) && this.autoCheck) { + var childElement = this.element.querySelector('[data-uid="' + child + '"]'); + if (doCheck && count !== 0) { + this.changeState(childElement, 'indeterminate', null); + } + else if (doCheck && count === subChild.length && this.checkedNodes.indexOf(parent) === -1) { + this.checkedNodes.push(parent); + } + else if (!doCheck && count === 0 && this.parentNodeCheck.indexOf(parent) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent)); + } + if (this.parentNodeCheck.indexOf(parent) === -1) { + this.parentNodeCheck.push(parent); + } + } + var innerChild = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), subChild[j]); + if (innerChild) { + this.updateChildIndeterminate(innerChild, subId, node, doCheck, child); + } + } + }; + TreeView.prototype.changeState = function (wrapper, state, e, isPrevent, isAdd, doCheck) { + var _this = this; + var eventArgs; + var currLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(wrapper, '.' + LISTITEM); + if (wrapper === currLi) { + wrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXWRAP, currLi); + } + if (!isPrevent) { + this.checkActionNodes = []; + eventArgs = this.getCheckEvent(currLi, state, e); + this.trigger('nodeChecking', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.nodeCheckAction(wrapper, state, currLi, observedArgs, e, isPrevent, isAdd, doCheck); + } + }); + } + else { + this.nodeCheckAction(wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck); + } + }; + TreeView.prototype.nodeCheckAction = function (wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck) { + var ariaState; + var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0]; + if (state === 'check' && !frameSpan.classList.contains(CHECK)) { + frameSpan.classList.remove(INDETERMINATE); + frameSpan.classList.add(CHECK); + this.addCheck(currLi); + ariaState = 'true'; + } + else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([frameSpan], [CHECK, INDETERMINATE]); + this.removeCheck(currLi); + ariaState = 'false'; + } + else if (state === 'indeterminate' && this.autoCheck) { + frameSpan.classList.remove(CHECK); + frameSpan.classList.add(INDETERMINATE); + this.removeCheck(currLi); + ariaState = 'mixed'; + } + ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ariaState)) { + wrapper.setAttribute('aria-checked', ariaState); + } + if (isAdd) { + var data = [].concat([], this.checkActionNodes); + eventArgs = this.getCheckEvent(currLi, state, e); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isUndefined"])(isPrevent)) { + eventArgs.data = data; + } + } + if (doCheck !== undefined) { + this.ensureStateChange(currLi, doCheck); + } + if (!isPrevent) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ariaState)) { + wrapper.setAttribute('aria-checked', ariaState); + eventArgs.data[0].checked = ariaState; + this.trigger('nodeChecked', eventArgs); + this.checkActionNodes = []; + } + } + }; + TreeView.prototype.addCheck = function (liEle) { + var id = liEle.getAttribute('data-uid'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id) && this.checkedNodes.indexOf(id) === -1) { + this.checkedNodes.push(id); + } + }; + TreeView.prototype.removeCheck = function (liEle) { + var index = this.checkedNodes.indexOf(liEle.getAttribute('data-uid')); + if (index > -1) { + this.checkedNodes.splice(index, 1); + } + }; + TreeView.prototype.getCheckEvent = function (currLi, action, e) { + this.checkActionNodes.push(this.getNodeData(currLi)); + var nodeData = this.checkActionNodes; + return { action: action, cancel: false, isInteracted: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? false : true, node: currLi, data: nodeData }; + }; + TreeView.prototype.finalize = function () { + var firstUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(firstUl)) { + firstUl.setAttribute('role', treeAriaAttr.treeRole); + this.setMultiSelect(this.allowMultiSelection); + var firstNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTITEM, this.element); + if (firstNode) { + firstNode.setAttribute('tabindex', '0'); + this.updateIdAttr(null, firstNode); + } + if (this.allowTextWrap) { + this.updateWrap(); + } + this.renderReactTemplates(); + this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false; + this.doExpandAction(); + } + }; + TreeView.prototype.setTextWrap = function () { + (this.allowTextWrap ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], LISTWRAP); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIE) { + (this.allowTextWrap ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"] : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], IELISTWRAP); + } + }; + TreeView.prototype.updateWrap = function (ulEle) { + if (!this.fullRowSelect) { + return; + } + var liEle = ulEle ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM, ulEle) : this.liList; + var length = liEle.length; + for (var i = 0; i < length; i++) { + this.calculateWrap(liEle[i]); + } + }; + TreeView.prototype.calculateWrap = function (liEle) { + var element = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + FULLROW, liEle); + if (element && element.nextElementSibling) { + element.style.height = this.allowTextWrap ? element.nextElementSibling.offsetHeight + 'px' : ''; + } + }; + TreeView.prototype.doExpandAction = function () { + var eUids = this.expandedNodes; + if (this.isInitalExpand && eUids.length > 0) { + this.setProperties({ expandedNodes: [] }, true); + /* eslint-disable */ + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + this.expandGivenNodes(eUids); + } + else { + for (var i = 0; i < eUids.length; i++) { + var eNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[data-uid="' + eUids[i] + '"]', this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eNode)) { + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + EXPANDABLE, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, eNode)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon)) { + this.expandAction(eNode, icon, null); + } + } + else { + if (eUids[i] && this.expandChildren.indexOf(eUids[i]) === -1) { + this.expandChildren.push(eUids[i].toString()); + } + continue; + } + } + this.afterFinalized(); + } + } + else { + this.afterFinalized(); + } + }; + TreeView.prototype.expandGivenNodes = function (arr) { + var proxy = this; + this.expandCallback(arr[this.index], function () { + proxy.index++; + if (proxy.index < arr.length) { + proxy.expandGivenNodes(arr); + } + else { + proxy.afterFinalized(); + } + }); + }; + TreeView.prototype.expandCallback = function (eUid, callback) { + var eNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[data-uid="' + eUid + '"]', this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eNode)) { + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + EXPANDABLE, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, eNode)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon)) { + this.expandAction(eNode, icon, null, false, callback); + } + else { + callback(); + } + } + else { + callback(); + } + }; + TreeView.prototype.afterFinalized = function () { + this.doSelectionAction(); + this.updateCheckedProp(); + this.isAnimate = true; + this.isInitalExpand = false; + if ((!this.isLoaded || this.isFieldChange) && !this.isNodeDropped) { + var eventArgs = { data: this.treeData }; + this.trigger('dataBound', eventArgs); + } + this.isLoaded = true; + this.isNodeDropped = false; + }; + TreeView.prototype.doSelectionAction = function () { + var sNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + SELECTED, this.element); + var sUids = this.selectedNodes; + if (sUids.length > 0) { + this.setProperties({ selectedNodes: [] }, true); + for (var i = 0; i < sUids.length; i++) { + var sNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[data-uid="' + sUids[i] + '"]', this.element); + if (sNode && !(sNode.classList.contains('e-active'))) { + this.selectNode(sNode, null, true); + } + else { + this.selectedNodes.push(sUids[i]); + } + if (!this.allowMultiSelection) { + break; + } + } + } + else { + this.selectGivenNodes(sNodes); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(sNodes, SELECTED); + }; + TreeView.prototype.selectGivenNodes = function (sNodes) { + for (var i = 0; i < sNodes.length; i++) { + if (!sNodes[i].classList.contains('e-disable')) { + this.selectNode(sNodes[i], null, true); + } + if (!this.allowMultiSelection) { + break; + } + } + }; + TreeView.prototype.clickHandler = function (event) { + var target = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice && !_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos ? document.elementFromPoint(event.originalEvent.changedTouches[0].clientX, event.originalEvent.changedTouches[0].clientY) : event.originalEvent.target; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'contextmenu', this.preventContextMenu); + if (!target || this.dragStartAction) { + return; + } + else { + var classList = target.classList; + var li = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + if (!li || (li.classList.contains(PREVENTSELECT) && !(classList.contains(EXPANDABLE) || classList.contains(COLLAPSIBLE)))) { + return; + } + else if (event.originalEvent.which !== 3) { + var rippleElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + RIPPLEELMENT, li); + var rippleIcons = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ICON, li); + this.removeHover(); + this.setFocusElement(li); + if (this.showCheckBox && !li.classList.contains('e-disable')) { + var checkWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + CHECKBOXWRAP); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(checkWrapper)) { + var checkElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXFRAME, checkWrapper); + this.validateCheckNode(checkWrapper, checkElement.classList.contains(CHECK), li, event.originalEvent); + this.triggerClickEvent(event.originalEvent, li); + return; + } + } + if (classList.contains(EXPANDABLE)) { + this.expandAction(li, target, event); + } + else if (classList.contains(COLLAPSIBLE)) { + this.collapseNode(li, target, event); + } + else if (rippleElement && rippleIcons) { + if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(EXPANDABLE)) { + this.expandAction(li, rippleIcons, event); + } + else if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(COLLAPSIBLE)) { + this.collapseNode(li, rippleIcons, event); + } + else if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) { + this.toggleSelect(li, event.originalEvent, false); + } + } + else { + if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) { + this.toggleSelect(li, event.originalEvent, false); + } + } + } + if (event.originalEvent.which === 3) { + this.isRightClick = true; + } + this.triggerClickEvent(event.originalEvent, li); + } + }; + TreeView.prototype.nodeCheckedEvent = function (wrapper, isCheck, e) { + var currLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(wrapper, '.' + LISTITEM); + var eventArgs = this.getCheckEvent(wrapper, isCheck ? 'uncheck' : 'check', e); + eventArgs.data = eventArgs.data.splice(0, eventArgs.data.length - 1); + this.trigger('nodeChecked', eventArgs); + }; + TreeView.prototype.triggerClickEvent = function (e, li) { + var eventArgs = { + event: e, + node: li, + }; + this.trigger('nodeClicked', eventArgs); + }; + TreeView.prototype.expandNode = function (currLi, icon, loaded) { + var _this = this; + this.renderReactTemplates(); + if (icon.classList.contains(LOAD)) { + this.hideSpinner(icon); + } + if (!this.initialRender) { + icon.classList.add('interaction'); + } + if (loaded !== true || (loaded === true && currLi.classList.contains('e-expanded'))) { + if (this.preventExpand !== true) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], EXPANDABLE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], COLLAPSIBLE); + var start_1 = 0; + var end_1 = 0; + var proxy_1 = this; + var ul_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, currLi); + var liEle_1 = currLi; + this.setHeight(liEle_1, ul_1); + var activeElement_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTITEM + '.' + ACTIVE, currLi); + if (this.isAnimate && !this.isRefreshed) { + this.aniObj.animate(ul_1, { + name: this.animation.expand.effect, + duration: this.animation.expand.duration, + timingFunction: this.animation.expand.easing, + begin: function (args) { + liEle_1.style.overflow = 'hidden'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeElement_1) && activeElement_1 instanceof HTMLElement) { + activeElement_1.classList.add(ITEM_ANIMATION_ACTIVE); + } + start_1 = liEle_1.offsetHeight; + end_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, currLi).offsetHeight; + }, + progress: function (args) { + args.element.style.display = 'block'; + proxy_1.animateHeight(args, start_1, end_1); + }, + end: function (args) { + args.element.style.display = 'block'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeElement_1) && activeElement_1 instanceof HTMLElement) { + activeElement_1.classList.remove(ITEM_ANIMATION_ACTIVE); + } + _this.expandedNode(liEle_1, ul_1, icon); + } + }); + } + else { + this.expandedNode(liEle_1, ul_1, icon); + } + } + } + else { + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, currLi); + ul.style.display = 'none'; + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] === true) { + this.preventExpand = false; + } + } + if (this.initialRender) { + icon.classList.add('interaction'); + } + }; + TreeView.prototype.expandedNode = function (currLi, ul, icon) { + ul.style.display = 'block'; + currLi.style.display = 'block'; + currLi.style.overflow = ''; + currLi.style.height = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], PROCESS); + this.addExpand(currLi); + if (this.allowTextWrap && this.isLoaded && this.isFirstRender) { + this.updateWrap(currLi); + this.isFirstRender = false; + } + if (this.isLoaded && this.expandArgs && !this.isRefreshed) { + this.expandArgs = this.getExpandEvent(currLi, null); + this.expandArgs.isInteracted = this.isInteracted; + this.trigger('nodeExpanded', this.expandArgs); + } + }; + TreeView.prototype.addExpand = function (liEle) { + liEle.setAttribute('aria-expanded', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([liEle], NODECOLLAPSED); + var id = liEle.getAttribute('data-uid'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id) && this.expandedNodes.indexOf(id) === -1) { + this.expandedNodes.push(id); + } + }; + TreeView.prototype.collapseNode = function (currLi, icon, e) { + var _this = this; + if (icon.classList.contains(PROCESS)) { + return; + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], PROCESS); + } + var colArgs; + if (this.isLoaded) { + colArgs = this.getExpandEvent(currLi, e); + this.isInteracted = colArgs.isInteracted; + this.trigger('nodeCollapsing', colArgs, function (observedArgs) { + if (observedArgs.cancel) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], PROCESS); + } + else { + _this.nodeCollapseAction(currLi, icon, observedArgs); + } + }); + } + else { + this.nodeCollapseAction(currLi, icon, colArgs); + } + }; + TreeView.prototype.nodeCollapseAction = function (currLi, icon, colArgs) { + var _this = this; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], COLLAPSIBLE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], EXPANDABLE); + var start = 0; + var end = 0; + var proxy = this; + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, currLi); + var liEle = currLi; + var activeElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTITEM + '.' + ACTIVE, currLi); + if (this.isAnimate) { + this.aniObj.animate(ul, { + name: this.animation.collapse.effect, + duration: this.animation.collapse.duration, + timingFunction: this.animation.collapse.easing, + begin: function (args) { + liEle.style.overflow = 'hidden'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeElement) && activeElement instanceof HTMLElement) { + activeElement.classList.add(ITEM_ANIMATION_ACTIVE); + } + start = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, currLi).offsetHeight; + end = liEle.offsetHeight; + }, + progress: function (args) { + proxy.animateHeight(args, start, end); + }, + end: function (args) { + args.element.style.display = 'none'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeElement) && activeElement instanceof HTMLElement) { + activeElement.classList.remove(ITEM_ANIMATION_ACTIVE); + } + _this.collapsedNode(liEle, ul, icon, colArgs); + } + }); + } + else { + this.collapsedNode(liEle, ul, icon, colArgs); + } + }; + TreeView.prototype.collapsedNode = function (liEle, ul, icon, colArgs) { + ul.style.display = 'none'; + liEle.style.overflow = ''; + liEle.style.height = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], PROCESS); + this.removeExpand(liEle); + if (this.isLoaded) { + colArgs = this.getExpandEvent(liEle, null); + colArgs.isInteracted = this.isInteracted; + this.trigger('nodeCollapsed', colArgs); + } + }; + TreeView.prototype.removeExpand = function (liEle, toRemove) { + if (toRemove) { + liEle.removeAttribute('aria-expanded'); + } + else { + this.disableExpandAttr(liEle); + } + var index = this.expandedNodes.indexOf(liEle.getAttribute('data-uid')); + if (index > -1) { + this.expandedNodes.splice(index, 1); + } + }; + TreeView.prototype.disableExpandAttr = function (liEle) { + liEle.setAttribute('aria-expanded', 'false'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], NODECOLLAPSED); + }; + TreeView.prototype.setHeight = function (currLi, ul) { + ul.style.display = 'block'; + ul.style.visibility = 'hidden'; + currLi.style.height = currLi.offsetHeight + 'px'; + ul.style.display = 'none'; + ul.style.visibility = ''; + }; + TreeView.prototype.animateHeight = function (args, start, end) { + var remaining = (args.duration - args.timeStamp) / args.duration; + var currentHeight = (end - start) * remaining + start; + args.element.parentElement.style.height = currentHeight + 'px'; + }; + TreeView.prototype.renderChildNodes = function (parentLi, expandChild, callback, loaded) { + var _this = this; + var eicon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, parentLi); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eicon)) { + return; + } + this.showSpinner(eicon); + var childItems; + /* eslint-disable */ + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + var level = this.parents(parentLi, '.' + PARENTITEM).length; + var mapper_2 = this.getChildFields(this.fields, level, 1); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper_2) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper_2.dataSource)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(eicon); + this.removeExpand(parentLi, true); + return; + } + this.treeList.push('false'); + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && this.isOffline) { + this.treeList.pop(); + childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid')); + this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded); + } + else { + mapper_2.dataSource.executeQuery(this.getQuery(mapper_2, parentLi.getAttribute('data-uid'))).then(function (e) { + _this.treeList.pop(); + childItems = e.result; + if (_this.dataType === 1) { + _this.dataType = 2; + } + _this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded); + }).catch(function (e) { + _this.trigger('actionFailure', { error: e }); + }); + } + } + else { + childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid')); + this.currentLoadData = this.getSortedData(childItems); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childItems) || childItems.length === 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(eicon); + this.removeExpand(parentLi, true); + return; + } + else { + this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1; + parentLi.appendChild(_ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createList(this.createElement, this.currentLoadData, this.listBaseOption)); + this.expandNode(parentLi, eicon, loaded); + this.setSelectionForChildNodes(childItems); + this.ensureCheckNode(parentLi); + this.finalizeNode(parentLi); + this.disableTreeNodes(childItems); + this.renderSubChild(parentLi, expandChild, loaded); + } + } + }; + TreeView.prototype.loadChild = function (childItems, mapper, eicon, parentLi, expandChild, callback, loaded) { + this.currentLoadData = childItems; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childItems) || childItems.length === 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(eicon); + this.removeExpand(parentLi, true); + } + else { + this.updateListProp(mapper); + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !this.isOffline) { + var id = parentLi.getAttribute('data-uid'); + var nodeData = this.getNodeObject(id); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('child', childItems, nodeData); + } + this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1; + parentLi.appendChild(_ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createList(this.createElement, childItems, this.listBaseOption)); + this.expandNode(parentLi, eicon, loaded); + this.setSelectionForChildNodes(childItems); + this.ensureCheckNode(parentLi); + this.finalizeNode(parentLi); + this.disableTreeNodes(childItems); + this.renderSubChild(parentLi, expandChild, loaded); + } + if (callback) { + callback(); + } + if (this.treeList.length === 0 && !this.isLoaded) { + this.finalize(); + } + }; + TreeView.prototype.disableTreeNodes = function (childItems) { + var i = 0; + while (i < childItems.length) { + var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null; + if (this.disableNode !== undefined && this.disableNode.indexOf(id) !== -1) { + this.doDisableAction([id]); + } + i++; + } + }; + /** + * Sets the child Item in selectedState while rendering the child node + */ + TreeView.prototype.setSelectionForChildNodes = function (nodes) { + var i; + for (i = 0; i < nodes.length; i++) { + var id = nodes[i][this.fields.id] ? nodes[i][this.fields.id].toString() : null; + if (this.selectedNodes !== undefined && this.selectedNodes.indexOf(id) !== -1) { + this.doSelectionAction(); + } + } + }; + TreeView.prototype.ensureCheckNode = function (element) { + if (this.showCheckBox) { + this.ele = (this.checkedElement) ? this.checkedElement.indexOf(element.getAttribute('data-uid')) : null; + if (this.autoCheck) { + this.ensureChildCheckState(element); + this.ensureParentCheckState(element); + } + } + this.currentLoadData = null; + }; + TreeView.prototype.getFields = function (mapper, nodeLevel, dataLevel) { + if (nodeLevel === dataLevel) { + return mapper; + } + else { + return this.getFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1); + } + }; + TreeView.prototype.getChildFields = function (mapper, nodeLevel, dataLevel) { + var childData; + if (nodeLevel === dataLevel) { + return this.getChildMapper(mapper); + } + else { + return this.getChildFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1); + } + }; + TreeView.prototype.getChildMapper = function (mapper) { + return (typeof mapper.child === 'string' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.child)) ? mapper : mapper.child; + }; + TreeView.prototype.getChildNodes = function (obj, parentId, isRoot) { + var _this = this; + if (isRoot === void 0) { isRoot = false; } + var childNodes; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj)) { + return childNodes; + } + else if (this.dataType === 1) { + return this.getChildGroup(this.groupedData, parentId, isRoot); + } + else { + if (typeof this.fields.child === 'string') { + var index = obj.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; }); + if (index !== -1) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child, obj[index]); + } + if (index === -1) { + for (var i = 0, objlen = obj.length; i < objlen; i++) { + var tempArray = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child, obj[i]); + var childIndex = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempArray) ? tempArray.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; }) : -1; + if (childIndex !== -1) { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child, tempArray[childIndex]); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tempArray)) { + childNodes = this.getChildNodes(tempArray, parentId); + if (childNodes !== undefined) { + break; + } + } + } + } + } + } + return childNodes; + }; + TreeView.prototype.getChildGroup = function (data, parentId, isRoot) { + var childNodes; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data)) { + return childNodes; + } + for (var i = 0, objlen = data.length; i < objlen; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data[i][0]) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.parentID, data[i][0]))) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.parentID, data[i][0]).toString() === parentId) { + return data[i]; + } + } + else if (isRoot) { + return data[i]; + } + else { + return []; + } + } + return childNodes; + }; + TreeView.prototype.renderSubChild = function (element, expandChild, loaded) { + if (expandChild) { + var cIcons = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + EXPANDABLE, element); + for (var i = 0, len = cIcons.length; i < len; i++) { + var icon = cIcons[i]; + if (element.querySelector('.e-icons') !== cIcons[i]) { + var curLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(icon, '.' + LISTITEM); + this.expandArgs = this.getExpandEvent(curLi, null); + if (loaded !== true) { + this.trigger('nodeExpanding', this.expandArgs); + } + this.renderChildNodes(curLi, expandChild, null, loaded); + } + } + } + }; + TreeView.prototype.toggleSelect = function (li, e, multiSelect) { + if (!li.classList.contains('e-disable')) { + if (this.allowMultiSelection && ((e && e.ctrlKey) || multiSelect) && this.isActive(li)) { + this.unselectNode(li, e); + } + else { + this.selectNode(li, e, multiSelect); + } + } + }; + TreeView.prototype.isActive = function (li) { + return li.classList.contains(ACTIVE) ? true : false; + }; + TreeView.prototype.selectNode = function (li, e, multiSelect) { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li) || (!this.allowMultiSelection && this.isActive(li) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e))) { + this.setFocusElement(li); + return; + } + var eventArgs; + if (this.isLoaded) { + eventArgs = this.getSelectEvent(li, 'select', e); + this.trigger('nodeSelecting', eventArgs, function (observedArgs) { + if ((!observedArgs.cancel) && !observedArgs.node.classList.contains(PREVENTSELECT)) { + _this.nodeSelectAction(li, e, observedArgs, multiSelect); + } + }); + } + else { + this.nodeSelectAction(li, e, eventArgs, multiSelect); + } + }; + TreeView.prototype.nodeSelectAction = function (li, e, eventArgs, multiSelect) { + if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) { + this.removeSelectAll(); + } + if (this.allowMultiSelection && e && e.shiftKey) { + if (!this.startNode) { + this.startNode = li; + } + var startIndex = this.liList.indexOf(this.startNode); + var endIndex = this.liList.indexOf(li); + if (startIndex > endIndex) { + var temp = startIndex; + startIndex = endIndex; + endIndex = temp; + } + for (var i = startIndex; i <= endIndex; i++) { + var currNode = this.liList[i]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(currNode) && !currNode.classList.contains('e-disable')) { + this.addSelect(currNode); + } + } + } + else { + this.startNode = li; + this.addSelect(li); + } + if (this.isLoaded) { + eventArgs.nodeData = this.getNodeData(li); + this.trigger('nodeSelected', eventArgs); + this.isRightClick = false; + } + this.isRightClick = false; + }; + TreeView.prototype.unselectNode = function (li, e) { + var _this = this; + var eventArgs; + if (this.isLoaded) { + eventArgs = this.getSelectEvent(li, 'un-select', e); + this.trigger('nodeSelecting', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.nodeUnselectAction(li, observedArgs); + } + }); + } + else { + this.nodeUnselectAction(li, eventArgs); + } + }; + TreeView.prototype.nodeUnselectAction = function (li, eventArgs) { + this.removeSelect(li); + this.setFocusElement(li); + if (this.isLoaded) { + eventArgs.nodeData = this.getNodeData(li); + this.trigger('nodeSelected', eventArgs); + } + }; + TreeView.prototype.setFocusElement = function (li) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(li)) { + var focusedNode = this.getFocusedNode(); + if (focusedNode) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([focusedNode], FOCUS); + focusedNode.setAttribute("tabindex", "-1"); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([li], FOCUS); + li.setAttribute('tabindex', '0'); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(li, 'blur', this.focusOut, this); + this.updateIdAttr(focusedNode, li); + } + }; + TreeView.prototype.addSelect = function (liEle) { + liEle.setAttribute('aria-selected', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], ACTIVE); + var id = liEle.getAttribute('data-uid'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id) && this.selectedNodes.indexOf(id) === -1) { + this.selectedNodes.push(id); + } + }; + TreeView.prototype.removeSelect = function (liEle) { + if (this.allowMultiSelection) { + liEle.setAttribute('aria-selected', 'false'); + } + else { + liEle.removeAttribute('aria-selected'); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([liEle], ACTIVE); + var index = this.selectedNodes.indexOf(liEle.getAttribute('data-uid')); + if (index > -1) { + this.selectedNodes.splice(index, 1); + } + }; + TreeView.prototype.removeSelectAll = function () { + var selectedLI = this.element.querySelectorAll('.' + ACTIVE); + for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) { + var ele = selectedLI_1[_i]; + if (this.allowMultiSelection) { + ele.setAttribute('aria-selected', 'false'); + } + else { + ele.removeAttribute('aria-selected'); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(selectedLI, ACTIVE); + this.setProperties({ selectedNodes: [] }, true); + }; + TreeView.prototype.getSelectEvent = function (currLi, action, e) { + var nodeData = this.getNodeData(currLi); + return { action: action, cancel: false, isInteracted: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? false : true, node: currLi, nodeData: nodeData }; + }; + TreeView.prototype.setExpandOnType = function () { + this.expandOnType = (this.expandOn === 'Auto') ? (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice ? 'Click' : 'DblClick') : this.expandOn; + }; + TreeView.prototype.expandHandler = function (e) { + var target = e.originalEvent.target; + if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) || + target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) || + target.classList.contains(ICON) || this.showCheckBox && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + CHECKBOXWRAP)) { + return; + } + else { + this.expandCollapseAction(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM), e); + } + }; + TreeView.prototype.expandCollapseAction = function (currLi, e) { + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, currLi); + if (!icon || icon.classList.contains(PROCESS)) { + return; + } + else { + var classList = icon.classList; + if (classList.contains(EXPANDABLE)) { + this.expandAction(currLi, icon, e); + } + else if (classList.contains(COLLAPSIBLE)) { + this.collapseNode(currLi, icon, e); + } + } + }; + TreeView.prototype.expandAction = function (currLi, icon, e, expandChild, callback) { + var _this = this; + if (icon.classList.contains(PROCESS)) { + return; + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], PROCESS); + } + if (this.isLoaded && !this.isRefreshed) { + this.expandArgs = this.getExpandEvent(currLi, e); + this.isInteracted = this.expandArgs.isInteracted; + this.trigger('nodeExpanding', this.expandArgs, function (observedArgs) { + if (observedArgs.cancel) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], PROCESS); + } + else { + _this.nodeExpandAction(currLi, icon, expandChild, callback); + } + }); + } + else { + this.nodeExpandAction(currLi, icon, expandChild, callback); + } + }; + TreeView.prototype.nodeExpandAction = function (currLi, icon, expandChild, callback) { + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, currLi); + if (ul && ul.nodeName === 'UL') { + this.expandNode(currLi, icon); + } + else { + this.isFirstRender = true; + this.renderChildNodes(currLi, expandChild, callback); + var liEles = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM, currLi); + for (var i = 0; i < liEles.length; i++) { + var id = this.getId(liEles[i]); + if (this.expandChildren.indexOf(id) !== -1 && this.expandChildren !== undefined) { + var icon_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + EXPANDABLE, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, liEles[i])); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon_1)) { + this.expandAction(liEles[i], icon_1, null); + } + this.expandChildren.splice(this.expandChildren.indexOf(id), 1); + } + } + } + }; + TreeView.prototype.keyActionHandler = function (e) { + var _this = this; + var target = e.target; + var focusedNode = this.getFocusedNode(); + if (target && target.classList.contains(INPUT)) { + var inpEle = target; + if (e.action === 'enter') { + inpEle.blur(); + } + else if (e.action === 'escape') { + inpEle.value = this.oldText; + inpEle.blur(); + } + return; + } + e.preventDefault(); + var eventArgs = { + cancel: false, + event: e, + node: focusedNode, + }; + this.trigger('keyPress', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + switch (e.action) { + case 'space': + if (_this.showCheckBox) { + _this.checkNode(e); + } + else { + _this.toggleSelect(focusedNode, e); + } + break; + case 'moveRight': + _this.openNode(_this.enableRtl ? false : true, e); + break; + case 'moveLeft': + _this.openNode(_this.enableRtl ? true : false, e); + break; + case 'shiftDown': + _this.shiftKeySelect(true, e); + break; + case 'moveDown': + case 'ctrlDown': + case 'csDown': + _this.navigateNode(true); + break; + case 'shiftUp': + _this.shiftKeySelect(false, e); + break; + case 'moveUp': + case 'ctrlUp': + case 'csUp': + _this.navigateNode(false); + break; + case 'home': + case 'shiftHome': + case 'ctrlHome': + case 'csHome': + _this.navigateRootNode(true); + break; + case 'end': + case 'shiftEnd': + case 'ctrlEnd': + case 'csEnd': + _this.navigateRootNode(false); + break; + case 'enter': + case 'ctrlEnter': + case 'shiftEnter': + case 'csEnter': + case 'shiftSpace': + case 'ctrlSpace': + _this.toggleSelect(focusedNode, e); + break; + case 'f2': + if (_this.allowEditing && !focusedNode.classList.contains('e-disable')) { + _this.createTextbox(focusedNode, e); + } + break; + case 'ctrlA': + if (_this.allowMultiSelection) { + var sNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM + ':not(.' + ACTIVE + ')', _this.element); + _this.selectGivenNodes(sNodes); + } + break; + } + } + }); + }; + TreeView.prototype.navigateToFocus = function (isUp) { + var focusNode = this.getFocusedNode().querySelector('.' + TEXTWRAP); + var pos = focusNode.getBoundingClientRect(); + var parent = this.getScrollParent(this.element); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parent)) { + var parentPos = parent.getBoundingClientRect(); + if (pos.bottom > parentPos.bottom) { + parent.scrollTop += pos.bottom - parentPos.bottom; + } + else if (pos.top < parentPos.top) { + parent.scrollTop -= parentPos.top - pos.top; + } + } + var isVisible = this.isVisibleInViewport(focusNode); + if (!isVisible) { + focusNode.scrollIntoView(isUp); + } + }; + TreeView.prototype.isVisibleInViewport = function (txtWrap) { + var pos = txtWrap.getBoundingClientRect(); + return (pos.top >= 0 && pos.left >= 0 && pos.bottom <= (window.innerHeight || document.documentElement.clientHeight) && + pos.right <= (window.innerWidth || document.documentElement.clientWidth)); + }; + TreeView.prototype.getScrollParent = function (node) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(node)) { + return null; + } + return (node.scrollHeight > node.clientHeight) ? node : this.getScrollParent(node.parentElement); + }; + TreeView.prototype.shiftKeySelect = function (isTowards, e) { + if (this.allowMultiSelection) { + var focusedNode = this.getFocusedNode(); + var nextNode = isTowards ? this.getNextNode(focusedNode) : this.getPrevNode(focusedNode); + this.removeHover(); + this.setFocusElement(nextNode); + this.toggleSelect(nextNode, e, false); + this.navigateToFocus(!isTowards); + } + else { + this.navigateNode(isTowards); + } + }; + TreeView.prototype.checkNode = function (e) { + var focusedNode = this.getFocusedNode(); + var checkWrap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXWRAP, focusedNode); + var isChecked = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(' .' + CHECKBOXFRAME, checkWrap).classList.contains(CHECK); + if (!focusedNode.classList.contains('e-disable')) { + if (focusedNode.getElementsByClassName("e-checkbox-disabled").length == 0) { + this.validateCheckNode(checkWrap, isChecked, focusedNode, e); + } + } + }; + TreeView.prototype.validateCheckNode = function (checkWrap, isCheck, li, e) { + var _this = this; + var currLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(checkWrap, '.' + LISTITEM); + this.checkActionNodes = []; + var ariaState = !isCheck ? 'true' : 'false'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ariaState)) { + checkWrap.setAttribute('aria-checked', ariaState); + } + var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e); + this.trigger('nodeChecking', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.nodeCheckingAction(checkWrap, isCheck, li, observedArgs, e); + } + }); + }; + TreeView.prototype.nodeCheckingAction = function (checkWrap, isCheck, li, eventArgs, e) { + if (this.checkedElement.indexOf(li.getAttribute('data-uid')) === -1) { + this.checkedElement.push(li.getAttribute('data-uid')); + if (this.autoCheck) { + var child = this.getChildNodes(this.treeData, li.getAttribute('data-uid')); + (child !== null) ? this.allCheckNode(child, this.checkedElement, null, null, false) : child = null; + } + } + this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true); + if (this.autoCheck) { + this.ensureChildCheckState(li); + this.ensureParentCheckState(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(li, '.' + PARENTITEM), '.' + LISTITEM)); + var doCheck = void 0; + if (eventArgs.action === 'check') { + doCheck = true; + } + else if (eventArgs.action === 'uncheck') { + doCheck = false; + } + this.ensureStateChange(li, doCheck); + } + this.nodeCheckedEvent(checkWrap, isCheck, e); + }; + /** + * Update checkedNodes when UI interaction happens before the child node renders in DOM + */ + TreeView.prototype.ensureStateChange = function (li, doCheck) { + var childElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, li); + var parentIndex = li.getAttribute('data-uid'); + var mapper = this.fields; + if (this.dataType === 1 && this.autoCheck) { + var resultData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.parentID, 'equal', parentIndex, true)); + for (var i = 0; i < resultData.length; i++) { + var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null; + var isCheck = resultData[i][this.fields.isChecked] ? resultData[i][this.fields.isChecked].toString() : null; + if (this.checkedNodes.indexOf(parentIndex) !== -1 && this.checkedNodes.indexOf(resultId) === -1) { + this.checkedNodes.push(resultId); + var childItems = this.getChildNodes(this.treeData, resultId); + this.getChildItems(childItems, doCheck); + if (this.parentNodeCheck.indexOf(resultId) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1); + } + } + else if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null && + this.checkedNodes.indexOf(resultId) !== -1) { + this.checkedNodes.splice(this.checkedNodes.indexOf(resultId), 1); + if (isCheck === 'true') { + this.updateField(this.treeData, this.fields, resultId, 'isChecked', null); + } + if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null || + this.parentNodeCheck.indexOf(resultId) !== -1) { + var childNodes = this.getChildNodes(this.treeData, resultId); + this.getChildItems(childNodes, doCheck); + if (this.parentNodeCheck.indexOf(resultId) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1); + } + } + } + else { + var childItems = this.getChildNodes(this.treeData, resultId); + this.getChildItems(childItems, doCheck); + } + } + } + else if (this.dataType === 1 && !this.autoCheck) { + if (!doCheck) { + var checkedData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.isChecked, 'equal', true, false)); + for (var i = 0; i < checkedData.length; i++) { + var id = checkedData[i][this.fields.id] ? checkedData[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(id) !== -1) { + this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1); + } + this.updateField(this.treeData, this.fields, id, 'isChecked', null); + } + this.checkedNodes = []; + } + else { + for (var i = 0; i < this.treeData.length; i++) { + var checkedId = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : null; + if (this.checkedNodes.indexOf(checkedId) === -1) { + this.checkedNodes.push(checkedId); + } + } + } + } + else { + var childItems = this.getChildNodes(this.treeData, parentIndex); + if (childItems) { + this.childStateChange(childItems, parentIndex, childElement, doCheck); + } + } + }; + TreeView.prototype.getChildItems = function (childItems, doCheck) { + for (var i = 0; i < childItems.length; i++) { + var childId = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null; + var childIsCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : + null; + if (this.checkedNodes.indexOf(childId) !== -1 && !doCheck) { + this.checkedNodes.splice(this.checkedNodes.indexOf(childId), 1); + } + if (this.checkedNodes.indexOf(childId) === -1 && doCheck) { + this.checkedNodes.push(childId); + } + if (childIsCheck === 'true' && !doCheck) { + this.updateField(this.treeData, this.fields, childId, 'isChecked', null); + } + var subChildItems = this.getChildNodes(this.treeData, childId); + if (subChildItems.length > 0) { + this.getChildItems(subChildItems, doCheck); + } + } + }; + /** + * Update checkedNodes when UI interaction happens before the child node renders in DOM for hierarchical DS + */ + TreeView.prototype.childStateChange = function (childItems, parent, childElement, doCheck) { + for (var i = 0; i < childItems.length; i++) { + var checkedChild = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : ''; + var isCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : null; + if (this.autoCheck) { + if (this.checkedNodes.indexOf(parent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) { + this.checkedNodes.push(checkedChild); + if (this.parentNodeCheck.indexOf(checkedChild) !== -1) { + this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(checkedChild), 1); + } + } + else if (this.checkedNodes.indexOf(parent) === -1 && this.checkedNodes.indexOf(checkedChild) !== -1 && !doCheck) { + this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1); + if (isCheck === 'true') { + this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null); + } + } + } + else if (!this.autoCheck) { + if (!doCheck) { + if (this.checkedNodes.indexOf(checkedChild) !== -1) { + this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1); + } + this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null); + this.checkedNodes = []; + } + else { + if (this.checkedNodes.indexOf(checkedChild) === -1) { + this.checkedNodes.push(checkedChild); + } + } + } + var subChild = this.getChildNodes([childItems[i]], checkedChild); + if (subChild) { + this.childStateChange(subChild, parent, childElement, doCheck); + } + } + }; + //This method can be used to get all child nodes of a parent by passing the children of a parent along with 'validateCheck' set to false + TreeView.prototype.allCheckNode = function (child, newCheck, checked, childCheck, validateCheck) { + if (child) { + for (var length_1 = 0; length_1 < child.length; length_1++) { + var childId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, child[length_1]); + var check = this.element.querySelector('[data-uid="' + childId + '"]'); + //Validates isChecked case while no UI interaction has been performed on the node or it's parent + if (validateCheck !== false && this.checkedElement.indexOf(childId.toString()) === -1) { + if (((check === null && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(child[length_1][this.fields.isChecked]) && newCheck.indexOf(childId.toString()) === -1) + || childCheck === 0 || checked === 2)) { + (child[length_1][this.fields.isChecked] !== false || checked === 2) ? newCheck.push(childId.toString()) + : childCheck = null; + childCheck = (child[length_1][this.fields.isChecked] !== false || checked === 2) ? 0 : null; + } + } + //Pushes child checked node done thro' UI interaction + if (newCheck.indexOf(childId.toString()) === -1 && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(checked)) { + newCheck.push(childId.toString()); + } + var hierChildId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), child[length_1]); + //Gets if any next level children are available for child nodes + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.hasChildren, child[length_1]) === true || hierChildId) { + var id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, child[length_1]); + var childId_1 = void 0; + if (this.dataType === 1) { + childId_1 = this.getChildNodes(this.treeData, id.toString()); + } + else { + childId_1 = hierChildId; + } + if (childId_1) { + (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(validateCheck)) ? this.allCheckNode(childId_1, newCheck, checked, childCheck) : + this.allCheckNode(childId_1, newCheck, checked, childCheck, validateCheck); + childCheck = null; + } + } + childCheck = null; + } + } + }; + TreeView.prototype.openNode = function (toBeOpened, e) { + var focusedNode = this.getFocusedNode(); + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, focusedNode); + if (toBeOpened) { + if (!icon) { + return; + } + else if (icon.classList.contains(EXPANDABLE)) { + this.expandAction(focusedNode, icon, e); + } + else { + this.focusNextNode(focusedNode, true); + } + } + else { + if (icon && icon.classList.contains(COLLAPSIBLE)) { + this.collapseNode(focusedNode, icon, e); + } + else { + var parentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(focusedNode, '.' + PARENTITEM), '.' + LISTITEM); + if (!parentLi) { + return; + } + else { + if (!parentLi.classList.contains('e-disable')) { + this.setFocus(focusedNode, parentLi); + this.navigateToFocus(true); + } + } + } + } + }; + TreeView.prototype.navigateNode = function (isTowards) { + var focusedNode = this.getFocusedNode(); + this.focusNextNode(focusedNode, isTowards); + }; + TreeView.prototype.navigateRootNode = function (isBackwards) { + var focusedNode = this.getFocusedNode(); + var rootNode = isBackwards ? this.getRootNode() : this.getEndNode(); + if (!rootNode.classList.contains('e-disable')) { + this.setFocus(focusedNode, rootNode); + this.navigateToFocus(isBackwards); + } + }; + TreeView.prototype.getFocusedNode = function () { + var selectedItem; + var fNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTITEM + '[tabindex="0"]', this.element); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fNode)) { + selectedItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTITEM, this.element); + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(fNode) ? (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selectedItem) ? this.element.firstElementChild : selectedItem) : fNode; + }; + TreeView.prototype.focusNextNode = function (li, isTowards) { + var nextNode = isTowards ? this.getNextNode(li) : this.getPrevNode(li); + this.setFocus(li, nextNode); + this.navigateToFocus(!isTowards); + if (nextNode.classList.contains('e-disable')) { + var lastChild = nextNode.lastChild; + if (nextNode.previousSibling == null && nextNode.classList.contains('e-level-1')) { + this.focusNextNode(nextNode, true); + } + else if (nextNode.nextSibling == null && nextNode.classList.contains('e-node-collapsed')) { + this.focusNextNode(nextNode, false); + } + else if (nextNode.nextSibling == null && lastChild.classList.contains(TEXTWRAP)) { + this.focusNextNode(nextNode, false); + } + else { + this.focusNextNode(nextNode, isTowards); + } + } + }; + TreeView.prototype.getNextNode = function (li) { + var index = this.liList.indexOf(li); + var nextNode; + do { + index++; + nextNode = this.liList[index]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nextNode)) { + return li; + } + } while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(nextNode)); + return nextNode; + }; + TreeView.prototype.getPrevNode = function (li) { + var index = this.liList.indexOf(li); + var prevNode; + do { + index--; + prevNode = this.liList[index]; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(prevNode)) { + return li; + } + } while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(prevNode)); + return prevNode; + }; + TreeView.prototype.getRootNode = function () { + var index = 0; + var rootNode; + do { + rootNode = this.liList[index]; + index++; + } while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(rootNode)); + return rootNode; + }; + TreeView.prototype.getEndNode = function () { + var index = this.liList.length - 1; + var endNode; + do { + endNode = this.liList[index]; + index--; + } while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(endNode)); + return endNode; + }; + TreeView.prototype.setFocus = function (preNode, nextNode) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([preNode], FOCUS); + preNode.setAttribute("tabindex", "-1"); + if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([nextNode], FOCUS); + nextNode.setAttribute('tabindex', '0'); + nextNode.focus(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(nextNode, 'blur', this.focusOut, this); + this.updateIdAttr(preNode, nextNode); + } + }; + TreeView.prototype.updateIdAttr = function (preNode, nextNode) { + this.element.removeAttribute('aria-activedescendant'); + if (preNode) { + preNode.removeAttribute('id'); + } + nextNode.setAttribute('id', this.element.id + '_active'); + this.element.setAttribute('aria-activedescendant', this.element.id + '_active'); + }; + TreeView.prototype.focusIn = function () { + if (!this.mouseDownStatus) { + var focusedElement = this.getFocusedNode(); + focusedElement.setAttribute("tabindex", "0"); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([focusedElement], FOCUS); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(focusedElement, 'blur', this.focusOut, this); + } + this.mouseDownStatus = false; + }; + TreeView.prototype.focusOut = function (event) { + var focusedElement = this.getFocusedNode(); + if (event.target == focusedElement) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([focusedElement], FOCUS); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(focusedElement, 'blur', this.focusOut); + } + }; + TreeView.prototype.onMouseOver = function (e) { + var target = e.target; + var classList = target.classList; + var currentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + if (!currentLi || classList.contains(PARENTITEM) || classList.contains(LISTITEM)) { + this.removeHover(); + return; + } + else { + if (currentLi && !currentLi.classList.contains('e-disable')) { + this.setHover(currentLi); + } + } + }; + TreeView.prototype.setHover = function (li) { + if (!li.classList.contains(HOVER) && !li.classList.contains(PREVENTSELECT)) { + this.removeHover(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([li], HOVER); + } + }; + ; + TreeView.prototype.onMouseLeave = function (e) { + this.removeHover(); + }; + TreeView.prototype.removeHover = function () { + var hoveredNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + HOVER, this.element); + if (hoveredNode && hoveredNode.length) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(hoveredNode, HOVER); + } + }; + ; + TreeView.prototype.getNodeData = function (currLi, fromDS) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(currLi) && currLi.classList.contains(LISTITEM) && + !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(currLi, '.' + CONTROL)) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(currLi, '.' + CONTROL).classList.contains(ROOT)) { + var id = currLi.getAttribute('data-uid'); + var text = this.getText(currLi, fromDS); + var pNode = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(currLi.parentNode, '.' + LISTITEM); + var pid = pNode ? pNode.getAttribute('data-uid') : null; + var selected = currLi.classList.contains(ACTIVE); + var selectable = currLi.classList.contains(PREVENTSELECT) ? false : true; + var expanded = (currLi.getAttribute('aria-expanded') === 'true') ? true : false; + var hasChildren = currLi.getAttribute('aria-expanded') !== null ? true : (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + EXPANDABLE, currLi) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + COLLAPSIBLE, currLi)) != null ? true : false; + var checked = null; + var checkboxElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CHECKBOXWRAP, currLi); + if (this.showCheckBox && checkboxElement) { + checked = checkboxElement.getAttribute('aria-checked'); + } + return { + id: id, text: text, parentID: pid, selected: selected, selectable: selectable, expanded: expanded, + isChecked: checked, hasChildren: hasChildren + }; + } + return { id: '', text: '', parentID: '', selected: false, expanded: false, isChecked: '', hasChildren: false }; + }; + TreeView.prototype.getText = function (currLi, fromDS) { + if (fromDS) { + var nodeData = this.getNodeObject(currLi.getAttribute('data-uid')); + var level = parseFloat(currLi.getAttribute('aria-level')); + var nodeFields = this.getFields(this.fields, level, 1); + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(nodeFields.text, nodeData); + } + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTTEXT, currLi).textContent; + }; + TreeView.prototype.getExpandEvent = function (currLi, e) { + var nodeData = this.getNodeData(currLi); + return { cancel: false, isInteracted: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) ? false : true, node: currLi, nodeData: nodeData, event: e }; + }; + TreeView.prototype.renderNodeTemplate = function (data, textEle, dataId) { + var tempArr = this.nodeTemplateFn(data, this, 'nodeTemplate' + dataId, this.element.id + 'nodeTemplate', this.isStringTemplate, undefined, textEle, this.root); + if (tempArr) { + tempArr = Array.prototype.slice.call(tempArr); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(tempArr, textEle); + } + }; + TreeView.prototype.destroyTemplate = function (liEle) { + this.clearTemplate(['nodeTemplate' + liEle.getAttribute('data-uid')]); + }; + TreeView.prototype.reRenderNodes = function () { + this.updateListProp(this.fields); + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIE) { + this.ulElement = this.element.querySelector('.e-list-parent.e-ul'); + this.ulElement.parentElement.removeChild(this.ulElement); + } + else { + this.element.innerHTML = ''; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.nodeTemplateFn)) { + this.clearTemplate(); + } + this.setTouchClass(); + this.setProperties({ selectedNodes: [], checkedNodes: [], expandedNodes: [] }, true); + this.checkedElement = []; + this.isLoaded = false; + this.setDataBinding(true); + }; + TreeView.prototype.setCssClass = function (oldClass, newClass) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldClass) && oldClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldClass.split(' ')); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newClass) && newClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], newClass.split(' ')); + } + }; + TreeView.prototype.editingHandler = function (e) { + var target = e.target; + if (!target || target.classList.contains(ROOT) || target.classList.contains(PARENTITEM) || + target.classList.contains(LISTITEM) || target.classList.contains(ICON) || + target.classList.contains(INPUT) || target.classList.contains(INPUTGROUP)) { + return; + } + else { + var liEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + this.createTextbox(liEle, e); + } + }; + TreeView.prototype.createTextbox = function (liEle, e) { + var _this = this; + var oldInpEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TREEINPUT, this.element); + if (oldInpEle) { + oldInpEle.blur(); + } + var textEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTTEXT, liEle); + this.updateOldText(liEle); + var innerEle = this.createElement('input', { className: TREEINPUT, attrs: { value: this.oldText } }); + var eventArgs = this.getEditEvent(liEle, null, innerEle.outerHTML); + this.trigger('nodeEditing', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + var inpWidth = textEle.offsetWidth + 5; + var style_1 = 'width:' + inpWidth + 'px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], EDITING); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.nodeTemplateFn)) { + _this.destroyTemplate(liEle); + } + if (_this.isReact) { + setTimeout(function () { + _this.renderTextBox(eventArgs, textEle, style_1); + }, 5); + } + else { + _this.renderTextBox(eventArgs, textEle, style_1); + } + } + }); + }; + TreeView.prototype.renderTextBox = function (eventArgs, textEle, style) { + textEle.innerHTML = eventArgs.innerHtml; + var inpEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TREEINPUT, textEle); + this.inputObj = _ej2_inputs__WEBPACK_IMPORTED_MODULE_4__["Input"].createInput({ + element: inpEle, + properties: { + enableRtl: this.enableRtl, + } + }, this.createElement); + this.inputObj.container.setAttribute('style', style); + inpEle.focus(); + var inputEle = inpEle; + inputEle.setSelectionRange(0, inputEle.value.length); + this.wireInputEvents(inpEle); + }; + TreeView.prototype.updateOldText = function (liEle) { + var id = liEle.getAttribute('data-uid'); + this.editData = this.getNodeObject(id); + var level = parseFloat(liEle.getAttribute('aria-level')); + this.editFields = this.getFields(this.fields, level, 1); + this.oldText = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.editFields.text, this.editData); + }; + TreeView.prototype.inputFocusOut = function (e) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TREEINPUT, this.element)) { + return; + } + var target = e.target; + var newText = target.value; + var txtEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTTEXT); + var liEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.inputObj.container); + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !this.isOffline) { + this.crudOperation('update', null, liEle, newText, null, null, true); + } + else { + this.appendNewText(liEle, txtEle, newText, true); + } + }; + TreeView.prototype.appendNewText = function (liEle, txtEle, newText, isInput) { + var _this = this; + var eventArgs = this.getEditEvent(liEle, newText, null); + this.trigger('nodeEdited', eventArgs, function (observedArgs) { + newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText; + _this.updateText(liEle, txtEle, newText, isInput); + if (observedArgs.oldText !== newText) { + _this.triggerEvent('nodeEdited', [_this.getNode(liEle)]); + } + }); + }; + TreeView.prototype.updateText = function (liEle, txtEle, newText, isInput) { + var newData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.editFields.text, newText, this.editData); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.nodeTemplateFn)) { + txtEle.innerText = ''; + var dataId = liEle.getAttribute('data-uid'); + this.renderNodeTemplate(newData, txtEle, dataId); + this.renderReactTemplates(); + } + else { + this.enableHtmlSanitizer ? txtEle.innerText = newText : txtEle.innerHTML = newText; + } + if (isInput) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([liEle], EDITING); + liEle.focus(); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(liEle, 'blur', this.focusOut, this); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], FOCUS); + } + if (this.allowTextWrap) { + this.calculateWrap(liEle); + } + }; + TreeView.prototype.getElement = function (ele) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return null; + } + else if (typeof ele === 'string') { + return this.element.querySelector('[data-uid="' + ele + '"]'); + } + else if (typeof ele === 'object') { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getElement"])(ele); + } + else { + return null; + } + }; + TreeView.prototype.getId = function (ele) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele)) { + return null; + } + else if (typeof ele === 'string') { + return ele; + } + else if (typeof ele === 'object') { + return (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getElement"])(ele)).getAttribute('data-uid'); + } + else { + return null; + } + }; + TreeView.prototype.getEditEvent = function (liEle, newText, inpEle) { + var data = this.getNodeData(liEle); + return { cancel: false, newText: newText, node: liEle, nodeData: data, oldText: this.oldText, innerHtml: inpEle }; + }; + TreeView.prototype.getNodeObject = function (id) { + var childNodes; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + return childNodes; + } + else if (this.dataType === 1) { + for (var i = 0, objlen = this.treeData.length; i < objlen; i++) { + var dataId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, this.treeData[i]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.treeData[i]) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dataId) && dataId.toString() === id) { + return this.treeData[i]; + } + } + } + else { + return this.getChildNodeObject(this.treeData, this.fields, id); + } + return childNodes; + }; + TreeView.prototype.getChildNodeObject = function (obj, mapper, id) { + var newList; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj)) { + return newList; + } + for (var i = 0, objlen = obj.length; i < objlen; i++) { + var dataId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.id, obj[i]); + if (obj[i] && dataId && dataId.toString() === id) { + return obj[i]; + } + else if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]))) { + var childData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]); + newList = this.getChildNodeObject(childData, this.getChildMapper(mapper), id); + if (newList !== undefined) { + break; + } + } + else if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]))) { + var child = 'child'; + newList = this.getChildNodeObject(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(child, obj[i]), this.getChildMapper(mapper), id); + if (newList !== undefined) { + break; + } + } + } + return newList; + }; + TreeView.prototype.setDragAndDrop = function (toBind) { + if (toBind && !this.disabled) { + this.initializeDrag(); + } + else { + this.destroyDrag(); + } + }; + TreeView.prototype.initializeDrag = function () { + var _this = this; + var virtualEle; + var proxy = this; + this.dragObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"](this.element, { + enableTailMode: true, enableAutoScroll: true, + dragArea: this.dragArea, + dragTarget: '.' + TEXTWRAP, + enableTapHold: true, + tapHoldThreshold: 100, + helper: function (e) { + _this.dragTarget = e.sender.target; + var dragRoot = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(_this.dragTarget, '.' + ROOT); + var dragWrap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(_this.dragTarget, '.' + TEXTWRAP); + _this.dragLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(_this.dragTarget, '.' + LISTITEM); + if (_this.fullRowSelect && !dragWrap && _this.dragTarget.classList.contains(FULLROW)) { + dragWrap = _this.dragTarget.nextElementSibling; + } + if (!_this.dragTarget || !e.element.isSameNode(dragRoot) || !dragWrap || + _this.dragTarget.classList.contains(ROOT) || _this.dragTarget.classList.contains(PARENTITEM) || + _this.dragTarget.classList.contains(LISTITEM) || _this.dragLi.classList.contains('e-disable')) { + return false; + } + var cloneEle = (dragWrap.cloneNode(true)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, cloneEle))) { + var icon = proxy.createElement('div', { className: ICON + ' ' + EXPANDABLE }); + cloneEle.insertBefore(icon, cloneEle.children[0]); + } + var cssClass = DRAGITEM + ' ' + ROOT + ' ' + _this.cssClass + ' ' + (_this.enableRtl ? RTL : ''); + virtualEle = proxy.createElement('div', { className: cssClass }); + virtualEle.appendChild(cloneEle); + var nLen = _this.selectedNodes.length; + if (nLen > 1 && _this.allowMultiSelection && _this.dragLi.classList.contains(ACTIVE)) { + var cNode = proxy.createElement('span', { className: DROPCOUNT, innerHTML: '' + nLen }); + virtualEle.appendChild(cNode); + } + document.body.appendChild(virtualEle); + document.body.style.cursor = ''; + _this.dragData = _this.getNodeData(_this.dragLi); + return virtualEle; + }, + dragStart: function (e) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], DRAGGING); + var listItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-list-item'); + var level; + if (listItem) { + level = parseInt(listItem.getAttribute('aria-level'), 10); + } + var eventArgs = _this.getDragEvent(e.event, _this, null, e.target, null, virtualEle, level); + if (eventArgs.draggedNode.classList.contains(EDITING)) { + _this.dragObj.intDestroy(e.event); + _this.dragCancelAction(virtualEle); + } + else { + _this.trigger('nodeDragStart', eventArgs, function (observedArgs) { + if (observedArgs.cancel) { + _this.dragObj.intDestroy(e.event); + _this.dragCancelAction(virtualEle); + } + else { + _this.dragStartAction = true; + } + }); + } + }, + drag: function (e) { + _this.dragObj.setProperties({ cursorAt: { top: (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e.event.targetTouches) || _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) ? 60 : -20 } }); + _this.dragAction(e, virtualEle); + }, + dragStop: function (e) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], DRAGGING); + _this.removeVirtualEle(); + var dropTarget = e.target; + var preventTargetExpand = false; + var dropRoot = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropTarget, '.' + DROPPABLE)); + var isHelperElement = true; + if (!dropTarget || !dropRoot) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(e.helper); + document.body.style.cursor = ''; + isHelperElement = false; + } + var listItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropTarget, '.e-list-item'); + var level; + if (listItem) { + level = parseInt(listItem.getAttribute('aria-level'), 10); + } + var eventArgs = _this.getDragEvent(e.event, _this, dropTarget, dropTarget, null, e.helper, level); + eventArgs.preventTargetExpand = preventTargetExpand; + _this.trigger('nodeDragStop', eventArgs, function (observedArgs) { + _this.dragParent = observedArgs.draggedParentNode; + _this.preventExpand = observedArgs.preventTargetExpand; + if (observedArgs.cancel) { + if (e.helper.parentNode) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(e.helper); + } + document.body.style.cursor = ''; + isHelperElement = false; + } + _this.dragStartAction = false; + }); + } + }); + this.dropObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Droppable"](this.element, { + out: function (e) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) && !e.target.classList.contains(SIBLING) && (_this.dropObj.dragData.default && _this.dropObj.dragData.default.helper.classList.contains(ROOT))) { + document.body.style.cursor = 'not-allowed'; + } + }, + over: function (e) { + document.body.style.cursor = ''; + }, + drop: function (e) { + _this.dropAction(e); + } + }); + }; + TreeView.prototype.dragCancelAction = function (virtualEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(virtualEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], DRAGGING); + this.dragStartAction = false; + }; + TreeView.prototype.dragAction = function (e, virtualEle) { + var dropRoot = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + DROPPABLE); + var dropWrap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + TEXTWRAP); + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, virtualEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], [DROPIN, DROPNEXT, DROPOUT, NODROP]); + this.removeVirtualEle(); + document.body.style.cursor = ''; + var classList = e.target.classList; + if (this.fullRowSelect && !dropWrap && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(classList) && classList.contains(FULLROW)) { + dropWrap = e.target.nextElementSibling; + } + if (dropRoot) { + var dropLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + LISTITEM); + var checkWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + CHECKBOXWRAP); + var collapse = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + COLLAPSIBLE); + var expand = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + EXPANDABLE); + if (!dropRoot.classList.contains(ROOT) || (dropWrap && + (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi)))) { + if (this.hasTemplate && dropLi) { + var templateTarget = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi); + if ((e && (!expand && !collapse) && e.event.offsetY < 7 && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) { + var index = this.fullRowSelect ? (1) : (0); + this.appendIndicator(dropLi, icon, index); + } + else if ((e && (!expand && !collapse) && !checkWrapper && templateTarget && e.event.offsetY > templateTarget.offsetHeight - 10) || ((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19))) { + var index = this.fullRowSelect ? (2) : (1); + this.appendIndicator(dropLi, icon, index); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPIN); + } + } + else { + if ((dropLi && e && (!expand && !collapse) && (e.event.offsetY < 7) && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) { + var index = this.fullRowSelect ? (1) : (0); + this.appendIndicator(dropLi, icon, index); + } + else if ((dropLi && e && (!expand && !collapse) && (e.target.offsetHeight > 0 && e.event.offsetY > (e.target.offsetHeight - 10)) && !checkWrapper) || (((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19)))) { + var index = this.fullRowSelect ? (2) : (1); + this.appendIndicator(dropLi, icon, index); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPIN); + } + } + } + else if (e.target.nodeName === 'LI' && (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPNEXT); + this.renderVirtualEle(e); + } + else if (e.target.classList.contains(SIBLING)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPNEXT); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPOUT); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], NODROP); + document.body.style.cursor = 'not-allowed'; + } + var listItem = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.e-list-item'); + var level; + if (listItem) { + level = parseInt(listItem.getAttribute('aria-level'), 10); + } + var eventArgs = this.getDragEvent(e.event, this, e.target, e.target, null, virtualEle, level); + if (eventArgs.dropIndicator) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], eventArgs.dropIndicator); + } + this.trigger('nodeDragging', eventArgs); + if (eventArgs.dropIndicator) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], eventArgs.dropIndicator); + } + }; + TreeView.prototype.appendIndicator = function (dropLi, icon, index) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([icon], DROPNEXT); + var virEle = this.createElement('div', { className: SIBLING }); + dropLi.insertBefore(virEle, dropLi.children[index]); + }; + /* eslint-disable */ + TreeView.prototype.dropAction = function (e) { + var offsetY = e.event.offsetY; + var dropTarget = e.target; + var dragObj; + var level; + var drop = false; + var dragInstance; + var nodeData = []; + var liArray = []; + dragInstance = e.dragData.draggable; + for (var i_1 = 0; i_1 < dragInstance.ej2_instances.length; i_1++) { + if (dragInstance.ej2_instances[i_1] instanceof TreeView_1) { + dragObj = dragInstance.ej2_instances[i_1]; + break; + } + } + if (dragObj && dragObj.dragTarget) { + var dragTarget = dragObj.dragTarget; + var dragLi = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragTarget, '.' + LISTITEM)); + var dropLi = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropTarget, '.' + LISTITEM)); + liArray.push(dragLi); + if (dropLi == null && dropTarget.classList.contains(ROOT)) { + dropLi = dropTarget.firstElementChild; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(e.droppedElement); + document.body.style.cursor = ''; + if (!dropLi || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) { + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] === false) { + this.preventExpand = false; + } + return; + } + if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) { + var sNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + ACTIVE, dragObj.element); + liArray = sNodes; + if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) { + for (var i_2 = sNodes.length - 1; i_2 >= 0; i_2--) { + if (dropLi.isSameNode(sNodes[i_2]) || this.isDescendant(sNodes[i_2], dropLi)) { + continue; + } + this.appendNode(dropTarget, sNodes[i_2], dropLi, e, dragObj, offsetY); + } + } + else { + for (var i_3 = 0; i_3 < sNodes.length; i_3++) { + if (dropLi.isSameNode(sNodes[i_3]) || this.isDescendant(sNodes[i_3], dropLi)) { + continue; + } + this.appendNode(dropTarget, sNodes[i_3], dropLi, e, dragObj, offsetY); + } + } + } + else { + this.appendNode(dropTarget, dragLi, dropLi, e, dragObj, offsetY); + } + level = parseInt(dragLi.getAttribute('aria-level'), 10); + drop = true; + } + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] === false) { + this.preventExpand = false; + } + for (var i = 0; i < liArray.length; i++) { + nodeData.push(this.getNode(liArray[i])); + } + this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop)); + if (dragObj.element.id !== this.element.id) { + dragObj.triggerEvent('nodeDropped', nodeData); + this.isNodeDropped = true; + this.fields.dataSource = this.treeData; + } + this.triggerEvent('nodeDropped', nodeData); + }; + TreeView.prototype.appendNode = function (dropTarget, dragLi, dropLi, e, dragObj, offsetY) { + var checkWrapper = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropTarget, '.' + CHECKBOXWRAP); + var collapse = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + COLLAPSIBLE); + var expand = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + EXPANDABLE); + if (!dragLi.classList.contains('e-disable') && !checkWrapper && ((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3) || (expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19) || (!expand && !collapse))) { + if (dropTarget.nodeName === 'LI') { + this.dropAsSiblingNode(dragLi, dropLi, e, dragObj); + } + else if (dropTarget.firstElementChild && dropTarget.classList.contains(ROOT)) { + if (dropTarget.firstElementChild.nodeName === 'UL') { + this.dropAsSiblingNode(dragLi, dropLi, e, dragObj); + } + } + else if ((dropTarget.classList.contains('e-icon-collapsible')) || (dropTarget.classList.contains('e-icon-expandable'))) { + this.dropAsSiblingNode(dragLi, dropLi, e, dragObj); + } + else { + this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY); + } + } + else { + this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY, true); + } + }; + TreeView.prototype.dropAsSiblingNode = function (dragLi, dropLi, e, dragObj) { + var dropUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropLi, '.' + PARENTITEM); + var dragParentUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragLi, '.' + PARENTITEM); + var dragParentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragParentUl, '.' + LISTITEM); + var pre; + if (e.target.offsetHeight > 0 && e.event.offsetY > e.target.offsetHeight - 2) { + pre = false; + } + else if (e.event.offsetY < 2) { + pre = true; + } + else if (e.target.classList.contains('e-icon-expandable') || (e.target.classList.contains('e-icon-collapsible'))) { + if ((e.event.offsetY < 5) || (e.event.offsetX < 3)) { + pre = true; + } + else if ((e.event.offsetY > 15) || (e.event.offsetX > 17)) { + pre = false; + } + } + if ((e.target.classList.contains('e-icon-expandable')) || (e.target.classList.contains('e-icon-collapsible'))) { + var target = e.target.closest('li'); + dropUl.insertBefore(dragLi, pre ? target : target.nextElementSibling); + } + else { + dropUl.insertBefore(dragLi, pre ? e.target : e.target.nextElementSibling); + } + this.moveData(dragLi, dropLi, dropUl, pre, dragObj); + this.updateElement(dragParentUl, dragParentLi); + this.updateAriaLevel(dragLi); + if (dragObj.element.id === this.element.id) { + this.updateList(); + } + else { + dragObj.updateInstance(); + this.updateInstance(); + } + }; + TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos, isCheck) { + var dragParentUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragLi, '.' + PARENTITEM); + var dragParentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragParentUl, '.' + LISTITEM); + var dropParentUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropLi, '.' + PARENTITEM); + var templateTarget; + if (e && e.target) { + templateTarget = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi); + } + if (e && (pos < 7) && !isCheck) { + dropParentUl.insertBefore(dragLi, dropLi); + this.moveData(dragLi, dropLi, dropParentUl, true, dragObj); + } + else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10)) && !isCheck && !this.hasTemplate) { + dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling); + this.moveData(dragLi, dropLi, dropParentUl, false, dragObj); + } + else if (this.hasTemplate && templateTarget && pos > templateTarget.offsetHeight - 10 && !isCheck) { + dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling); + this.moveData(dragLi, dropLi, dropParentUl, false, dragObj); + } + else { + var dropUl = this.expandParent(dropLi); + var childLi = dropUl.childNodes[index]; + dropUl.insertBefore(dragLi, childLi); + this.moveData(dragLi, childLi, dropUl, true, dragObj); + } + this.updateElement(dragParentUl, dragParentLi); + this.updateAriaLevel(dragLi); + if (dragObj.element.id === this.element.id) { + this.updateList(); + } + else { + dragObj.updateInstance(); + this.updateInstance(); + } + }; + TreeView.prototype.moveData = function (dragLi, dropLi, dropUl, pre, dragObj) { + var dropParentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropUl, '.' + LISTITEM); + var id = this.getId(dragLi); + var removedData = dragObj.updateChildField(dragObj.treeData, dragObj.fields, id, null, null, true); + var refId = this.getId(dropLi); + var index = this.getDataPos(this.treeData, this.fields, refId); + var parentId = this.getId(dropParentLi); + if (this.dataType === 1) { + this.updateField(this.treeData, this.fields, parentId, 'hasChildren', true); + var pos = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index) ? this.treeData.length : (pre ? index : index + 1); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(parentId) && !this.hasPid) { + delete removedData[0][this.fields.parentID]; + } + else { + var currPid = this.isNumberTypeId ? parseFloat(parentId) : parentId; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.fields.parentID, currPid, removedData[0]); + } + this.treeData.splice(pos, 0, removedData[0]); + if (dragObj.element.id !== this.element.id) { + var childData = dragObj.removeChildNodes(id); + pos++; + for (var i = 0, len = childData.length; i < len; i++) { + this.treeData.splice(pos, 0, childData[i]); + pos++; + } + dragObj.groupedData = dragObj.getGroupedData(dragObj.treeData, dragObj.fields.parentID); + } + this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID); + } + else { + this.addChildData(this.treeData, this.fields, parentId, removedData, pre ? index : index + 1); + } + }; + TreeView.prototype.expandParent = function (dropLi) { + var dropIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && this.preventExpand !== true) { + this.expandAction(dropLi, dropIcon, null); + } + var dropUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, dropLi); + if (this.preventExpand === true && !dropUl && dropIcon) { + this.renderChildNodes(dropLi); + } + dropUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, dropLi); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropUl) && this.preventExpand === true) { + dropUl.style.display = 'none'; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropUl) && this.preventExpand === false) { + dropUl.style.display = 'block'; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropUl) && this.preventExpand === true) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropIcon)) { + _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption); + } + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + if (icon) { + icon.classList.add('e-icon-expandable'); + } + dropUl = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateUL(this.createElement, [], null, this.listBaseOption); + dropLi.appendChild(dropUl); + if (icon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], COLLAPSIBLE); + } + else { + _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption); + } + dropLi.setAttribute('aria-expanded', 'false'); + dropUl.style.display = 'none'; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropUl)) { + var args = this.expandArgs; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args) || args.name != 'nodeExpanding') { + this.trigger('nodeExpanding', this.getExpandEvent(dropLi, null)); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropIcon)) { + _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption); + } + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + if (icon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], EXPANDABLE); + } + else { + _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption); + icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([icon], EXPANDABLE); + } + dropUl = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].generateUL(this.createElement, [], null, this.listBaseOption); + dropLi.appendChild(dropUl); + this.addExpand(dropLi); + this.trigger('nodeExpanded', this.getExpandEvent(dropLi, null)); + } + return dropUl; + }; + TreeView.prototype.updateElement = function (dragParentUl, dragParentLi) { + if (dragParentLi && dragParentUl.childElementCount === 0) { + var dragIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dragParentLi); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(dragParentUl); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(dragIcon); + var parentId = this.getId(dragParentLi); + this.updateField(this.treeData, this.fields, parentId, 'hasChildren', false); + this.removeExpand(dragParentLi, true); + } + }; + TreeView.prototype.updateAriaLevel = function (dragLi) { + var level = this.parents(dragLi, '.' + PARENTITEM).length; + dragLi.setAttribute('aria-level', '' + level); + this.updateChildAriaLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, dragLi), level + 1); + }; + TreeView.prototype.updateChildAriaLevel = function (element, level) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + var cNodes = element.childNodes; + for (var i = 0, len = cNodes.length; i < len; i++) { + var liEle = cNodes[i]; + liEle.setAttribute('aria-level', '' + level); + this.updateChildAriaLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, liEle), level + 1); + } + } + }; + TreeView.prototype.renderVirtualEle = function (e) { + var pre; + if (e.event.offsetY > e.target.offsetHeight - 2) { + pre = false; + } + else if (e.event.offsetY < 2) { + pre = true; + } + var virEle = this.createElement('div', { className: SIBLING }); + var index = this.fullRowSelect ? (pre ? 1 : 2) : (pre ? 0 : 1); + e.target.insertBefore(virEle, e.target.children[index]); + }; + TreeView.prototype.removeVirtualEle = function () { + var sibEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + SIBLING); + if (sibEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(sibEle); + } + }; + TreeView.prototype.destroyDrag = function () { + if (this.dragObj && this.dropObj) { + this.dragObj.destroy(); + this.dropObj.destroy(); + } + }; + TreeView.prototype.getDragEvent = function (event, obj, dropTarget, target, dragNode, cloneEle, level, drop) { + var dropLi = dropTarget ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dropTarget, '.' + LISTITEM) : null; + var dropData = dropLi ? this.getNodeData(dropLi) : null; + var draggedNode = obj ? obj.dragLi : dragNode; + var draggedNodeData = obj ? obj.dragData : null; + var newParent = dropTarget ? this.parents(dropTarget, '.' + LISTITEM) : null; + var dragLiParent = obj.dragLi.parentElement; + var dragParent = obj.dragLi ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragLiParent, '.' + LISTITEM) : null; + var targetParent = null; + var indexValue = null; + var iconCss = [DROPNEXT, DROPIN, DROPOUT, NODROP]; + var iconClass = null; + var node = (drop === true) ? draggedNode : dropLi; + var index = node ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(node, '.e-list-parent') : null; + var i = 0; + var position = null; + dragParent = (obj.dragLi && dragParent === null) ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragLiParent, '.' + ROOT) : dragParent; + dragParent = (drop === true) ? this.dragParent : dragParent; + if (cloneEle) { + while (i < 4) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ICON, cloneEle).classList.contains(iconCss[i])) { + iconClass = iconCss[i]; + break; + } + i++; + } + } + if (index) { + var dropTar = 0; + for (i = 0; i < index.childElementCount; i++) { + dropTar = (drop !== true && index.children[i] === draggedNode && dropLi !== draggedNode) ? ++dropTar : dropTar; + if ((drop !== true && index.children[i].classList.contains('e-hover'))) { + indexValue = (event.offsetY >= 23) ? i + 1 : i; + break; + } + else if (index.children[i] === node) { + indexValue = (event.offsetY >= 23) ? i : i; + break; + } + } + indexValue = (dropTar !== 0) ? --indexValue : indexValue; + position = (iconClass == "e-drop-in") ? "Inside" : ((event.offsetY < 7) ? "Before" : "After"); + } + if (dropTarget) { + if (newParent.length === 0) { + targetParent = null; + } + else if (dropTarget.classList.contains(LISTITEM)) { + targetParent = newParent[0]; + } + else { + targetParent = newParent[1]; + } + } + if (dropLi === draggedNode) { + targetParent = dropLi; + } + if (dropTarget && target.offsetHeight <= 33 && event.offsetY < target.offsetHeight - 10 && event.offsetY > 6) { + targetParent = dropLi; + if (drop !== true) { + level = ++level; + var parent_2 = targetParent ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.e-list-parent', targetParent) : null; + indexValue = (parent_2) ? parent_2.children.length : 0; + if (!(this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) && parent_2 === null && targetParent) { + var parent_3 = targetParent.hasAttribute('data-uid') ? + this.getChildNodes(this.fields.dataSource, targetParent.getAttribute('data-uid').toString()) : null; + indexValue = (parent_3) ? parent_3.length : 0; + } + } + } + return { + cancel: false, + clonedNode: cloneEle, + event: event, + draggedNode: draggedNode, + draggedNodeData: draggedNodeData, + droppedNode: dropLi, + droppedNodeData: dropData, + dropIndex: indexValue, + dropLevel: level, + draggedParentNode: dragParent, + dropTarget: targetParent, + dropIndicator: iconClass, + target: target, + position: position, + }; + }; + TreeView.prototype.addFullRow = function (toAdd) { + var len = this.liList.length; + if (toAdd) { + for (var i = 0; i < len; i++) { + this.createFullRow(this.liList[i]); + } + } + else { + for (var i = 0; i < len; i++) { + var rowDiv = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + FULLROW, this.liList[i]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(rowDiv); + } + } + }; + TreeView.prototype.createFullRow = function (item) { + var rowDiv = this.createElement('div', { className: FULLROW }); + item.insertBefore(rowDiv, item.childNodes[0]); + }; + TreeView.prototype.addMultiSelect = function (toAdd) { + if (toAdd) { + var liEles = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM + ':not([aria-selected="true"])', this.element); + for (var _i = 0, liEles_1 = liEles; _i < liEles_1.length; _i++) { + var ele = liEles_1[_i]; + ele.setAttribute('aria-selected', 'false'); + } + } + else { + var liEles = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM + '[aria-selected="false"]', this.element); + for (var _a = 0, liEles_2 = liEles; _a < liEles_2.length; _a++) { + var ele = liEles_2[_a]; + ele.removeAttribute('aria-selected'); + } + } + }; + TreeView.prototype.collapseByLevel = function (element, level, excludeHiddenNodes) { + if (level > 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + var cNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes); + for (var i = 0, len = cNodes.length; i < len; i++) { + var liEle = cNodes[i]; + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + COLLAPSIBLE, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, liEle)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon)) { + this.collapseNode(liEle, icon, null); + } + this.collapseByLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes); + } + } + }; + TreeView.prototype.collapseAllNodes = function (excludeHiddenNodes) { + var cIcons = this.getVisibleNodes(excludeHiddenNodes, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + COLLAPSIBLE, this.element)); + for (var i = 0, len = cIcons.length; i < len; i++) { + var icon = cIcons[i]; + var liEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(icon, '.' + LISTITEM); + this.collapseNode(liEle, icon, null); + } + }; + TreeView.prototype.expandByLevel = function (element, level, excludeHiddenNodes) { + if (level > 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + var eNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes); + for (var i = 0, len = eNodes.length; i < len; i++) { + var liEle = eNodes[i]; + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + EXPANDABLE, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, liEle)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon)) { + this.expandAction(liEle, icon, null); + } + this.expandByLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes); + } + } + }; + TreeView.prototype.expandAllNodes = function (excludeHiddenNodes) { + var eIcons = this.getVisibleNodes(excludeHiddenNodes, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + EXPANDABLE, this.element)); + for (var i = 0, len = eIcons.length; i < len; i++) { + var icon = eIcons[i]; + var liEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(icon, '.' + LISTITEM); + this.expandAction(liEle, icon, null, true); + } + }; + TreeView.prototype.getVisibleNodes = function (excludeHiddenNodes, nodes) { + var vNodes = Array.prototype.slice.call(nodes); + if (excludeHiddenNodes) { + for (var i = 0; i < vNodes.length; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isVisible"])(vNodes[i])) { + vNodes.splice(i, 1); + i--; + } + } + } + return vNodes; + }; + TreeView.prototype.removeNode = function (node) { + var dragParentUl = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(node, '.' + PARENTITEM); + var dragParentLi = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(dragParentUl, '.' + LISTITEM); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.nodeTemplateFn)) { + this.destroyTemplate(node); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(node); + this.updateElement(dragParentUl, dragParentLi); + this.removeData(node); + }; + TreeView.prototype.updateInstance = function () { + this.updateList(); + this.updateSelectedNodes(); + this.updateExpandedNodes(); + }; + TreeView.prototype.updateList = function () { + this.liList = Array.prototype.slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + LISTITEM, this.element)); + }; + TreeView.prototype.updateSelectedNodes = function () { + this.setProperties({ selectedNodes: [] }, true); + var sNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + ACTIVE, this.element); + this.selectGivenNodes(sNodes); + }; + TreeView.prototype.updateExpandedNodes = function () { + this.setProperties({ expandedNodes: [] }, true); + var eNodes = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('[aria-expanded="true"]', this.element); + for (var i = 0, len = eNodes.length; i < len; i++) { + this.addExpand(eNodes[i]); + } + }; + TreeView.prototype.removeData = function (node) { + if (this.dataType === 1) { + var dm = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData); + var id = this.getId(node); + var data = {}; + var newId = this.isNumberTypeId ? parseFloat(id) : id; + data[this.fields.id] = newId; + dm.remove(this.fields.id, data); + this.removeChildNodes(id); + } + else { + var id = this.getId(node); + this.updateChildField(this.treeData, this.fields, id, null, null, true); + } + }; + TreeView.prototype.removeChildNodes = function (parentId) { + var cNodes = this.getChildGroup(this.groupedData, parentId, false); + var childData = []; + if (cNodes) { + for (var i = 0, len = cNodes.length; i < len; i++) { + var dm = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData); + var id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, cNodes[i]).toString(); + var data = {}; + var currId = this.isNumberTypeId ? parseFloat(id) : id; + data[this.fields.id] = currId; + var nodeData = dm.remove(this.fields.id, data); + childData.push(nodeData[0]); + this.removeChildNodes(id); + } + } + return childData; + }; + TreeView.prototype.doGivenAction = function (nodes, selector, toExpand) { + for (var i = 0, len = nodes.length; i < len; i++) { + var liEle = this.getElement(nodes[i]); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + continue; + } + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + selector, Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, liEle)); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(icon)) { + toExpand ? this.expandAction(liEle, icon, null) : this.collapseNode(liEle, icon, null); + } + } + }; + TreeView.prototype.addGivenNodes = function (nodes, dropLi, index, isRemote, dropEle) { + if (nodes.length === 0) { + return; + } + var sNodes = this.getSortedData(nodes); + var level = dropLi ? parseFloat(dropLi.getAttribute('aria-level')) + 1 : 1; + if (isRemote) { + this.updateMapper(level); + } + var li = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createListItemFromJson(this.createElement, sNodes, this.listBaseOption, level); + var id = this.getId(dropLi); + var refNode; + var dropIcon1; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropLi)) { + dropIcon1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + } + if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) { + this.preventExpand = true; + } + if (this.dataType !== 1) { + this.addChildData(this.treeData, this.fields, id, nodes, index); + this.isFirstRender = false; + } + var dropUl; + if (!dropEle) { + dropUl = dropLi ? this.expandParent(dropLi) : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, this.element); + } + else { + dropUl = dropEle; + } + refNode = dropUl.childNodes[index]; + if (!this.isFirstRender || this.dataType === 1) { + var args = this.expandArgs; + if (refNode || this.sortOrder === 'None') { + for (var i = 0; i < li.length; i++) { + dropUl.insertBefore(li[i], refNode); + } + if (this.dataType === 1 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropLi) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) { + this.preventExpand = false; + var dropIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args) || args.name != 'nodeExpanding')) { + this.expandAction(dropLi, dropIcon, null); + } + } + } + if (!refNode && ((this.sortOrder === 'Ascending') || (this.sortOrder === 'Descending'))) { + if (dropUl.childNodes.length === 0) { + for (var i = 0; i < li.length; i++) { + dropUl.insertBefore(li[i], refNode); + } + if (this.dataType === 1 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropLi) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) { + this.preventExpand = false; + var dropIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, dropLi); + if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args) || args.name != 'nodeExpanding')) { + this.expandAction(dropLi, dropIcon, null); + } + } + } + else { + var cNodes = dropUl.childNodes; + for (var i = 0; i < li.length; i++) { + for (var j = 0; j < cNodes.length; j++) { + var returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase(); + if (returnValue) { + dropUl.insertBefore(li[i], cNodes[j]); + break; + } + dropUl.insertBefore(li[i], cNodes[cNodes.length]); + } + } + } + } + } + if (this.dataType === 1) { + this.updateField(this.treeData, this.fields, id, 'hasChildren', true); + var refId = this.getId(refNode); + var pos = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(refId) ? this.treeData.length : this.getDataPos(this.treeData, this.fields, refId); + for (var j = 0; j < nodes.length; j++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + var currId = this.isNumberTypeId ? parseFloat(id) : id; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.fields.parentID, currId, nodes[j]); + } + this.treeData.splice(pos, 0, nodes[j]); + pos++; + } + } + this.finalizeNode(dropUl); + }; + TreeView.prototype.updateMapper = function (level) { + var mapper = (level === 1) ? this.fields : this.getChildFields(this.fields, level - 1, 1); + this.updateListProp(mapper); + }; + TreeView.prototype.updateListProp = function (mapper) { + var prop = this.getActualProperties(mapper); + this.listBaseOption.fields = prop; + this.listBaseOption.fields.url = prop.hasOwnProperty('navigateUrl') ? prop.navigateUrl : 'navigateUrl'; + }; + TreeView.prototype.getDataPos = function (obj, mapper, id) { + var pos = null; + for (var i = 0, objlen = obj.length; i < objlen; i++) { + var nodeId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.id, obj[i]); + if (obj[i] && nodeId && nodeId.toString() === id) { + return i; + } + else if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]))) { + var data = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]); + pos = this.getDataPos(data, this.getChildMapper(mapper), id); + if (pos !== null) { + break; + } + } + else if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]))) { + var items = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]); + pos = this.getDataPos(items, this.getChildMapper(mapper), id); + if (pos !== null) { + break; + } + } + } + return pos; + }; + TreeView.prototype.addChildData = function (obj, mapper, id, data, index) { + var updated; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + index = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index) ? obj.length : index; + for (var k = 0, len = data.length; k < len; k++) { + obj.splice(index, 0, data[k]); + index++; + } + return updated; + } + for (var i = 0, objlen = obj.length; i < objlen; i++) { + var nodeId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.id, obj[i]); + if (obj[i] && nodeId && nodeId.toString() === id) { + if ((typeof mapper.child === 'string' && (obj[i].hasOwnProperty(mapper.child) && obj[i][mapper.child] !== null)) || + ((this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) && obj[i].hasOwnProperty('child'))) { + var key = (typeof mapper.child === 'string') ? mapper.child : 'child'; + var childData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(key, obj[i]); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childData)) { + childData = []; + } + index = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index) ? childData.length : index; + for (var k = 0, len = data.length; k < len; k++) { + childData.splice(index, 0, data[k]); + index++; + } + } + else { + var key = (typeof mapper.child === 'string') ? mapper.child : 'child'; + obj[i][key] = data; + } + return true; + } + else if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]))) { + var childObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]); + updated = this.addChildData(childObj, this.getChildMapper(mapper), id, data, index); + if (updated !== undefined) { + break; + } + } + else if ((this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]))) { + var childData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]); + updated = this.addChildData(childData, this.getChildMapper(mapper), id, data, index); + if (updated !== undefined) { + break; + } + } + } + return updated; + }; + TreeView.prototype.doDisableAction = function (nodes) { + var validNodes = this.nodeType(nodes); + var validID = this.checkValidId(validNodes); + this.validArr = []; + for (var i = 0, len = validID.length; i < len; i++) { + var id = validID[i][this.fields.id].toString(); + if (id && this.disableNode.indexOf(id) === -1) { + this.disableNode.push(id); + } + var liEle = this.getElement(id); + if (liEle) { + liEle.setAttribute('aria-disabled', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], DISABLE); + } + } + }; + TreeView.prototype.doEnableAction = function (nodes) { + var strNodes = this.nodeType(nodes); + for (var i = 0, len = strNodes.length; i < len; i++) { + var liEle = this.getElement(strNodes[i]); + var id = strNodes[i]; + if (id && this.disableNode.indexOf(id) !== -1) { + this.disableNode.splice(this.disableNode.indexOf(id), 1); + } + if (liEle) { + liEle.removeAttribute('aria-disabled'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([liEle], DISABLE); + } + } + }; + TreeView.prototype.nodeType = function (nodes) { + var validID = []; + for (var i = 0, len = nodes.length; i < len; i++) { + var id = void 0; + if (typeof nodes[i] == "string") { + id = (nodes[i]) ? nodes[i].toString() : null; + } + else if (typeof nodes[i] === "object") { + id = nodes[i] ? nodes[i].getAttribute("data-uid").toString() : null; + } + if (validID.indexOf(id) == -1) { + validID.push(id); + } + } + return validID; + }; + TreeView.prototype.checkValidId = function (node) { + var _this = this; + if (this.dataType === 1) { + this.validArr = this.treeData.filter(function (data) { + return node.indexOf(data[_this.fields.id] ? data[_this.fields.id].toString() : null) !== -1; + }); + } + else if (this.dataType === 2) { + for (var k = 0; k < this.treeData.length; k++) { + var id = this.treeData[k][this.fields.id] ? this.treeData[k][this.fields.id].toString() : null; + if (node.indexOf(id) !== -1) { + this.validArr.push(this.treeData[k]); + } + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), this.treeData[k]); + if (childItems) { + this.filterNestedChild(childItems, node); + } + } + } + return this.validArr; + }; + TreeView.prototype.filterNestedChild = function (treeData, nodes) { + for (var k = 0; k < treeData.length; k++) { + var id = treeData[k][this.fields.id] ? treeData[k][this.fields.id].toString() : null; + if (nodes.indexOf(id) !== -1) { + this.validArr.push(treeData[k]); + } + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), treeData[k]); + if (childItems) { + this.filterNestedChild(childItems, nodes); + } + } + }; + TreeView.prototype.setTouchClass = function () { + var ele = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(this.element, '.' + BIGGER); + this.touchClass = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele) ? '' : SMALL; + }; + TreeView.prototype.updatePersistProp = function () { + this.removeField(this.treeData, this.fields, ['selected', 'expanded']); + var sleNodes = this.selectedNodes; + for (var l = 0, slelen = sleNodes.length; l < slelen; l++) { + this.updateField(this.treeData, this.fields, sleNodes[l], 'selected', true); + } + var enodes = this.expandedNodes; + for (var k = 0, nodelen = enodes.length; k < nodelen; k++) { + this.updateField(this.treeData, this.fields, enodes[k], 'expanded', true); + } + if (this.showCheckBox) { + this.removeField(this.treeData, this.fields, ['isChecked']); + var cnodes = this.checkedNodes; + for (var m = 0, nodelen = cnodes.length; m < nodelen; m++) { + this.updateField(this.treeData, this.fields, cnodes[m], 'isChecked', true); + } + } + }; + TreeView.prototype.removeField = function (obj, mapper, names) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper)) { + return; + } + for (var i = 0, objlen = obj.length; i < objlen; i++) { + for (var j = 0; j < names.length; j++) { + var field = this.getMapperProp(mapper, names[j]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj[i][field])) { + delete obj[i][field]; + } + } + if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]))) { + this.removeField(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]), this.getChildMapper(mapper), names); + } + else if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]))) { + this.removeField(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]), this.getChildMapper(mapper), names); + } + } + }; + TreeView.prototype.getMapperProp = function (mapper, fieldName) { + switch (fieldName) { + case 'selected': + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.selected) ? mapper.selected : 'selected'; + case 'expanded': + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.expanded) ? mapper.expanded : 'expanded'; + case 'isChecked': + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.isChecked) ? mapper.isChecked : 'isChecked'; + case 'hasChildren': + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(mapper.hasChildren) ? mapper.hasChildren : 'hasChildren'; + default: + return fieldName; + } + }; + TreeView.prototype.updateField = function (obj, mapper, id, key, value) { + var childNodes; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + return; + } + else if (this.dataType === 1) { + var newId = this.isNumberTypeId ? parseFloat(id) : id; + var resultData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.id, 'equal', newId, false)); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.getMapperProp(mapper, key), value, resultData[0]); + } + else { + this.updateChildField(obj, mapper, id, key, value); + } + }; + TreeView.prototype.updateChildField = function (obj, mapper, id, key, value, remove) { + var removedData; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(obj)) { + return removedData; + } + for (var i = 0, objlen = obj.length; i < objlen; i++) { + var nodeId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.id, obj[i]); + if (obj[i] && nodeId && nodeId.toString() === id) { + if (remove) { + removedData = obj.splice(i, 1); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])(this.getMapperProp(mapper, key), value, obj[i]); + removedData = []; + } + return removedData; + } + else if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]))) { + var childData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, obj[i]); + removedData = this.updateChildField(childData, this.getChildMapper(mapper), id, key, value, remove); + if (removedData !== undefined) { + break; + } + } + else if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]))) { + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', obj[i]); + removedData = this.updateChildField(childItems, this.getChildMapper(mapper), id, key, value, remove); + if (removedData !== undefined) { + break; + } + } + } + return removedData; + }; + TreeView.prototype.triggerEvent = function (action, node) { + this.renderReactTemplates(); + if (action === 'addNodes') { + var nodeData = []; + for (var i = 0; i < node.length; i++) { + nodeData.push(this.getNode(this.getElement(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(node[i][this.fields.id]) ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.id, node[i]).toString() : null))); + } + node = nodeData; + } + var eventArgs = { data: this.treeData, action: action, nodeData: node }; + this.trigger('dataSourceChanged', eventArgs); + }; + TreeView.prototype.wireInputEvents = function (inpEle) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(inpEle, 'blur', this.inputFocusOut, this); + }; + TreeView.prototype.wireEditingEvents = function (toBind) { + var _this = this; + if (toBind && !this.disabled) { + var proxy_2 = this; + this.touchEditObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { + tap: function (e) { + if (_this.isDoubleTapped(e) && e.tapCount === 2) { + e.originalEvent.preventDefault(); + proxy_2.editingHandler(e.originalEvent); + } + } + }); + } + else { + if (this.touchEditObj) { + this.touchEditObj.destroy(); + } + } + }; + TreeView.prototype.wireClickEvent = function (toBind) { + if (toBind) { + var proxy_3 = this; + this.touchClickObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { + tap: function (e) { + proxy_3.clickHandler(e); + } + }); + } + else { + if (this.touchClickObj) { + this.touchClickObj.destroy(); + } + } + }; + TreeView.prototype.wireExpandOnEvent = function (toBind) { + var _this = this; + if (toBind) { + var proxy_4 = this; + this.touchExpandObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { + tap: function (e) { + if ((_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && _this.isDoubleTapped(e) && e.tapCount === 2)) + && e.originalEvent.which !== 3) { + proxy_4.expandHandler(e); + } + } + }); + } + else { + if (this.touchExpandObj) { + this.touchExpandObj.destroy(); + } + } + }; + TreeView.prototype.mouseDownHandler = function (e) { + this.mouseDownStatus = true; + if (e.shiftKey || e.ctrlKey) { + e.preventDefault(); + } + if (e.ctrlKey && this.allowMultiSelection) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'contextmenu', this.preventContextMenu, this); + } + }; + ; + TreeView.prototype.preventContextMenu = function (e) { + e.preventDefault(); + }; + TreeView.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mousedown', this.mouseDownHandler, this); + this.wireClickEvent(true); + if (this.expandOnType !== 'None') { + this.wireExpandOnEvent(true); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseover', this.onMouseOver, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseout', this.onMouseLeave, this); + this.keyboardModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.keyActionHandler.bind(this), + keyConfigs: this.keyConfigs, + eventName: 'keydown', + }); + }; + TreeView.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mousedown', this.mouseDownHandler); + this.wireClickEvent(false); + this.wireExpandOnEvent(false); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseover', this.onMouseOver); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseout', this.onMouseLeave); + if (!this.disabled) { + this.keyboardModule.destroy(); + } + }; + TreeView.prototype.parents = function (element, selector) { + var matched = []; + var el = element.parentNode; + while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(el)) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["matches"])(el, selector)) { + matched.push(el); + } + el = el.parentNode; + } + return matched; + }; + TreeView.prototype.isDoubleTapped = function (e) { + var target = e.originalEvent.target; + var secondTap; + if (target && e.tapCount) { + if (e.tapCount === 1) { + this.firstTap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + } + else if (e.tapCount === 2) { + secondTap = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(target, '.' + LISTITEM); + } + } + return (this.firstTap === secondTap); + }; + TreeView.prototype.isDescendant = function (parent, child) { + var node = child.parentNode; + while (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(node)) { + if (node === parent) { + return true; + } + node = node.parentNode; + } + return false; + }; + TreeView.prototype.showSpinner = function (element) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([element], LOAD); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_5__["createSpinner"])({ + target: element, + width: _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice ? 16 : 14 + }, this.createElement); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_5__["showSpinner"])(element); + }; + TreeView.prototype.hideSpinner = function (element) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_5__["hideSpinner"])(element); + element.innerHTML = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([element], LOAD); + }; + TreeView.prototype.setCheckedNodes = function (nodes) { + nodes = JSON.parse(JSON.stringify(nodes)); + this.uncheckAll(this.checkedNodes); + this.setIndeterminate(nodes); + if (nodes.length > 0) { + this.checkAll(nodes); + } + }; + /** + * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel + */ + TreeView.prototype.setValidCheckedNode = function (node) { + if (this.dataType === 1) { + var mapper = this.fields; + var resultData = new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"](this.treeData).executeLocal(new _ej2_data__WEBPACK_IMPORTED_MODULE_1__["Query"]().where(mapper.id, 'equal', node, true)); + if (resultData[0]) { + this.setChildCheckState(resultData, node, resultData[0]); + if (this.autoCheck) { + var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null; + var childNodes = this.getChildNodes(this.treeData, parent_4); + var count = 0; + for (var len = 0; len < childNodes.length; len++) { + var childId = childNodes[len][this.fields.id].toString(); + if (this.checkedNodes.indexOf(childId) !== -1) { + count++; + } + } + if (count === childNodes.length && this.checkedNodes.indexOf(parent_4) === -1 && parent_4) { + this.checkedNodes.push(parent_4); + } + } + } + } + else if (this.dataType === 2) { + for (var a = 0; a < this.treeData.length; a++) { + var index = this.treeData[a][this.fields.id] ? this.treeData[a][this.fields.id].toString() : ''; + if (index === node && this.checkedNodes.indexOf(node) === -1) { + this.checkedNodes.push(node); + break; + } + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), this.treeData[a]); + if (childItems) { + this.setChildCheckState(childItems, node, this.treeData[a]); + } + } + } + }; + /** + * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS) + */ + TreeView.prototype.setChildCheckState = function (childItems, node, treeData) { + var checkedParent; + var count = 0; + if (this.dataType === 1) { + if (treeData) { + checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : null; + } + for (var index = 0; index < childItems.length; index++) { + var checkNode = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : null; + if (treeData && checkedParent && this.autoCheck) { + if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkNode) === -1) { + this.checkedNodes.push(checkNode); + } + } + if (checkNode === node && this.checkedNodes.indexOf(node) === -1) { + this.checkedNodes.push(node); + } + var subChildItems = this.getChildNodes(this.treeData, checkNode); + if (subChildItems) { + this.setChildCheckState(subChildItems, node, treeData); + } + } + } + else { + if (treeData) { + checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : ''; + } + for (var index = 0; index < childItems.length; index++) { + var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : ''; + if (treeData && checkedParent && this.autoCheck) { + if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) { + this.checkedNodes.push(checkedChild); + } + } + if (checkedChild === node && this.checkedNodes.indexOf(node) === -1) { + this.checkedNodes.push(node); + } + var subChildItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), childItems[index]); + if (subChildItems) { + this.setChildCheckState(subChildItems, node, childItems[index]); + } + if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) { + count++; + } + if (count === childItems.length && this.checkedNodes.indexOf(checkedParent) === -1 && this.autoCheck) { + this.checkedNodes.push(checkedParent); + } + } + } + }; + TreeView.prototype.setIndeterminate = function (nodes) { + for (var i = 0; i < nodes.length; i++) { + this.setValidCheckedNode(nodes[i]); + } + }; + TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) { + if (this.dataType === 1) { + var pos = this.getDataPos(this.treeData, this.fields, id); + this.treeData.splice(pos, 1, newData); + if (isRefreshChild) { + this.removeChildNodes(id); + for (var j = 0; j < childValue.length; j++) { + this.treeData.splice(pos, 0, childValue[j]); + pos++; + } + } + this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID); + } + else { + this.updateChildPosition(this.treeData, this.fields, id, [newData], undefined); + } + }; + TreeView.prototype.updateChildPosition = function (treeData, mapper, currID, newData, index) { + var found; + for (var i = 0, objlen = treeData.length; i < objlen; i++) { + var nodeId = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.id, treeData[i]); + if (treeData[i] && nodeId && nodeId.toString() === currID) { + treeData[i] = newData[0]; + return true; + } + else if (typeof mapper.child === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, treeData[i]))) { + var childObj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(mapper.child, treeData[i]); + found = this.updateChildPosition(childObj, this.getChildMapper(mapper), currID, newData, index); + if (found !== undefined) { + break; + } + } + else if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', treeData[i]))) { + var childData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('child', treeData[i]); + found = this.updateChildPosition(childData, this.getChildMapper(mapper), currID, newData, index); + if (found !== undefined) { + break; + } + } + } + return found; + }; + TreeView.prototype.dynamicState = function () { + this.setDragAndDrop(this.allowDragAndDrop); + this.wireEditingEvents(this.allowEditing); + if (!this.disabled) { + this.wireEvents(); + this.setRipple(); + } + else { + this.unWireEvents(); + this.rippleFn(); + this.rippleIconFn(); + } + }; + TreeView.prototype.crudOperation = function (operation, nodes, target, newText, newNode, index, prevent) { + var _this = this; + var data = this.fields.dataSource; + var matchedArr = []; + var query = this.getQuery(this.fields); + var key = this.fields.id; + var crud; + var changes = { + addedRecords: [], + deletedRecords: [], + changedRecords: [] + }; + var nodesID = []; + if (nodes) { + nodesID = this.nodeType(nodes); + } + else if (target) { + if (typeof target == "string") { + nodesID[0] = target.toString(); + } + else if (typeof target === "object") { + nodesID[0] = target.getAttribute("data-uid").toString(); + } + } + for (var i = 0, len = nodesID.length; i < len; i++) { + var liEle = this.getElement(nodesID[i]); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + continue; + } + var removedData = this.getNodeObject(nodesID[i]); + matchedArr.push(removedData); + } + switch (operation) { + case 'delete': + if (nodes.length == 1) { + crud = data.remove(key, matchedArr[0], query.fromTable, query); + } + else { + changes.deletedRecords = matchedArr; + crud = data.saveChanges(changes, key, query.fromTable, query); + } + crud.then(function (e) { return _this.deleteSuccess(nodesID); }) + .catch(function (e) { return _this.dmFailure(e); }); + break; + case 'update': + matchedArr[0][this.fields.text] = newText; + crud = data.update(key, matchedArr[0], query.fromTable, query); + crud.then(function (e) { return _this.editSucess(target, newText, prevent); }) + .catch(function (e) { return _this.dmFailure(e, target, prevent); }); + break; + case 'insert': + if (newNode.length == 1) { + crud = data.insert(newNode[0], query.fromTable, query); + } + else { + var arr = []; + for (var i = 0, len = newNode.length; i < len; i++) { + arr.push(newNode[i]); + } + changes.addedRecords = arr; + crud = data.saveChanges(changes, key, query.fromTable, query); + } + crud.then(function (e) { + var dropLi = _this.getElement(target); + _this.addSuccess(newNode, dropLi, index); + _this.preventExpand = false; + }).catch(function (e) { return _this.dmFailure(e); }); + break; + } + }; + TreeView.prototype.deleteSuccess = function (nodes) { + var nodeData = []; + for (var i = 0, len = nodes.length; i < len; i++) { + var liEle = this.getElement(nodes[i]); + nodeData.push(this.getNode(liEle)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + continue; + } + this.removeNode(liEle); + } + this.updateInstance(); + if (this.dataType === 1) { + this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID); + } + this.triggerEvent('removeNode', nodeData); + }; + TreeView.prototype.editSucess = function (target, newText, prevent) { + var liEle = this.getElement(target); + var txtEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTTEXT, liEle); + this.appendNewText(liEle, txtEle, newText, prevent); + }; + TreeView.prototype.addSuccess = function (nodes, dropLi, index) { + var dropUl; + var icon = dropLi ? dropLi.querySelector('.' + ICON) : null; + var proxy = this; + if (dropLi && icon && icon.classList.contains(EXPANDABLE) && + dropLi.querySelector('.' + PARENTITEM) === null) { + proxy.renderChildNodes(dropLi, null, function () { + dropUl = dropLi.querySelector('.' + PARENTITEM); + proxy.addGivenNodes(nodes, dropLi, index, true, dropUl); + proxy.triggerEvent('addNodes', nodes); + }); + } + else { + this.addGivenNodes(nodes, dropLi, index, true); + this.triggerEvent('addNodes', nodes); + } + }; + TreeView.prototype.dmFailure = function (e, target, prevent) { + if (target) { + this.updatePreviousText(target, prevent); + } + this.trigger('actionFailure', { error: e }); + }; + TreeView.prototype.updatePreviousText = function (target, prevent) { + var liEle = this.getElement(target); + var txtEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTTEXT, liEle); + this.updateText(liEle, txtEle, this.oldText, prevent); + }; + TreeView.prototype.getHierarchicalParentId = function (node, data, parentsID) { + var _this = this; + var index = data.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; }); + if (index == -1) { + for (var i = 0; i < data.length; i++) { + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), data[i]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childItems)) { + index = childItems.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; }); + if (index == -1) { + this.getHierarchicalParentId(node, childItems, parentsID); + } + else { + parentsID.push(data[i][this.fields.id].toString()); + this.getHierarchicalParentId(data[i][this.fields.id].toString(), this.treeData, parentsID); + break; + } + } + } + } + return parentsID; + }; + /** + * Called internally if any of the property value changed. + * @param {TreeView} newProp + * @param {TreeView} oldProp + * @returns void + * @private + */ + TreeView.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'allowDragAndDrop': + this.setDragAndDrop(this.allowDragAndDrop); + break; + case 'dragArea': + if (this.allowDragAndDrop) { + this.dragObj.dragArea = this.dragArea; + } + break; + case 'allowEditing': + this.wireEditingEvents(this.allowEditing); + break; + case 'allowMultiSelection': + if (this.selectedNodes.length > 1) { + var sNode = this.getElement(this.selectedNodes[0]); + this.isLoaded = false; + this.removeSelectAll(); + this.selectNode(sNode, null); + this.isLoaded = true; + } + this.setMultiSelect(this.allowMultiSelection); + this.addMultiSelect(this.allowMultiSelection); + break; + case 'allowTextWrap': + this.setTextWrap(); + this.updateWrap(); + break; + case 'checkedNodes': + if (this.showCheckBox) { + this.checkedNodes = oldProp.checkedNodes; + this.setCheckedNodes(newProp.checkedNodes); + } + break; + case 'autoCheck': + if (this.showCheckBox) { + this.autoCheck = newProp.autoCheck; + this.ensureIndeterminate(); + } + break; + case 'cssClass': + this.setCssClass(oldProp.cssClass, newProp.cssClass); + break; + case 'enableRtl': + this.setEnableRtl(); + break; + case 'expandedNodes': + this.isAnimate = false; + this.setProperties({ expandedNodes: [] }, true); + this.collapseAll(); + this.isInitalExpand = true; + this.setProperties({ expandedNodes: Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newProp.expandedNodes) ? [] : newProp.expandedNodes }, true); + this.doExpandAction(); + this.isInitalExpand = false; + this.isAnimate = true; + break; + case 'expandOn': + this.wireExpandOnEvent(false); + this.setExpandOnType(); + if (this.expandOnType !== 'None' && !this.disabled) { + this.wireExpandOnEvent(true); + } + break; + case 'disabled': + this.setDisabledMode(); + this.dynamicState(); + break; + case 'fields': + this.isAnimate = false; + this.isFieldChange = true; + this.initialRender = true; + this.reRenderNodes(); + this.initialRender = false; + this.isAnimate = true; + this.isFieldChange = false; + break; + case 'fullRowSelect': + this.setFullRow(this.fullRowSelect); + this.addFullRow(this.fullRowSelect); + if (this.allowTextWrap) { + this.setTextWrap(); + this.updateWrap(); + } + break; + case 'loadOnDemand': + if (this.loadOnDemand === false && !this.onLoaded) { + var nodes = this.element.querySelectorAll('li'); + var i = 0; + while (i < nodes.length) { + if (nodes[i].getAttribute('aria-expanded') !== 'true') { + this.renderChildNodes(nodes[i], true, null, true); + } + i++; + } + this.onLoaded = true; + } + break; + case 'nodeTemplate': + this.hasTemplate = false; + this.nodeTemplateFn = this.templateComplier(this.nodeTemplate); + this.reRenderNodes(); + break; + case 'selectedNodes': + this.removeSelectAll(); + this.setProperties({ selectedNodes: newProp.selectedNodes }, true); + this.doSelectionAction(); + break; + case 'showCheckBox': + this.reRenderNodes(); + break; + case 'sortOrder': + this.reRenderNodes(); + break; + case 'fullRowNavigable': + this.setProperties({ fullRowNavigable: newProp.fullRowNavigable }, true); + this.listBaseOption.itemNavigable = newProp.fullRowNavigable; + this.reRenderNodes(); + break; + } + } + }; + /** + * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes. + */ + TreeView.prototype.destroy = function () { + this.clearTemplate(); + this.element.removeAttribute('aria-activedescendant'); + this.unWireEvents(); + this.wireEditingEvents(false); + if (!this.disabled) { + this.rippleFn(); + this.rippleIconFn(); + } + this.setCssClass(this.cssClass, null); + this.setDragAndDrop(false); + this.setFullRow(false); + if (this.ulElement && this.ulElement.parentElement) { + this.ulElement.parentElement.removeChild(this.ulElement); + } + _super.prototype.destroy.call(this); + }; + /** + * Adds the collection of TreeView nodes based on target and index position. If target node is not specified, + * then the nodes are added as children of the given parentID or in the root level of TreeView. + * @param { { [key: string]: Object }[] } nodes - Specifies the array of JSON data that has to be added. + * @param { string | Element } target - Specifies ID of TreeView node/TreeView node as target element. + * @param { number } index - Specifies the index to place the newly added nodes in the target element. + * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding. + */ + TreeView.prototype.addNodes = function (nodes, target, index, preventTargetExpand) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + return; + } + nodes = JSON.parse(JSON.stringify(nodes)); + var dropLi = this.getElement(target); + this.preventExpand = preventTargetExpand; + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"]) { + if (!this.isOffline) { + this.crudOperation('insert', null, target, null, nodes, index, this.preventExpand); + } + else { + this.addSuccess(nodes, dropLi, index); + } + } + else if (this.dataType === 2) { + this.addGivenNodes(nodes, dropLi, index); + } + else { + if (dropLi) { + this.addGivenNodes(nodes, dropLi, index); + } + else { + nodes = this.getSortedData(nodes); + for (var i = 0; i < nodes.length; i++) { + var pid = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.parentID, nodes[i]); + dropLi = pid ? this.getElement(pid.toString()) : pid; + this.addGivenNodes([nodes[i]], dropLi, index); + } + } + this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID); + } + this.updateCheckedStateFromDS(); + if (this.showCheckBox && dropLi) { + this.ensureParentCheckState(dropLi); + } + if ((this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] === false)) { + this.preventExpand = false; + this.triggerEvent('addNodes', nodes); + } + }; + /** + * Editing can also be enabled by using the `beginEdit` property, instead of clicking on the + * TreeView node. On passing the node ID or element through this property, the edit textBox + * will be created for the particular node thus allowing us to edit it. + * @param {string | Element} node - Specifies ID of TreeView node/TreeView node. + */ + TreeView.prototype.beginEdit = function (node) { + var ele = this.getElement(node); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(ele) || this.disabled) { + return; + } + this.createTextbox(ele, null); + }; + /** + * Checks all the unchecked nodes. You can also check specific nodes by passing array of unchecked nodes + * as argument to this method. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node. + */ + TreeView.prototype.checkAll = function (nodes) { + if (this.showCheckBox) { + this.doCheckBoxAction(nodes, true); + } + }; + /** + * Collapses all the expanded TreeView nodes. You can collapse specific nodes by passing array of nodes as argument to this method. + * You can also collapse all the nodes excluding the hidden nodes by setting **excludeHiddenNodes** to true. If you want to collapse + * a specific level of nodes, set **level** as argument to collapseAll method. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/ array of TreeView node. + * @param {number} level - TreeView nodes will collapse up to the given level. + * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes of TreeView when collapsing all nodes. + */ + TreeView.prototype.collapseAll = function (nodes, level, excludeHiddenNodes) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + this.doGivenAction(nodes, COLLAPSIBLE, false); + } + else { + if (level > 0) { + this.collapseByLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, this.element), level, excludeHiddenNodes); + } + else { + this.collapseAllNodes(excludeHiddenNodes); + } + } + }; + /** + * Disables the collection of nodes by passing the ID of nodes or node elements in the array. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes. + */ + TreeView.prototype.disableNodes = function (nodes) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + this.doDisableAction(nodes); + } + }; + /** + * Enables the collection of disabled nodes by passing the ID of nodes or node elements in the array. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes. + */ + TreeView.prototype.enableNodes = function (nodes) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + this.doEnableAction(nodes); + } + }; + /** + * Ensures visibility of the TreeView node by using node ID or node element. + * When many TreeView nodes are present and we need to find a particular node, `ensureVisible` property + * helps bring the node to visibility by expanding the TreeView and scrolling to the specific node. + * @param {string | Element} node - Specifies ID of TreeView node/TreeView nodes. + */ + TreeView.prototype.ensureVisible = function (node) { + var parentsId = []; + if (this.dataType == 1) { + var nodeData = this.getTreeData(node); + while (nodeData.length != 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodeData[0][this.fields.parentID])) { + parentsId.push(nodeData[0][this.fields.parentID].toString()); + nodeData = this.getTreeData(nodeData[0][this.fields.parentID].toString()); + } + } + else if (this.dataType == 2) { + parentsId = this.getHierarchicalParentId(node, this.treeData, parentsId).reverse(); + } + this.expandAll(parentsId); + var liEle = this.getElement(node); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + if (typeof node == 'object') { + var parents = this.parents(liEle, '.' + LISTITEM); + this.expandAll(parents); + } + setTimeout(function () { liEle.scrollIntoView({ behavior: "smooth" }); }, 450); + } + }; + /** + * Expands all the collapsed TreeView nodes. You can expand the specific nodes by passing the array of collapsed nodes + * as argument to this method. You can also expand all the collapsed nodes by excluding the hidden nodes by setting + * **excludeHiddenNodes** to true to this method. To expand a specific level of nodes, set **level** as argument to expandAll method. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes. + * @param {number} level - TreeView nodes will expand up to the given level. + * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes when expanding all nodes. + */ + TreeView.prototype.expandAll = function (nodes, level, excludeHiddenNodes) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + this.doGivenAction(nodes, EXPANDABLE, true); + } + else { + if (level > 0) { + this.expandByLevel(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, this.element), level, excludeHiddenNodes); + } + else { + this.expandAllNodes(excludeHiddenNodes); + } + } + }; + /** + * Gets all the checked nodes including child, whether it is loaded or not. + */ + TreeView.prototype.getAllCheckedNodes = function () { + var checkNodes = this.checkedNodes; + return checkNodes; + }; + /** + * Gets all the disabled nodes including child, whether it is loaded or not. + */ + TreeView.prototype.getDisabledNodes = function () { + var disabledNodes = this.disableNode; + return disabledNodes; + }; + /** + * Gets the node's data such as id, text, parentID, selected, isChecked, and expanded by passing the node element or it's ID. + * @param {string | Element} node - Specifies ID of TreeView node/TreeView node. + */ + TreeView.prototype.getNode = function (node) { + var ele = this.getElement(node); + return this.getNodeData(ele, true); + }; + /** + * To get the updated data source of TreeView after performing some operation like drag and drop, node editing, + * node selecting/unSelecting, node expanding/collapsing, node checking/unChecking, adding and removing node. + * * If you pass the ID of TreeView node as arguments for this method then it will return the updated data source + * of the corresponding node otherwise it will return the entire updated data source of TreeView. + * * The updated data source also contains custom attributes if you specified in data source. + * @param {string | Element} node - Specifies ID of TreeView node/TreeView node. + * @isGenericType true + */ + TreeView.prototype.getTreeData = function (node) { + var id = this.getId(node); + this.updatePersistProp(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(id)) { + return this.treeData; + } + else { + var data = this.getNodeObject(id); + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(data) ? [] : [data]; + } + }; + /** + * Moves the collection of nodes within the same TreeView based on target or its index position. + * @param {string[] | Element[]} sourceNodes - Specifies the array of TreeView nodes ID/array of TreeView node. + * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element. + * @param {number} index - Specifies the index to place the moved nodes in the target element. + * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding. + */ + TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) { + var dropLi = this.getElement(target); + var nodeData = []; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dropLi)) { + return; + } + for (var i = 0; i < sourceNodes.length; i++) { + var dragLi = this.getElement(sourceNodes[i]); + nodeData.push(this.getNode(dragLi)); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) { + continue; + } + this.preventExpand = preventTargetExpand; + this.dropAsChildNode(dragLi, dropLi, this, index); + } + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] === false) { + this.preventExpand = false; + } + this.triggerEvent('moveNodes', nodeData); + }; + /** + * Refreshes a particular node of the TreeView. + * @param {string | Element} target - Specifies the ID of TreeView node or TreeView node as target element. + * @param {{ [key: string]: Object }[]} newData - Specifies the new data of TreeView node. + */ + TreeView.prototype.refreshNode = function (target, newData) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newData)) { + return; + } + var id; + var isRefreshChild = false; + if (this.dataType == 1 && newData.length > 1) { + isRefreshChild = true; + } + else if (this.dataType == 2 && newData.length === 1) { + var updatedChildValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), newData[0]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(updatedChildValue)) { + isRefreshChild = true; + } + } + var liEle = this.getElement(target); + id = liEle ? liEle.getAttribute('data-uid') : ((target) ? target.toString() : null); + this.refreshData = this.getNodeObject(id); + newData = JSON.parse(JSON.stringify(newData)); + /* eslint-disable */ + var newNodeData; + var parentData; + if (this.dataType == 1 && isRefreshChild) { + for (var k = 0; k < newData.length; k++) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newData[k][this.fields.parentID])) { + parentData = newData[k]; + newData.splice(k, 1); + break; + } + } + newNodeData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, this.refreshData, parentData); + } + else { + newNodeData = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, this.refreshData, newData[0]); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + this.updatePosition(id, newNodeData, isRefreshChild, newData); + return; + } + this.isRefreshed = true; + var level = parseFloat(liEle.getAttribute('aria-level')); + var newliEle = _ej2_lists__WEBPACK_IMPORTED_MODULE_2__["ListBase"].createListItemFromJson(this.createElement, [newNodeData], this.listBaseOption, level); + var ul = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + PARENTITEM, liEle); + var childItems = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])(this.fields.child.toString(), newNodeData); + if ((isRefreshChild && ul) || (isRefreshChild && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(childItems))) { + var parentEle = liEle.parentElement; + var index = Array.prototype.indexOf.call(parentEle.childNodes, liEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(liEle); + parentEle.insertBefore(newliEle[0], parentEle.childNodes[index]); + this.updatePosition(id, newNodeData, isRefreshChild, newData); + if (isRefreshChild && ul) { + this.expandAll([id]); + } + } + else { + var txtEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, liEle); + var newTextEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + TEXTWRAP, newliEle[0]); + var icon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, txtEle); + var newIcon = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('div.' + ICON, newTextEle); + if (icon && newIcon) { + if (newIcon.classList.contains(EXPANDABLE) && icon.classList.contains(COLLAPSIBLE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([newIcon], EXPANDABLE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([newIcon], COLLAPSIBLE); + } + else if (newIcon.classList.contains(COLLAPSIBLE) && icon.classList.contains(EXPANDABLE)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([newIcon], COLLAPSIBLE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([newIcon], EXPANDABLE); + } + else if (icon.classList.contains('interaction')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([newIcon], 'interaction'); + } + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(txtEle); + var fullEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + FULLROW, liEle); + fullEle.parentNode.insertBefore(newTextEle, fullEle.nextSibling); + this.updatePosition(id, newNodeData, isRefreshChild, newData); + } + liEle = this.getElement(target); + if (newNodeData[this.fields.tooltip]) { + liEle.setAttribute("title", newNodeData[this.fields.tooltip]); + } + if (newNodeData.hasOwnProperty(this.fields.htmlAttributes) && newNodeData[this.fields.htmlAttributes]) { + var attr = {}; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["merge"])(attr, newNodeData[this.fields.htmlAttributes]); + if (attr.class) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], attr.class.split(' ')); + delete attr.class; + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(liEle, attr); + } + } + if (this.selectedNodes.indexOf(id) !== -1) { + liEle.setAttribute('aria-selected', 'true'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([liEle], ACTIVE); + } + this.isRefreshed = false; + this.triggerEvent('refreshNode', [this.getNode(liEle)]); + }; + /** + * Removes the collection of TreeView nodes by passing the array of node details as argument to this method. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node. + */ + TreeView.prototype.removeNodes = function (nodes) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(nodes)) { + if (this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !this.isOffline) { + this.crudOperation('delete', nodes); + } + else { + this.deleteSuccess(nodes); + } + } + }; + /** + * Replaces the text of the TreeView node with the given text. + * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element. + * @param {string} newText - Specifies the new text of TreeView node. + */ + TreeView.prototype.updateNode = function (target, newText) { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(newText) || !this.allowEditing) { + return; + } + var liEle = this.getElement(target); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(liEle)) { + return; + } + var txtEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + LISTTEXT, liEle); + this.updateOldText(liEle); + var eventArgs = this.getEditEvent(liEle, null, null); + this.trigger('nodeEditing', eventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + if (_this.fields.dataSource instanceof _ej2_data__WEBPACK_IMPORTED_MODULE_1__["DataManager"] && !_this.isOffline) { + _this.crudOperation('update', null, target, newText, null, null, false); + } + else { + _this.appendNewText(liEle, txtEle, newText, false); + } + } + }); + }; + /** + * Unchecks all the checked nodes. You can also uncheck the specific nodes by passing array of checked nodes + * as argument to this method. + * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node. + */ + TreeView.prototype.uncheckAll = function (nodes) { + if (this.showCheckBox) { + this.doCheckBoxAction(nodes, false); + } + }; + var TreeView_1; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "allowDragAndDrop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "allowEditing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "allowMultiSelection", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "allowTextWrap", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, NodeAnimationSettings) + ], TreeView.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TreeView.prototype, "checkedNodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], TreeView.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], TreeView.prototype, "dragArea", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TreeView.prototype, "expandedNodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], TreeView.prototype, "expandOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, FieldsSettings) + ], TreeView.prototype, "fields", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], TreeView.prototype, "fullRowSelect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], TreeView.prototype, "loadOnDemand", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TreeView.prototype, "locale", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TreeView.prototype, "nodeTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], TreeView.prototype, "selectedNodes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('None') + ], TreeView.prototype, "sortOrder", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "showCheckBox", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], TreeView.prototype, "autoCheck", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], TreeView.prototype, "fullRowNavigable", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "actionFailure", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "dataBound", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "dataSourceChanged", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "drawNode", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "destroyed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "keyPress", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeChecked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeChecking", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeClicked", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeCollapsed", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeCollapsing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeDragging", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeDragStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeDragStop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeDropped", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeEdited", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeEditing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeExpanded", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeExpanding", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeSelected", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], TreeView.prototype, "nodeSelecting", void 0); + TreeView = TreeView_1 = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], TreeView); + return TreeView; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/common/collision.js": +/*!**********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/common/collision.js ***! + \**********************************************************************/ +/*! exports provided: fit, isCollide, flip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fit", function() { return fit; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCollide", function() { return isCollide; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flip", function() { return flip; }); +/* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./position */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/** + * Collision module. + */ + + +var parentDocument; +var targetContainer; +/** + * + * @param {HTMLElement} element - specifies the element + * @param {HTMLElement} viewPortElement - specifies the element + * @param {CollisionCoordinates} axis - specifies the collision coordinates + * @param {OffsetPosition} position - specifies the position + * @returns {void} + */ +function fit(element, viewPortElement, axis, position) { + if (viewPortElement === void 0) { viewPortElement = null; } + if (axis === void 0) { axis = { X: false, Y: false }; } + if (!axis.Y && !axis.X) { + return { left: 0, top: 0 }; + } + var elemData = element.getBoundingClientRect(); + targetContainer = viewPortElement; + parentDocument = element.ownerDocument; + if (!position) { + position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element, 'left', 'top'); + } + if (axis.X) { + var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth(); + var containerLeft = ContainerLeft(); + var containerRight = ContainerRight(); + var overLeft = containerLeft - position.left; + var overRight = position.left + elemData.width - containerRight; + if (elemData.width > containerWidth) { + if (overLeft > 0 && overRight <= 0) { + position.left = containerRight - elemData.width; + } + else if (overRight > 0 && overLeft <= 0) { + position.left = containerLeft; + } + else { + position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft; + } + } + else if (overLeft > 0) { + position.left += overLeft; + } + else if (overRight > 0) { + position.left -= overRight; + } + } + if (axis.Y) { + var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight(); + var containerTop = ContainerTop(); + var containerBottom = ContainerBottom(); + var overTop = containerTop - position.top; + var overBottom = position.top + elemData.height - containerBottom; + if (elemData.height > containerHeight) { + if (overTop > 0 && overBottom <= 0) { + position.top = containerBottom - elemData.height; + } + else if (overBottom > 0 && overTop <= 0) { + position.top = containerTop; + } + else { + position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop; + } + } + else if (overTop > 0) { + position.top += overTop; + } + else if (overBottom > 0) { + position.top -= overBottom; + } + } + return position; +} +/** + * + * @param {HTMLElement} element - specifies the html element + * @param {HTMLElement} viewPortElement - specifies the html element + * @param {number} x - specifies the number + * @param {number} y - specifies the number + * @returns {string[]} - returns the string value + */ +function isCollide(element, viewPortElement, x, y) { + if (viewPortElement === void 0) { viewPortElement = null; } + var elemOffset = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element, 'left', 'top'); + if (x) { + elemOffset.left = x; + } + if (y) { + elemOffset.top = y; + } + var data = []; + targetContainer = viewPortElement; + parentDocument = element.ownerDocument; + var elementRect = element.getBoundingClientRect(); + var top = elemOffset.top; + var left = elemOffset.left; + var right = elemOffset.left + elementRect.width; + var bottom = elemOffset.top + elementRect.height; + // eslint-disable-next-line + var topData = '', leftData = ''; + var yAxis = topCollideCheck(top, bottom); + var xAxis = leftCollideCheck(left, right); + if (yAxis.topSide) { + data.push('top'); + } + if (xAxis.rightSide) { + data.push('right'); + } + if (xAxis.leftSide) { + data.push('left'); + } + if (yAxis.bottomSide) { + data.push('bottom'); + } + return data; +} +/** + * + * @param {HTMLElement} element - specifies the element + * @param {HTMLElement} target - specifies the element + * @param {number} offsetX - specifies the number + * @param {number} offsetY - specifies the number + * @param {string} positionX - specifies the string value + * @param {string} positionY - specifies the string value + * @param {HTMLElement} viewPortElement - specifies the element + * @param {CollisionCoordinates} axis - specifies the collision axis + * @param {boolean} fixedParent - specifies the boolean + * @returns {void} + */ +function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, +/* eslint-disable */ +axis, fixedParent) { + if (viewPortElement === void 0) { viewPortElement = null; } + if (axis === void 0) { axis = { X: true, Y: true }; } + if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) { + return; + } + var tEdge = { TL: null, + TR: null, + BL: null, + BR: null + }, eEdge = { + TL: null, + TR: null, + BL: null, + BR: null + /* eslint-enable */ + }; + var elementRect; + if (window.getComputedStyle(element).display === 'none') { + var oldVisibility = element.style.visibility; + element.style.visibility = 'hidden'; + element.style.display = 'block'; + elementRect = element.getBoundingClientRect(); + element.style.removeProperty('display'); + element.style.visibility = oldVisibility; + } + else { + elementRect = element.getBoundingClientRect(); + } + var pos = { + posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 } + }; + targetContainer = viewPortElement; + parentDocument = target.ownerDocument; + updateElementData(target, tEdge, pos, fixedParent, elementRect); + setPosition(eEdge, pos, elementRect); + if (axis.X) { + leftFlip(target, eEdge, tEdge, pos, elementRect, true); + } + if (axis.Y && tEdge.TL.top > -1) { + topFlip(target, eEdge, tEdge, pos, elementRect, true); + } + setPopup(element, pos, elementRect); +} +/** + * + * @param {HTMLElement} element - specifies the element + * @param {PositionLocation} pos - specifies the location + * @param {ClientRect} elementRect - specifies the client rect + * @returns {void} + */ +function setPopup(element, pos, elementRect) { + //eslint-disable-next-line + var left = 0, top = 0; + if (element.offsetParent != null + && (getComputedStyle(element.offsetParent).position === 'absolute' || + getComputedStyle(element.offsetParent).position === 'relative')) { + var data = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(element.offsetParent, 'left', 'top', false, elementRect); + left = data.left; + top = data.top; + } + element.style.top = (pos.position.top + pos.offsetY - (top)) + 'px'; + element.style.left = (pos.position.left + pos.offsetX - (left)) + 'px'; +} +/** + * + * @param {HTMLElement} target - specifies the element + * @param {EdgeOffset} edge - specifies the offset + * @param {PositionLocation} pos - specifies theloaction + * @param {boolean} fixedParent - specifies the boolean + * @param {ClientRect} elementRect - specifies the client rect + * @returns {void} + */ +function updateElementData(target, edge, pos, fixedParent, elementRect) { + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, fixedParent, elementRect); + edge.TL = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'left', 'top', fixedParent, elementRect); + edge.TR = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'right', 'top', fixedParent, elementRect); + edge.BR = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'left', 'bottom', fixedParent, elementRect); + edge.BL = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, 'right', 'bottom', fixedParent, elementRect); +} +/** + * + * @param {EdgeOffset} eStatus - specifies the status + * @param {PositionLocation} pos - specifies the location + * @param {ClientRect} elementRect - specifies the client + * @returns {void} + */ +function setPosition(eStatus, pos, elementRect) { + eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX }; + eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width }; + eStatus.BL = { top: eStatus.TL.top + elementRect.height, + left: eStatus.TL.left }; + eStatus.BR = { top: eStatus.TL.top + elementRect.height, + left: eStatus.TL.left + elementRect.width }; +} +/** + * + * @param {number} left - specifies the number + * @param {number} right - specifies the number + * @returns {LeftCorners} - returns the value + */ +function leftCollideCheck(left, right) { + //eslint-disable-next-line + var leftSide = false, rightSide = false; + if (((left - getBodyScrollLeft()) < ContainerLeft())) { + leftSide = true; + } + if (right > ContainerRight()) { + rightSide = true; + } + return { leftSide: leftSide, rightSide: rightSide }; +} +/** + * + * @param {HTMLElement} target - specifies the element + * @param {EdgeOffset} edge - specifes the element + * @param {EdgeOffset} tEdge - specifies the edge offset + * @param {PositionLocation} pos - specifes the location + * @param {ClientRect} elementRect - specifies the client + * @param {boolean} deepCheck - specifies the boolean value + * @returns {void} + */ +function leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) { + var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left); + if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) { + collideSide.leftSide = false; + } + if (tEdge.TR.left > ContainerRight()) { + collideSide.rightSide = false; + } + if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) { + if (pos.posX === 'right') { + pos.posX = 'left'; + } + else { + pos.posX = 'right'; + } + pos.offsetX = pos.offsetX + elementRect.width; + pos.offsetX = -1 * pos.offsetX; + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, false); + setPosition(edge, pos, elementRect); + if (deepCheck) { + leftFlip(target, edge, tEdge, pos, elementRect, false); + } + } +} +/** + * + * @param {HTMLElement} target - specifies the element + * @param {EdgeOffset} edge - specifies the offset + * @param {EdgeOffset} tEdge - specifies the offset + * @param {PositionLocation} pos - specifies the location + * @param {ClientRect} elementRect - specifies the client rect + * @param {boolean} deepCheck - specifies the boolean + * @returns {void} + */ +function topFlip(target, edge, tEdge, pos, elementRect, deepCheck) { + var collideSide = topCollideCheck(edge.TL.top, edge.BL.top); + if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) { + collideSide.topSide = false; + } + if (tEdge.BL.top >= ContainerBottom() && target.getBoundingClientRect().bottom < window.innerHeight) { + collideSide.bottomSide = false; + } + if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) { + if (pos.posY === 'top') { + pos.posY = 'bottom'; + } + else { + pos.posY = 'top'; + } + pos.offsetY = pos.offsetY + elementRect.height; + pos.offsetY = -1 * pos.offsetY; + pos.position = Object(_position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"])(target, pos.posX, pos.posY, false, elementRect); + setPosition(edge, pos, elementRect); + if (deepCheck) { + topFlip(target, edge, tEdge, pos, elementRect, false); + } + } +} +/** + * + * @param {number} top - specifies the number + * @param {number} bottom - specifies the number + * @returns {TopCorners} - retyrns the value + */ +function topCollideCheck(top, bottom) { + //eslint-disable-next-line + var topSide = false, bottomSide = false; + if ((top - getBodyScrollTop()) < ContainerTop()) { + topSide = true; + } + if (bottom > ContainerBottom()) { + bottomSide = true; + } + return { topSide: topSide, bottomSide: bottomSide }; +} +/** + * @returns {void} + */ +function getTargetContainerWidth() { + return targetContainer.getBoundingClientRect().width; +} +/** + * @returns {void} + */ +function getTargetContainerHeight() { + return targetContainer.getBoundingClientRect().height; +} +/** + * @returns {void} + */ +function getTargetContainerLeft() { + return targetContainer.getBoundingClientRect().left; +} +/** + * @returns {void} + */ +function getTargetContainerTop() { + return targetContainer.getBoundingClientRect().top; +} +//eslint-disable-next-line +function ContainerTop() { + if (targetContainer) { + return getTargetContainerTop(); + } + return 0; +} +//eslint-disable-next-line +function ContainerLeft() { + if (targetContainer) { + return getTargetContainerLeft(); + } + return 0; +} +//eslint-disable-next-line +function ContainerRight() { + if (targetContainer) { + return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth()); + } + return (getBodyScrollLeft() + getViewPortWidth()); +} +//eslint-disable-next-line +function ContainerBottom() { + if (targetContainer) { + return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight()); + } + return (getBodyScrollTop() + getViewPortHeight()); +} +/** + * @returns {void} + */ +function getBodyScrollTop() { + // if(targetContainer) + // return targetContainer.scrollTop; + return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop; +} +/** + * @returns {void} + */ +function getBodyScrollLeft() { + // if(targetContainer) + // return targetContainer.scrollLeft; + return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft; +} +/** + * @returns {void} + */ +function getViewPortHeight() { + return window.innerHeight; +} +/** + * @returns {void} + */ +function getViewPortWidth() { + var windowWidth = window.innerWidth; + var documentReact = document.documentElement.getBoundingClientRect(); + var offsetWidth = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["isNullOrUndefined"])(document.documentElement)) ? 0 : documentReact.width; + return windowWidth - (windowWidth - offsetWidth); +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/common/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/common/index.js ***! + \******************************************************************/ +/*! exports provided: calculateRelativeBasedPosition, calculatePosition, fit, isCollide, flip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _position__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./position */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculateRelativeBasedPosition", function() { return _position__WEBPACK_IMPORTED_MODULE_0__["calculateRelativeBasedPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePosition", function() { return _position__WEBPACK_IMPORTED_MODULE_0__["calculatePosition"]; }); + +/* harmony import */ var _collision__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./collision */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/collision.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fit", function() { return _collision__WEBPACK_IMPORTED_MODULE_1__["fit"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCollide", function() { return _collision__WEBPACK_IMPORTED_MODULE_1__["isCollide"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flip", function() { return _collision__WEBPACK_IMPORTED_MODULE_1__["flip"]; }); + +/** + * Popup Components + */ + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js ***! + \*********************************************************************/ +/*! exports provided: calculateRelativeBasedPosition, calculatePosition */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculateRelativeBasedPosition", function() { return calculateRelativeBasedPosition; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calculatePosition", function() { return calculatePosition; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/** + * Position library + */ + +var elementRect; +var popupRect; +var element; +var parentDocument; +var fixedParent = false; +/** + * + * @param {HTMLElement} anchor - specifies the element + * @param {HTMLElement} element - specifies the element + * @returns {OffsetPosition} - returns the value + */ +function calculateRelativeBasedPosition(anchor, element) { + var fixedElement = false; + var anchorPos = { left: 0, top: 0 }; + var tempAnchor = anchor; + if (!anchor || !element) { + return anchorPos; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element.offsetParent) && element.style.position === 'fixed') { + fixedElement = true; + } + while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) { + anchorPos.left += anchor.offsetLeft; + anchorPos.top += anchor.offsetTop; + anchor = anchor.offsetParent; + } + anchor = tempAnchor; + while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) { + anchorPos.left -= anchor.scrollLeft; + anchorPos.top -= anchor.scrollTop; + anchor = anchor.parentElement; + } + return anchorPos; +} +/** + * + * @param {Element} currentElement - specifies the element + * @param {string} positionX - specifies the position + * @param {string} positionY - specifies the position + * @param {boolean} parentElement - specifies the boolean + * @param {ClientRect} targetValues - specifies the client + * @returns {OffsetPosition} - returns the position + */ +function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) { + popupRect = undefined; + popupRect = targetValues; + fixedParent = parentElement ? true : false; + if (!currentElement) { + return { left: 0, top: 0 }; + } + if (!positionX) { + positionX = 'left'; + } + if (!positionY) { + positionY = 'top'; + } + parentDocument = currentElement.ownerDocument; + element = currentElement; + var pos = { left: 0, top: 0 }; + return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos); +} +/** + * + * @param {number} value - specifies the number + * @param {OffsetPosition} pos - specifies the position + * @returns {void} + */ +function setPosx(value, pos) { + pos.left = value; +} +/** + * + * @param {number} value - specifies the number + * @param {OffsetPosition} pos - specifies the position + * @returns {void} + */ +function setPosy(value, pos) { + pos.top = value; +} +/** + * + * @param {string} posX - specifies the position + * @param {string} posY - specifies the position + * @param {OffsetPosition} pos - specifies the position + * @returns {OffsetPosition} - returns the postion + */ +function updatePosition(posX, posY, pos) { + elementRect = element.getBoundingClientRect(); + switch (posY + posX) { + case 'topcenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementTop(), pos); + break; + case 'topright': + setPosx(getElementRight(), pos); + setPosy(getElementTop(), pos); + break; + case 'centercenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'centerright': + setPosx(getElementRight(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'centerleft': + setPosx(getElementLeft(), pos); + setPosy(getElementVCenter(), pos); + break; + case 'bottomcenter': + setPosx(getElementHCenter(), pos); + setPosy(getElementBottom(), pos); + break; + case 'bottomright': + setPosx(getElementRight(), pos); + setPosy(getElementBottom(), pos); + break; + case 'bottomleft': + setPosx(getElementLeft(), pos); + setPosy(getElementBottom(), pos); + break; + default: + case 'topleft': + setPosx(getElementLeft(), pos); + setPosy(getElementTop(), pos); + break; + } + element = null; + return pos; +} +/** + * @returns {number} - specifies the number value + */ +function getBodyScrollTop() { + return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop; +} +/** + * @returns {number} - specifies the number value + */ +function getBodyScrollLeft() { + return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft; +} +/** + * @returns {number} - specifies the number value + */ +function getElementBottom() { + return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop(); +} +/** + * @returns {number} - specifies the number value + */ +function getElementVCenter() { + return getElementTop() + (elementRect.height / 2); +} +/** + * @returns {number} - specifies the number value + */ +function getElementTop() { + return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop(); +} +/** + * @returns {number} - specifies the number value + */ +function getElementLeft() { + return elementRect.left + getBodyScrollLeft(); +} +/** + * @returns {number} - specifies the number value + */ +function getElementRight() { + var popupWidth = (element && element.classList.contains('e-date-range-wrapper')) ? (popupRect ? popupRect.width : 0) : + (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0); + return elementRect.right + getBodyScrollLeft() - popupWidth; +} +/** + * @returns {number} - specifies the number value + */ +function getElementHCenter() { + return getElementLeft() + (elementRect.width / 2); +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/common/resize.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/common/resize.js ***! + \*******************************************************************/ +/*! exports provided: createResize, setMinHeight, setMaxWidth, setMaxHeight, removeResize */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createResize", function() { return createResize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMinHeight", function() { return setMinHeight; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMaxWidth", function() { return setMaxWidth; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setMaxHeight", function() { return setMaxHeight; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeResize", function() { return removeResize; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/** + * Resize library + */ + +/* eslint-disable */ +var elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east']; +var RESIZE_HANDLER = 'e-resize-handle'; +var FOCUSED_HANDLER = 'e-focused-handle'; +var DIALOG_RESIZABLE = 'e-dlg-resizable'; +var RESTRICT_LEFT = ['e-restrict-left']; +var RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport'; +var dialogBorderResize = ['north', 'west', 'east', 'south']; +var targetElement; +var selectedHandler; +var originalWidth = 0; +var originalHeight = 0; +var originalX = 0; +var originalY = 0; +var originalMouseX = 0; +var originalMouseY = 0; +var minHeight; +var maxHeight; +var minWidth; +var maxWidth; +var containerElement; +var resizeStart = null; +var resize = null; +var resizeEnd = null; +/* eslint-enable */ +var resizeWestWidth; +var setLeft = true; +var previousWidth = 0; +var setWidth = true; +// eslint-disable-next-line +var proxy; +/** + * + * @param {ResizeArgs} args - specifies the resize args + * @returns {void} + */ +function createResize(args) { + resizeStart = args.resizeBegin; + resize = args.resizing; + resizeEnd = args.resizeComplete; + targetElement = getDOMElement(args.element); + containerElement = getDOMElement(args.boundary); + var directions = args.direction.split(' '); + for (var i = 0; i < directions.length; i++) { + if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) { + setBorderResizeElm(directions[i]); + } + else if (directions[i].trim() !== '') { + var resizeHandler = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] }); + targetElement.appendChild(resizeHandler); + } + } + minHeight = args.minHeight; + minWidth = args.minWidth; + maxWidth = args.maxWidth; + maxHeight = args.maxHeight; + if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) { + wireEvents(args.proxy); + } + else { + wireEvents(); + } +} +/** + * + * @param {string} direction - specifies the string + * @returns {void} + */ +function setBorderResizeElm(direction) { + calculateValues(); + var borderBottom = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('span', { + attrs: { + 'unselectable': 'on', 'contenteditable': 'false' + } + }); + borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction); + if (direction === 'south') { + borderBottom.style.height = '2px'; + borderBottom.style.width = '100%'; + borderBottom.style.bottom = '0px'; + borderBottom.style.left = '0px'; + } + if (direction === 'north') { + borderBottom.style.height = '2px'; + borderBottom.style.width = '100%'; + borderBottom.style.top = '0px'; + borderBottom.style.left = '0px'; + } + if (direction === 'east') { + borderBottom.style.height = '100%'; + borderBottom.style.width = '2px'; + borderBottom.style.right = '0px'; + borderBottom.style.top = '0px'; + } + if (direction === 'west') { + borderBottom.style.height = '100%'; + borderBottom.style.width = '2px'; + borderBottom.style.left = '0px'; + borderBottom.style.top = '0px'; + } + targetElement.appendChild(borderBottom); +} +/** + * + * @param {string} element - specifies the element + * @returns {HTMLElement} - returns the element + */ +function getDOMElement(element) { + var domElement; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + if (typeof (element) === 'string') { + domElement = document.querySelector(element); + } + else { + domElement = element; + } + } + return domElement; +} +// eslint-disable-next-line +function wireEvents(args) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args)) { + args = this; + } + var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER); + for (var i = 0; i < resizers.length; i++) { + selectedHandler = resizers[i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(selectedHandler, 'mousedown', onMouseDown, args); + var eventName = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointerdown' : 'touchstart'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(selectedHandler, eventName, onTouchStart, args); + } + var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(borderResizers)) { + for (var i = 0; i < borderResizers.length; i++) { + selectedHandler = borderResizers[i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(selectedHandler, 'mousedown', onMouseDown, args); + var eventName = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointerdown' : 'touchstart'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(selectedHandler, eventName, onTouchStart, args); + } + } +} +/* istanbul ignore next */ +/** + * + * @param {string} e - specifies the string + * @returns {string} - returns the string + */ +function getEventType(e) { + return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch'; +} +/* istanbul ignore next */ +/** + * + * @param {MouseEvent} e - specifies the mouse event + * @returns {void} + */ +function onMouseDown(e) { + e.preventDefault(); + targetElement = e.target.parentElement; + calculateValues(); + originalMouseX = e.pageX; + originalMouseY = e.pageY; + e.target.classList.add(FOCUSED_HANDLER); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resizeStart)) { + proxy = this; + if (resizeStart(e, proxy) === true) { + return; + } + } + if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) { + containerElement = this.target === ('body' || false || false) ? null : this.targetEle; + maxWidth = this.targetEle.clientWidth; + maxHeight = this.targetEle.clientHeight; + } + var target = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) ? document : containerElement; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'mousemove', onMouseMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mouseup', onMouseUp, this); + for (var i = 0; i < RESTRICT_LEFT.length; i++) { + if (targetElement.classList.contains(RESTRICT_LEFT[i])) { + setLeft = false; + } + else { + setLeft = true; + } + } +} +/* istanbul ignore next */ +/** + * + * @param {MouseEvent} e - specifies the event + * @returns {void} + */ +function onMouseUp(e) { + var touchMoveEvent = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointermove' : 'touchmove'; + var touchEndEvent = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointerup' : 'touchend'; + var target = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) ? document : containerElement; + var eventName = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointerdown' : 'touchstart'; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mousemove', onMouseMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, touchMoveEvent, onMouseMove); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, eventName, onMouseMove); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(document.body.querySelector('.' + FOCUSED_HANDLER))) { + document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resizeEnd)) { + proxy = this; + resizeEnd(e, proxy); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mouseup', onMouseUp); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, touchEndEvent, onMouseUp); +} +/* istanbul ignore next */ +/** + * @returns {void} + */ +function calculateValues() { + originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', '')); + originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', '')); + originalX = targetElement.getBoundingClientRect().left; + originalY = targetElement.getBoundingClientRect().top; +} +/* istanbul ignore next */ +/** + * + * @param {MouseEvent} e - specifies the event + * @returns {void} + */ +function onTouchStart(e) { + targetElement = e.target.parentElement; + calculateValues(); + var dialogResizeElement = targetElement.classList.contains('e-dialog'); + if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) { + e.target.classList.add(FOCUSED_HANDLER); + } + var coordinates = e.touches ? e.changedTouches[0] : e; + originalMouseX = coordinates.pageX; + originalMouseY = coordinates.pageY; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resizeStart)) { + proxy = this; + if (resizeStart(e, proxy) === true) { + return; + } + } + var touchMoveEvent = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointermove' : 'touchmove'; + var touchEndEvent = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].info.name === 'msie') ? 'pointerup' : 'touchend'; + var target = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) ? document : containerElement; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, touchMoveEvent, onMouseMove, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, touchEndEvent, onMouseUp, this); +} +/* istanbul ignore next */ +/** + * + * @param {MouseEvent} e - specifies the event + * @returns {void} + */ +function onMouseMove(e) { + if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) { + selectedHandler = e.target; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(document.body.querySelector('.' + FOCUSED_HANDLER))) { + selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(selectedHandler)) { + var resizeTowards = ''; + for (var i = 0; i < elementClass.length; i++) { + if (selectedHandler.classList.contains('e-' + elementClass[i])) { + resizeTowards = elementClass[i]; + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resize)) { + proxy = this; + resize(e, proxy); + } + switch (resizeTowards) { + case 'south': + resizeSouth(e); + break; + case 'north': + resizeNorth(e); + break; + case 'west': + resizeWest(e); + break; + case 'east': + resizeEast(e); + break; + case 'south-east': + resizeSouth(e); + resizeEast(e); + break; + case 'south-west': + resizeSouth(e); + resizeWest(e); + break; + case 'north-east': + resizeNorth(e); + resizeEast(e); + break; + case 'north-west': + resizeNorth(e); + resizeWest(e); + break; + default: break; + } + } +} +/* istanbul ignore next */ +/** + * + * @param {HTMLElement} element - specifies the eleemnt + * @returns {ClientRect} - returns the client + */ +function getClientRectValues(element) { + return element.getBoundingClientRect(); +} +/* istanbul ignore next */ +// eslint-disable-next-line +function resizeSouth(e) { + var documentHeight = document.documentElement.clientHeight; + var calculateValue = false; + var coordinates = e.touches ? e.changedTouches[0] : e; + var currentpageY = coordinates.pageY; + var targetRectValues = getClientRectValues(targetElement); + var containerRectValues; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerRectValues = getClientRectValues(containerElement); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + calculateValue = true; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) { + calculateValue = true; + } + var calculatedHeight = originalHeight + (currentpageY - originalMouseY); + calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight; + var containerTop = 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerTop = containerRectValues.top; + } + var borderValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight; + var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2); + topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder; + if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) { + calculateValue = false; + if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) { + return; + } + targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px'; + return; + } + var targetTop = 0; + if (calculateValue) { + if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) { + targetTop = targetRectValues.top; + if ((calculatedHeight + targetTop) <= 30) { + calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30; + } + } + if (((calculatedHeight + targetRectValues.top) >= maxHeight)) { + targetElement.style.height = targetRectValues.height + + (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px'; + } + var calculatedTop = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) ? targetTop : topWithoutborder; + if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) { + targetElement.style.height = calculatedHeight + 'px'; + } + } +} +/* istanbul ignore next */ +// eslint-disable-next-line +function resizeNorth(e) { + var calculateValue = false; + var boundaryRectValues; + var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY; + var targetRectValues = getClientRectValues(targetElement); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + boundaryRectValues = getClientRectValues(containerElement); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) { + calculateValue = true; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && pageY > 0) { + calculateValue = true; + } + var currentHeight = originalHeight - (pageY - originalMouseY); + if (calculateValue) { + if (currentHeight >= minHeight && currentHeight <= maxHeight) { + var containerTop = 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerTop = boundaryRectValues.top; + } + var top_1 = (originalY - containerTop) + (pageY - originalMouseY); + top_1 = top_1 > 0 ? top_1 : 1; + targetElement.style.height = currentHeight + 'px'; + targetElement.style.top = top_1 + 'px'; + } + } +} +/* istanbul ignore next */ +// eslint-disable-next-line +function resizeWest(e) { + var documentWidth = document.documentElement.clientWidth; + var calculateValue = false; + var rectValues; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + rectValues = getClientRectValues(containerElement); + } + var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX; + var targetRectValues = getClientRectValues(targetElement); + var borderValue = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth; + /* eslint-disable */ + var left = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) ? 0 : rectValues.left; + var containerWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) ? 0 : rectValues.width; + /* eslint-enable */ + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resizeWestWidth)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width; + resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth); + } + else { + resizeWestWidth = documentWidth; + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && + (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width + + (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) { + calculateValue = true; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && pageX >= 0) { + calculateValue = true; + } + var calculatedWidth = originalWidth - (pageX - originalMouseX); + if (setLeft) { + calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth; + } + if (calculateValue) { + if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) { + var containerLeft = 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerLeft = rectValues.left; + } + var left_1 = (originalX - containerLeft) + (pageX - originalMouseX); + left_1 = (left_1 > 0) ? left_1 : 1; + if (calculatedWidth !== previousWidth && setWidth) { + targetElement.style.width = calculatedWidth + 'px'; + } + if (setLeft) { + targetElement.style.left = left_1 + 'px'; + if (left_1 === 1) { + setWidth = false; + } + else { + setWidth = true; + } + } + } + } + previousWidth = calculatedWidth; +} +/* istanbul ignore next */ +// eslint-disable-next-line +function resizeEast(e) { + var documentWidth = document.documentElement.clientWidth; + var calculateValue = false; + var containerRectValues; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerRectValues = getClientRectValues(containerElement); + } + var coordinates = e.touches ? e.changedTouches[0] : e; + var pageX = coordinates.pageX; + var targetRectValues = getClientRectValues(targetElement); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth + || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) { + calculateValue = true; + } + else if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement) && (documentWidth - pageX) > 0) { + calculateValue = true; + } + var calculatedWidth = originalWidth + (pageX - originalMouseX); + var containerLeft = 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(containerElement)) { + containerLeft = containerRectValues.left; + } + if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) { + calculateValue = false; + if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) { + return; + } + targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px'; + } + if (calculateValue) { + if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) { + targetElement.style.width = calculatedWidth + 'px'; + } + } +} +/* istanbul ignore next */ +/** + * + * @param {number} minimumHeight - specifies the number + * @returns {void} + */ +function setMinHeight(minimumHeight) { + minHeight = minimumHeight; +} +/** + * + * @param {number} value - specifies the number value + * @returns {void} + */ +function setMaxWidth(value) { + maxWidth = value; +} +/** + * + * @param {number} value - specifies the number value + * @returns {void} + */ +function setMaxHeight(value) { + maxHeight = value; +} +/** + * @returns {void} + */ +function removeResize() { + var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER); + for (var i = 0; i < handlers.length; i++) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(handlers[i]); + } + var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(borderResizers)) { + for (var i = 0; i < borderResizers.length; i++) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(borderResizers[i]); + } + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/dialog/dialog.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/dialog/dialog.js ***! + \*******************************************************************/ +/*! exports provided: ButtonProps, AnimationSettings, Dialog, DialogUtility */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonProps", function() { return ButtonProps; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return AnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return Dialog; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DialogUtility", function() { return DialogUtility; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _popup_popup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../popup/popup */ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/popup.js"); +/* harmony import */ var _common_resize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/resize */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/resize.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + +var ButtonProps = /** @__PURE__ @class */ (function (_super) { + __extends(ButtonProps, _super); + function ButtonProps() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], ButtonProps.prototype, "isFlat", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], ButtonProps.prototype, "buttonModel", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Button') + ], ButtonProps.prototype, "type", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], ButtonProps.prototype, "click", void 0); + return ButtonProps; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Configures the animation properties for both open and close the dialog. + */ +var AnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(AnimationSettings, _super); + function AnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Fade') + ], AnimationSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(400) + ], AnimationSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], AnimationSettings.prototype, "delay", void 0); + return AnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +var ROOT = 'e-dialog'; +var RTL = 'e-rtl'; +var DLG_HEADER_CONTENT = 'e-dlg-header-content'; +var DLG_HEADER = 'e-dlg-header'; +var DLG_FOOTER_CONTENT = 'e-footer-content'; +var MODAL_DLG = 'e-dlg-modal'; +var DLG_CONTENT = 'e-dlg-content'; +var DLG_CLOSE_ICON = 'e-icon-dlg-close'; +var DLG_OVERLAY = 'e-dlg-overlay'; +var DLG_TARGET = 'e-dlg-target'; +var DLG_CONTAINER = 'e-dlg-container'; +var SCROLL_DISABLED = 'e-scroll-disabled'; +var DLG_PRIMARY_BUTTON = 'e-primary'; +var ICON = 'e-icons'; +var POPUP_ROOT = 'e-popup'; +var DEVICE = 'e-device'; +var FULLSCREEN = 'e-dlg-fullscreen'; +var DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn'; +var DLG_HIDE = 'e-popup-close'; +var DLG_SHOW = 'e-popup-open'; +var DLG_UTIL_DEFAULT_TITLE = 'Information'; +var DLG_UTIL_ROOT = 'e-scroll-disabled'; +var DLG_UTIL_ALERT = 'e-alert-dialog'; +var DLG_UTIL_CONFIRM = 'e-confirm-dialog'; +var DLG_RESIZABLE = 'e-dlg-resizable'; +var DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left'; +var DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport'; +var DLG_REF_ELEMENT = 'e-dlg-ref-element'; +var DLG_USER_ACTION_CLOSED = 'user action'; +var DLG_CLOSE_ICON_CLOSED = 'close icon'; +var DLG_ESCAPE_CLOSED = 'escape'; +var DLG_OVERLAYCLICK_CLOSED = 'overlayClick'; +var DLG_DRAG = 'e-draggable'; +/** + * Represents the dialog component that displays the information and get input from the user. + * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application. + * ```html + *
    + * ``` + * ```typescript + * + * ``` + */ +var Dialog = /** @__PURE__ @class */ (function (_super) { + __extends(Dialog, _super); + /* + * * Constructor for creating the widget + * + * @param + * @param + * @hidden + */ + function Dialog(options, element) { + var _this = _super.call(this, options, element) || this; + _this.needsID = true; + return _this; + } + /** + *Initialize the control rendering + * + * @returns {void} + * @private + */ + Dialog.prototype.render = function () { + this.initialize(); + this.initRender(); + this.wireEvents(); + if (this.width === '100%') { + this.element.style.width = ''; + } + if (this.minHeight !== '') { + this.element.style.minHeight = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.minHeight); + } + if (this.enableResize) { + this.setResize(); + if (this.animationSettings.effect === 'None') { + this.getMinHeight(); + } + } + this.renderComplete(); + }; + Dialog.prototype.initializeValue = function () { + this.dlgClosedBy = DLG_USER_ACTION_CLOSED; + }; + /** + *Initialize the event handler + * + * @returns {void} + * @private + */ + Dialog.prototype.preRender = function () { + var _this = this; + this.initializeValue(); + this.headerContent = null; + this.allowMaxHeight = true; + this.preventVisibility = true; + this.clonedEle = this.element.cloneNode(true); + this.closeIconClickEventHandler = function (event) { + _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED; + _this.hide(event); + }; + this.dlgOverlayClickEventHandler = function (event) { + _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED; + event.preventFocus = false; + _this.trigger('overlayClick', event, function (overlayClickEventArgs) { + if (!overlayClickEventArgs.preventFocus) { + _this.focusContent(); + } + _this.dlgClosedBy = DLG_USER_ACTION_CLOSED; + }); + }; + var localeText = { close: 'Close' }; + this.l10n = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["L10n"]('dialog', localeText, this.locale); + this.checkPositionData(); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + this.target = document.body; + this.isProtectedOnChange = prevOnChange; + } + }; + Dialog.prototype.updatePersistData = function () { + if (this.enablePersistence) { + this.setProperties({ width: parseFloat(this.element.style.width), height: parseFloat(this.element.style.height), + position: { X: parseFloat(this.dragObj.element.style.left), Y: parseFloat(this.dragObj.element.style.top) } }, true); + } + }; + Dialog.prototype.isNumberValue = function (value) { + var isNumber = /^[-+]?\d*\.?\d+$/.test(value); + return isNumber; + }; + Dialog.prototype.checkPositionData = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.position)) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.position.X) && (typeof (this.position.X) !== 'number')) { + var isNumber = this.isNumberValue(this.position.X); + if (isNumber) { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + this.position.X = parseFloat(this.position.X); + this.isProtectedOnChange = prevOnChange; + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.position.Y) && (typeof (this.position.Y) !== 'number')) { + var isNumber = this.isNumberValue(this.position.Y); + if (isNumber) { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + this.position.Y = parseFloat(this.position.Y); + this.isProtectedOnChange = prevOnChange; + } + } + } + }; + Dialog.prototype.getEle = function (list, selector) { + var element = undefined; + for (var i = 0; i < list.length; i++) { + if (list[i].classList.contains(selector)) { + element = list[i]; + break; + } + } + return element; + }; + /* istanbul ignore next */ + Dialog.prototype.getMinHeight = function () { + var computedHeaderHeight = '0px'; + var computedFooterHeight = '0px'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.' + DLG_HEADER_CONTENT))) { + computedHeaderHeight = getComputedStyle(this.headerContent).height; + } + var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(footerEle)) { + computedFooterHeight = getComputedStyle(footerEle).height; + } + var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10); + var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10); + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["setMinHeight"])(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight)); + return (headerHeight + 30 + footerHeight); + }; + Dialog.prototype.onResizeStart = function (args, dialogObj) { + dialogObj.trigger('resizeStart', args); + return args.cancel; + }; + Dialog.prototype.onResizing = function (args, dialogObj) { + dialogObj.trigger('resizing', args); + }; + Dialog.prototype.onResizeComplete = function (args, dialogObj) { + dialogObj.trigger('resizeStop', args); + this.updatePersistData(); + }; + Dialog.prototype.setResize = function () { + if (this.enableResize) { + if (this.isBlazorServerRender() && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.e-icons.e-resize-handle'))) { + return; + } + this.element.classList.add(DLG_RESIZABLE); + var computedHeight = getComputedStyle(this.element).minHeight; + var computedWidth = getComputedStyle(this.element).minWidth; + var direction = ''; + for (var i = 0; i < this.resizeHandles.length; i++) { + if (this.resizeHandles[i] === 'All') { + direction = 'south north east west north-east north-west south-east south-west'; + break; + } + else { + var directionValue = ''; + switch (this.resizeHandles[i].toString()) { + case 'SouthEast': + directionValue = 'south-east'; + break; + case 'SouthWest': + directionValue = 'south-west'; + break; + case 'NorthEast': + directionValue = 'north-east'; + break; + case 'NorthWest': + directionValue = 'north-west'; + break; + default: + directionValue = this.resizeHandles[i].toString(); + break; + } + direction += directionValue.toLocaleLowerCase() + ' '; + } + } + if (this.enableRtl && direction.trim() === 'south-east') { + direction = 'south-west'; + } + else if (this.enableRtl && direction.trim() === 'south-west') { + direction = 'south-east'; + } + if (this.isModal && this.enableRtl) { + this.element.classList.add(DLG_RESTRICT_LEFT_VALUE); + } + else if (this.isModal && this.target === document.body) { + this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE); + } + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["createResize"])({ + element: this.element, + direction: direction, + minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10), + maxHeight: this.targetEle.clientHeight, + minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10), + maxWidth: this.targetEle.clientWidth, + boundary: this.target === document.body ? null : this.targetEle, + resizeBegin: this.onResizeStart.bind(this), + resizeComplete: this.onResizeComplete.bind(this), + resizing: this.onResizing.bind(this), + proxy: this + }); + this.wireWindowResizeEvent(); + } + else { + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["removeResize"])(); + this.unWireWindowResizeEvent(); + if (this.isModal) { + this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE); + } + else { + this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE); + } + this.element.classList.remove(DLG_RESIZABLE); + } + }; + Dialog.prototype.getFocusElement = function (target) { + var value = 'input,select,textarea,button:enabled,a,[contenteditable="true"],[tabindex]'; + var items = target.querySelectorAll(value); + return { element: items[items.length - 1] }; + }; + /* istanbul ignore next */ + Dialog.prototype.keyDown = function (event) { + var _this = this; + if (event.keyCode === 9) { + if (this.isModal) { + var buttonObj = void 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.btnObj)) { + buttonObj = this.btnObj[this.btnObj.length - 1]; + } + if ((Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.btnObj)) && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ftrTemplateContent))) { + buttonObj = this.getFocusElement(this.ftrTemplateContent); + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.btnObj) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ftrTemplateContent) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentEle)) { + buttonObj = this.getFocusElement(this.contentEle); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) { + event.preventDefault(); + this.focusableElements(this.element).focus(); + } + if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) { + event.preventDefault(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(buttonObj)) { + buttonObj.element.focus(); + } + } + } + } + var element = document.activeElement; + var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1); + var isContentEdit = false; + if (!isTagName) { + isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true'; + } + if (event.keyCode === 27 && this.closeOnEscape) { + this.dlgClosedBy = DLG_ESCAPE_CLOSED; + var query = document.querySelector('.e-popup-open:not(.e-dialog)'); + // 'document.querySelector' is used to find the elements rendered based on body + if (!(!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(query) && !query.classList.contains('e-toolbar-pop'))) { + this.hide(event); + } + } + if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' && + isTagName && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.primaryButtonEle)) || + (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' || + isContentEdit)) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.primaryButtonEle)) { + var buttonIndex_1; + var firstPrimary = this.buttons.some(function (data, index) { + buttonIndex_1 = index; + // eslint-disable-next-line + var buttonModel = data.buttonModel; + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(buttonModel) && buttonModel.isPrimary === true; + }); + if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') { + setTimeout(function () { + _this.buttons[buttonIndex_1].click.call(_this, event); + }); + } + } + }; + /** + * Initialize the control rendering + * + * @returns {void} + * @private + */ + Dialog.prototype.initialize = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + this.targetEle = ((typeof this.target) === 'string') ? + document.querySelector(this.target) : this.target; + } + if (!this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], ROOT); + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], DEVICE); + } + if (!this.isBlazorServerRender()) { + this.setCSSClass(); + } + this.setMaxHeight(); + }; + /** + * Initialize the rendering + * + * @returns {void} + * @private + */ + Dialog.prototype.initRender = function () { + var _this = this; + this.initialRender = true; + if (!this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { role: 'dialog' }); + } + if (this.zIndex === 1000) { + this.setzIndex(this.element, false); + this.calculatezIndex = true; + } + else { + this.calculatezIndex = false; + } + if (this.isBlazorServerRender() && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent)) { + this.headerContent = this.element.getElementsByClassName('e-dlg-header-content')[0]; + } + if (this.isBlazorServerRender() && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentEle)) { + this.contentEle = this.element.querySelector('#' + this.element.id + '_dialog-content'); + } + if (!this.isBlazorServerRender()) { + this.setTargetContent(); + if (this.header !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.header)) { + this.setHeader(); + } + this.renderCloseIcon(); + this.setContent(); + if (this.footerTemplate !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.footerTemplate)) { + this.setFooterTemplate(); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons[0].buttonModel)) { + this.setButton(); + } + } + if (this.isBlazorServerRender()) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons[0].buttonModel) && this.footerTemplate === '') { + this.setButton(); + } + } + if (this.allowDragging && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent))) { + this.setAllowDragging(); + } + if (!this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') }); + if (this.isModal) { + this.setIsModal(); + } + } + if (this.isBlazorServerRender() && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dlgContainer)) { + this.dlgContainer = this.element.parentElement; + for (var i = 0, childNodes = this.dlgContainer.children; i < childNodes.length; i++) { + if (childNodes[i].classList.contains('e-dlg-overlay')) { + this.dlgOverlay = childNodes[i]; + } + } + } + if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true + && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.parentElement)) { + var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement; + this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT }); + parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element)); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetEle)) { + // eslint-disable-next-line + this.isModal ? this.targetEle.appendChild(this.dlgContainer) : this.targetEle.appendChild(this.element); + } + this.popupObj = new _popup_popup__WEBPACK_IMPORTED_MODULE_2__["Popup"](this.element, { + height: this.height, + width: this.width, + zIndex: this.zIndex, + relateTo: this.target, + actionOnScroll: 'none', + enableRtl: this.enableRtl, + // eslint-disable-next-line + open: function (event) { + var eventArgs = { + container: _this.isModal ? _this.dlgContainer : _this.element, + element: _this.element, + target: _this.target, + preventFocus: false + }; + if (_this.enableResize) { + _this.resetResizeIcon(); + } + _this.trigger('open', eventArgs, function (openEventArgs) { + if (!openEventArgs.preventFocus) { + _this.focusContent(); + } + }); + }, + // eslint-disable-next-line + close: function (event) { + if (_this.isModal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.dlgOverlay], 'e-fade'); + } + _this.unBindEvent(_this.element); + if (_this.isModal) { + _this.dlgContainer.style.display = 'none'; + } + _this.trigger('close', _this.closeArgs); + var activeEle = document.activeElement; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(activeEle) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])((activeEle).blur)) { + activeEle.blur(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.storeActiveElement) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.storeActiveElement.focus)) { + _this.storeActiveElement.focus(); + } + } + }); + this.positionChange(); + this.setEnableRTL(); + if (!this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], DLG_HIDE); + if (this.isModal) { + this.setOverlayZindex(); + } + } + if (this.visible) { + this.show(); + } + else { + if (this.isModal) { + this.dlgOverlay.style.display = 'none'; + } + } + this.initialRender = false; + }; + Dialog.prototype.resetResizeIcon = function () { + var dialogConHeight = this.getMinHeight(); + if (this.targetEle.offsetHeight < dialogConHeight) { + var className = this.enableRtl ? 'e-south-west' : 'e-south-east'; + var resizeIcon = this.element.querySelector('.' + className); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(resizeIcon)) { + resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px'; + } + } + }; + Dialog.prototype.setOverlayZindex = function (zIndexValue) { + var zIndex; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(zIndexValue)) { + zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex; + } + else { + zIndex = zIndexValue; + } + this.dlgOverlay.style.zIndex = (zIndex - 1).toString(); + this.dlgContainer.style.zIndex = zIndex.toString(); + }; + Dialog.prototype.positionChange = function () { + if (this.isModal) { + if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) { + this.setPopupPosition(); + } + else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y))) + || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) { + this.setPopupPosition(); + } + else { + this.element.style.top = '0px'; + this.element.style.left = '0px'; + this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y); + } + } + else { + this.setPopupPosition(); + } + }; + Dialog.prototype.setPopupPosition = function () { + this.popupObj.setProperties({ + position: { + X: this.position.X, Y: this.position.Y + } + }); + }; + Dialog.prototype.setAllowDragging = function () { + var _this = this; + var handleContent = '.' + DLG_HEADER_CONTENT; + if (!this.element.classList.contains(DLG_DRAG)) { + this.dragObj = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Draggable"](this.element, { + clone: false, + isDragScroll: true, + abort: '.e-dlg-closeicon-btn', + handle: handleContent, + dragStart: function (event) { + _this.trigger('dragStart', event, function (dragEventArgs) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + dragEventArgs.bindEvents(event.dragElement); + } + }); + }, + dragStop: function (event) { + if (_this.isModal) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.position)) { + _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y); + } + // Reset the dialog position after drag completion. + _this.element.style.position = 'relative'; + } + _this.trigger('dragStop', event); + _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE); + _this.updatePersistData(); + }, + drag: function (event) { + _this.trigger('drag', event); + } + }); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetEle)) { + this.dragObj.dragArea = this.targetEle; + } + } + }; + Dialog.prototype.setButton = function () { + if (!this.isBlazorServerRender()) { + this.buttonContent = []; + this.btnObj = []; + // eslint-disable-next-line + var primaryBtnFlag = true; + for (var i = 0; i < this.buttons.length; i++) { + var buttonType = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons[i].type) ? this.buttons[i].type.toLowerCase() : 'button'; + var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } }); + this.buttonContent.push(btn.outerHTML); + } + this.setFooterTemplate(); + } + var footerBtn; + for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) { + if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) { + footerBtn = childNodes[i].querySelectorAll('button'); + } + } + for (var i = 0; i < this.buttons.length; i++) { + if (!this.isBlazorServerRender()) { + this.btnObj[i] = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"](this.buttons[i].buttonModel); + } + if (this.isBlazorServerRender()) { + this.ftrTemplateContent = this.element.querySelector('.' + DLG_FOOTER_CONTENT); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ftrTemplateContent) && footerBtn.length > 0) { + if (typeof (this.buttons[i].click) === 'function') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(footerBtn[i], 'click', this.buttons[i].click, this); + } + if (typeof (this.buttons[i].click) === 'object') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this); + } + } + if (!this.isBlazorServerRender() && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ftrTemplateContent)) { + this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]); + if (this.buttons[i].isFlat) { + this.btnObj[i].element.classList.add('e-flat'); + } + this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0]; + } + } + }; + Dialog.prototype.buttonClickHandler = function (index) { + this.trigger('buttons[' + index + '].click', {}); + }; + Dialog.prototype.setContent = function () { + this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' }); + if (this.innerContentElement) { + this.contentEle.appendChild(this.innerContentElement); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content) && this.content !== '' || !this.initialRender) { + // eslint-disable-next-line + var blazorContain = Object.keys(window); + if (typeof (this.content) === 'string' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.setTemplate(this.content, this.contentEle, 'content'); + } + else if (this.content instanceof HTMLElement) { + this.contentEle.appendChild(this.content); + } + else { + this.setTemplate(this.content, this.contentEle, 'content'); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent)) { + this.element.insertBefore(this.contentEle, this.element.children[1]); + } + else { + this.element.insertBefore(this.contentEle, this.element.children[0]); + } + if (this.height === 'auto') { + if (!this.isBlazorServerRender() && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIE && this.element.style.width === '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.width)) { + this.element.style.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width); + } + this.setMaxHeight(); + } + }; + Dialog.prototype.setTemplate = function (template, toElement, prop) { + var templateFn; + var templateProps; + // eslint-disable-next-line + var blazorContain = Object.keys(window); + if (toElement.classList.contains(DLG_HEADER)) { + templateProps = this.element.id + 'header'; + } + else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) { + templateProps = this.element.id + 'footerTemplate'; + } + else { + templateProps = this.element.id + 'content'; + } + var templateValue; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(template.outerHTML)) { + toElement.appendChild(template); + } + else if ((typeof template === 'string') || (typeof template !== 'string') || (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && !this.isStringTemplate)) { + if ((typeof template === 'string')) { + template = this.sanitizeHelper(template); + } + if (this.isVue || typeof template !== 'string') { + templateFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(template); + templateValue = template; + } + else { + toElement.innerHTML = template; + } + } + var fromElements = []; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(templateFn)) { + var isString = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && + !this.isStringTemplate && (templateValue).indexOf('
    Blazor') === 0) ? + this.isStringTemplate : true; + for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) { + var item = _a[_i]; + fromElements.push(item); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])([].slice.call(fromElements), toElement); + } + }; + /* + * @returns {void} + * @hidden + * @value + */ + Dialog.prototype.sanitizeHelper = function (value) { + if (this.enableHtmlSanitizer) { + var dialogItem = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].beforeSanitize(); + var beforeEvent = { + cancel: false, + helper: null + }; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])(dialogItem, dialogItem, beforeEvent); + this.trigger('beforeSanitizeHtml', dialogItem); + if (dialogItem.cancel && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(dialogItem.helper)) { + value = dialogItem.helper(value); + } + else if (!dialogItem.cancel) { + value = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].serializeValue(dialogItem, value); + } + } + return value; + }; + Dialog.prototype.setMaxHeight = function () { + if (!this.allowMaxHeight) { + return; + } + var display = this.element.style.display; + this.element.style.display = 'none'; + this.element.style.maxHeight = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ? + (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px'; + this.element.style.display = display; + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIE && this.height === 'auto' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentEle) + && this.element.offsetHeight < this.contentEle.offsetHeight) { + this.element.style.height = 'inherit'; + } + }; + Dialog.prototype.setEnableRTL = function () { + if (!this.isBlazorServerRender()) { + // eslint-disable-next-line + this.enableRtl ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], RTL) : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], RTL); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.e-resize-handle'))) { + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["removeResize"])(); + this.setResize(); + } + }; + Dialog.prototype.setTargetContent = function () { + var _this = this; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content) || this.content === '') { + var isContent = this.element.innerHTML.replace(/\s|<(\/?|\/?)(!--!--)>/g, '') !== ''; + if (this.element.children.length > 0 || isContent) { + this.innerContentElement = document.createDocumentFragment(); + [].slice.call(this.element.childNodes).forEach(function (el) { + if (el.nodeType !== 8) { + _this.innerContentElement.appendChild(el); + } + }); + } + } + }; + Dialog.prototype.setHeader = function () { + if (this.headerEle) { + this.headerEle.innerHTML = ''; + } + else { + this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER }); + } + this.createHeaderContent(); + this.headerContent.appendChild(this.headerEle); + this.setTemplate(this.header, this.headerEle, 'header'); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { 'aria-labelledby': this.element.id + '_title' }); + this.element.insertBefore(this.headerContent, this.element.children[0]); + if (this.allowDragging && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent))) { + this.setAllowDragging(); + } + }; + Dialog.prototype.setFooterTemplate = function () { + if (this.ftrTemplateContent) { + this.ftrTemplateContent.innerHTML = ''; + } + else { + this.ftrTemplateContent = this.createElement('div', { + className: DLG_FOOTER_CONTENT + }); + } + if (this.footerTemplate !== '' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.footerTemplate)) { + this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate'); + } + else { + this.ftrTemplateContent.innerHTML = this.buttonContent.join(''); + } + this.element.appendChild(this.ftrTemplateContent); + }; + Dialog.prototype.createHeaderContent = function () { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent)) { + this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT }); + } + }; + Dialog.prototype.renderCloseIcon = function () { + if (this.showCloseIcon) { + this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } }); + this.closeIconBtnObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON }); + this.closeIconTitle(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])([this.closeIcon], this.headerContent); + } + else { + this.createHeaderContent(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["prepend"])([this.closeIcon], this.headerContent); + this.element.insertBefore(this.headerContent, this.element.children[0]); + } + this.closeIconBtnObj.appendTo(this.closeIcon); + } + }; + Dialog.prototype.closeIconTitle = function () { + this.l10n.setLocale(this.locale); + var closeIconTitle = this.l10n.getConstant('close'); + this.closeIcon.setAttribute('title', closeIconTitle); + this.closeIcon.setAttribute('aria-label', closeIconTitle); + }; + Dialog.prototype.setCSSClass = function (oldCSSClass) { + if (oldCSSClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], oldCSSClass.split(' ')); + if (this.isModal && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dlgContainer)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.dlgContainer], oldCSSClass.split(' ')); + } + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], this.cssClass.split(' ')); + if (this.isModal && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dlgContainer)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.dlgContainer], this.cssClass.split(' ')); + } + } + }; + Dialog.prototype.setIsModal = function () { + this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER }); + this.setCSSClass(); + this.element.classList.remove(DLG_SHOW); + this.element.parentNode.insertBefore(this.dlgContainer, this.element); + this.dlgContainer.appendChild(this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], MODAL_DLG); + this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY }); + this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString(); + this.dlgContainer.appendChild(this.dlgOverlay); + }; + Dialog.prototype.getValidFocusNode = function (items) { + var node; + for (var u = 0; u < items.length; u++) { + node = items[u]; + if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 && + !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled="true"],[type="hidden"]')) { + return node; + } + else { + node = null; + } + } + return node; + }; + Dialog.prototype.focusableElements = function (content) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(content)) { + var value = 'input,select,textarea,button,a,[contenteditable="true"],[tabindex]'; + var items = content.querySelectorAll(value); + return this.getValidFocusNode(items); + } + return null; + }; + Dialog.prototype.getAutoFocusNode = function (container) { + var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN); + var value = '[autofocus]'; + var items = container.querySelectorAll(value); + var validNode = this.getValidFocusNode(items); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])()) { + this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0]; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(validNode)) { + node = validNode; + } + else { + validNode = this.focusableElements(this.contentEle); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(validNode)) { + return node = validNode; + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.primaryButtonEle)) { + return this.element.querySelector('.' + DLG_PRIMARY_BUTTON); + } + } + return node; + }; + Dialog.prototype.disableElement = function (element, t) { + var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null; + if (elementMatch) { + for (; element; element = element.parentNode) { + if (element instanceof Element && elementMatch.call(element, t)) { + /* istanbul ignore next */ + return element; + } + } + } + return null; + }; + Dialog.prototype.focusContent = function () { + var element = this.getAutoFocusNode(this.element); + var node = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element) ? element : this.element; + var userAgent = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].userAgent; + if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) { + this.element.focus(); + } + node.focus(); + this.unBindEvent(this.element); + this.bindEvent(this.element); + }; + Dialog.prototype.bindEvent = function (element) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(element, 'keydown', this.keyDown, this); + }; + Dialog.prototype.unBindEvent = function (element) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(element, 'keydown', this.keyDown); + }; + Dialog.prototype.updateSanitizeContent = function () { + if (!this.isBlazorServerRender()) { + this.contentEle.innerHTML = this.sanitizeHelper(this.content); + } + }; + Dialog.prototype.isBlazorServerRender = function () { + return Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() && this.isServerRendered; + }; + /** + * Module required function + * + * @returns {void} + * @private + */ + Dialog.prototype.getModuleName = function () { + return 'dialog'; + }; + /** + * Called internally if any of the property value changed + * + * @param {DialogModel} newProp - specifies the new property + * @param {DialogModel} oldProp - specifies the old property + * @private + * @returns {void} + */ + Dialog.prototype.onPropertyChanged = function (newProp, oldProp) { + if (!this.element.classList.contains(ROOT)) { + return; + } + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'content': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content) && this.content !== '') { + if (this.isBlazorServerRender()) { + this.contentEle = this.element.querySelector('.e-dlg-content'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') { + if (!this.isBlazorServerRender()) { + this.contentEle.innerHTML = ''; + } + if (typeof (this.content) === 'function') { + this.clearTemplate(['content']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.contentEle); + this.contentEle = null; + this.setContent(); + } + else { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + typeof (this.content) === 'string' ? (this.isBlazorServerRender() && (this.contentEle.innerText === '')) ? + this.contentEle.insertAdjacentHTML('beforeend', this.sanitizeHelper(this.content)) : + this.updateSanitizeContent() : this.contentEle.appendChild(this.content); + } + this.setMaxHeight(); + } + else { + if (!this.isBlazorServerRender() || + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.e-dlg-content'))) { + this.setContent(); + } + } + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.contentEle)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.contentEle); + this.contentEle = null; + } + break; + case 'header': + if (this.header === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.header)) { + if (this.headerEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.headerEle); + this.headerEle = null; + } + } + else { + if (!this.isBlazorServerRender() || + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.e-dlg-header-content'))) { + this.setHeader(); + } + } + break; + case 'footerTemplate': + if (this.footerTemplate === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.footerTemplate)) { + if (!this.ftrTemplateContent) { + return; + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.ftrTemplateContent); + this.ftrTemplateContent = null; + this.buttons = [{}]; + } + else { + if (!this.isBlazorServerRender() || + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.querySelector('.e-footer-content'))) { + this.setFooterTemplate(); + } + this.buttons = [{}]; + } + break; + case 'showCloseIcon': + if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) { + if (!this.showCloseIcon && (this.header === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.header))) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.headerContent); + this.headerContent = null; + } + else if (!this.showCloseIcon) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.closeIcon); + } + else { + if (this.isBlazorServerRender()) { + this.wireEvents(); + } + } + } + else { + if (!this.isBlazorServerRender()) { + this.renderCloseIcon(); + } + this.wireEvents(); + } + break; + case 'locale': + if (this.showCloseIcon) { + this.closeIconTitle(); + } + break; + case 'visible': + // eslint-disable-next-line + this.visible ? this.show() : this.hide(); + break; + case 'isModal': + this.updateIsModal(); + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height) }); + this.updatePersistData(); + break; + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width) }); + this.updatePersistData(); + break; + case 'zIndex': + this.popupObj.zIndex = this.zIndex; + if (this.isModal) { + this.setOverlayZindex(this.zIndex); + } + if (this.element.style.zIndex !== this.zIndex.toString()) { + this.calculatezIndex = false; + } + break; + case 'cssClass': + this.setCSSClass(oldProp.cssClass); + break; + case 'buttons': { + var buttonCount = this.buttons.length; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.ftrTemplateContent) && !this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.ftrTemplateContent); + this.ftrTemplateContent = null; + } + for (var i = 0; i < buttonCount; i++) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons[i].buttonModel)) { + this.footerTemplate = ''; + this.setButton(); + } + } + break; + } + case 'allowDragging': + if (this.allowDragging && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent))) { + this.setAllowDragging(); + } + else { + this.dragObj.destroy(); + } + break; + case 'target': + this.setTarget(newProp.target); + break; + case 'position': + this.checkPositionData(); + if (this.isModal) { + var positionX = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.position) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.position.X) ? oldProp.position.X : this.position.X; + var positionY = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.position) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(oldProp.position.Y) ? oldProp.position.Y : this.position.Y; + if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) { + this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY); + } + } + this.positionChange(); + this.updatePersistData(); + break; + case 'enableRtl': + this.setEnableRTL(); + break; + case 'enableResize': + this.setResize(); + break; + case 'minHeight': + if (this.minHeight !== '') { + this.element.style.minHeight = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.minHeight); + } + break; + } + } + }; + Dialog.prototype.setTarget = function (target) { + this.popupObj.relateTo = target; + this.target = target; + this.targetEle = ((typeof this.target) === 'string') ? + document.querySelector(this.target) : this.target; + if (this.dragObj) { + this.dragObj.dragArea = this.targetEle; + } + this.setMaxHeight(); + if (this.isModal) { + this.updateIsModal(); + } + if (this.enableResize) { + this.setResize(); + } + }; + Dialog.prototype.updateIsModal = function () { + this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false'); + if (this.isModal) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dlgOverlay)) { + this.setIsModal(); + this.element.style.top = '0px'; + this.element.style.left = '0px'; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetEle)) { + this.targetEle.appendChild(this.dlgContainer); + } + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], MODAL_DLG); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.dlgOverlay); + while (this.dlgContainer.firstChild) { + this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer); + } + this.dlgContainer.parentElement.removeChild(this.dlgContainer); + } + if (this.visible) { + this.show(); + } + this.positionChange(); + if (this.isModal && this.dlgOverlay) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this); + } + }; + Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) { + var prevOnChange = this.isProtectedOnChange; + this.isProtectedOnChange = true; + var currentzIndex = Object(_popup_popup__WEBPACK_IMPORTED_MODULE_2__["getZindexPartial"])(zIndexElement); + this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex; + this.isProtectedOnChange = prevOnChange; + if (setPopupZindex) { + this.popupObj.zIndex = this.zIndex; + } + }; + Dialog.prototype.windowResizeHandler = function () { + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["setMaxWidth"])(this.targetEle.clientWidth); + Object(_common_resize__WEBPACK_IMPORTED_MODULE_3__["setMaxHeight"])(this.targetEle.clientHeight); + this.setMaxHeight(); + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {void} + * @private + */ + Dialog.prototype.getPersistData = function () { + return this.addOnPersist(['width', 'height', 'position']); + }; + /** + * To destroy the widget + * + * @returns {void} + */ + Dialog.prototype.destroy = function () { + if (this.isDestroyed) { + return; + } + var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE]; + var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style']; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element) && this.element.classList.contains(FULLSCREEN)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + } + if (this.isModal) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([(!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED); + } + this.unWireEvents(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.btnObj)) { + for (var i = 0; i < this.btnObj.length; i++) { + this.btnObj[i].destroy(); + } + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.closeIconBtnObj)) { + this.closeIconBtnObj.destroy(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dragObj)) { + this.dragObj.destroy(); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) { + this.popupObj.destroy(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classArray); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.cssClass) && this.cssClass !== '') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], this.cssClass.split(' ')); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.refElement) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.refElement.parentElement)) { + this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.refElement); + this.refElement = undefined; + } + if (this.isModal && !this.isBlazorServerRender()) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.dlgOverlay); + this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.dlgContainer); + } + if (!this.isBlazorServerRender()) { + this.element.innerHTML = this.clonedEle.innerHTML; + } + if (this.isBlazorServerRender()) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.children)) { + for (var i = 0; i <= this.element.children.length; i++) { + i = i - i; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element.children[i]); + } + } + } + for (var i = 0; i < attrs.length; i++) { + this.element.removeAttribute(attrs[i]); + } + if (!this.isBlazorServerRender()) { + _super.prototype.destroy.call(this); + } + else { + this.isDestroyed = true; + } + // eslint-disable-next-line + if (this.isReact) { + this.clearTemplate(); + } + }; + Dialog.prototype.wireWindowResizeEvent = function () { + window.addEventListener('resize', this.windowResizeHandler.bind(this)); + }; + Dialog.prototype.unWireWindowResizeEvent = function () { + window.removeEventListener('resize', this.windowResizeHandler.bind(this)); + }; + /** + * Binding event to the element while widget creation + * + * @returns {void} + * @hidden + */ + Dialog.prototype.wireEvents = function () { + if (this.isBlazorServerRender() && this.showCloseIcon) { + this.closeIcon = this.element.getElementsByClassName('e-dlg-closeicon-btn')[0]; + } + if (this.showCloseIcon) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.closeIcon, 'click', this.closeIconClickEventHandler, this); + } + if (this.isModal && this.dlgOverlay) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this); + } + }; + /** + * Unbinding event to the element while widget destroy + * + * @returns {void} + * @hidden + */ + Dialog.prototype.unWireEvents = function () { + if (this.showCloseIcon) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.closeIcon, 'click', this.closeIconClickEventHandler); + } + if (this.isModal) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler); + } + if (this.buttons.length > 0 && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.buttons[0].buttonModel) && this.footerTemplate === '') { + for (var i = 0; i < this.buttons.length; i++) { + if (typeof (this.buttons[i].click) === 'function') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click); + } + } + } + }; + /** + * Refreshes the dialog's position when the user changes its header and footer height/width dynamically. + * + * @returns {void} + */ + Dialog.prototype.refreshPosition = function () { + this.popupObj.refreshPosition(); + }; + /** + * Returns the current width and height of the Dialog + * + * @returns {DialogDimension}- returns the dialog element Dimension. + * @public + */ + Dialog.prototype.getDimension = function () { + var dialogWidth = this.element.offsetWidth; + var dialogHeight = this.element.offsetHeight; + return { width: dialogWidth, height: dialogHeight }; + }; + /** + * Opens the dialog if it is in hidden state. + * To open the dialog with full screen width, set the parameter to true. + * + * @param { boolean } isFullScreen - Enable the fullScreen Dialog. + * @returns {void} + */ + Dialog.prototype.show = function (isFullScreen) { + var _this = this; + if (!this.element.classList.contains(ROOT)) { + return; + } + if (!this.element.classList.contains(DLG_SHOW) || (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(isFullScreen))) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(isFullScreen)) { + this.fullScreen(isFullScreen); + } + var eventArgs_1 = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? { + cancel: false, + element: this.element, + container: this.isModal ? this.dlgContainer : this.element, + maxHeight: this.element.style.maxHeight + } : { + cancel: false, + element: this.element, + container: this.isModal ? this.dlgContainer : this.element, + target: this.target, + maxHeight: this.element.style.maxHeight + }; + this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) { + if (!beforeOpenArgs.cancel) { + if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) { + _this.allowMaxHeight = false; + _this.element.style.maxHeight = eventArgs_1.maxHeight; + } + _this.storeActiveElement = document.activeElement; + _this.element.tabIndex = -1; + if (_this.isModal && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.dlgOverlay))) { + _this.dlgOverlay.style.display = 'block'; + _this.dlgContainer.style.display = 'flex'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.dlgOverlay], 'e-fade'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.targetEle)) { + if (_this.targetEle === document.body) { + _this.dlgContainer.style.position = 'fixed'; + } + else { + _this.dlgContainer.style.position = 'absolute'; + } + _this.dlgOverlay.style.position = 'absolute'; + _this.element.style.position = 'relative'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + } + } + var openAnimation = { + name: _this.animationSettings.effect + 'In', + duration: _this.animationSettings.duration, + delay: _this.animationSettings.delay + }; + var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element; + if (_this.calculatezIndex) { + _this.setzIndex(zIndexElement, true); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(_this.element, { 'zIndex': _this.zIndex }); + if (_this.isModal) { + _this.setOverlayZindex(_this.zIndex); + } + } + // eslint-disable-next-line + _this.animationSettings.effect === 'None' ? _this.popupObj.show() : _this.popupObj.show(openAnimation); + _this.dialogOpen = true; + var prevOnChange = _this.isProtectedOnChange; + _this.isProtectedOnChange = true; + _this.visible = true; + _this.preventVisibility = true; + _this.isProtectedOnChange = prevOnChange; + } + }); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (this.isReact) { + this.renderReactTemplates(); + } + }; + /** + * Closes the dialog if it is in visible state. + * + * @param { Event } event - specifies the event + * @returns {void} + */ + Dialog.prototype.hide = function (event) { + var _this = this; + if (!this.element.classList.contains(ROOT)) { + return; + } + if (this.preventVisibility) { + var eventArgs = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isBlazor"])() ? { + cancel: false, + isInteracted: event ? true : false, + element: this.element, + container: this.isModal ? this.dlgContainer : this.element, + event: event + } : { + cancel: false, + isInteracted: event ? true : false, + element: this.element, + target: this.target, + container: this.isModal ? this.dlgContainer : this.element, + event: event, + closedBy: this.dlgClosedBy + }; + this.closeArgs = eventArgs; + this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) { + if (!beforeCloseArgs.cancel) { + if (_this.isModal) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(_this.targetEle)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]); + } + } + if (document.body.classList.contains(DLG_TARGET) && + document.body.classList.contains(SCROLL_DISABLED)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + } + var closeAnimation = { + name: _this.animationSettings.effect + 'Out', + duration: _this.animationSettings.duration, + delay: _this.animationSettings.delay + }; + // eslint-disable-next-line + _this.animationSettings.effect === 'None' ? _this.popupObj.hide() : _this.popupObj.hide(closeAnimation); + _this.dialogOpen = false; + var prevOnChange = _this.isProtectedOnChange; + _this.isProtectedOnChange = true; + _this.visible = false; + _this.preventVisibility = false; + _this.isProtectedOnChange = prevOnChange; + } + _this.dlgClosedBy = DLG_USER_ACTION_CLOSED; + }); + } + }; + // eslint-disable-next-line + /** + * Specifies to view the Full screen Dialog. + * + * @returns {void} + * @private + */ + Dialog.prototype.fullScreen = function (args) { + /* eslint-disable */ + var top = this.element.offsetTop; + var left = this.element.offsetLeft; + /* eslint-enable */ + if (args) { + this.element.style.top = document.scrollingElement.scrollTop + 'px'; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], FULLSCREEN); + var display = this.element.style.display; + this.element.style.display = 'none'; + this.element.style.maxHeight = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) ? + (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px'; + this.element.style.display = display; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + if (this.allowDragging && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.dragObj)) { + this.dragObj.destroy(); + } + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], FULLSCREEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([document.body], [DLG_TARGET, SCROLL_DISABLED]); + if (this.allowDragging && (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.headerContent))) { + this.setAllowDragging(); + } + } + return args; + }; + /** + * Returns the dialog button instances. + * Based on that, you can dynamically change the button states. + * + * @param { number } index - Index of the button. + * @returns {Button} - returns the button element + */ + Dialog.prototype.getButtons = function (index) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(index)) { + return this.btnObj[index]; + } + return this.btnObj; + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Dialog.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Dialog.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Dialog.prototype, "enablePersistence", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Dialog.prototype, "showCloseIcon", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Dialog.prototype, "isModal", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Dialog.prototype, "header", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Dialog.prototype, "visible", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Dialog.prototype, "enableResize", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(['South-East']) + ], Dialog.prototype, "resizeHandles", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Dialog.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Dialog.prototype, "minHeight", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('100%') + ], Dialog.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Dialog.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1000) + ], Dialog.prototype, "zIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Dialog.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Dialog.prototype, "footerTemplate", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Dialog.prototype, "allowDragging", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([{}], ButtonProps) + ], Dialog.prototype, "buttons", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Dialog.prototype, "closeOnEscape", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, AnimationSettings) + ], Dialog.prototype, "animationSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({ X: 'center', Y: 'center' }, _popup_popup__WEBPACK_IMPORTED_MODULE_2__["PositionData"]) + ], Dialog.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "beforeSanitizeHtml", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "close", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "dragStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "dragStop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "drag", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "overlayClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "resizeStart", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "resizing", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "resizeStop", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Dialog.prototype, "destroyed", void 0); + Dialog = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Dialog); + return Dialog; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + +/** + * Base for creating Alert and Confirmation Dialog through util method. + */ +// eslint-disable-next-line +var DialogUtility; +(function (DialogUtility) { + /** + * An alert dialog box is used to display warning like messages to the users. + * ``` + * Eg : DialogUtility.alert('Alert message'); + * + * ``` + */ + /* istanbul ignore next */ + /** + * + * @param {AlertDialogArgs} args - specifies the string + * @returns {Dialog} - returns the dialog element. + */ + function alert(args) { + // eslint-disable-next-line + var dialogComponent; + var dialogElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { 'className': DLG_UTIL_ALERT }); + document.body.appendChild(dialogElement); + var alertDialogObj; + var okButtonModel = [{ + buttonModel: { isPrimary: true, content: 'OK' }, + click: function () { + this.hide(); + } + }]; + if (typeof (args) === 'string') { + alertDialogObj = createDialog({ content: args, + position: { X: 'center', Y: 'top' }, + isModal: true, header: DLG_UTIL_DEFAULT_TITLE, + buttons: okButtonModel }, dialogElement); + } + else { + alertDialogObj = createDialog(alertOptions(args), dialogElement); + } + alertDialogObj.close = function () { + if (args && args.close) { + args.close.apply(alertDialogObj); + } + alertDialogObj.destroy(); + if (alertDialogObj.element.classList.contains('e-dlg-modal')) { + alertDialogObj.element.parentElement.remove(); + alertDialogObj.target.classList.remove(DLG_UTIL_ROOT); + } + else { + alertDialogObj.element.remove(); + } + }; + return alertDialogObj; + } + DialogUtility.alert = alert; + /** + * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button. + * ``` + * Eg : DialogUtility.confirm('Confirm dialog message'); + * + * ``` + */ + /* istanbul ignore next */ + /** + * + * @param {ConfirmDialogArgs} args - specifies the args + * @returns {Dialog} - returns te element + */ + function confirm(args) { + // eslint-disable-next-line + var dialogComponent; + var dialogElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"])('div', { 'className': DLG_UTIL_CONFIRM }); + document.body.appendChild(dialogElement); + var confirmDialogObj; + var okCancelButtonModel = [{ + buttonModel: { isPrimary: true, content: 'OK' }, + click: function () { + this.hide(); + } + }, { + buttonModel: { content: 'Cancel' }, + click: function () { + this.hide(); + } + }]; + if (typeof (args) === 'string') { + confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true, + header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel + }, dialogElement); + } + else { + confirmDialogObj = createDialog(confirmOptions(args), dialogElement); + } + confirmDialogObj.close = function () { + if (args && args.close) { + args.close.apply(confirmDialogObj); + } + confirmDialogObj.destroy(); + if (confirmDialogObj.element.classList.contains('e-dlg-modal')) { + confirmDialogObj.element.parentElement.remove(); + confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT); + } + else { + confirmDialogObj.element.remove(); + } + }; + return confirmDialogObj; + } + DialogUtility.confirm = confirm; + // eslint-disable-next-line + function createDialog(options, element) { + var dialogObject = new Dialog(options); + dialogObject.appendTo(element); + return dialogObject; + } + // eslint-disable-next-line + function alertOptions(option) { + var options = {}; + options.buttons = []; + options = formOptions(options, option); + options = setAlertButtonModel(options, option); + return options; + } + // eslint-disable-next-line + function confirmOptions(option) { + var options = {}; + options.buttons = []; + options = formOptions(options, option); + options = setConfirmButtonModel(options, option); + return options; + } + // eslint-disable-next-line + function formOptions(options, option) { + options.header = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.title) ? option.title : null; + options.content = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.content) ? option.content : ''; + options.isModal = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.isModal) ? option.isModal : true; + options.showCloseIcon = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.showCloseIcon) ? option.showCloseIcon : false; + options.allowDragging = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.isDraggable) ? option.isDraggable : false; + options.closeOnEscape = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.closeOnEscape) ? option.closeOnEscape : false; + options.position = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.position) ? option.position : { X: 'center', Y: 'top' }; + options.animationSettings = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.animationSettings) ? option.animationSettings : + { effect: 'Fade', duration: 400, delay: 0 }; + options.cssClass = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.cssClass) ? option.cssClass : ''; + options.zIndex = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.zIndex) ? option.zIndex : 1000; + options.open = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.open) ? option.open : null; + options.width = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.width) ? option.width : 'auto'; + options.height = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.height) ? option.height : 'auto'; + return options; + } + // eslint-disable-next-line + function setAlertButtonModel(options, option) { + var alertButtonModel = [{ + buttonModel: { isPrimary: true, content: 'OK' }, + click: function () { + this.hide(); + } + }]; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.okButton)) { + options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]); + } + else { + options.buttons = alertButtonModel; + } + return options; + } + // eslint-disable-next-line + function setConfirmButtonModel(options, option) { + var okButtonModel = { + buttonModel: { isPrimary: true, content: 'OK' }, + click: function () { + this.hide(); + } + }; + var cancelButtonModel = { + buttonModel: { content: 'Cancel' }, + click: function () { + this.hide(); + } + }; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.okButton)) { + options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel); + } + else { + options.buttons[0] = okButtonModel; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.cancelButton)) { + options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel); + } + else { + options.buttons[1] = cancelButtonModel; + } + return options; + } + // eslint-disable-next-line + function formButtonModel(buttonModel, option, buttonPropModel) { + var buttonProps = buttonPropModel; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.text)) { + buttonProps.buttonModel.content = option.text; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.icon)) { + buttonProps.buttonModel.iconCss = option.icon; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.cssClass)) { + buttonProps.buttonModel.cssClass = option.cssClass; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(option.click)) { + buttonProps.click = option.click; + } + return buttonProps; + } +})(DialogUtility || (DialogUtility = {})); + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/dialog/index.js": +/*!******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/dialog/index.js ***! + \******************************************************************/ +/*! exports provided: ButtonProps, AnimationSettings, Dialog, DialogUtility */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dialog */ "./ej2-resources/22.1.37/scripts/ej2-popups/dialog/dialog.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonProps", function() { return _dialog__WEBPACK_IMPORTED_MODULE_0__["ButtonProps"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return _dialog__WEBPACK_IMPORTED_MODULE_0__["AnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _dialog__WEBPACK_IMPORTED_MODULE_0__["Dialog"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogUtility", function() { return _dialog__WEBPACK_IMPORTED_MODULE_0__["DialogUtility"]; }); + +/** + * Dialog Component + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js": +/*!***********************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/index.js ***! + \***********************************************************/ +/*! exports provided: PositionData, Popup, getScrollableParent, getZindexPartial, getMaxZindex, calculateRelativeBasedPosition, calculatePosition, fit, isCollide, flip, ButtonProps, AnimationSettings, Dialog, DialogUtility, Animation, Tooltip, Spinner, createSpinner, showSpinner, hideSpinner, setSpinner */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _popup_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popup/index */ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositionData", function() { return _popup_index__WEBPACK_IMPORTED_MODULE_0__["PositionData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _popup_index__WEBPACK_IMPORTED_MODULE_0__["Popup"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollableParent", function() { return _popup_index__WEBPACK_IMPORTED_MODULE_0__["getScrollableParent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getZindexPartial", function() { return _popup_index__WEBPACK_IMPORTED_MODULE_0__["getZindexPartial"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaxZindex", function() { return _popup_index__WEBPACK_IMPORTED_MODULE_0__["getMaxZindex"]; }); + +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculateRelativeBasedPosition", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["calculateRelativeBasedPosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "calculatePosition", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fit", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["fit"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCollide", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["isCollide"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flip", function() { return _common_index__WEBPACK_IMPORTED_MODULE_1__["flip"]; }); + +/* harmony import */ var _dialog_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dialog/index */ "./ej2-resources/22.1.37/scripts/ej2-popups/dialog/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ButtonProps", function() { return _dialog_index__WEBPACK_IMPORTED_MODULE_2__["ButtonProps"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return _dialog_index__WEBPACK_IMPORTED_MODULE_2__["AnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dialog", function() { return _dialog_index__WEBPACK_IMPORTED_MODULE_2__["Dialog"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DialogUtility", function() { return _dialog_index__WEBPACK_IMPORTED_MODULE_2__["DialogUtility"]; }); + +/* harmony import */ var _tooltip_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tooltip/index */ "./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Animation", function() { return _tooltip_index__WEBPACK_IMPORTED_MODULE_3__["Animation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _tooltip_index__WEBPACK_IMPORTED_MODULE_3__["Tooltip"]; }); + +/* harmony import */ var _spinner_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./spinner/index */ "./ej2-resources/22.1.37/scripts/ej2-popups/spinner/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _spinner_index__WEBPACK_IMPORTED_MODULE_4__["Spinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSpinner", function() { return _spinner_index__WEBPACK_IMPORTED_MODULE_4__["createSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "showSpinner", function() { return _spinner_index__WEBPACK_IMPORTED_MODULE_4__["showSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hideSpinner", function() { return _spinner_index__WEBPACK_IMPORTED_MODULE_4__["hideSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSpinner", function() { return _spinner_index__WEBPACK_IMPORTED_MODULE_4__["setSpinner"]; }); + +/** + * Popup Components + */ + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/index.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/popup/index.js ***! + \*****************************************************************/ +/*! exports provided: PositionData, Popup, getScrollableParent, getZindexPartial, getMaxZindex */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./popup */ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/popup.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositionData", function() { return _popup__WEBPACK_IMPORTED_MODULE_0__["PositionData"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return _popup__WEBPACK_IMPORTED_MODULE_0__["Popup"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getScrollableParent", function() { return _popup__WEBPACK_IMPORTED_MODULE_0__["getScrollableParent"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getZindexPartial", function() { return _popup__WEBPACK_IMPORTED_MODULE_0__["getZindexPartial"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMaxZindex", function() { return _popup__WEBPACK_IMPORTED_MODULE_0__["getMaxZindex"]; }); + +/** + * Popup Components + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/popup.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/popup/popup.js ***! + \*****************************************************************/ +/*! exports provided: PositionData, Popup, getScrollableParent, getZindexPartial, getMaxZindex */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PositionData", function() { return PositionData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Popup", function() { return Popup; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollableParent", function() { return getScrollableParent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getZindexPartial", function() { return getZindexPartial; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxZindex", function() { return getMaxZindex; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _common_position__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/position */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js"); +/* harmony import */ var _common_collision__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/collision */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/collision.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + +/** + * Specifies the offset position values. + */ +var PositionData = /** @__PURE__ @class */ (function (_super) { + __extends(PositionData, _super); + function PositionData() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('left') + ], PositionData.prototype, "X", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('top') + ], PositionData.prototype, "Y", void 0); + return PositionData; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +// don't use space in classNames +var CLASSNAMES = { + ROOT: 'e-popup', + RTL: 'e-rtl', + OPEN: 'e-popup-open', + CLOSE: 'e-popup-close' +}; +/** + * Represents the Popup Component + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var Popup = /** @__PURE__ @class */ (function (_super) { + __extends(Popup, _super); + function Popup(element, options) { + return _super.call(this, options, element) || this; + } + /** + * Called internally if any of the property value changed. + * + * @param {PopupModel} newProp - specifies the new property + * @param {PopupModel} oldProp - specifies the old property + * @private + * @returns {void} + */ + Popup.prototype.onPropertyChanged = function (newProp, oldProp) { + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'width': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width) }); + break; + case 'height': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'height': Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height) }); + break; + case 'zIndex': + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'zIndex': newProp.zIndex }); + break; + case 'enableRtl': + this.setEnableRtl(); + break; + case 'position': + case 'relateTo': + this.refreshPosition(); + break; + case 'offsetX': + // eslint-disable-next-line + var x = newProp.offsetX - oldProp.offsetX; + this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px'; + break; + case 'offsetY': + // eslint-disable-next-line + var y = newProp.offsetY - oldProp.offsetY; + this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px'; + break; + case 'content': + this.setContent(); + break; + case 'actionOnScroll': + if (newProp.actionOnScroll !== 'none') { + this.wireScrollEvents(); + } + else { + this.unwireScrollEvents(); + } + break; + } + } + }; + /** + * gets the Component module name. + * + * @returns {void} + * @private + */ + Popup.prototype.getModuleName = function () { + return 'popup'; + }; + /** + * To resolve if any collision occurs. + * + * @returns {void} + */ + Popup.prototype.resolveCollision = function () { + this.checkCollision(); + }; + /** + * gets the persisted state properties of the Component. + * + * @returns {void} + */ + Popup.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * To destroy the control. + * + * @returns {void} + */ + Popup.prototype.destroy = function () { + if (this.element.classList.contains('e-popup-open')) { + this.unwireEvents(); + } + this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE); + this.content = null; + this.relateTo = null; + _super.prototype.destroy.call(this); + }; + /** + * To Initialize the control rendering + * + * @returns {void} + * @private + */ + Popup.prototype.render = function () { + this.element.classList.add(CLASSNAMES.ROOT); + var styles = {}; + if (this.zIndex !== 1000) { + styles.zIndex = this.zIndex; + } + if (this.width !== 'auto') { + styles.width = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width); + } + if (this.height !== 'auto') { + styles.height = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, styles); + this.fixedParent = false; + this.setEnableRtl(); + this.setContent(); + }; + Popup.prototype.wireEvents = function () { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'orientationchange', this.orientationOnChange, this); + } + if (this.actionOnScroll !== 'none') { + this.wireScrollEvents(); + } + }; + Popup.prototype.wireScrollEvents = function () { + if (this.getRelateToElement()) { + for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) { + var parent_1 = _a[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(parent_1, 'scroll', this.scrollRefresh, this); + } + } + }; + Popup.prototype.unwireEvents = function () { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'orientationchange', this.orientationOnChange); + } + if (this.actionOnScroll !== 'none') { + this.unwireScrollEvents(); + } + }; + Popup.prototype.unwireScrollEvents = function () { + if (this.getRelateToElement()) { + for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) { + var parent_2 = _a[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(parent_2, 'scroll', this.scrollRefresh); + } + } + }; + Popup.prototype.getRelateToElement = function () { + var relateToElement = this.relateTo === '' || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.relateTo) ? + document.body : this.relateTo; + this.setProperties({ relateTo: relateToElement }, true); + return ((typeof this.relateTo) === 'string') ? + document.querySelector(this.relateTo) : this.relateTo; + }; + Popup.prototype.scrollRefresh = function (e) { + if (this.actionOnScroll === 'reposition') { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element) && !(this.element.offsetParent === e.target || + (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' && + e.target.parentElement == null))) { + this.refreshPosition(); + } + } + else if (this.actionOnScroll === 'hide') { + this.hide(); + } + if (this.actionOnScroll !== 'none') { + if (this.getRelateToElement()) { + var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target); + if (!targetVisible && !this.targetInvisibleStatus) { + this.trigger('targetExitViewport'); + this.targetInvisibleStatus = true; + } + else if (targetVisible) { + this.targetInvisibleStatus = false; + } + } + } + }; + /** + * This method is to get the element visibility on viewport when scroll + * the page. This method will returns true even though 1 px of element + * part is in visible. + * + * @param {HTMLElement} relateToElement - specifies the element + * @param {HTMLElement} scrollElement - specifies the scroll element + * @returns {boolean} - retruns the boolean + */ + // eslint-disable-next-line + Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) { + var scrollParents = this.getScrollableParent(relateToElement); + for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) { + if (this.isElementVisible(relateToElement, scrollParents[parent_3])) { + continue; + } + else { + return false; + } + } + return true; + }; + Popup.prototype.isElementVisible = function (relateToElement, scrollElement) { + var rect = this.checkGetBoundingClientRect(relateToElement); + if (!rect.height || !rect.width) { + return false; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.checkGetBoundingClientRect(scrollElement))) { + var parent_4 = scrollElement.getBoundingClientRect(); + return !(rect.bottom < parent_4.top) && + (!(rect.bottom > parent_4.bottom) && + (!(rect.right > parent_4.right) && + !(rect.left < parent_4.left))); + } + else { + var win = window; + var windowView = { + top: win.scrollY, + left: win.scrollX, + right: win.scrollX + win.outerWidth, + bottom: win.scrollY + win.outerHeight + }; + var off = Object(_common_position__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"])(relateToElement); + var ele = { + top: off.top, + left: off.left, + right: off.left + rect.width, + bottom: off.top + rect.height + }; + var elementView = { + top: windowView.bottom - ele.top, + left: windowView.right - ele.left, + bottom: ele.bottom - windowView.top, + right: ele.right - windowView.left + }; + return elementView.top > 0 + && elementView.left > 0 + && elementView.right > 0 + && elementView.bottom > 0; + } + }; + /** + * Initialize the event handler + * + * @returns {void} + * @private + */ + Popup.prototype.preRender = function () { + //There is no event handler + }; + Popup.prototype.setEnableRtl = function () { + this.reposition(); + // eslint-disable-next-line + this.enableRtl ? this.element.classList.add(CLASSNAMES.RTL) : this.element.classList.remove(CLASSNAMES.RTL); + }; + Popup.prototype.setContent = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content)) { + this.element.innerHTML = ''; + if (typeof (this.content) === 'string') { + this.element.textContent = this.content; + } + else { + var relateToElem = this.getRelateToElement(); + // eslint-disable-next-line + var props = this.content.props; + if (!relateToElem.classList.contains('e-dropdown-btn') || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(props)) { + this.element.appendChild(this.content); + } + } + } + }; + Popup.prototype.orientationOnChange = function () { + var _this = this; + setTimeout(function () { + _this.refreshPosition(); + }, 200); + }; + // eslint-disable-next-line + /** + * Based on the `relative` element and `offset` values, `Popup` element position will refreshed. + * + * @returns {void} + */ + Popup.prototype.refreshPosition = function (target, collision) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target)) { + this.checkFixedParent(target); + } + this.reposition(); + if (!collision) { + this.checkCollision(); + } + }; + Popup.prototype.reposition = function () { + var pos; + var position; + var relateToElement = this.getRelateToElement(); + if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') { + pos = { left: this.position.X, top: this.position.Y }; + } + else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') || + (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) { + var parentDisplay = void 0; + var display = this.element.style.display; + this.element.style.display = 'block'; + if (this.element.classList.contains('e-dlg-modal')) { + parentDisplay = this.element.parentElement.style.display; + this.element.parentElement.style.display = 'block'; + } + position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY); + if (typeof this.position.X === 'string') { + pos = { left: position.left, top: this.position.Y }; + } + else { + pos = { left: this.position.X, top: position.top }; + } + this.element.style.display = display; + if (this.element.classList.contains('e-dlg-modal')) { + this.element.parentElement.style.display = parentDisplay; + } + } + else if (relateToElement) { + var display = this.element.style.display; + this.element.style.display = 'block'; + pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY); + this.element.style.display = display; + } + else { + pos = { left: 0, top: 0 }; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(pos)) { + this.element.style.left = pos.left + 'px'; + this.element.style.top = pos.top + 'px'; + } + }; + Popup.prototype.checkGetBoundingClientRect = function (ele) { + var eleRect; + try { + eleRect = ele.getBoundingClientRect(); + return eleRect; + } + catch (error) { + return null; + } + }; + Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY) { + var eleRect = this.checkGetBoundingClientRect(ele); + var anchorRect = this.checkGetBoundingClientRect(anchorEle); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(eleRect) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(anchorRect)) { + return null; + } + var anchor = anchorEle; + var anchorPos = { left: 0, top: 0 }; + if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') { + anchorPos = Object(_common_position__WEBPACK_IMPORTED_MODULE_1__["calculatePosition"])(anchorEle); + } + else { + if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) { + ele = ele.parentElement; + } + anchorPos = Object(_common_position__WEBPACK_IMPORTED_MODULE_1__["calculateRelativeBasedPosition"])(anchor, ele); + } + switch (position.X) { + default: + case 'left': + break; + case 'center': + if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) { + anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2); + } + else if (this.targetType === 'container') { + anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2); + } + else { + anchorPos.left += (anchorRect.width / 2); + } + break; + case 'right': + if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) { + anchorPos.left += (window.innerWidth - eleRect.width); + } + else if (this.targetType === 'container') { + anchorPos.left += (anchorRect.width - eleRect.width); + } + else { + anchorPos.left += (anchorRect.width); + } + break; + } + switch (position.Y) { + default: + case 'top': + break; + case 'center': + if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) { + anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2); + } + else if (this.targetType === 'container') { + anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2); + } + else { + anchorPos.top += (anchorRect.height / 2); + } + break; + case 'bottom': + if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) { + anchorPos.top += (window.innerHeight - eleRect.height); + } + else if (this.targetType === 'container') { + anchorPos.top += (anchorRect.height - eleRect.height); + } + else { + anchorPos.top += (anchorRect.height); + } + break; + } + anchorPos.left += offsetX; + anchorPos.top += offsetY; + return anchorPos; + }; + Popup.prototype.callFlip = function (param) { + var relateToElement = this.getRelateToElement(); + Object(_common_collision__WEBPACK_IMPORTED_MODULE_2__["flip"])(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent); + }; + Popup.prototype.callFit = function (param) { + if (Object(_common_collision__WEBPACK_IMPORTED_MODULE_2__["isCollide"])(this.element, this.viewPortElement).length !== 0) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.viewPortElement)) { + var data = Object(_common_collision__WEBPACK_IMPORTED_MODULE_2__["fit"])(this.element, this.viewPortElement, param); + if (param.X) { + this.element.style.left = data.left + 'px'; + } + if (param.Y) { + this.element.style.top = data.top + 'px'; + } + } + else { + var elementRect = this.checkGetBoundingClientRect(this.element); + var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(elementRect) || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(viewPortRect)) { + return null; + } + if (param && param.Y === true) { + if (viewPortRect.top > elementRect.top) { + this.element.style.top = '0px'; + } + else if (viewPortRect.bottom < elementRect.bottom) { + this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px'; + } + } + if (param && param.X === true) { + if (viewPortRect.right < elementRect.right) { + this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px'; + } + else if (viewPortRect.left > elementRect.left) { + this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px'; + } + } + } + } + }; + Popup.prototype.checkCollision = function () { + var horz = this.collision.X; + var vert = this.collision.Y; + if (horz === 'none' && vert === 'none') { + return; + } + if (horz === 'flip' && vert === 'flip') { + this.callFlip({ X: true, Y: true }); + } + else if (horz === 'fit' && vert === 'fit') { + this.callFit({ X: true, Y: true }); + } + else { + if (horz === 'flip') { + this.callFlip({ X: true, Y: false }); + } + else if (vert === 'flip') { + this.callFlip({ Y: true, X: false }); + } + if (horz === 'fit') { + this.callFit({ X: true, Y: false }); + } + else if (vert === 'fit') { + this.callFit({ X: false, Y: true }); + } + } + }; + /** + * Shows the popup element from screen. + * + * @returns {void} + * @param {AnimationModel} animationOptions - specifies the model + * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically. + */ + Popup.prototype.show = function (animationOptions, relativeElement) { + var _this = this; + var relateToElement = this.getRelateToElement(); + if (relateToElement.classList.contains('e-filemanager')) { + this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0]; + } + this.wireEvents(); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.fmDialogContainer) && _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isIos) { + this.fmDialogContainer.style.display = 'block'; + } + if (this.zIndex === 1000 || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(relativeElement)) { + var zIndexElement = (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(relativeElement)) ? this.element : relativeElement; + this.zIndex = getZindexPartial(zIndexElement); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setStyleAttribute"])(this.element, { 'zIndex': this.zIndex }); + } + animationOptions = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animationOptions) && typeof animationOptions === 'object') ? + animationOptions : this.showAnimation; + if (this.collision.X !== 'none' || this.collision.Y !== 'none') { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLASSNAMES.CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLASSNAMES.OPEN); + this.checkCollision(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLASSNAMES.OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLASSNAMES.CLOSE); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animationOptions)) { + animationOptions.begin = function () { + if (!_this.isDestroyed) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], CLASSNAMES.CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], CLASSNAMES.OPEN); + } + }; + animationOptions.end = function () { + if (!_this.isDestroyed) { + _this.trigger('open'); + } + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animationOptions).animate(this.element); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLASSNAMES.CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLASSNAMES.OPEN); + this.trigger('open'); + } + }; + /** + * Hides the popup element from screen. + * + * @param {AnimationModel} animationOptions - To give the animation options. + * @returns {void} + */ + Popup.prototype.hide = function (animationOptions) { + var _this = this; + animationOptions = (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animationOptions) && typeof animationOptions === 'object') ? + animationOptions : this.hideAnimation; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animationOptions)) { + animationOptions.end = function () { + if (!_this.isDestroyed) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([_this.element], CLASSNAMES.OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], CLASSNAMES.CLOSE); + _this.trigger('close'); + } + }; + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"](animationOptions).animate(this.element); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], CLASSNAMES.OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], CLASSNAMES.CLOSE); + this.trigger('close'); + } + this.unwireEvents(); + }; + /** + * Gets scrollable parent elements for the given element. + * + * @returns {void} + * @param { HTMLElement } element - Specify the element to get the scrollable parents of it. + */ + Popup.prototype.getScrollableParent = function (element) { + this.checkFixedParent(element); + return getScrollableParent(element, this.fixedParent); + }; + Popup.prototype.checkFixedParent = function (element) { + var parent = element.parentElement; + while (parent && parent.tagName !== 'HTML') { + var parentStyle = getComputedStyle(parent); + if (parentStyle.position === 'fixed' && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element) && this.element.offsetParent && + this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') { + this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(window.scrollY - parseInt(this.element.style.top, 10)) + : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(parseInt(this.element.style.top, 10) - window.scrollY); + this.element.style.position = 'fixed'; + this.fixedParent = true; + } + parent = parent.parentElement; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element) && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.element.offsetParent) && parentStyle.position === 'fixed' + && this.element.style.position === 'fixed') { + this.fixedParent = true; + } + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Popup.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Popup.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Popup.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('container') + ], Popup.prototype, "targetType", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Popup.prototype, "viewPortElement", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ X: 'none', Y: 'none' }) + ], Popup.prototype, "collision", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Popup.prototype, "relateTo", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, PositionData) + ], Popup.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Popup.prototype, "offsetX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Popup.prototype, "offsetY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(1000) + ], Popup.prototype, "zIndex", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Popup.prototype, "enableRtl", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('reposition') + ], Popup.prototype, "actionOnScroll", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Popup.prototype, "showAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(null) + ], Popup.prototype, "hideAnimation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Popup.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Popup.prototype, "close", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Popup.prototype, "targetExitViewport", void 0); + Popup = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Popup); + return Popup; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + +/** + * Gets scrollable parent elements for the given element. + * + * @param { HTMLElement } element - Specify the element to get the scrollable parents of it. + * @param {boolean} fixedParent - specifies the parent element + * @private + * @returns {void} + */ +function getScrollableParent(element, fixedParent) { + var eleStyle = getComputedStyle(element); + var scrollParents = []; + var overflowRegex = /(auto|scroll)/; + var parent = element.parentElement; + while (parent && parent.tagName !== 'HTML') { + var parentStyle = getComputedStyle(parent); + if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static') + && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) { + scrollParents.push(parent); + } + parent = parent.parentElement; + } + if (!fixedParent) { + scrollParents.push(document); + } + return scrollParents; +} +/** + * Gets the maximum z-index of the given element. + * + * @returns {void} + * @param { HTMLElement } element - Specify the element to get the maximum z-index of it. + * @private + */ +function getZindexPartial(element) { + // upto body traversal + var parent = element.parentElement; + var parentZindex = []; + while (parent) { + if (parent.tagName !== 'BODY') { + var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index'); + var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position'); + if (index !== 'auto' && position !== 'static') { + parentZindex.push(index); + } + parent = parent.parentElement; + } + else { + break; + } + } + var childrenZindex = []; + for (var i = 0; i < document.body.children.length; i++) { + if (!element.isEqualNode(document.body.children[i])) { + var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index'); + var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position'); + if (index !== 'auto' && position !== 'static') { + childrenZindex.push(index); + } + } + } + childrenZindex.push('999'); + var siblingsZindex = []; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element.parentElement) && element.parentElement.tagName !== 'BODY') { + var childNodes = [].slice.call(element.parentElement.children); + for (var i = 0; i < childNodes.length; i++) { + if (!element.isEqualNode(childNodes[i])) { + var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index'); + var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position'); + if (index !== 'auto' && position !== 'static') { + siblingsZindex.push(index); + } + } + } + } + var finalValue = parentZindex.concat(childrenZindex, siblingsZindex); + // eslint-disable-next-line + var currentZindexValue = Math.max.apply(Math, finalValue) + 1; + return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue; +} +/** + * Gets the maximum z-index of the page. + * + * @returns {void} + * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it. + * @private + */ +function getMaxZindex(tagName) { + if (tagName === void 0) { tagName = ['*']; } + var maxZindex = []; + for (var i = 0; i < tagName.length; i++) { + var elements = document.getElementsByTagName(tagName[i]); + for (var i_1 = 0; i_1 < elements.length; i_1++) { + var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index'); + var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position'); + if (index !== 'auto' && position !== 'static') { + maxZindex.push(index); + } + } + } + // eslint-disable-next-line + var currentZindexValue = Math.max.apply(Math, maxZindex) + 1; + return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/spinner/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/spinner/index.js ***! + \*******************************************************************/ +/*! exports provided: Spinner, createSpinner, showSpinner, hideSpinner, setSpinner */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _spinner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./spinner */ "./ej2-resources/22.1.37/scripts/ej2-popups/spinner/spinner.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return _spinner__WEBPACK_IMPORTED_MODULE_0__["Spinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSpinner", function() { return _spinner__WEBPACK_IMPORTED_MODULE_0__["createSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "showSpinner", function() { return _spinner__WEBPACK_IMPORTED_MODULE_0__["showSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hideSpinner", function() { return _spinner__WEBPACK_IMPORTED_MODULE_0__["hideSpinner"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setSpinner", function() { return _spinner__WEBPACK_IMPORTED_MODULE_0__["setSpinner"]; }); + +/** + * spinner modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/spinner/spinner.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/spinner/spinner.js ***! + \*********************************************************************/ +/*! exports provided: Spinner, createSpinner, showSpinner, hideSpinner, setSpinner */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Spinner", function() { return Spinner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSpinner", function() { return createSpinner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showSpinner", function() { return showSpinner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideSpinner", function() { return hideSpinner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setSpinner", function() { return setSpinner; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); + +var globalTimeOut = {}; +var DEFT_MAT_WIDTH = 30; +var DEFT_MAT3_WIDTH = 30; +var DEFT_FAB_WIDTH = 30; +var DEFT_FLUENT_WIDTH = 30; +var DEFT_BOOT_WIDTH = 30; +var DEFT_BOOT4_WIDTH = 36; +var DEFT_BOOT5_WIDTH = 36; +var CLS_SHOWSPIN = 'e-spin-show'; +var CLS_HIDESPIN = 'e-spin-hide'; +var CLS_MATERIALSPIN = 'e-spin-material'; +var CLS_MATERIAL3SPIN = 'e-spin-material3'; +var CLS_FABRICSPIN = 'e-spin-fabric'; +var CLS_FLUENTSPIN = 'e-spin-fluent'; +var CLS_TAILWINDSPIN = 'e-spin-tailwind'; +var CLS_BOOTSPIN = 'e-spin-bootstrap'; +var CLS_BOOT4SPIN = 'e-spin-bootstrap4'; +var CLS_BOOT5SPIN = 'e-spin-bootstrap5'; +var CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast'; +var CLS_SPINWRAP = 'e-spinner-pane'; +var CLS_SPININWRAP = 'e-spinner-inner'; +var CLS_SPINCIRCLE = 'e-path-circle'; +var CLS_SPINARC = 'e-path-arc'; +var CLS_SPINLABEL = 'e-spin-label'; +var CLS_SPINTEMPLATE = 'e-spin-template'; +var spinTemplate = null; +var spinCSSClass = null; +// eslint-disable-next-line +/** + * Function to change the Spinners in a page globally from application end. + * ``` + * E.g : blazorSpinner({ action: "Create", options: {target: targetElement}, type: "" }); + * ``` + * + * @param {string} action - specifies the string + * @param {CreateArgs} options - specifies the args + * @param {string} target - specifies the target + * @param {string} type - specifes the type + * @returns {void} + * @private + */ +function Spinner(action, options, target, type) { + switch (action) { + case 'Create': + /* eslint-disable */ + var element = document.querySelector(options.target); + var args = { type: type, target: element, cssClass: options.cssClass, + label: options.label, width: options.width }; + /* eslint-enable */ + createSpinner(args); + break; + case 'Show': + showSpinner(document.querySelector(target)); + break; + case 'Hide': + hideSpinner(document.querySelector(target)); + break; + case 'Set': + // eslint-disable-next-line + var setArgs = { cssClass: options.cssClass, type: type }; + setSpinner(setArgs); + break; + } +} +/** + * Create a spinner for the specified target element. + * ``` + * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' }); + * ``` + * + * @param {SpinnerArgs} args - specifies the args + * @param {CreateElementArgs} internalCreateElement - specifis the element args + * @returns {void} + * @private + */ +function createSpinner(args, internalCreateElement) { + if (!args.target) { + return; + } + var radius; + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + // eslint-disable-next-line + var container = create_spinner_container(args.target, makeElement); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.cssClass)) { + container.wrap.classList.add(args.cssClass); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.template) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(spinTemplate)) { + var template = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.template) ? args.template : spinTemplate; + container.wrap.classList.add(CLS_SPINTEMPLATE); + replaceContent(container.wrap, template, spinCSSClass); + } + else { + var theme = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.type) ? args.type : getTheme(container.wrap); + var width = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.width) ? args.width : undefined; + radius = calculateRadius(width, theme); + setTheme(theme, container.wrap, radius, makeElement); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(args.label)) { + createLabel(container.inner_wrap, args.label, makeElement); + } + } + container.wrap.classList.add(CLS_HIDESPIN); + container = null; +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {string} label - specifies the string + * @param {createElementParams} makeElement - specifies the element + * @returns {HTMLElement} - returns the element + */ +function createLabel(container, label, makeElement) { + var labelEle = makeElement('div', {}); + labelEle.classList.add(CLS_SPINLABEL); + labelEle.innerHTML = label; + container.appendChild(labelEle); + return labelEle; +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createMaterialSpinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius }; + create_material_element(container, uniqueID, makeElement, CLS_MATERIALSPIN); + mat_calculate_attributes(radius, container, 'Material', CLS_MATERIALSPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createMaterial3Spinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Material3', radius: radius }; + create_material_element(container, uniqueID, makeElement, CLS_MATERIAL3SPIN); + mat_calculate_attributes(radius, container, 'Material3', CLS_MATERIAL3SPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createBootstrap4Spinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius }; + create_material_element(container, uniqueID, makeElement, CLS_BOOT4SPIN); + mat_calculate_attributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createBootstrap5Spinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius }; + create_material_element(container, uniqueID, makeElement, CLS_BOOT5SPIN); + mat_calculate_attributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {string} uniqueID - specifies the id. + * @param {number} radius - specifies the radius + * @returns {void} + */ +function startMatAnimate(container, uniqueID, radius) { + var globalObject = {}; + var timeOutVar = 0; + globalTimeOut["" + uniqueID].timeOut = 0; + globalObject["" + uniqueID] = globalVariables(uniqueID, radius, 0, 0); + // eslint-disable-next-line + var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar }; + animateMaterial(spinnerInfo); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createFabricSpinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius }; + create_fabric_element(container, uniqueID, CLS_FABRICSPIN, makeElement); + fb_calculate_attributes(radius, container, CLS_FABRICSPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createFluentSinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius }; + create_fabric_element(container, uniqueID, CLS_FLUENTSPIN, makeElement); + fb_calculate_attributes(radius, container, CLS_FLUENTSPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createTailwindSpinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius }; + create_fabric_element(container, uniqueID, CLS_TAILWINDSPIN, makeElement); + fb_calculate_attributes(radius, container, CLS_TAILWINDSPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createHighContrastSpinner(container, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius }; + create_fabric_element(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement); + fb_calculate_attributes(radius, container, CLS_HIGHCONTRASTSPIN); +} +/** + * + * @param {HTMLElement} container - specifies the element + * @returns {string} - returns the string + */ +function getTheme(container) { + var theme = window.getComputedStyle(container, ':after').getPropertyValue('content'); + return theme.replace(/['"]+/g, ''); +} +/** + * + * @param {string} theme - specifies the theme + * @param {HTMLElement} container - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function setTheme(theme, container, radius, makeElement) { + var innerContainer = container.querySelector('.' + CLS_SPININWRAP); + var svg = innerContainer.querySelector('svg'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(svg)) { + innerContainer.removeChild(svg); + } + switch (theme) { + case 'Material': + createMaterialSpinner(innerContainer, radius, makeElement); + break; + case 'Material3': + createMaterial3Spinner(innerContainer, radius, makeElement); + break; + case 'Fabric': + createFabricSpinner(innerContainer, radius, makeElement); + break; + case 'Fluent': + createFluentSinner(innerContainer, radius, makeElement); + break; + case 'Bootstrap': + createBootstrapSpinner(innerContainer, radius, makeElement); + break; + case 'HighContrast': + createHighContrastSpinner(innerContainer, radius, makeElement); + break; + case 'Bootstrap4': + createBootstrap4Spinner(innerContainer, radius, makeElement); + break; + case 'Bootstrap5': + createBootstrap5Spinner(innerContainer, radius, makeElement); + break; + case 'Tailwind': + case 'Tailwind-dark': + createTailwindSpinner(innerContainer, radius, makeElement); + break; + } +} +/** + * + * @param {HTMLElement} innerContainer - specifies the element + * @param {number} radius - specifies the radius + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +function createBootstrapSpinner(innerContainer, radius, makeElement) { + var uniqueID = random_generator(); + globalTimeOut["" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius }; + create_bootstrap_element(innerContainer, uniqueID, makeElement); + boot_calculate_attributes(innerContainer, radius); +} +/** + * + * @param {HTMLElement} innerContainer - specifies the element + * @param {string} uniqueID - specifies the id + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +// eslint-disable-next-line +function create_bootstrap_element(innerContainer, uniqueID, makeElement) { + var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + var viewBoxValue = 64; + var trans = 32; + var defaultRadius = 2; + svgBoot.setAttribute('id', uniqueID); + svgBoot.setAttribute('class', CLS_BOOTSPIN); + svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue); + innerContainer.insertBefore(svgBoot, innerContainer.firstChild); + for (var item = 0; item <= 7; item++) { + var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle'); + bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item); + bootCircle.setAttribute('r', defaultRadius + ''); + bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')'); + svgBoot.appendChild(bootCircle); + } +} +/** + * + * @param {HTMLElement} innerContainer - specifies the element + * @param {number} radius - specifies the radius + * @returns {void} + */ +// eslint-disable-next-line +function boot_calculate_attributes(innerContainer, radius) { + var svg = innerContainer.querySelector('svg.e-spin-bootstrap'); + var x = 0; + var y = 0; + var rad = 24; + svg.style.width = svg.style.height = radius + 'px'; + var startArc = 90; + for (var item = 0; item <= 7; item++) { + var start = defineArcPoints(x, y, rad, startArc); + var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item); + circleEle.setAttribute('cx', start.x + ''); + circleEle.setAttribute('cy', start.y + ''); + startArc = startArc >= 360 ? 0 : startArc; + startArc = startArc + 45; + } +} +/** + * + * @param {number} begin - specifies the number + * @param {number} stop - specifirs the number + * @returns {number[]} - returns the array of number + */ +function generateSeries(begin, stop) { + var series = []; + var start = begin; + var end = stop; + // eslint-disable-next-line + var increment = false, count = 1; + formSeries(start); + /** + * + * @param {number} i - specifies the number + * @returns {void} + */ + function formSeries(i) { + series.push(i); + if (i !== end || count === 1) { + if (i <= start && i > 1 && !increment) { + i = parseFloat((i - 0.2).toFixed(2)); + } + else if (i === 1) { + i = 7; + i = parseFloat((i + 0.2).toFixed(2)); + increment = true; + } + else if (i < 8 && increment) { + i = parseFloat((i + 0.2).toFixed(2)); + if (i === 8) { + increment = false; + } + } + else if (i <= 8 && !increment) { + i = parseFloat((i - 0.2).toFixed(2)); + } + ++count; + formSeries(i); + } + } + return series; +} +/** + * + * @param {HTMLElement} innerContainer - specifies the element + * @returns {void} + */ +function animateBootstrap(innerContainer) { + var svg = innerContainer.querySelector('svg.e-spin-bootstrap'); + var id = svg.getAttribute('id'); + for (var i = 1; i <= 8; i++) { + var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' + + (i === 8 ? 0 : i))[0]); + rotation(circleEle, i, i, generateSeries(i, i), id); + } + /** + * + * @param {SVGCircleElement} circle - specifies the circl element + * @param {number} start - specifies the number + * @param {number} end - specifies the end number + * @param {number} series - specifies the series + * @param {string} id - specifies the id + * @returns {void} + */ + function rotation(circle, start, end, series, id) { + var count = 0; + boot_animate(start); + // eslint-disable-next-line + function boot_animate(radius) { + if (globalTimeOut["" + id].isAnimate) { + ++count; + circle.setAttribute('r', radius + ''); + if (count >= series.length) { + count = 0; + } + // eslint-disable-next-line + globalTimeOut[id].timeOut = setTimeout(boot_animate.bind(null, series[count]), 18); + } + } + } +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {string} template - specifies the template + * @param {string} cssClass - specifies the css class. + * @returns {void} + */ +function replaceContent(container, template, cssClass) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cssClass)) { + container.classList.add(cssClass); + } + var inner = container.querySelector('.e-spinner-inner'); + inner.innerHTML = template; +} +/** + * + * @param {string} width - specifies the width + * @param {string} theme - specifies the string + * @returns {number} - returns the number + */ +function calculateRadius(width, theme) { + var defaultSize; + switch (theme) { + case 'Material': + defaultSize = DEFT_MAT_WIDTH; + break; + case 'Material3': + defaultSize = DEFT_MAT3_WIDTH; + break; + case 'Fabric': + defaultSize = DEFT_FAB_WIDTH; + break; + case 'Tailwind': + case 'Tailwind-dark': + defaultSize = DEFT_FAB_WIDTH; + break; + case 'Fluent': + defaultSize = DEFT_FLUENT_WIDTH; + break; + case 'Bootstrap4': + defaultSize = DEFT_BOOT4_WIDTH; + break; + case 'Bootstrap5': + defaultSize = DEFT_BOOT5_WIDTH; + break; + default: + defaultSize = DEFT_BOOT_WIDTH; + } + width = width ? parseFloat(width + '') : defaultSize; + return theme === 'Bootstrap' ? width : width / 2; +} +/** + * + * @param {string} id - specifies the id + * @param {number} radius - specifies the radius + * @param {number} count - specifies the number count + * @param {number} previousId - specifies the previous id + * @returns {GlobalVariables} - returns the variables + */ +function globalVariables(id, radius, count, previousId) { + return { + radius: radius, + count: count, + previousId: previousId + }; +} +/** + * @returns {string} - returns the string + */ +// eslint-disable-next-line +function random_generator() { + var random = ''; + var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (var i = 0; i < 5; i++) { + random += combine.charAt(Math.floor(Math.random() * combine.length)); + } + return random; +} +/** + * + * @param {HTMLElement} innerCon - specifies the element + * @param {string} uniqueID - specifies the unique id + * @param {string} themeClass - specifies the string + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +// eslint-disable-next-line +function create_fabric_element(innerCon, uniqueID, themeClass, makeElement) { + var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + svgFabric.setAttribute('id', uniqueID); + svgFabric.setAttribute('class', themeClass); + var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE); + var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + fabricCircleArc.setAttribute('class', CLS_SPINARC); + innerCon.insertBefore(svgFabric, innerCon.firstChild); + svgFabric.appendChild(fabricCirclePath); + svgFabric.appendChild(fabricCircleArc); +} +/** + * + * @param {HTMLElement} innerContainer - specifies the element + * @param {string} uniqueID - specifies the unique id + * @param {createElementParams} makeElement - specifies the element + * @param {string} cls - specifies the string + * @returns {void} + */ +// eslint-disable-next-line +function create_material_element(innerContainer, uniqueID, makeElement, cls) { + var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + svgMaterial.setAttribute('class', cls); + svgMaterial.setAttribute('id', uniqueID); + matCirclePath.setAttribute('class', CLS_SPINCIRCLE); + innerContainer.insertBefore(svgMaterial, innerContainer.firstChild); + svgMaterial.appendChild(matCirclePath); +} +/** + * + * @param {HTMLElement} target - specifies the element + * @param {createElementParams} makeElement - specifies the element + * @returns {void} + */ +// eslint-disable-next-line +function create_spinner_container(target, makeElement) { + var spinnerContainer = makeElement('div', {}); + var spinnerInnerContainer = makeElement('div', {}); + spinnerContainer.classList.add(CLS_SPINWRAP); + spinnerInnerContainer.classList.add(CLS_SPININWRAP); + target.appendChild(spinnerContainer); + spinnerContainer.appendChild(spinnerInnerContainer); + // eslint-disable-next-line + return { wrap: spinnerContainer, inner_wrap: spinnerInnerContainer }; +} +/** + * + * @param {SpinnerInfo} spinnerInfo - specifies the spinner + * @returns {void} + */ +function animateMaterial(spinnerInfo) { + var start = 1; + var end = 149; + var duration = 1333; + var max = 75; + createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo); + spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4; +} +/** + * + * @param {number} start - specifies the number + * @param {number} end - specifies the end number + * @param {Function} easing - specifies the function + * @param {number} duration - specifies the duration + * @param {number} count - specifies the count + * @param {number} max - specifies the max number + * @param {SpinnerInfo} spinnerInfo - specifies the spinner info + * @returns {void} + */ +function createCircle(start, end, easing, duration, count, max, spinnerInfo) { + var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId; + var startTime = new Date().getTime(); + var change = end - start; + var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + ''); + var strokeSize = getStrokeSize(diameter); + var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0); + mat_animation(spinnerInfo); + // eslint-disable-next-line + function mat_animation(spinnerInfo) { + var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration)); + updatePath(easing(currentTime, start, change, duration), spinnerInfo.container); + if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) { + // eslint-disable-next-line + globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(mat_animation.bind(null, spinnerInfo), 1); + } + else { + animateMaterial(spinnerInfo); + } + } + /** + * + * @param {number} value - specifies the number value + * @param {HTMLElement} container - specifies the container + * @returns {void} + */ + function updatePath(value, container) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material')) || !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material3'))) { + var svg = void 0; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material')) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle'))) { + svg = container.querySelector('svg.e-spin-material'); + } + else if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material3')) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(container.querySelector('svg.e-spin-material3').querySelector('path.e-path-circle'))) { + svg = container.querySelector('svg.e-spin-material3'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(svg)) { + var path = svg.querySelector('path.e-path-circle'); + path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + ''); + path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')'); + } + } + } +} +/** + * + * @param {number} radius - specifies the number + * @param {HTMLElement} container - specifies the element + * @param {string} type - specifies the string type + * @param {string} cls - specifies the string + * @returns {void} + */ +// eslint-disable-next-line +function mat_calculate_attributes(radius, container, type, cls) { + var diameter = radius * 2; + var svg = container.querySelector('svg.' + cls); + var path = svg.querySelector('path.e-path-circle'); + var strokeSize = getStrokeSize(diameter); + var transformOrigin = (diameter / 2) + 'px'; + svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter); + svg.style.width = svg.style.height = diameter + 'px'; + svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin; + path.setAttribute('d', drawArc(diameter, strokeSize)); + if (type === 'Material' || type === 'Material3') { + path.setAttribute('stroke-width', strokeSize + ''); + path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + ''); + path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + ''); + } +} +/** + * + * @param {string} value - specifies the value + * @returns {number} - returns the number + */ +function getSize(value) { + var parsed = parseFloat(value); + return parsed; +} +/** + * + * @param {number} diameter - specifies the diameter + * @param {number} strokeSize - specifies the size + * @returns {string} - returns the string + */ +function drawArc(diameter, strokeSize) { + var radius = diameter / 2; + var offset = strokeSize / 2; + return 'M' + radius + ',' + offset + + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius; +} +/** + * + * @param {number} diameter - specifies the number + * @returns {number} - returns the number + */ +function getStrokeSize(diameter) { + return 10 / 100 * diameter; +} +/** + * + * @param {number} diameter - specifies the number + * @param {number} strokeSize - specifies the stroke size + * @param {number} value - specifies the value + * @param {number} max - specifies the max number + * @returns {number} - returns the number + */ +function getDashOffset(diameter, strokeSize, value, max) { + return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100)); +} +/** + * + * @param {number} current - specifies the number + * @param {number} start - specifies the stroke size + * @param {number} change - specifies the value + * @param {number} duration - specifies the max number + * @returns {number} - returns the number + */ +function easeAnimation(current, start, change, duration) { + var timestamp = (current /= duration) * current; + var timecount = timestamp * current; + return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount); +} +/** + * + * @param {number} radius - specifies the number + * @param {HTMLElement} innerConainer - specifies the element + * @param {string} trgClass - specifies the class + * @returns {void} + */ +// eslint-disable-next-line +function fb_calculate_attributes(radius, innerConainer, trgClass) { + var centerX = radius; + var centerY = radius; + var diameter = radius * 2; + // eslint-disable-next-line + var startArc = 315, endArc = 45; + var svg = innerConainer.querySelector('.' + trgClass); + var circle = svg.querySelector('.e-path-circle'); + var path = svg.querySelector('.e-path-arc'); + var transformOrigin = (diameter / 2) + 'px'; + circle.setAttribute('d', defineCircle(centerX, centerY, radius)); + path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc)); + svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter); + svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin; + svg.style.width = svg.style.height = diameter + 'px'; +} +/** + * + * @param {number} centerX - specifies the number + * @param {number} centerY - specifies the stroke size + * @param {number} radius - specifies the value + * @param {number} angle - specifies the max number + * @returns {number} - returns the number + */ +function defineArcPoints(centerX, centerY, radius, angle) { + var radians = (angle - 90) * Math.PI / 180.0; + return { + x: centerX + (radius * Math.cos(radians)), + y: centerY + (radius * Math.sin(radians)) + }; +} +/** + * + * @param {number} x - specifies the number + * @param {number} y - specifies the stroke size + * @param {number} radius - specifies the radius + * @param {number} startArc - specifies the value + * @param {number} endArc - specifies the max number + * @returns {number} - returns the number + */ +function defineArc(x, y, radius, startArc, endArc) { + var start = defineArcPoints(x, y, radius, endArc); + var end = defineArcPoints(x, y, radius, startArc); + var d = [ + 'M', start.x, start.y, + 'A', radius, radius, 0, 0, 0, end.x, end.y + ].join(' '); + return d; +} +/** + * + * @param {number} x - specifies the number + * @param {number} y - specifies the stroke size + * @param {number} radius - specifies the value + * @returns {string} - returns the string + */ +function defineCircle(x, y, radius) { + var d = [ + 'M', x, y, + 'm', -radius, 0, + 'a', radius, radius, 0, 1, 0, radius * 2, 0, + 'a', radius, radius, 0, 1, 0, -radius * 2, 0 + ].join(' '); + return d; +} +/** + * Function to show the Spinner. + * + * @param {HTMLElement} container - Specify the target of the Spinner. + * @returns {void} + * @private + */ +function showSpinner(container) { + showHideSpinner(container, false); + container = null; +} +/** + * + * @param {HTMLElement} container - specifies the element + * @param {boolean} isHide - specifies the boolean + * @returns {void} + */ +function showHideSpinner(container, isHide) { + var spinnerWrap; + if (container) { + if (container.classList.contains(CLS_SPINWRAP)) { + spinnerWrap = container; + } + else { + var spinWrapCollection = void 0; + spinWrapCollection = container.querySelectorAll('.' + CLS_SPINWRAP); + spinnerWrap = Array.from(spinWrapCollection).find(function (wrap) { return wrap.parentElement === container; }) || null; + } + } + if (container && spinnerWrap) { + var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP); + var spinCheck = void 0; + // eslint-disable-next-line + spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) : + !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN); + if (spinCheck) { + var svgEle = spinnerWrap.querySelector('svg'); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(svgEle)) { + return; + } + var id = svgEle.getAttribute('id'); + globalTimeOut["" + id].isAnimate = !isHide; + switch (globalTimeOut["" + id].type) { + case 'Material': + case 'Material3': + // eslint-disable-next-line + isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius); + break; + case 'Bootstrap': + // eslint-disable-next-line + isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner); + break; + } + } + // eslint-disable-next-line + isHide ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]); + container = null; + } +} +/** + * Function to hide the Spinner. + * + * @param {HTMLElement} container - Specify the target of the Spinner. + * @returns {void} + * @private + */ +function hideSpinner(container) { + showHideSpinner(container, true); + container = null; +} +// eslint-disable-next-line +/** + * Function to change the Spinners in a page globally from application end. + * ``` + * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' }); + * ``` + * + * @param {SetSpinnerArgs} args - specifies the args + * @param {createElementParams} internalCreateElement - specifies the element params + * @returns {void} + * @private + */ +function setSpinner(args, internalCreateElement) { + var makeElement = !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(internalCreateElement) ? internalCreateElement : _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + if (args.template !== undefined) { + spinTemplate = args.template; + if (args.template !== undefined) { + spinCSSClass = args.cssClass; + } + } + var container = document.querySelectorAll('.' + CLS_SPINWRAP); + for (var index = 0; index < container.length; index++) { + ensureTemplate(args.template, container[index], args.type, args.cssClass, makeElement); + } +} +/** + * + * @param {string} template - specifies the string + * @param {HTMLElement} container - specifies the container + * @param {string} theme - specifies the theme + * @param {string} cssClass - specifies the string class + * @param {createElementParams} makeEle - specifies the params + * @returns {void} + */ +function ensureTemplate(template, container, theme, cssClass, makeEle) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(template) && !container.classList.contains(CLS_SPINTEMPLATE)) { + replaceTheme(container, theme, cssClass, makeEle); + if (container.classList.contains(CLS_SHOWSPIN)) { + container.classList.remove(CLS_SHOWSPIN); + showSpinner(container); + } + else { + container.classList.remove(CLS_HIDESPIN); + hideSpinner(container); + } + } + else { + spinTemplate = template; + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cssClass)) { + spinCSSClass = cssClass; + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(spinTemplate)) { + replaceContent(container, spinTemplate, spinCSSClass); + } + } +} +/** + * + * @param {HTMLElement} container - specifies the container + * @param {string} theme - specifies the theme + * @param {string} cssClass - specifies the string class + * @param {createElementParams} makeEle - specifies the params + * @returns {void} + */ +function replaceTheme(container, theme, cssClass, makeEle) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(cssClass)) { + container.classList.add(cssClass); + } + var svgElement = container.querySelector('svg'); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(svgElement)) { + var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2; + var classNames = svgElement.getAttribute('class'); + var svgClassList = classNames.split(/\s/); + if (svgClassList.indexOf('e-spin-material') >= 0) { + var id = svgElement.getAttribute('id'); + clearTimeout(globalTimeOut["" + id].timeOut); + } + setTheme(theme, container, radius, makeEle); + } +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/index.js": +/*!*******************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/index.js ***! + \*******************************************************************/ +/*! exports provided: Animation, Tooltip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tooltip */ "./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/tooltip.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Animation", function() { return _tooltip__WEBPACK_IMPORTED_MODULE_0__["Animation"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return _tooltip__WEBPACK_IMPORTED_MODULE_0__["Tooltip"]; }); + +/** + * Tooltip modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/tooltip.js": +/*!*********************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-popups/tooltip/tooltip.js ***! + \*********************************************************************/ +/*! exports provided: Animation, Tooltip */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Animation", function() { return Animation; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Tooltip", function() { return Tooltip; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _popup_popup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../popup/popup */ "./ej2-resources/22.1.37/scripts/ej2-popups/popup/popup.js"); +/* harmony import */ var _common_position__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../common/position */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/position.js"); +/* harmony import */ var _common_collision__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/collision */ "./ej2-resources/22.1.37/scripts/ej2-popups/common/collision.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + +var TOUCHEND_HIDE_DELAY = 1500; +var TAPHOLD_THRESHOLD = 500; +var SHOW_POINTER_TIP_GAP = 0; +var HIDE_POINTER_TIP_GAP = 8; +var MOUSE_TRAIL_GAP = 2; +var POINTER_ADJUST = 2; +var ROOT = 'e-tooltip'; +var RTL = 'e-rtl'; +var DEVICE = 'e-bigger'; +var ICON = 'e-icons'; +var CLOSE = 'e-tooltip-close'; +var TOOLTIP_WRAP = 'e-tooltip-wrap'; +var CONTENT = 'e-tip-content'; +var ARROW_TIP = 'e-arrow-tip'; +var ARROW_TIP_OUTER = 'e-arrow-tip-outer'; +var ARROW_TIP_INNER = 'e-arrow-tip-inner'; +var TIP_BOTTOM = 'e-tip-bottom'; +var TIP_TOP = 'e-tip-top'; +var TIP_LEFT = 'e-tip-left'; +var TIP_RIGHT = 'e-tip-right'; +var POPUP_ROOT = 'e-popup'; +var POPUP_OPEN = 'e-popup-open'; +var POPUP_CLOSE = 'e-popup-close'; +var POPUP_LIB = 'e-lib'; +var HIDE_POPUP = 'e-hidden'; +var POPUP_CONTAINER = 'e-tooltip-popup-container'; +var Animation = /** @__PURE__ @class */ (function (_super) { + __extends(Animation, _super); + function Animation() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ effect: 'FadeIn', duration: 150, delay: 0 }) + ], Animation.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])({ effect: 'FadeOut', duration: 150, delay: 0 }) + ], Animation.prototype, "close", void 0); + return Animation; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + +/** + * Represents the Tooltip component that displays a piece of information about the target element on mouse hover. + * ```html + *
    Show Tooltip
    + * ``` + * ```typescript + * + * ``` + */ +var Tooltip = /** @__PURE__ @class */ (function (_super) { + __extends(Tooltip, _super); + /* eslint-enable */ + /** + * Constructor for creating the Tooltip Component + * + * @param {TooltipModel} options - specifies the options for the constructor + * @param {string| HTMLElement} element - specifies the element for the constructor + * + */ + function Tooltip(options, element) { + var _this = _super.call(this, options, element) || this; + _this.mouseMoveEvent = null; + _this.mouseMoveTarget = null; + _this.containerElement = null; + _this.isBodyContainer = true; + return _this; + } + Tooltip.prototype.initialize = function () { + this.formatPosition(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.element], ROOT); + }; + Tooltip.prototype.formatPosition = function () { + var _a, _b; + if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) { + _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1]; + } + else { + _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1]; + } + }; + Tooltip.prototype.renderArrow = function () { + this.setTipClass(this.position); + var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass }); + tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass })); + tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass })); + this.tooltipEle.appendChild(tip); + }; + Tooltip.prototype.setTipClass = function (position) { + if (position.indexOf('Right') === 0) { + this.tipClass = TIP_LEFT; + } + else if (position.indexOf('Bottom') === 0) { + this.tipClass = TIP_TOP; + } + else if (position.indexOf('Left') === 0) { + this.tipClass = TIP_RIGHT; + } + else { + this.tipClass = TIP_BOTTOM; + } + }; + Tooltip.prototype.renderPopup = function (target) { + var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target); + this.tooltipEle.classList.remove(POPUP_LIB); + this.popupObj = new _popup_popup__WEBPACK_IMPORTED_MODULE_1__["Popup"](this.tooltipEle, { + height: this.height, + width: this.width, + position: { X: elePos.left, Y: elePos.top }, + enableRtl: this.enableRtl, + open: this.openPopupHandler.bind(this), + close: this.closePopupHandler.bind(this) + }); + }; + Tooltip.prototype.getTooltipPosition = function (target) { + this.tooltipEle.style.display = 'block'; + var pos = Object(_common_position__WEBPACK_IMPORTED_MODULE_2__["calculatePosition"])(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect()); + var offsetPos = this.calculateTooltipOffset(this.position); + var collisionPosition = this.calculateElementPosition(pos, offsetPos); + var collisionLeft = collisionPosition[0]; + var collisionTop = collisionPosition[1]; + var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop); + this.tooltipEle.style.display = ''; + return elePos; + }; + Tooltip.prototype.windowResize = function () { + this.reposition(this.findTarget()); + }; + Tooltip.prototype.reposition = function (target) { + if (this.popupObj && target) { + var elePos = this.getTooltipPosition(target); + this.popupObj.position = { X: elePos.left, Y: elePos.top }; + this.popupObj.dataBind(); + } + }; + Tooltip.prototype.openPopupHandler = function () { + if (!this.mouseTrail && this.needTemplateReposition()) { + this.reposition(this.findTarget()); + } + this.trigger('afterOpen', this.tooltipEventArgs); + this.tooltipEventArgs = null; + }; + Tooltip.prototype.closePopupHandler = function () { + if (this.isReact && !(this.opensOn === 'Click' && typeof (this.content) === 'function')) { + this.clearTemplate(['content']); + } + this.clear(); + this.trigger('afterClose', this.tooltipEventArgs); + this.tooltipEventArgs = null; + }; + Tooltip.prototype.calculateTooltipOffset = function (position) { + var pos = { top: 0, left: 0 }; + var tooltipEleWidth = this.tooltipEle.offsetWidth; + var tooltipEleHeight = this.tooltipEle.offsetHeight; + var arrowEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ARROW_TIP, this.tooltipEle); + var tipWidth = arrowEle ? arrowEle.offsetWidth : 0; + var tipHeight = arrowEle ? arrowEle.offsetHeight : 0; + var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP); + var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight); + var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth); + if (this.mouseTrail) { + tipAdjust += MOUSE_TRAIL_GAP; + } + switch (position) { + case 'RightTop': + pos.left += tipWidth + tipAdjust; + pos.top -= tooltipEleHeight - tipHeightAdjust; + break; + case 'RightCenter': + pos.left += tipWidth + tipAdjust; + pos.top -= (tooltipEleHeight / 2); + break; + case 'RightBottom': + pos.left += tipWidth + tipAdjust; + pos.top -= (tipHeightAdjust); + break; + case 'BottomRight': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tipWidthAdjust); + break; + case 'BottomCenter': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth / 2); + break; + case 'BottomLeft': + pos.top += (tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth - tipWidthAdjust); + break; + case 'LeftBottom': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tipHeightAdjust); + break; + case 'LeftCenter': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tooltipEleHeight / 2); + break; + case 'LeftTop': + pos.left -= (tipWidth + tooltipEleWidth + tipAdjust); + pos.top -= (tooltipEleHeight - tipHeightAdjust); + break; + case 'TopLeft': + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth - tipWidthAdjust); + break; + case 'TopRight': + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tipWidthAdjust); + break; + default: + pos.top -= (tooltipEleHeight + tipHeight + tipAdjust); + pos.left -= (tooltipEleWidth / 2); + break; + } + pos.left += this.offsetX; + pos.top += this.offsetY; + return pos; + }; + Tooltip.prototype.updateTipPosition = function (position) { + var selEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle); + var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT]; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(selEle, removeList); + this.setTipClass(position); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])(selEle, this.tipClass); + }; + Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) { + if (this.showTipPointer === false) { + return; + } + this.updateTipPosition(position); + var leftValue; + var topValue; + this.tooltipEle.style.display = 'block'; + var tooltipWidth = this.tooltipEle.clientWidth; + var tooltipHeight = this.tooltipEle.clientHeight; + var arrowEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ARROW_TIP, this.tooltipEle); + var arrowInnerELe = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ARROW_TIP_INNER, this.tooltipEle); + var tipWidth = arrowEle.offsetWidth; + var tipHeight = arrowEle.offsetHeight; + this.tooltipEle.style.display = ''; + if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) { + if (this.tipClass === TIP_BOTTOM) { + topValue = '99.9%'; + // Arrow icon aligned -2px height from ArrowOuterTip div + arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px'; + } + else { + topValue = -(tipHeight - 1) + 'px'; + // Arrow icon aligned -6px height from ArrowOuterTip div + arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px'; + } + if (target) { + var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail; + if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) { + leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px'; + } + else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) { + leftValue = POINTER_ADJUST + 'px'; + } + else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) { + leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px' + : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px'; + } + else { + leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px'; + } + } + } + else { + if (this.tipClass === TIP_RIGHT) { + leftValue = '99.9%'; + // Arrow icon aligned -2px left from ArrowOuterTip div + arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px'; + } + else { + leftValue = -(tipWidth - 1) + 'px'; + // Arrow icon aligned -2px from ArrowOuterTip width + arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px'; + } + var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail; + if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) { + topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px'; + } + else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) { + topValue = POINTER_ADJUST + 'px'; + } + else { + topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px'; + } + } + arrowEle.style.top = topValue; + arrowEle.style.left = leftValue; + }; + Tooltip.prototype.renderContent = function (target) { + var tooltipContent = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + CONTENT, this.tooltipEle); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], this.cssClass.split(' ')); + } + if (target && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target.getAttribute('title'))) { + target.setAttribute('data-content', target.getAttribute('title')); + target.removeAttribute('title'); + } + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.content)) { + tooltipContent.innerHTML = ''; + if (this.content instanceof HTMLElement) { + tooltipContent.appendChild(this.content); + } + else if (typeof this.content === 'string') { + if (this.enableHtmlSanitizer) { + this.setProperties({ content: _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(this.content) }, true); + } + var tempFunction = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(this.content); + var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent); + if (tempArr) { + if (this.enableHtmlParse) { + var nodeList = tempArr.length; + for (var i = 0; i < nodeList; i++) { + tooltipContent[Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(tempArr, tooltipContent), 'innerHTML'] = this.content; + } + } + else { + tooltipContent['textContent'] = this.content; + } + } + } + else { + var templateFunction = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["compile"])(this.content); + var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent); + if (tempArr) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["append"])(tempArr, tooltipContent); + } + this.renderReactTemplates(); + } + } + else { + if (target && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target.getAttribute('data-content'))) { + tooltipContent.innerHTML = target.getAttribute('data-content'); + } + } + }; + Tooltip.prototype.renderCloseIcon = function () { + if (!this.isSticky) { + return; + } + var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE }); + this.tooltipEle.appendChild(tipClose); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(tipClose, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.onStickyClose, this); + }; + Tooltip.prototype.addDataTooltipId = function (target, id) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(target, { 'data-tooltip-id': id }); + }; + Tooltip.prototype.removeDataTooltipId = function (target) { + target.removeAttribute('data-tooltip-id'); + }; + Tooltip.prototype.tapHoldHandler = function (evt) { + clearTimeout(this.autoCloseTimer); + this.targetHover(evt.originalEvent); + }; + Tooltip.prototype.touchEndHandler = function (e) { + var _this = this; + if (this.isSticky) { + return; + } + var close = function () { + _this.close(); + }; + this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY); + }; + Tooltip.prototype.targetClick = function (e) { + var target; + if (this.target) { + target = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, this.target); + } + else { + target = this.element; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target)) { + return; + } + if (target.getAttribute('data-tooltip-id') === null) { + this.targetHover(e); + } + else if (!this.isSticky) { + this.hideTooltip(this.animation.close, e, target); + } + }; + Tooltip.prototype.targetHover = function (e) { + var target; + if (this.target) { + target = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, this.target); + } + else { + target = this.element; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) { + return; + } + var targetList = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('[data-tooltip-id= "' + this.ctrlId + '_content"]', document)); + for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) { + var target_1 = targetList_1[_i]; + this.restoreElement(target_1); + } + this.showTooltip(target, this.animation.open, e); + }; + Tooltip.prototype.mouseMoveBeforeOpen = function (e) { + this.mouseMoveEvent = e; + }; + Tooltip.prototype.mouseMoveBeforeRemove = function () { + if (this.mouseMoveTarget) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen); + } + }; + Tooltip.prototype.showTooltip = function (target, showAnimation, e) { + var _this = this; + clearTimeout(this.showTimer); + clearTimeout(this.hideTimer); + if (this.openDelay && this.mouseTrail) { + this.mouseMoveBeforeRemove(); + this.mouseMoveTarget = target; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this); + } + this.tooltipEventArgs = { + type: e ? e.type : null, cancel: false, target: target, event: e ? e : null, + element: this.tooltipEle, isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) + }; + var observeCallback = function (beforeRenderArgs) { + _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation); + }; + this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this)); + }; + Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) { + if (beforeRenderArgs.cancel) { + this.isHidden = true; + this.clear(); + this.mouseMoveBeforeRemove(); + } + else { + this.isHidden = false; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.tooltipEle)) { + this.ctrlId = this.element.getAttribute('id') ? + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])(this.element.getAttribute('id')) : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('tooltip'); + this.tooltipEle = this.createElement('div', { + className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: { + role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content' + }, styles: 'width:' + + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.width) + ';height:' + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(this.height) + ';position:absolute;' + }); + if (Object.keys(this.htmlAttributes).length !== 0) { + for (var attr in this.htmlAttributes) { + if (attr === "class") { + this.tooltipEle.classList.add(this.htmlAttributes["" + attr]); + } + else { + this.tooltipEle.setAttribute(attr, this.htmlAttributes["" + attr]); + } + } + } + this.tooltipBeforeRender(target, this); + this.tooltipAfterRender(target, e, showAnimation, this); + } + else { + if (target) { + this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY); + this.addDataTooltipId(target, this.ctrlId + '_content'); + this.renderContent(target); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(this.tooltipEle); + this.reposition(target); + this.tooltipAfterRender(target, e, showAnimation, this); + } + } + } + }; + Tooltip.prototype.appendContainer = function (ctrlObj) { + if (typeof this.container == 'string') { + if (this.container === 'body') { + this.containerElement = document.body; + } + else { + this.isBodyContainer = false; + this.containerElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.container, document); + } + } + else if (this.container instanceof HTMLElement) { + this.containerElement = this.container; + this.isBodyContainer = this.containerElement.tagName === 'BODY'; + } + if (!this.isBodyContainer) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.containerElement], POPUP_CONTAINER); + } + this.containerElement.appendChild(ctrlObj.tooltipEle); + }; + Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) { + if (target) { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], DEVICE); + } + if (ctrlObj.width !== 'auto') { + ctrlObj.tooltipEle.style.maxWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(ctrlObj.width); + } + ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT })); + this.appendContainer(ctrlObj); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], HIDE_POPUP); + ctrlObj.addDataTooltipId(target, ctrlObj.ctrlId + '_content'); + ctrlObj.renderContent(target); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + if (ctrlObj.showTipPointer) { + ctrlObj.renderArrow(); + } + ctrlObj.renderCloseIcon(); + ctrlObj.renderPopup(target); + ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(ctrlObj.tooltipEle); + ctrlObj.reposition(target); + } + }; + Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) { + if (target) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([ctrlObj.tooltipEle], POPUP_OPEN); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ctrlObj.tooltipEle], POPUP_CLOSE); + ctrlObj.tooltipEventArgs = { + type: e ? e.type : null, cancel: false, target: target, event: e ? e : null, + element: ctrlObj.tooltipEle, isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) + }; + if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) { + ctrlObj.tooltipEle.style.display = 'none'; + } + var observeCallback = function (observedArgs) { + ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e); + }; + ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj)); + } + }; + Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) { + var _this = this; + if (observedArgs.cancel) { + this.isHidden = true; + this.clear(); + this.mouseMoveBeforeRemove(); + this.restoreElement(target); + } + else { + var openAnimation_1 = { + name: showAnimation.effect, + duration: showAnimation.duration, + delay: showAnimation.delay, + timingFunction: 'easeOut' + }; + if (showAnimation.effect === 'None') { + openAnimation_1 = undefined; + } + if (this.openDelay > 0) { + var show = function () { + if (_this.mouseTrail) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this); + } + if (_this.popupObj) { + _this.popupObj.show(openAnimation_1, target); + if (_this.mouseMoveEvent && _this.mouseTrail) { + _this.onMouseMove(_this.mouseMoveEvent); + } + } + }; + this.showTimer = setTimeout(show, this.openDelay); + } + else { + if (this.popupObj) { + this.popupObj.show(openAnimation_1, target); + } + } + } + if (e) { + this.wireMouseEvents(e, target); + } + }; + Tooltip.prototype.needTemplateReposition = function () { + // eslint-disable-next-line + var tooltip = this; + return !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(tooltip.viewContainerRef) + && typeof tooltip.viewContainerRef !== 'string'; + }; + Tooltip.prototype.checkCollision = function (target, x, y) { + var elePos = { + left: x, top: y, position: this.position, + horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY + }; + var affectedPos = Object(_common_collision__WEBPACK_IMPORTED_MODULE_3__["isCollide"])(this.tooltipEle, this.checkCollideTarget(), x, y); + if (affectedPos.length > 0) { + elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' : + this.tooltipPositionX; + elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' : + this.tooltipPositionY; + } + return elePos; + }; + Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) { + return [this.isBodyContainer ? pos.left + offsetPos.left : + (pos.left - this.containerElement.offsetLeft) + offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft, + this.isBodyContainer ? pos.top + offsetPos.top : + (pos.top - this.containerElement.offsetTop) + offsetPos.top + window.pageYOffset + this.containerElement.scrollTop]; + }; + Tooltip.prototype.collisionFlipFit = function (target, x, y) { + var elePos = this.checkCollision(target, x, y); + var newpos = elePos.position; + if (this.tooltipPositionY !== elePos.vertical) { + newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ? + elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical); + } + if (this.tooltipPositionX !== elePos.horizontal) { + if (newpos.indexOf('Left') === 0) { + elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom'; + newpos = (elePos.vertical + 'Left'); + } + if (newpos.indexOf('Right') === 0) { + elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom'; + newpos = (elePos.vertical + 'Right'); + } + elePos.horizontal = this.tooltipPositionX; + } + this.tooltipEventArgs = { + type: null, cancel: false, target: target, event: null, + element: this.tooltipEle, collidedPosition: newpos + }; + this.trigger('beforeCollision', this.tooltipEventArgs); + if (this.tooltipEventArgs.cancel) { + newpos = this.position; + } + else { + var elePosVertical = elePos.vertical; + var elePosHorizontal = elePos.horizontal; + if (elePos.position !== newpos) { + var pos = Object(_common_position__WEBPACK_IMPORTED_MODULE_2__["calculatePosition"])(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect()); + this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical); + var offsetPos = this.calculateTooltipOffset(newpos); + offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY); + offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX); + elePos.position = newpos; + var elePosition = this.calculateElementPosition(pos, offsetPos); + elePos.left = elePosition[0]; + elePos.top = elePosition[1]; + } + else { + this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical); + } + } + var eleOffset = { left: elePos.left, top: elePos.top }; + var position = this.isBodyContainer ? + Object(_common_collision__WEBPACK_IMPORTED_MODULE_3__["fit"])(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: true }, eleOffset) : eleOffset; + this.tooltipEle.style.display = 'block'; + if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) { + var arrowEle = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ARROW_TIP, this.tooltipEle); + var arrowleft = parseInt(arrowEle.style.left, 10) - (position.left - elePos.left); + if (arrowleft < 0) { + arrowleft = 0; + } + else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) { + arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth; + } + arrowEle.style.left = arrowleft.toString() + 'px'; + } + this.tooltipEle.style.display = ''; + eleOffset.left = position.left; + eleOffset.top = position.top; + return eleOffset; + }; + Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) { + return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) && + (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0; + }; + Tooltip.prototype.checkCollideTarget = function () { + return !this.windowCollision && this.target ? this.element : null; + }; + Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) { + var _this = this; + if (this.closeDelay > 0) { + clearTimeout(this.hideTimer); + clearTimeout(this.showTimer); + var hide = function () { + if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) { + return; + } + _this.tooltipHide(hideAnimation, e, targetElement); + }; + this.hideTimer = setTimeout(hide, this.closeDelay); + } + else { + this.tooltipHide(hideAnimation, e, targetElement); + } + }; + Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) { + var _this = this; + var target; + if (e) { + target = this.target ? (targetElement || e.target) : this.element; + } + else { + target = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[data-tooltip-id= "' + this.ctrlId + '_content"]', document); + } + this.tooltipEventArgs = { + type: e ? e.type : null, cancel: false, target: target, event: e ? e : null, + element: this.tooltipEle, isInteracted: !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(e) + }; + // this line commented for close the tooltip popup element even the target element destroyed in a page. + //if (isNullOrUndefined(target)) { return; } + this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) { + if (!observedArgs.cancel) { + _this.mouseMoveBeforeRemove(); + _this.popupHide(hideAnimation, target); + } + else { + _this.isHidden = false; + } + }); + this.tooltipEventArgs = null; + }; + Tooltip.prototype.popupHide = function (hideAnimation, target) { + if (target) { + this.restoreElement(target); + } + this.isHidden = true; + var closeAnimation = { + name: hideAnimation.effect, + duration: hideAnimation.duration, + delay: hideAnimation.delay, + timingFunction: 'easeIn' + }; + if (hideAnimation.effect === 'None') { + closeAnimation = undefined; + } + if (this.popupObj) { + this.popupObj.hide(closeAnimation); + } + }; + Tooltip.prototype.restoreElement = function (target) { + this.unwireMouseEvents(target); + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(target.getAttribute('data-content'))) { + target.setAttribute('title', target.getAttribute('data-content')); + target.removeAttribute('data-content'); + } + this.removeDataTooltipId(target); + }; + Tooltip.prototype.clear = function () { + if (this.tooltipEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], POPUP_CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], POPUP_OPEN); + } + if (this.isHidden) { + if (this.popupObj) { + this.popupObj.destroy(); + } + if (this.tooltipEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.tooltipEle); + } + this.tooltipEle = null; + this.popupObj = null; + } + }; + Tooltip.prototype.tooltipHover = function (e) { + if (this.tooltipEle) { + this.isTooltipOpen = true; + } + }; + Tooltip.prototype.tooltipMouseOut = function (e) { + this.isTooltipOpen = false; + this.hideTooltip(this.animation.close, e, this.findTarget()); + }; + Tooltip.prototype.onMouseOut = function (e) { + var enteredElement = e.relatedTarget; + // don't close the tooltip only if it is tooltip content element + if (enteredElement && !this.mouseTrail) { + var checkForTooltipElement = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(enteredElement, "." + TOOLTIP_WRAP + "." + POPUP_LIB + "." + POPUP_ROOT); + if (checkForTooltipElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this); + } + else { + this.hideTooltip(this.animation.close, e, this.findTarget()); + if (this.closeDelay === 0) { + this.clear(); + } + } + } + else { + this.hideTooltip(this.animation.close, e, this.findTarget()); + this.clear(); + } + }; + Tooltip.prototype.tooltipElementMouseOut = function (e) { + this.hideTooltip(this.animation.close, e, this.findTarget()); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseleave', this.tooltipElementMouseOut); + this.clear(); + }; + Tooltip.prototype.onStickyClose = function (e) { + this.close(); + }; + Tooltip.prototype.onMouseMove = function (event) { + var eventPageX = 0; + var eventPageY = 0; + if (event.type.indexOf('touch') > -1) { + event.preventDefault(); + eventPageX = event.touches[0].pageX; + eventPageY = event.touches[0].pageY; + } + else { + eventPageX = event.pageX; + eventPageY = event.pageY; + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Animation"].stop(this.tooltipEle); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], POPUP_CLOSE); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], POPUP_OPEN); + this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY); + var pos = this.calculateTooltipOffset(this.position); + var x = eventPageX + pos.left + this.offsetX; + var y = eventPageY + pos.top + this.offsetY; + var elePos = this.checkCollision(event.target, x, y); + if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) { + var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ? + elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical; + elePos.position = newpos; + this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical); + var colpos = this.calculateTooltipOffset(elePos.position); + elePos.left = eventPageX + colpos.left - this.offsetX; + elePos.top = eventPageY + colpos.top - this.offsetY; + } + this.tooltipEle.style.left = elePos.left + 'px'; + this.tooltipEle.style.top = elePos.top + 'px'; + }; + Tooltip.prototype.keyDown = function (event) { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.targetsList) && !Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + var target = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.target, this.element)); + if (target.length !== this.targetsList.length) { + this.unwireEvents(this.opensOn); + this.wireEvents(this.opensOn); + } + } + if (this.tooltipEle && event.keyCode === 27) { + this.close(); + } + }; + Tooltip.prototype.touchEnd = function (e) { + if (this.tooltipEle && Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, '.' + ROOT) === null && !this.isSticky) { + this.close(); + } + }; + Tooltip.prototype.scrollHandler = function (e) { + if (this.tooltipEle) { + if (!(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(e.target, "." + TOOLTIP_WRAP + "." + POPUP_LIB + "." + POPUP_ROOT))) { + this.close(); + } + } + }; + /** + * Core method that initializes the control rendering. + * + * @private + * @returns {void} + */ + Tooltip.prototype.render = function () { + this.initialize(); + this.wireEvents(this.opensOn); + this.renderComplete(); + }; + /** + * Initializes the values of private members. + * + * @private + * @returns {void} + */ + Tooltip.prototype.preRender = function () { + this.tipClass = TIP_BOTTOM; + this.tooltipPositionX = 'Center'; + this.tooltipPositionY = 'Top'; + this.isHidden = true; + }; + /** + * Binding events to the Tooltip element. + * + * @hidden + * @param {string} trigger - specify the trigger string to the function + * @returns {void} + * + */ + Tooltip.prototype.wireEvents = function (trigger) { + var triggerList = this.getTriggerList(trigger); + for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) { + var opensOn = triggerList_1[_i]; + if (opensOn === 'Custom') { + return; + } + if (opensOn === 'Focus') { + this.wireFocusEvents(); + } + if (opensOn === 'Click') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.targetClick, this); + } + if (opensOn === 'Hover') { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + this.touchModule = new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Touch"](this.element, { + tapHoldThreshold: TAPHOLD_THRESHOLD, + tapHold: this.tapHoldHandler.bind(this) + }); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.touchEndHandler, this); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'mouseover', this.targetHover, this); + } + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'touchend', this.touchEnd, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'scroll wheel', this.scrollHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(window, 'resize', this.windowResize, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'keydown', this.keyDown, this); + }; + Tooltip.prototype.getTriggerList = function (trigger) { + if (trigger === 'Auto') { + trigger = (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) ? 'Hover' : 'Hover Focus'; + } + return trigger.split(' '); + }; + Tooltip.prototype.wireFocusEvents = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + if (this.element.nodeName !== "BODY") { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focusin', this.targetHover, this); + } + else { + var targetList = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.target, this.element)); + this.targetsList = targetList; + for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) { + var target = targetList_2[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'focus', this.targetHover, this); + } + } + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'focus', this.targetHover, this); + } + }; + Tooltip.prototype.wireMouseEvents = function (e, target) { + if (this.tooltipEle) { + if (!this.isSticky) { + if (e.type === 'focus') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'blur', this.onMouseOut, this); + } + if (e.type === 'focusin') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'focusout', this.onMouseOut, this); + } + if (e.type === 'mouseover') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'mouseleave', this.onMouseOut, this); + } + if (this.closeDelay) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.tooltipEle, 'mouseenter', this.tooltipHover, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this); + } + } + if (this.mouseTrail && this.openDelay === 0) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this); + } + } + }; + /** + * Unbinding events from the element on widget destroy. + * + * @hidden + * + * @param {string} trigger - specify the trigger string to the function + * @returns {void} + * + */ + Tooltip.prototype.unwireEvents = function (trigger) { + var triggerList = this.getTriggerList(trigger); + for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) { + var opensOn = triggerList_2[_i]; + if (opensOn === 'Custom') { + return; + } + if (opensOn === 'Focus') { + this.unwireFocusEvents(); + } + if (opensOn === 'Click') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchStartEvent, this.targetClick); + } + if (opensOn === 'Hover') { + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + if (this.touchModule) { + this.touchModule.destroy(); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].touchEndEvent, this.touchEndHandler); + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'mouseover', this.targetHover); + } + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'touchend', this.touchEnd); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'scroll wheel', this.scrollHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(window, 'resize', this.windowResize); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'keydown', this.keyDown); + }; + Tooltip.prototype.unwireFocusEvents = function () { + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.target)) { + if (this.element.nodeName === 'BODY') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focusin', this.targetHover); + } + else { + var targetList = [].slice.call(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])(this.target, this.element)); + for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) { + var target = targetList_3[_i]; + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'focus', this.targetHover); + } + } + } + else { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'focus', this.targetHover); + } + }; + Tooltip.prototype.unwireMouseEvents = function (target) { + if (!this.isSticky) { + var triggerList = this.getTriggerList(this.opensOn); + for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) { + var opensOn = triggerList_3[_i]; + if (opensOn === 'Focus') { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'blur', this.onMouseOut); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'focusout', this.onMouseOut); + } + if (opensOn === 'Hover' && !_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Browser"].isDevice) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mouseleave', this.onMouseOut); + } + } + if (this.closeDelay) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mouseenter', this.tooltipHover); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mouseleave', this.tooltipMouseOut); + } + } + if (this.mouseTrail) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(target, 'mousemove touchstart mouseenter', this.onMouseMove); + } + }; + Tooltip.prototype.findTarget = function () { + var target = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('[data-tooltip-id= "' + this.ctrlId + '_content"]', document); + return target; + }; + /** + * Core method to return the component name. + * + * @private + * + * @returns {string} - this method returns module name. + */ + Tooltip.prototype.getModuleName = function () { + return 'tooltip'; + }; + /** + * Returns the properties to be maintained in the persisted state. + * + * @private + * + * @returns {string} - this method returns persisted data. + */ + Tooltip.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * Called internally, if any of the property value changed. + * + * @private + * + * @param {TooltipModel} newProp - this param gives new property values to the method + * @param {TooltipModel} oldProp - this param gives old property values to the method + * @returns {void} + * + */ + Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) { + var targetElement = this.findTarget(); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'width': + if (this.tooltipEle && targetElement) { + this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.width); + this.reposition(targetElement); + } + break; + case 'height': + if (this.tooltipEle && targetElement) { + this.tooltipEle.style.height = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["formatUnit"])(newProp.height); + this.reposition(targetElement); + } + break; + case 'content': + if (this.tooltipEle) { + this.renderContent(); + } + break; + case 'opensOn': + this.unwireEvents(oldProp.opensOn); + this.wireEvents(newProp.opensOn); + break; + case 'position': + this.formatPosition(); + if (this.tooltipEle && targetElement) { + var arrowInnerELe = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])('.' + ARROW_TIP_INNER, this.tooltipEle); + arrowInnerELe.style.top = arrowInnerELe.style.left = null; + this.reposition(targetElement); + } + break; + case 'tipPointerPosition': + if (this.tooltipEle && targetElement) { + this.reposition(targetElement); + } + break; + case 'offsetX': + if (this.tooltipEle) { + var x = newProp.offsetX - oldProp.offsetX; + this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px'; + } + break; + case 'offsetY': + if (this.tooltipEle) { + var y = newProp.offsetY - oldProp.offsetY; + this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px'; + } + break; + case 'cssClass': + if (this.tooltipEle) { + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], newProp.cssClass.split(' ')); + } + } + break; + case 'enableRtl': + if (this.tooltipEle) { + if (this.enableRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.tooltipEle], RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.tooltipEle], RTL); + } + } + break; + case 'container': + if (!Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(this.containerElement)) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.containerElement], POPUP_CONTAINER); + } + this.container = newProp.container; + if (this.tooltipEle && targetElement) { + this.appendContainer(this); + this.reposition(targetElement); + } + } + } + }; + /** + * It is used to show the Tooltip on the specified target with specific animation settings. + * + * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter) + * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter) + * @returns {void} + */ + Tooltip.prototype.open = function (element, animation) { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(animation)) { + animation = this.animation.open; + } + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(element)) { + element = this.element; + } + if (element.style.display === 'none') { + return; + } + this.showTooltip(element, animation); + }; + /** + * It is used to hide the Tooltip with specific animation effect. + * + * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter) + * @returns {void} + */ + Tooltip.prototype.close = function (animation) { + if (!animation) { + animation = this.animation.close; + } + this.hideTooltip(animation); + }; + /** + * It is used to refresh the Tooltip content and its position. + * + * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed. + * @returns {void} + */ + Tooltip.prototype.refresh = function (target) { + if (this.tooltipEle) { + this.renderContent(target); + } + if (this.popupObj && target) { + this.reposition(target); + } + }; + /** + * It is used to destroy the Tooltip component. + * @method destroy + * @returns {void} + * @memberof Tooltip + */ + Tooltip.prototype.destroy = function () { + _super.prototype.destroy.call(this); + if (this.tooltipEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.tooltipEle); + } + if (this.popupObj) { + this.popupObj.destroy(); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], ROOT); + this.unwireEvents(this.opensOn); + this.unwireMouseEvents(this.element); + this.tooltipEle = null; + this.popupObj = null; + var currentTarget = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["selectAll"])('[data-tooltip-id= "' + this.ctrlId + '_content"]', this.element); + for (var _i = 0, currentTarget_1 = currentTarget; _i < currentTarget_1.length; _i++) { + var target = currentTarget_1[_i]; + this.restoreElement(target); + } + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Tooltip.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('auto') + ], Tooltip.prototype, "height", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Tooltip.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('body') + ], Tooltip.prototype, "container", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Tooltip.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('TopCenter') + ], Tooltip.prototype, "position", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Tooltip.prototype, "offsetX", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Tooltip.prototype, "offsetY", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Tooltip.prototype, "showTipPointer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(true) + ], Tooltip.prototype, "enableHtmlParse", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tooltip.prototype, "windowCollision", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], Tooltip.prototype, "tipPointerPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Auto') + ], Tooltip.prototype, "opensOn", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tooltip.prototype, "mouseTrail", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tooltip.prototype, "isSticky", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Complex"])({}, Animation) + ], Tooltip.prototype, "animation", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Tooltip.prototype, "openDelay", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(0) + ], Tooltip.prototype, "closeDelay", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])() + ], Tooltip.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Tooltip.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Tooltip.prototype, "htmlAttributes", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "beforeRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "afterOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "afterClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "beforeCollision", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], Tooltip.prototype, "destroyed", void 0); + Tooltip = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], Tooltip); + return Tooltip; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/button-group.js": +/*!*************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/button-group.js ***! + \*************************************************************************************/ +/*! exports provided: createButtonGroup */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createButtonGroup", function() { return createButtonGroup; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); + + +/** + * Initialize ButtonGroup CSS component with specified properties. + * ```html + *
    + * + * + * + *
    + * ``` + * ```typescript + * createButtonGroup('#buttongroup', { + * cssClass: 'e-outline', + * buttons: [ + * { content: 'Day' }, + * { content: 'Week' }, + * { content: 'Work Week'} + * ] + * }); + * ``` + * + * @param {string} selector + * @param {CreateButtonGroupModel} options + * @returns HTMLElement + */ +/** + * Creates button group. + * + * @param {string} selector - Specifies the selector. + * @param {CreateButtonGroupModel} options - Specifies the button group model. + * @param {Function} createElement - Specifies the element. + * @returns {HTMLElement} - Button group element. + */ +function createButtonGroup(selector, options, createElement) { + if (options === void 0) { options = {}; } + var child; + var btnElem; + var nextChild; + var btnModel; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(createElement)) { + createElement = _ej2_base__WEBPACK_IMPORTED_MODULE_0__["createElement"]; + } + var wrapper = document.querySelector(selector); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([wrapper], ['e-btn-group', 'e-css']); + wrapper.setAttribute('role', 'group'); + var childs = wrapper.children; + options.buttons = options.buttons || []; + for (var i = 0, j = 0; j < childs.length; i++, j++) { + child = childs[j]; + btnModel = options.buttons[i]; + if (btnModel !== null) { + if (child.tagName === 'BUTTON') { + btnElem = child; + } + else { + btnElem = createElement('label'); + nextChild = childs[j + 1]; + if (nextChild) { + wrapper.insertBefore(btnElem, nextChild); + } + else { + wrapper.appendChild(btnElem); + } + if (child.id) { + btnElem.setAttribute('for', child.id); + } + if (btnModel && btnModel.disabled) { + child.disabled = true; + } + j++; + } + if (options.cssClass && btnModel && !btnModel.cssClass) { + btnModel.cssClass = options.cssClass; + } + new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"](btnModel || {}, btnElem); + } + } + return wrapper; +} + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/index.js": +/*!******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/index.js ***! + \******************************************************************************/ +/*! exports provided: createButtonGroup */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _button_group__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button-group */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/button-group.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createButtonGroup", function() { return _button_group__WEBPACK_IMPORTED_MODULE_0__["createButtonGroup"]; }); + +/** + * ButtonGroup modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/common.js": +/*!*************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/common.js ***! + \*************************************************************************/ +/*! exports provided: getModel, upDownKeyHandler, setBlankIconStyle, Item */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getModel", function() { return getModel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "upDownKeyHandler", function() { return upDownKeyHandler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setBlankIconStyle", function() { return setBlankIconStyle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return Item; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + +/** + * @param {Object} props - Specifies the properties + * @param {string[]} model - Specifies the model + * @returns {Object} Component Model + */ +function getModel(props, model) { + var obj = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, props); + for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { + var prop = _a[_i]; + if ((model).indexOf(prop) < 0) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["deleteObject"])(obj, prop); + } + } + return obj; +} +/** @hidden + * @param {HTMLElement} ul - Specifies the UL element + * @param {number} keyCode - Specifies the keycode + * @returns {void} + */ +function upDownKeyHandler(ul, keyCode) { + var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1; + var liIdx = defaultIdx; + var li; + var selectedLi = ul.querySelector('.e-selected'); + if (selectedLi) { + selectedLi.classList.remove('e-selected'); + } + for (var i = 0, len = ul.children.length; i < len; i++) { + if (ul.children[i].classList.contains('e-focused')) { + li = ul.children[i]; + liIdx = i; + li.classList.remove('e-focused'); + if (keyCode === 40) { + liIdx++; + } + else { + liIdx--; + } + if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) { + liIdx = defaultIdx; + } + } + } + li = ul.children[liIdx]; + liIdx = isValidLI(ul, li, liIdx, keyCode); + if (liIdx !== -1) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([ul.children[liIdx]], 'e-focused'); + ul.children[liIdx].focus(); + } +} +/** + * Get Valid LI element + * + * @param {HTMLElement} ul - Specifies the UL element + * @param {Element} li - Specifies the LI element + * @param {number} index - Specifies the index + * @param {number} keyCode - Specifies the keycode + * @param {number} count - Specifies the count + * @returns {number} - Index + */ +function isValidLI(ul, li, index, keyCode, count) { + if (count === void 0) { count = 0; } + if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) { + if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) { + index = keyCode === 40 ? 0 : ul.childElementCount - 1; + } + else { + if (keyCode === 40) { + index++; + } + else { + index--; + } + } + } + li = ul.children[index]; + if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) { + count++; + if (count === ul.childElementCount) { + return index = -1; + } + index = isValidLI(ul, li, index, keyCode, count); + } + return index; +} +/** @hidden + * @param {HTMLElement} popup - Specifies the popup element. + * @returns {void} + */ +function setBlankIconStyle(popup, blankIcon) { + var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon')); + if (blankIcon) { + var menuItem = [].slice.call(popup.getElementsByClassName('e-item')); + menuItem.forEach(function (li) { + if (li.style.paddingLeft || li.style.paddingRight) { + li.removeAttribute('style'); + } + }); + } + if (!blankIconList.length) { + return; + } + var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)'); + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isNullOrUndefined"])(iconLi)) { + return; + } + if (iconLi.classList.contains('e-url')) { + iconLi = iconLi.querySelector('.e-menu-url'); + } + var icon = iconLi.querySelector('.e-menu-icon'); + var cssProp; + var enableRtl = popup.classList.contains('e-rtl'); + if (enableRtl) { + cssProp = { padding: 'paddingRight', margin: 'marginLeft' }; + } + else { + cssProp = { padding: 'paddingLeft', margin: 'marginRight' }; + } + /* eslint-disable */ + var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10) + + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + "px"; + blankIconList.forEach(function (li) { + if (li.classList.contains('e-url')) { + li.querySelector('.e-menu-url').style[cssProp.padding] = size; + } + else { + li.style[cssProp.padding] = size; + } + }); + /* eslint-enable */ +} +/** + * Defines the items of Split Button/DropDownButton. + */ +var Item = /** @__PURE__ @class */ (function (_super) { + __extends(Item, _super); + function Item() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "id", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Item.prototype, "separator", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "text", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], Item.prototype, "url", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], Item.prototype, "disabled", void 0); + return Item; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["ChildProperty"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/index.js": +/*!************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/index.js ***! + \************************************************************************/ +/*! exports provided: getModel, upDownKeyHandler, setBlankIconStyle, Item */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/common.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getModel", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["getModel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "upDownKeyHandler", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["upDownKeyHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBlankIconStyle", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["setBlankIconStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return _common__WEBPACK_IMPORTED_MODULE_0__["Item"]; }); + +/** + * Common modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/drop-down-button.js": +/*!*********************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/drop-down-button.js ***! + \*********************************************************************************************/ +/*! exports provided: DropDownButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DropDownButton", function() { return DropDownButton; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../common/common */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/common.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + + + + +var classNames = { + DISABLED: 'e-disabled', + FOCUS: 'e-focused', + ICON: 'e-menu-icon', + ITEM: 'e-item', + POPUP: 'e-dropdown-popup', + RTL: 'e-rtl', + SEPARATOR: 'e-separator', + VERTICAL: 'e-vertical' +}; +/** + * DropDownButton component is used to toggle contextual overlays for displaying list of action items. + * It can contain both text and images. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var DropDownButton = /** @__PURE__ @class */ (function (_super) { + __extends(DropDownButton, _super); + /** + * Constructor for creating the widget + * + * @param {DropDownButtonModel} options - Specifies dropdown button model + * @param {string|HTMLButtonElement} element - Specifies element + * @hidden + */ + function DropDownButton(options, element) { + var _this = _super.call(this, options, element) || this; + _this.isPopupCreated = true; + return _this; + } + DropDownButton.prototype.preRender = function () { + /** */ + }; + /** + * Get the properties to be maintained in the persisted state. + * + * @returns {string} - Persist data + */ + DropDownButton.prototype.getPersistData = function () { + return this.addOnPersist([]); + }; + /** + * To open/close DropDownButton popup based on current state of the DropDownButton. + * + * @returns {void} + */ + DropDownButton.prototype.toggle = function () { + if (this.canOpen()) { + this.openPopUp(); + } + else if (this.createPopupOnClick && !this.isPopupCreated) { + this.createPopup(); + this.openPopUp(); + } + else { + this.closePopup(); + } + }; + /** + * Initialize the Component rendering + * + * @returns {void} + * @private + */ + DropDownButton.prototype.render = function () { + this.initialize(); + if (!this.disabled) { + this.wireEvents(); + } + this.renderComplete(); + }; + /** + * Adds a new item to the menu. By default, new item appends to the list as the last item, + * but you can insert based on the text parameter. + * + * @param { ItemModel[] } items - Specifies an array of JSON data. + * @param { string } text - Specifies the text to insert the newly added item in the menu. + * @returns {void}. + */ + DropDownButton.prototype.addItems = function (items, text) { + var newItem; + var idx = this.items.length; + for (var j = 0, len = this.items.length; j < len; j++) { + if (text === this.items[j].text) { + idx = j; + break; + } + } + for (var i = items.length - 1; i >= 0; i--) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + newItem = new _common_common__WEBPACK_IMPORTED_MODULE_3__["Item"](this, 'items', items[i], true); + this.items.splice(idx, 0, newItem); + } + if (!this.canOpen()) { + this.createItems(); + } + }; + /** + * Removes the items from the menu. + * + * @param { string[] } items - Specifies an array of string to remove the items. + * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id. + * @returns {void}. + */ + DropDownButton.prototype.removeItems = function (items, isUniqueId) { + var refresh = false; + for (var i = 0, len = items.length; i < len; i++) { + for (var j = 0, len_1 = this.items.length; j < len_1; j++) { + if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) { + this.items.splice(j, 1); + refresh = true; + break; + } + } + } + if (refresh && this.getULElement()) { + this.createItems(); + } + }; + DropDownButton.prototype.createPopup = function () { + var _a; + var div = this.createElement('div', { + className: classNames.POPUP, + id: this.element.id + '-popup' + }); + document.body.appendChild(div); + this.dropDown = new _ej2_popups__WEBPACK_IMPORTED_MODULE_2__["Popup"](div, { + relateTo: this.element, + collision: { X: 'fit', Y: 'flip' }, + position: { X: 'left', Y: 'bottom' }, + targetType: 'relative', + content: this.target ? this.getTargetElement() : '', + enableRtl: this.enableRtl + }); + if (this.dropDown.element.style.position === 'fixed') { + this.dropDown.refreshPosition(this.element); + } + this.dropDown.hide(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, (_a = {}, + _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false', + _a['aria-expanded'] = 'false', + _a['type'] = 'button', + _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton', + _a)); + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([div], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + this.isPopupCreated = true; + }; + DropDownButton.prototype.getTargetElement = function () { + return typeof (this.target) === 'string' ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["select"])(this.target) : this.target; + }; + DropDownButton.prototype.createItems = function (appendItems) { + var items = this.items; + var showIcon = this.hasIcon(this.items, 'iconCss'); + var span; + var item; + var li; + var eventArgs; + var ul = this.getULElement(); + if (ul) { + ul.innerHTML = ''; + } + else { + ul = this.createElement('ul', { + attrs: { 'role': 'menu', 'tabindex': '0' } + }); + } + for (var i = 0; i < items.length; i++) { + item = items[i]; + var tempItem = item.text; + li = this.createElement('li', { + innerHTML: item.url ? '' : tempItem, + className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM, + attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem }, + id: item.id ? item.id : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName() + '-item') + }); + if (this.enableHtmlSanitizer) { + li.textContent = item.url ? '' : tempItem; + } + else { + li.innerHTML = item.url ? '' : tempItem; + } + if (item.url) { + li.appendChild(this.createAnchor(item)); + li.classList.add('e-url'); + } + if (item.iconCss) { + span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss }); + if (item.url) { + li.childNodes[0].appendChild(span); + } + else { + li.insertBefore(span, li.childNodes[0]); + } + } + else { + if (showIcon && !item.separator) { + li.classList.add('e-blank-icon'); + } + } + if (item.disabled) { + li.classList.add('e-disabled'); + } + eventArgs = { item: item, element: li }; + this.trigger('beforeItemRender', eventArgs); + ul.appendChild(li); + } + if (appendItems) { + this.getPopUpElement().appendChild(ul); + } + if (showIcon) { + Object(_common_common__WEBPACK_IMPORTED_MODULE_3__["setBlankIconStyle"])(this.getPopUpElement()); + } + }; + DropDownButton.prototype.hasIcon = function (items, field) { + for (var i = 0, len = items.length; i < len; i++) { + if (items[i]["" + field]) { + return true; + } + } + return false; + }; + DropDownButton.prototype.createAnchor = function (item) { + var tempItem = (this.enableHtmlSanitizer) ? _ej2_base__WEBPACK_IMPORTED_MODULE_0__["SanitizeHtmlHelper"].sanitize(item.text) : item.text; + return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } }); + }; + DropDownButton.prototype.initialize = function () { + this.button = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"]({ + iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content, + disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence + }); + this.button.createElement = this.createElement; + this.button.appendTo(this.element); + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + this.appendArrowSpan(); + this.setActiveElem([this.element]); + if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) { + this.createPopup(); + } + else { + this.isPopupCreated = false; + } + }; + DropDownButton.prototype.isColorPicker = function () { + if (!this.element) { + return false; + } + var prevElem = this.element.previousSibling; + if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) { + return true; + } + return false; + }; + DropDownButton.prototype.appendArrowSpan = function () { + this.element.appendChild(this.createElement('span', { + className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1 + ? 'bottom' : 'right') + ' e-caret' + })); + }; + DropDownButton.prototype.setActiveElem = function (elem) { + this.activeElem = elem; + }; + /** + * Get component name. + * + * @returns {string} - Module Name + * @private + */ + DropDownButton.prototype.getModuleName = function () { + return 'dropdown-btn'; + }; + DropDownButton.prototype.canOpen = function () { + var val = false; + if (this.isPopupCreated) { + val = this.getPopUpElement().classList.contains('e-popup-close'); + } + return val; + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + DropDownButton.prototype.destroy = function () { + var _this = this; + _super.prototype.destroy.call(this); + if (this.getModuleName() === 'dropdown-btn') { + var classList_1; + if (this.element.querySelector('span.e-caret')) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(this.element.querySelector('span.e-caret')); + } + if (this.cssClass) { + classList_1 = this.cssClass.split(' '); + } + this.button.destroy(); + if (classList_1) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classList_1); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(this.activeElem, ['e-active']); + var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type'] + : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class']; + attrList.forEach(function (key) { + _this.element.removeAttribute(key); + }); + this.popupUnWireEvents(); + this.destroyPopup(); + this.isPopupCreated = false; + if (!this.disabled) { + this.unWireEvents(); + } + } + }; + DropDownButton.prototype.destroyPopup = function () { + if (this.isPopupCreated) { + this.dropDown.destroy(); + if (this.getPopUpElement()) { + var popupEle = document.getElementById(this.getPopUpElement().id); + if (popupEle) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([popupEle], ['e-popup-open', 'e-popup-close']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(popupEle); + } + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.getPopUpElement(), 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler); + if (this.isPopupCreated && this.dropDown) { + this.dropDown.element = null; + this.dropDown = undefined; + } + } + this.isPopupCreated = false; + }; + DropDownButton.prototype.getPopUpElement = function () { + var val = null; + if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) { + var dropDownBtn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(this.activeElem[1], 'dropdown-btn'); + if (dropDownBtn) { + this.dropDown = dropDownBtn.dropDown; + } + } + if (this.dropDown) { + val = this.dropDown.element; + } + return val; + }; + DropDownButton.prototype.getULElement = function () { + var val = null; + if (this.getPopUpElement()) { + val = this.getPopUpElement().children[0]; + } + return val; + }; + DropDownButton.prototype.wireEvents = function () { + this.delegateMousedownHandler = this.mousedownHandler.bind(this); + if (!this.createPopupOnClick) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousedown touchstart', this.delegateMousedownHandler, this); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'keydown', this.keyBoardHandler, this); + }; + DropDownButton.prototype.popupWireEvents = function () { + if (!this.delegateMousedownHandler) { + this.delegateMousedownHandler = this.mousedownHandler.bind(this); + } + var popupElement = this.getPopUpElement(); + if (this.createPopupOnClick) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(document, 'mousedown touchstart', this.delegateMousedownHandler, this); + } + if (popupElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(popupElement, 'click', this.clickHandler, this); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(popupElement, 'keydown', this.keyBoardHandler, this); + if (this.closeActionEvents) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(popupElement, this.closeActionEvents, this.focusoutHandler, this); + } + } + this.rippleFn = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["rippleEffect"])(popupElement, { selector: '.' + classNames.ITEM }); + }; + DropDownButton.prototype.popupUnWireEvents = function () { + var popupElement = this.getPopUpElement(); + if (this.createPopupOnClick) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousedown touchstart', this.delegateMousedownHandler); + } + if (popupElement && popupElement.parentElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(popupElement, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(popupElement, 'keydown', this.keyBoardHandler); + if (this.closeActionEvents) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(popupElement, this.closeActionEvents, this.focusoutHandler); + } + } + if (_ej2_base__WEBPACK_IMPORTED_MODULE_0__["isRippleEnabled"] && this.rippleFn) { + this.rippleFn(); + } + }; + /** + * Handles the keyboard interactions. + * + * @param {KeyboardEventArgs} e - Specifies keyboard event args. + * @returns {void} + * @hidden + */ + DropDownButton.prototype.keyBoardHandler = function (e) { + if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) { + return; + } + switch (e.keyCode) { + case 38: + case 40: + if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) { + this.keyEventHandler(e); + } + else { + this.upDownKeyHandler(e); + } + break; + case 9: + case 13: + case 27: + case 32: + this.keyEventHandler(e); + break; + } + }; + DropDownButton.prototype.upDownKeyHandler = function (e) { + if (this.target && (e.keyCode === 38 || e.keyCode === 40)) { + return; + } + e.preventDefault(); + Object(_common_common__WEBPACK_IMPORTED_MODULE_3__["upDownKeyHandler"])(this.getULElement(), e.keyCode); + }; + DropDownButton.prototype.keyEventHandler = function (e) { + if (this.target && (e.keyCode === 13 || e.keyCode === 9)) { + return; + } + if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) { + this.activeElem[0].focus(); + return; + } + if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) { + return; + } + if (e.keyCode !== 9) { + e.preventDefault(); + } + if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) { + if (!this.canOpen()) { + this.closePopup(e, this.element); + } + } + else { + this.clickHandler(e); + } + }; + DropDownButton.prototype.getLI = function (elem) { + return elem.tagName === 'LI' ? elem : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(elem, 'li'); + }; + DropDownButton.prototype.mousedownHandler = function (e) { + var trgt = e.target; + if (this.dropDown && !this.canOpen() && !(Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '[id="' + this.getPopUpElement().id + '"]') + || Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '[id="' + this.element.id + '"]'))) { + this.closePopup(e); + } + }; + DropDownButton.prototype.focusoutHandler = function (e) { + if (this.isPopupCreated && !this.canOpen()) { + var liTarget = e.relatedTarget; + if (liTarget && liTarget.className.indexOf('e-item') > -1) { + var li = this.getLI(liTarget); + if (li) { + var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li); + var item = this.items[liIdx]; + if (item) { + var selectEventArgs = { element: li, item: item }; + this.trigger('select', selectEventArgs); + } + } + } + this.closePopup(e); + } + }; + DropDownButton.prototype.clickHandler = function (e) { + var trgt = e.target; + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '[id="' + this.element.id + '"]')) { + if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker())) { + if (this.getPopUpElement().classList.contains('e-popup-close')) { + this.openPopUp(e); + } + else { + this.closePopup(e); + } + } + else if (this.isPopupCreated) { + this.closePopup(e, this.activeElem[0]); + } + else { + this.createPopup(); + this.openPopUp(e); + } + } + else { + if (Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["closest"])(trgt, '[id="' + this.getPopUpElement().id + '"]')) { + var eventArgs = void 0; + var liIdx = void 0; + var item = void 0; + var li = this.getLI(trgt); + if (li) { + liIdx = Array.prototype.indexOf.call(this.getULElement().children, li); + item = this.items[liIdx]; + if (item) { + eventArgs = { element: li, item: item }; + this.trigger('select', eventArgs); + } + this.closePopup(e, this.activeElem[0]); + } + } + } + }; + DropDownButton.prototype.openPopUp = function (e) { + var _this = this; + if (e === void 0) { e = null; } + var isReact = false; + var popupElem = this.getPopUpElement(); + if (!this.target) { + this.createItems(true); + } + else { + if (this.activeElem.length > 1) { + var splitButton = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getComponent"])(this.activeElem[0], 'split-btn'); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (splitButton.isReact && popupElem.childNodes.length < 1) { + isReact = true; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement()); + this.renderReactTemplates(); + } + } + else { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (this.isReact && popupElem.childNodes.length < 1) { + isReact = true; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.appendReactElement(this.getTargetElement(), this.getPopUpElement()); + this.renderReactTemplates(); + } + } + } + var ul = this.getULElement(); + this.popupWireEvents(); + var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false }; + this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) { + if (!observedArgs.cancel) { + var ul_1 = _this.getULElement(); + _this.dropDown.show(null, _this.element); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([_this.element], 'e-active'); + _this.element.setAttribute('aria-expanded', 'true'); + _this.element.setAttribute('aria-owns', _this.getPopUpElement().id); + if (ul_1) { + ul_1.focus(); + } + if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') { + var wrapperWidth = void 0; + if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) { + wrapperWidth = _this.element.parentElement.offsetWidth; + } + else { + wrapperWidth = _this.element.offsetWidth; + } + var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth; + var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect; + if (popupLeft < 0) { + popupLeft = 0; + } + ul_1.parentElement.style.left = popupLeft + "px"; + } + var openArgs = { element: ul_1, items: _this.items }; + _this.trigger('open', openArgs); + } + }); + }; + DropDownButton.prototype.closePopup = function (e, focusEle) { + var _this = this; + if (e === void 0) { e = null; } + var ul = this.getULElement(); + var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false }; + this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) { + if (!observedArgs.cancel) { + var popupElement = _this.getPopUpElement(); + if (popupElement) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(popupElement, 'keydown', _this.keyBoardHandler); + } + _this.popupUnWireEvents(); + var ul_2 = _this.getULElement(); + var selectedLi = void 0; + if (ul_2) { + selectedLi = ul_2.querySelector('.e-selected'); + } + if (selectedLi) { + selectedLi.classList.remove('e-selected'); + } + _this.dropDown.hide(); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])(_this.activeElem, 'e-active'); + _this.element.setAttribute('aria-expanded', 'false'); + _this.element.removeAttribute('aria-owns'); + if (focusEle) { + focusEle.focus(); + } + var closeArgs = { element: ul_2, items: _this.items }; + _this.trigger('close', closeArgs); + if (!_this.target && ul_2) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ul_2); + } + if (!_this.target || _this.isColorPicker()) { + if (_this.createPopupOnClick) { + _this.destroyPopup(); + } + } + } + else { + if (ul) { + ul.focus(); + } + } + }); + }; + DropDownButton.prototype.unWireEvents = function () { + if (!this.createPopupOnClick) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(document, 'mousedown touchstart', this.delegateMousedownHandler); + } + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'keydown', this.keyBoardHandler); + if (this.isPopupCreated) { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.getPopUpElement(), 'click', this.clickHandler); + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler); + } + }; + /** + * Called internally if any of the property value changed. + * + * @param {DropDownButtonModel} newProp - Specifies new properties + * @param {DropDownButtonModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) { + var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl']; + this.button.setProperties(Object(_common_common__WEBPACK_IMPORTED_MODULE_3__["getModel"])(newProp, btnModel)); + var popupElement; + if (this.isPopupCreated) { + popupElement = this.getPopUpElement(); + this.dropDown.setProperties(Object(_common_common__WEBPACK_IMPORTED_MODULE_3__["getModel"])(newProp, ['enableRtl'])); + } + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'content': + if (!this.element.querySelector('span.e-caret')) { + this.appendArrowSpan(); + } + break; + case 'disabled': + if (newProp.disabled) { + this.unWireEvents(); + if (this.isPopupCreated && !this.canOpen()) { + this.closePopup(); + } + } + else { + this.wireEvents(); + } + break; + case 'cssClass': + if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) { + if (!this.element.querySelector('span.e-caret')) { + this.appendArrowSpan(); + } + var arrowSpan = this.element.querySelector('span.e-caret'); + newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowSpan, ['e-icon-bottom'], ['e-icon-right']) + : Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["classList"])(arrowSpan, ['e-icon-right'], ['e-icon-bottom']); + } + if (this.isPopupCreated) { + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([popupElement], oldProp.cssClass.split(' ')); + } + if (newProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([popupElement], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + } + break; + case 'target': + this.dropDown.content = this.getTargetElement(); + this.dropDown.dataBind(); + break; + case 'items': + if (this.isPopupCreated && this.getULElement()) { + this.createItems(); + } + break; + case 'createPopupOnClick': + if (newProp.createPopupOnClick) { + this.destroyPopup(); + } + else { + this.createPopup(); + } + break; + } + } + }; + /** + * Sets the focus to DropDownButton + * its native method + * + * @public + * @returns {void} + */ + DropDownButton.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DropDownButton.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DropDownButton.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], DropDownButton.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DropDownButton.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], DropDownButton.prototype, "iconPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], DropDownButton.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _common_common__WEBPACK_IMPORTED_MODULE_3__["Item"]) + ], DropDownButton.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], DropDownButton.prototype, "createPopupOnClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DropDownButton.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], DropDownButton.prototype, "closeActionEvents", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "close", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "select", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], DropDownButton.prototype, "created", void 0); + DropDownButton = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], DropDownButton); + return DropDownButton; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Component"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/index.js": +/*!**********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/index.js ***! + \**********************************************************************************/ +/*! exports provided: DropDownButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _drop_down_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drop-down-button */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/drop-down-button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropDownButton", function() { return _drop_down_button__WEBPACK_IMPORTED_MODULE_0__["DropDownButton"]; }); + +/** + * DropDownButton modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/index.js": +/*!*****************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/index.js ***! + \*****************************************************************/ +/*! exports provided: getModel, upDownKeyHandler, setBlankIconStyle, Item, DropDownButton, SplitButton, Deferred, createButtonGroup, SpinSettings, AnimationSettings, ProgressButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/index */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getModel", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["getModel"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "upDownKeyHandler", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["upDownKeyHandler"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setBlankIconStyle", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["setBlankIconStyle"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Item", function() { return _common_index__WEBPACK_IMPORTED_MODULE_0__["Item"]; }); + +/* harmony import */ var _drop_down_button_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop-down-button/index */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DropDownButton", function() { return _drop_down_button_index__WEBPACK_IMPORTED_MODULE_1__["DropDownButton"]; }); + +/* harmony import */ var _split_button_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./split-button/index */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplitButton", function() { return _split_button_index__WEBPACK_IMPORTED_MODULE_2__["SplitButton"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Deferred", function() { return _split_button_index__WEBPACK_IMPORTED_MODULE_2__["Deferred"]; }); + +/* harmony import */ var _button_group_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./button-group/index */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/button-group/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createButtonGroup", function() { return _button_group_index__WEBPACK_IMPORTED_MODULE_3__["createButtonGroup"]; }); + +/* harmony import */ var _progress_button_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./progress-button/index */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinSettings", function() { return _progress_button_index__WEBPACK_IMPORTED_MODULE_4__["SpinSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return _progress_button_index__WEBPACK_IMPORTED_MODULE_4__["AnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButton", function() { return _progress_button_index__WEBPACK_IMPORTED_MODULE_4__["ProgressButton"]; }); + +/** + * SplitButton all module + */ + + + + + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/index.js": +/*!*********************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/index.js ***! + \*********************************************************************************/ +/*! exports provided: SpinSettings, AnimationSettings, ProgressButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _progress_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./progress-button */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/progress-button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SpinSettings", function() { return _progress_button__WEBPACK_IMPORTED_MODULE_0__["SpinSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return _progress_button__WEBPACK_IMPORTED_MODULE_0__["AnimationSettings"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButton", function() { return _progress_button__WEBPACK_IMPORTED_MODULE_0__["ProgressButton"]; }); + +/** + * ProgressButton modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/progress-button.js": +/*!*******************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/progress-button/progress-button.js ***! + \*******************************************************************************************/ +/*! exports provided: SpinSettings, AnimationSettings, ProgressButton */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SpinSettings", function() { return SpinSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationSettings", function() { return AnimationSettings; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButton", function() { return ProgressButton; }); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_popups__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../ej2-popups */ "./ej2-resources/22.1.37/scripts/ej2-popups/index.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; + + + + + +var HIDESPINNER = 'e-hide-spinner'; +var PROGRESS = 'e-progress'; +var PROGRESSACTIVE = 'e-progress-active'; +var CONTENTCLS = 'e-btn-content'; +/** + * Defines the spin settings. + */ +var SpinSettings = /** @__PURE__ @class */ (function (_super) { + __extends(SpinSettings, _super); + function SpinSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(null) + ], SpinSettings.prototype, "template", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(16) + ], SpinSettings.prototype, "width", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Left') + ], SpinSettings.prototype, "position", void 0); + return SpinSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["ChildProperty"])); + +/** + * Defines the animation settings. + */ +var AnimationSettings = /** @__PURE__ @class */ (function (_super) { + __extends(AnimationSettings, _super); + function AnimationSettings() { + return _super !== null && _super.apply(this, arguments) || this; + } + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(400) + ], AnimationSettings.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('None') + ], AnimationSettings.prototype, "effect", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('ease') + ], AnimationSettings.prototype, "easing", void 0); + return AnimationSettings; +}(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["ChildProperty"])); + +/** + * The ProgressButton visualizes the progression of an operation to indicate the user + * that a process is happening in the background with visual representation. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var ProgressButton = /** @__PURE__ @class */ (function (_super) { + __extends(ProgressButton, _super); + /** + * Constructor for creating the widget. + * + * @param {ProgressButtonModel} options - Specifies progress button model + * @param {string|HTMLButtonElement} element - Specifies element + */ + function ProgressButton(options, element) { + var _this = _super.call(this, options, element) || this; + _this.step = 1; + return _this; + } + ProgressButton.prototype.preRender = function () { + _super.prototype.preRender.call(this); + }; + /** + * Initialize the Component rendering + * + * @returns {void} + * @private + */ + ProgressButton.prototype.render = function () { + _super.prototype.render.call(this); + this.init(); + this.wireEvents(); + this.setAria(); + this.renderComplete(); + }; + /** + * Starts the button progress at the specified percent. + * + * @param {number} percent - Starts the button progress at this percent. + * @returns {void} + */ + ProgressButton.prototype.start = function (percent) { + this.isPaused = false; + this.startProgress(percent ? percent : this.percent, this.progressTime); + }; + /** + * Stops the button progress. + * + * @returns {void} + */ + ProgressButton.prototype.stop = function () { + this.isPaused = true; + cancelAnimationFrame(this.timerId); + }; + /** + * Complete the button progress. + * + * @returns {void} + */ + ProgressButton.prototype.progressComplete = function () { + this.isPaused = false; + this.finishProgress(); + }; + /** + * Get component name. + * + * @returns {string} - Module Name + * @private + */ + ProgressButton.prototype.getModuleName = function () { + return 'progress-btn'; + }; + /** + * Destroys the widget. + * + * @returns {void} + */ + ProgressButton.prototype.destroy = function () { + var _this = this; + var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this), + 'e-spin-' + this.spinSettings.position.toLowerCase()]; + _super.prototype.destroy.call(this); + this.unWireEvents(); + this.element.innerHTML = ''; + if (this.cssClass) { + classList = classList.concat(this.cssClass.split(' ')); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["removeClass"])([this.element], classList); + var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow'] + : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class']; + css.forEach(function (key) { + _this.element.removeAttribute(key); + }); + if (this.disabled) { + this.element.removeAttribute('disabled'); + } + }; + ProgressButton.prototype.init = function () { + this.element.classList.add('e-' + _super.prototype.getModuleName.call(this)); + this.setContent(); + this.createSpinner(); + if (this.enableProgress) { + this.createProgress(); + } + }; + ProgressButton.prototype.createSpinner = function () { + var spinner = this.createElement('span', { className: 'e-spinner' }); + this.setSpinPosition(spinner); + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["createSpinner"])({ + target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template + }, this.createElement); + }; + ProgressButton.prototype.getSpinner = function () { + return this.element.getElementsByClassName('e-spinner')[0]; + }; + ProgressButton.prototype.getProgress = function () { + return this.element.getElementsByClassName(PROGRESS)[0]; + }; + ProgressButton.prototype.setSpinPosition = function (ele) { + var position = this.spinSettings.position || 'Left'; + if (position === 'Left' || position === 'Top') { + this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]); + } + else { + this.element.appendChild(ele); + } + this.element.classList.add('e-spin-' + position.toLowerCase()); + }; + ProgressButton.prototype.createProgress = function () { + this.element.appendChild(this.createElement('span', { className: PROGRESS })); + }; + ProgressButton.prototype.setContent = function () { + var cont; + cont = this.element.innerHTML; + if (this.enableHtmlSanitizer) { + cont = _ej2_base__WEBPACK_IMPORTED_MODULE_1__["SanitizeHtmlHelper"].sanitize(this.element.innerHTML); + } + this.element.innerHTML = ''; + this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont })); + }; + ProgressButton.prototype.setContentIcon = function (content) { + var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content }); + if (this.iconCss) { + var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss }); + if (!this.element.textContent.trim()) { + this.element.classList.add('e-icon-btn'); + } + else { + span.classList.add('e-icon-' + this.iconPosition.toLowerCase()); + if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') { + this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn'); + } + } + var node = contElem.childNodes[0]; + if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) { + contElem.insertBefore(span, node); + } + else { + contElem.appendChild(span); + } + } + this.element.appendChild(contElem); + }; + ProgressButton.prototype.clickHandler = function () { + if (this.element.classList.contains(PROGRESSACTIVE)) { + return; + } + this.startProgress(); + }; + ProgressButton.prototype.startProgress = function (percent, progressTime) { + var clsList = this.element.classList; + var isVertical = clsList.contains('e-vertical'); + clsList.add(PROGRESSACTIVE); + if (!(clsList.contains(HIDESPINNER))) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["showSpinner"])(this.element.querySelector(".e-spinner")); + } + this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical); + this.startContAnimate(); + }; + ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) { + var _this = this; + try { + var timeDiff = timestamp - prevTime; + var stepTime = this.duration * step / 100; + var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0; + this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1; + prevTime = timestamp - timeDiffBuffer_1; + percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100; + prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent; + var args = { percent: prevPercent, currentDuration: progressTime, step: step }; + this.eIsVertical = isVertical; + if (percent === 0) { + this.trigger('begin', args, function (observedArgs) { + _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime); + }); + } + else if (percent === 100 || progressTime === this.duration) { + this.trigger('end', args, function (observedArgs) { + _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime); + }); + } + else { + this.trigger('progress', args, function (observedArgs) { + _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime); + }); + } + } + catch (e) { + cancelAnimationFrame(this.timerId); + this.trigger('fail', e); + } + }; + ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) { + var _this = this; + var percent = perc; + var prevPercent = pPerc; + var timeDiffBuffer = timDif; + var progressTime = prgTim; + var prevProgressTime = pPrgTim; + var prevTime = pTim; + var isVertical = this.eIsVertical; + if (percent !== args.percent && args.percent !== prevPercent) { + percent = args.percent; + } + this.percent = percent; + this.step = args.step; + if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) { + this.timerId = requestAnimationFrame(function () { + if (_this.enableProgress) { + _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%'; + } + _this.element.setAttribute('aria-valuenow', percent.toString()); + }); + prevPercent = percent; + prevProgressTime = progressTime; + } + if (!this.isPaused) { + if (progressTime < this.duration && percent < 100) { + this.interval = window.setTimeout(function () { + _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical); + }, (this.duration / 100) - timeDiffBuffer); + } + else { + this.interval = window.setTimeout(function () { + _this.progressTime = _this.percent = 0; + if (_this.enableProgress) { + _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%'; + } + _this.element.setAttribute('aria-valuenow', '0'); + _this.hideSpin(); + }, 100); + } + } + }; + ProgressButton.prototype.startContAnimate = function () { + var _this = this; + var ele = this.element.getElementsByClassName(CONTENTCLS)[0]; + if (this.animationSettings.effect !== 'None') { + (new _ej2_base__WEBPACK_IMPORTED_MODULE_1__["Animation"]({})).animate(ele, { + duration: this.animationSettings.duration, + name: 'Progress' + this.animationSettings.effect, + timingFunction: this.animationSettings.easing, + begin: function () { + if (_this.spinSettings.position === 'Center') { + _this.setSpinnerSize(); + } + }, + end: function () { + ele.classList.add('e-animate-end'); + } + }); + } + else if (this.spinSettings.position === 'Center') { + this.setSpinnerSize(); + } + }; + ProgressButton.prototype.finishProgress = function () { + var clsList = this.element.classList; + var isVertical = clsList.contains('e-vertical'); + clsList.add(PROGRESSACTIVE); + var count = 100; + for (var i = this.percent; i < count; i++) { + i += 10; + if (i > 100) { + i = 100; + } + if (this.enableProgress) { + this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%'; + } + } + this.element.setAttribute('aria-valuenow', '0'); + this.hideSpin(); + var args = { step: this.step, currentDuration: this.progressTime, percent: 100 }; + clearTimeout(this.interval); + this.trigger('end', args); + this.progressTime = this.percent = 0; + }; + ProgressButton.prototype.setSpinnerSize = function () { + var ele = this.element.getElementsByClassName(CONTENTCLS)[0]; + var spinner = this.getSpinner(); + spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px'; + spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px'; + ele.classList.add('e-cont-animate'); + }; + ProgressButton.prototype.hideSpin = function () { + var cont = this.element.getElementsByClassName(CONTENTCLS)[0]; + if (!(this.element.classList.contains(HIDESPINNER))) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["hideSpinner"])(this.element.querySelector(".e-spinner")); + } + this.element.classList.remove(PROGRESSACTIVE); + if (this.animationSettings.effect !== 'None') { + cont.classList.remove('e-animate-end'); + } + if (this.spinSettings.position === 'Center') { + var ele = this.getSpinner(); + cont.classList.remove('e-cont-animate'); + ele.style.width = 'auto'; + ele.style.height = 'auto'; + } + }; + ProgressButton.prototype.setIconSpan = function () { + var cont = this.element.getElementsByClassName(CONTENTCLS)[0]; + var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0]; + if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) { + cont.insertBefore(iconSpan, cont.childNodes[0]); + } + else { + cont.appendChild(iconSpan); + } + }; + ProgressButton.prototype.setAria = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["attributes"])(this.element, { + 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0' + }); + }; + ProgressButton.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["EventHandler"].add(this.element, 'click', this.clickHandler, this); + }; + ProgressButton.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["EventHandler"].remove(this.element, 'click', this.clickHandler); + }; + /** + * Called internally if any of the property value changed. + * + * @param {ProgressButtonModel} newProp - Specifies new properties + * @param {ProgressButtonModel} oldProp - Specifies old properties + * @returns {void} + * @private + */ + ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) { + var ele = this.element; + var isSpinning = false; + var clsList = this.element.querySelector('.e-spinner-pane').classList; + if (clsList.contains('e-spin-show')) { + isSpinning = true; + } + _super.prototype.onPropertyChanged.call(this, newProp, oldProp); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'content': + this.setContent(); + this.createSpinner(); + if (isSpinning) { + Object(_ej2_popups__WEBPACK_IMPORTED_MODULE_2__["showSpinner"])(this.element.querySelector(".e-spinner")); + isSpinning = false; + } + if (this.enableProgress) { + this.createProgress(); + } + ele.setAttribute('aria-label', ele.textContent + ' progress'); + break; + case 'iconCss': + if (!oldProp.iconCss) { + this.setIconSpan(); + } + break; + case 'iconPosition': + this.setIconSpan(); + break; + case 'enableProgress': + if (newProp.enableProgress) { + this.createProgress(); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["remove"])(this.getProgress()); + } + break; + case 'spinSettings': + if (newProp.spinSettings.position) { + ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase()); + this.setSpinPosition(this.getSpinner()); + } + if (newProp.spinSettings.template || newProp.spinSettings.width) { + ele.removeChild(this.getSpinner()); + this.createSpinner(); + } + break; + } + } + }; + /** + * Sets the focus to ProgressButton + * its native method + * + * @public + * @returns {void} + */ + ProgressButton.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], ProgressButton.prototype, "enableProgress", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(2000) + ], ProgressButton.prototype, "duration", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('Left') + ], ProgressButton.prototype, "iconPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('') + ], ProgressButton.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], ProgressButton.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], ProgressButton.prototype, "isPrimary", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('') + ], ProgressButton.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])('') + ], ProgressButton.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], ProgressButton.prototype, "isToggle", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Property"])(false) + ], ProgressButton.prototype, "enableHtmlSanitizer", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Complex"])({}, SpinSettings) + ], ProgressButton.prototype, "spinSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Complex"])({}, AnimationSettings) + ], ProgressButton.prototype, "animationSettings", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], ProgressButton.prototype, "created", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], ProgressButton.prototype, "begin", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], ProgressButton.prototype, "progress", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], ProgressButton.prototype, "end", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_1__["Event"])() + ], ProgressButton.prototype, "fail", void 0); + ProgressButton = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_1__["NotifyPropertyChanges"] + ], ProgressButton); + return ProgressButton; +}(_ej2_buttons__WEBPACK_IMPORTED_MODULE_0__["Button"])); + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/index.js": +/*!******************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/index.js ***! + \******************************************************************************/ +/*! exports provided: SplitButton, Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _split_button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./split-button */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/split-button.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SplitButton", function() { return _split_button__WEBPACK_IMPORTED_MODULE_0__["SplitButton"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Deferred", function() { return _split_button__WEBPACK_IMPORTED_MODULE_0__["Deferred"]; }); + +/** + * Split Button modules + */ + + + +/***/ }), + +/***/ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/split-button.js": +/*!*************************************************************************************!*\ + !*** ./ej2-resources/22.1.37/scripts/ej2-splitbuttons/split-button/split-button.js ***! + \*************************************************************************************/ +/*! exports provided: SplitButton, Deferred */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SplitButton", function() { return SplitButton; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Deferred", function() { return Deferred; }); +/* harmony import */ var _ej2_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../ej2-base */ "./ej2-resources/22.1.37/scripts/ej2-base/index.js"); +/* harmony import */ var _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../ej2-buttons */ "./ej2-resources/22.1.37/scripts/ej2-buttons/index.js"); +/* harmony import */ var _common_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../common/common */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/common/common.js"); +/* harmony import */ var _drop_down_button_drop_down_button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../drop-down-button/drop-down-button */ "./ej2-resources/22.1.37/scripts/ej2-splitbuttons/drop-down-button/drop-down-button.js"); +var __extends = (undefined && undefined.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// + + + + + + +var RTL = 'e-rtl'; +var TAGNAME = 'EJS-SPLITBUTTON'; +/** + * SplitButton component has primary and secondary button. Primary button is used to select + * default action and secondary button is used to toggle contextual overlays for displaying list of + * action items. It can contain both text and images. + * ```html + * + * ``` + * ```typescript + * + * ``` + */ +var SplitButton = /** @__PURE__ @class */ (function (_super) { + __extends(SplitButton, _super); + /** + * Constructor for creating the widget + * + * @param {SplitButtonModel} options - Specifies the splitbutton model + * @param {string|HTMLButtonElement} element - Specifies the element + * @hidden + */ + function SplitButton(options, element) { + return _super.call(this, options, element) || this; + } + /** + * Initialize Angular support. + * + * @private + * @returns {void} + */ + SplitButton.prototype.preRender = function () { + var ele = this.element; + if (ele.tagName === TAGNAME) { + var ejInstance = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getValue"])('ej2_instances', ele); + var btn = this.createElement('button', { attrs: { 'type': 'button' } }); + var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' }); + for (var idx = 0, len = ele.attributes.length; idx < len; idx++) { + btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue); + } + ele.parentNode.insertBefore(wrapper, ele); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["detach"])(ele); + ele = btn; + wrapper.appendChild(ele); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["setValue"])('ej2_instances', ejInstance, ele); + this.wrapper = wrapper; + this.element = ele; + } + if (!this.element.id) { + this.element.id = Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getUniqueID"])('e-' + this.getModuleName()); + } + }; + /** + * Initialize the Component rendering. + * + * @returns {void} + * @private + */ + SplitButton.prototype.render = function () { + this.initWrapper(); + this.createPrimaryButton(); + this.renderControl(); + }; + SplitButton.prototype.renderControl = function () { + this.createSecondaryButton(); + this.setActiveElem([this.element, this.secondaryBtnObj.element]); + this.setAria(); + this.wireEvents(); + this.renderComplete(); + }; + /** + * Adds a new item to the menu. By default, new item appends to the list as the last item, + * but you can insert based on the text parameter. + * + * @param { ItemModel[] } items - Specifies an array of JSON data. + * @param { string } text - Specifies the text to insert the newly added item in the menu. + * @returns {void}. + */ + SplitButton.prototype.addItems = function (items, text) { + _super.prototype.addItems.call(this, items, text); + this.secondaryBtnObj.items = this.items; + }; + /** + * Removes the items from the menu. + * + * @param { string[] } items - Specifies an array of string to remove the items. + * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id. + * @returns {void}. + */ + SplitButton.prototype.removeItems = function (items, isUniqueId) { + _super.prototype.removeItems.call(this, items, isUniqueId); + this.secondaryBtnObj.items = this.items; + }; + SplitButton.prototype.initWrapper = function () { + if (!this.wrapper) { + this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' }); + this.element.parentNode.insertBefore(this.wrapper, this.element); + } + this.element.classList.remove('e-' + this.getModuleName()); + if (this.enableRtl) { + this.wrapper.classList.add(RTL); + } + if (this.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + } + }; + SplitButton.prototype.createPrimaryButton = function () { + var btnModel = { + cssClass: this.cssClass, + enableRtl: this.enableRtl, + iconCss: this.iconCss, + iconPosition: this.iconPosition, + content: this.content, + disabled: this.disabled + }; + this.primaryBtnObj = new _ej2_buttons__WEBPACK_IMPORTED_MODULE_1__["Button"](btnModel); + this.primaryBtnObj.createElement = this.createElement; + this.primaryBtnObj.appendTo(this.element); + this.element.classList.add('e-' + this.getModuleName()); + this.element.type = 'button'; + this.wrapper.appendChild(this.element); + }; + SplitButton.prototype.createSecondaryButton = function () { + var _this = this; + var btnElem = this.createElement('button', { + className: 'e-icon-btn', + attrs: { 'tabindex': '-1' }, + id: this.element.id + '_dropdownbtn' + }); + this.wrapper.appendChild(btnElem); + var dropDownBtnModel = { + cssClass: this.cssClass, + disabled: this.disabled, + enableRtl: this.enableRtl, + items: this.items, + target: this.target, + createPopupOnClick: this.createPopupOnClick + }; + dropDownBtnModel.beforeItemRender = function (args) { + if (_this.createPopupOnClick) { + _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper; + _this.dropDown = _this.secondaryBtnObj.dropDown; + } + _this.trigger('beforeItemRender', args); + }; + dropDownBtnModel.open = function (args) { + _this.trigger('open', args); + }; + dropDownBtnModel.close = function (args) { + _this.trigger('close', args); + }; + dropDownBtnModel.select = function (args) { + _this.trigger('select', args); + }; + dropDownBtnModel.beforeOpen = function (args) { + if (_this.createPopupOnClick && _this.items.length == 0) { + _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper; + _this.dropDown = _this.secondaryBtnObj.dropDown; + } + var callBackPromise = new Deferred(); + _this.trigger('beforeOpen', args, function (observedArgs) { + callBackPromise.resolve(observedArgs); + }); + return callBackPromise; + }; + dropDownBtnModel.beforeClose = function (args) { + var callBackPromise = new Deferred(); + _this.trigger('beforeClose', args, function (observedArgs) { + callBackPromise.resolve(observedArgs); + }); + return callBackPromise; + }; + this.secondaryBtnObj = new _drop_down_button_drop_down_button__WEBPACK_IMPORTED_MODULE_3__["DropDownButton"](dropDownBtnModel); + this.secondaryBtnObj.createElement = this.createElement; + this.secondaryBtnObj.appendTo(btnElem); + if (!this.createPopupOnClick) { + this.secondaryBtnObj.dropDown.relateTo = this.wrapper; + this.dropDown = this.secondaryBtnObj.dropDown; + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this.isPopupCreated = this.secondaryBtnObj.isPopupCreated; + this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element]; + this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right'); + if (this.disabled) { + this.wrapper.classList.add('e-splitbtn-disabled'); + } + }; + SplitButton.prototype.setAria = function () { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["attributes"])(this.element, { + 'aria-expanded': 'false', 'aria-haspopup': 'true', + 'aria-label': this.element.textContent + ' splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup' + }); + }; + /** + * Get component name. + * + * @returns {string} - Module Name + * @private + */ + SplitButton.prototype.getModuleName = function () { + return 'split-btn'; + }; + /** + * To open/close SplitButton popup based on current state of the SplitButton. + * + * @returns {void} + */ + SplitButton.prototype.toggle = function () { + this.secondaryBtnObj.toggle(); + }; + SplitButton.prototype.destroy = function () { + var _this = this; + var classList = [RTL]; + if (this.cssClass) { + classList = classList.concat(this.cssClass.split(' ')); + } + if (this.element) { + var element = document.getElementById(this.element.id); + if (element && element.parentElement === this.wrapper) { + if (this.wrapper.tagName === TAGNAME) { + this.wrapper.innerHTML = ''; + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], this.cssClass.split(' ')); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.element], classList); + ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) { + _this.element.removeAttribute(key); + }); + this.wrapper.parentNode.insertBefore(this.element, this.wrapper); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["remove"])(this.wrapper); + } + this.unWireEvents(); + } + } + this.primaryBtnObj.destroy(); + this.secondaryBtnObj.destroy(); + _super.prototype.destroy.call(this); + if (!this.element.getAttribute('class')) { + this.element.removeAttribute('class'); + } + }; + SplitButton.prototype.wireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].add(this.element, 'click', this.primaryBtnClickHandler, this); + new _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"](this.element, { + keyAction: this.btnKeyBoardHandler.bind(this), + keyConfigs: { + altdownarrow: 'alt+downarrow', + enter: 'enter' + } + }); + }; + SplitButton.prototype.unWireEvents = function () { + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["EventHandler"].remove(this.element, 'click', this.primaryBtnClickHandler); + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["getInstance"])(this.element, _ej2_base__WEBPACK_IMPORTED_MODULE_0__["KeyboardEvents"]).destroy(); + }; + SplitButton.prototype.primaryBtnClickHandler = function () { + this.trigger('click', { element: this.element }); + }; + SplitButton.prototype.btnKeyBoardHandler = function (e) { + switch (e.action) { + case 'altdownarrow': + this.clickHandler(e); + break; + case 'enter': + this.clickHandler(e); + if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) { + this.element.classList.remove('e-active'); + this.secondaryBtnObj.element.classList.add('e-active'); + } + else { + this.secondaryBtnObj.element.classList.remove('e-active'); + } + break; + } + }; + /** + * Called internally if any of the property value changed. + * + * @param {SplitButtonModel} newProp - Specifies new properties + * @param {SplitButtonModel} oldProp - Specifies old properties + * @returns {void} + */ + SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) { + var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl']; + this.primaryBtnObj.setProperties(Object(_common_common__WEBPACK_IMPORTED_MODULE_2__["getModel"])(newProp, model)); + model = ['beforeOpen', 'beforeItemRender', 'select', 'open', + 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick']; + if (Object.keys(newProp).indexOf('items') > -1) { + this.secondaryBtnObj.items = newProp.items; + this.secondaryBtnObj.dataBind(); + } + this.secondaryBtnObj.setProperties(Object(_common_common__WEBPACK_IMPORTED_MODULE_2__["getModel"])(newProp, model)); + for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) { + var prop = _a[_i]; + switch (prop) { + case 'cssClass': + if (oldProp.cssClass) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], oldProp.cssClass.split(' ')); + } + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' ')); + break; + case 'enableRtl': + if (newProp.enableRtl) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], RTL); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], RTL); + } + break; + case 'disabled': + if (newProp.disabled) { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["addClass"])([this.wrapper], 'e-splitbtn-disabled'); + } + else { + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["removeClass"])([this.wrapper], 'e-splitbtn-disabled'); + } + } + } + }; + /** + * Sets the focus to SplitButton + * its native method + * + * @public + * @returns {void} + */ + SplitButton.prototype.focusIn = function () { + this.element.focus(); + }; + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SplitButton.prototype, "content", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SplitButton.prototype, "cssClass", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SplitButton.prototype, "disabled", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SplitButton.prototype, "iconCss", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('Left') + ], SplitButton.prototype, "iconPosition", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])(false) + ], SplitButton.prototype, "createPopupOnClick", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Collection"])([], _common_common__WEBPACK_IMPORTED_MODULE_2__["Item"]) + ], SplitButton.prototype, "items", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Property"])('') + ], SplitButton.prototype, "target", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "beforeItemRender", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "beforeOpen", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "beforeClose", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "click", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "close", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "open", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "select", void 0); + __decorate([ + Object(_ej2_base__WEBPACK_IMPORTED_MODULE_0__["Event"])() + ], SplitButton.prototype, "created", void 0); + SplitButton = __decorate([ + _ej2_base__WEBPACK_IMPORTED_MODULE_0__["NotifyPropertyChanges"] + ], SplitButton); + return SplitButton; +}(_drop_down_button_drop_down_button__WEBPACK_IMPORTED_MODULE_3__["DropDownButton"])); + +/** + * Deferred is used to handle asynchronous operation. + */ +var Deferred = /** @__PURE__ @class */ (function () { + function Deferred() { + var _this = this; + /** + * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future. + */ + this.promise = new Promise(function (resolve, reject) { + _this.resolve = resolve; + _this.reject = reject; + }); + /** + * Defines the callback function triggers when the Deferred object is rejected. + */ + this.catch = this.promise.catch.bind(this.promise); + /** + * Defines the callback function triggers when the Deferred object is resolved. + */ + this.then = this.promise.then.bind(this.promise); + } + return Deferred; +}()); + + + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/JS-Sample/index.html b/JS-Sample/index.html new file mode 100644 index 0000000..4725dec --- /dev/null +++ b/JS-Sample/index.html @@ -0,0 +1,40 @@ + + EJ2 Diagram + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/JS-Sample/index.js b/JS-Sample/index.js new file mode 100644 index 0000000..90840e9 --- /dev/null +++ b/JS-Sample/index.js @@ -0,0 +1,71 @@ +var employees = [ + { name: "John Doe", fillColor: "blue", strokeColor: "white" }, + { name: "Jane Smith", fillColor: "green", strokeColor: "black" }, +]; + +var nodeTemplate1 = function (data) { + var employeeList = ''; + employees.forEach(function (employee) { + var fillColor = employee.fillColor || 'transparent'; + var strokeColor = employee.strokeColor || 'black'; + var liStyle = "background-color: " + fillColor + "; border: 1px solid " + strokeColor + ";"; + employeeList += "
  • " + employee.name + "
  • "; + }); + return "
    " + data.id + "
      " + employeeList + "
    "; +}; + +var nodeTemplate2 = function (data) { + return '
    '; +}; + +var annotationTemplate1 = function (data) { + return '
    '; +}; + +var annotationTemplate2 = function (data) { + return '
    '; +}; + +var userHandleTemplate = function (data) { + return '
    '; +}; + +var nodes = [ + { + id: 'html1', width: 100, height: 100, offsetX: 100, offsetY: 100, + shape: { type: 'HTML' } + }, + { + id: 'html2', width: 100, height: 100, offsetX: 100, offsetY: 300, + shape: { type: 'HTML', content: nodeTemplate2 } + }, + { + id: 'basic1', width: 100, height: 100, offsetX: 300, offsetY: 100, + annotations: [{ id:'an1' }], + }, + { + id: 'basic2', width: 100, height: 100, offsetX: 300, offsetY: 300, + annotations: [{ id:'an2', template: annotationTemplate2}], + } + +]; + +var connectors = [ + { id: 'connector1', sourceID: 'basic1', targetID: 'basic2',annotations: [{ id:'con_an1',template:annotationTemplate1 }] }, +]; + +var diagram = new ej.diagrams.Diagram({ + width: '700px', height: '600px', + nodes: nodes, + connectors: connectors, + nodeTemplate: nodeTemplate1, + annotationTemplate: annotationTemplate1, + userHandleTemplate: userHandleTemplate, + }, '#element'); + + window.myFunction = function () { + console.log('Clicked!'); + }; + window.myFunction2 = function () { + console.log('Clicked button!'); + }; \ No newline at end of file diff --git a/React-Sample/.gitignore b/React-Sample/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/React-Sample/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/React-Sample/README.md b/React-Sample/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/React-Sample/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/React-Sample/package.json b/React-Sample/package.json new file mode 100644 index 0000000..a415521 --- /dev/null +++ b/React-Sample/package.json @@ -0,0 +1,39 @@ +{ + "name": "quickstart", + "version": "0.1.0", + "private": true, + "dependencies": { + "@syncfusion/ej2-react-diagrams": "^22.1.34", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/React-Sample/public/index.html b/React-Sample/public/index.html new file mode 100644 index 0000000..b4b2ffe --- /dev/null +++ b/React-Sample/public/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + React App + + + +
    + + diff --git a/React-Sample/src/App.css b/React-Sample/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/React-Sample/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/React-Sample/src/App.js b/React-Sample/src/App.js new file mode 100644 index 0000000..48c77b0 --- /dev/null +++ b/React-Sample/src/App.js @@ -0,0 +1,55 @@ +import './App.css'; +import * as React from "react"; +import { DiagramComponent, SelectorConstraints } from "@syncfusion/ej2-react-diagrams"; +function nodeTemplate1(props) { + return
    +} +function nodeTemplate2(props) { + return
    +} +function annotationTemplate1(props) { + return
    +} +function annotationTemplate2(props) { + return
    +} +function userHandleTemplate(props) { + return
    +} + +function App() { + const nodes = [ + { + id: 'html1', width: 100, height: 100, offsetX: 100, offsetY: 100, + shape: { type: 'HTML' } + }, + { + id: 'html2', width: 100, height: 100, offsetX: 100, offsetY: 300, + shape: { type: 'HTML', content: nodeTemplate2 } + }, + { + id: 'basic1', width: 100, height: 100, offsetX: 300, offsetY: 100, + annotations: [{ id:'an1' }], + }, + { + id: 'basic2', width: 100, height: 100, offsetX: 300, offsetY: 300, + annotations: [{ id:'an2', template: annotationTemplate2}], + } +]; +const connectors = [ + { id: 'connector1', sourceID: 'basic1', targetID: 'basic2',annotations: [{ id:'con_an1',template:annotationTemplate1 }] }, + +] +return (); +} + +export default App; diff --git a/React-Sample/src/App.test.js b/React-Sample/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/React-Sample/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/React-Sample/src/index.css b/React-Sample/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/React-Sample/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/React-Sample/src/index.js b/React-Sample/src/index.js new file mode 100644 index 0000000..d563c0f --- /dev/null +++ b/React-Sample/src/index.js @@ -0,0 +1,17 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/React-Sample/src/logo.svg b/React-Sample/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/React-Sample/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/React-Sample/src/reportWebVitals.js b/React-Sample/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/React-Sample/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/React-Sample/src/setupTests.js b/React-Sample/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/React-Sample/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/Vue-Sample/quickstart/.babelrc b/Vue-Sample/quickstart/.babelrc new file mode 100644 index 0000000..e812394 --- /dev/null +++ b/Vue-Sample/quickstart/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + ["env", { "modules": false }], + "stage-3" + ] +} diff --git a/Vue-Sample/quickstart/.editorconfig b/Vue-Sample/quickstart/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/Vue-Sample/quickstart/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/Vue-Sample/quickstart/.gitignore b/Vue-Sample/quickstart/.gitignore new file mode 100644 index 0000000..a0446a5 --- /dev/null +++ b/Vue-Sample/quickstart/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log +yarn-error.log + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln diff --git a/Vue-Sample/quickstart/README.md b/Vue-Sample/quickstart/README.md new file mode 100644 index 0000000..41283fd --- /dev/null +++ b/Vue-Sample/quickstart/README.md @@ -0,0 +1,18 @@ +# quickstart + +> A Vue.js project + +## Build Setup + +``` bash +# install dependencies +npm install + +# serve with hot reload at localhost:8080 +npm run dev + +# build for production with minification +npm run build +``` + +For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader). diff --git a/Vue-Sample/quickstart/index.html b/Vue-Sample/quickstart/index.html new file mode 100644 index 0000000..f592c50 --- /dev/null +++ b/Vue-Sample/quickstart/index.html @@ -0,0 +1,16 @@ + + + + + + quickstart + + +
    + + + diff --git a/Vue-Sample/quickstart/package-lock.json b/Vue-Sample/quickstart/package-lock.json new file mode 100644 index 0000000..4a51fb3 --- /dev/null +++ b/Vue-Sample/quickstart/package-lock.json @@ -0,0 +1,18437 @@ +{ + "name": "quickstart", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "quickstart", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@syncfusion/ej2-vue-diagrams": "^22.1.36", + "vue": "^2.5.11" + }, + "devDependencies": { + "babel-core": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-preset-env": "^1.6.0", + "babel-preset-stage-3": "^6.24.1", + "cross-env": "^5.0.5", + "css-loader": "^0.28.7", + "file-loader": "^1.1.4", + "vue-loader": "^13.0.5", + "vue-template-compiler": "^2.4.4", + "webpack": "^3.6.0", + "webpack-dev-server": "^2.9.1" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@syncfusion/ej2-base": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-22.1.34.tgz", + "integrity": "sha512-Cxk488BXsMHDYp4YmQ4uSBS1TSO9o6iiHs7qXO69BfNiSaRYhGfTbrBvtXgLFoE0KO4e/39sQ9Mle/zo+a2knw==", + "dependencies": { + "@syncfusion/ej2-icons": "~22.1.34" + }, + "bin": { + "syncfusion-license": "bin/syncfusion-license.js" + } + }, + "node_modules/@syncfusion/ej2-buttons": { + "version": "21.1.42", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-21.1.42.tgz", + "integrity": "sha512-llP3bA3GWnwLbyzdjgoR9kEQrRJ0hztWDgo3FtKePN/TDv+FrrgdMLW/wmZbPpHJT++/7FIqMOndiZIDLh7q7Q==", + "dependencies": { + "@syncfusion/ej2-base": "~21.1.37" + } + }, + "node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-base": { + "version": "21.1.40", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-21.1.40.tgz", + "integrity": "sha512-hFAtGh6TqbEckDRPGBSp5jFiyRCiOSubFsM99qoiP6Ub6GROAfzG7NvHwuoVulWsOLPgpye37DQsM2K0ex5Jyg==", + "dependencies": { + "@syncfusion/ej2-icons": "~21.1.37" + }, + "bin": { + "syncfusion-license": "bin/syncfusion-license.js" + } + }, + "node_modules/@syncfusion/ej2-buttons/node_modules/@syncfusion/ej2-icons": { + "version": "21.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-icons/-/ej2-icons-21.1.37.tgz", + "integrity": "sha512-oJWxxYNcvz4PSsAKsFqwR027c4p6GXsxqDVJGy8tr0L/XT8hpBE+3mHsmSfeOhKyCHg4HCBiT3POVUd9Jg1unw==" + }, + "node_modules/@syncfusion/ej2-data": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-data/-/ej2-data-22.1.36.tgz", + "integrity": "sha512-pbS7NSc3qn6cTAueFE8poN4Ap1635CzIsJ19/INac2lclJp2aej979tcS3jQ3VRDykBMskGkv/HVN27aMR2UIg==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-diagrams": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-diagrams/-/ej2-diagrams-22.1.36.tgz", + "integrity": "sha512-gd5b8LaTeLksdGEKWQby+klEaJrx3Uo/WcoCLN2YOy8aOIGmQKbAWw0MjF4LJK80VYP+6ttLVDvSgpXrIOl/4w==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~21.1.36", + "@syncfusion/ej2-data": "~22.1.36", + "@syncfusion/ej2-inputs": "~22.1.34", + "@syncfusion/ej2-lists": "~22.1.34", + "@syncfusion/ej2-navigations": "~22.1.36", + "@syncfusion/ej2-popups": "~22.1.36" + } + }, + "node_modules/@syncfusion/ej2-icons": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-icons/-/ej2-icons-22.1.34.tgz", + "integrity": "sha512-DErl0LGB7gndgdCUJ4DgGkccAAxga6BlqR0nxtYBKetNhQpICkzafiq0o8ZfDR5xV3bguIxHOTLZGYNB3PgVCw==" + }, + "node_modules/@syncfusion/ej2-inputs": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-inputs/-/ej2-inputs-22.1.34.tgz", + "integrity": "sha512-hORgtRRfujHh7ASH7RFteoLVkLIbT21J9/FLWlBMiQHcQ4UUTsyTiFEhJATUOuSsQZkxZ97ssv+OeZ13C1pjMw==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.34", + "@syncfusion/ej2-splitbuttons": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-inputs/node_modules/@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-lists": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-lists/-/ej2-lists-22.1.34.tgz", + "integrity": "sha512-fiOuLBXIWFh1Gf3VzCvhjJvOGLbreRnbEHqLyb7frTDM8hHNMYag53f+OwGF/+PG3X+M4eQmia/Lik3iJDaHTA==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.34", + "@syncfusion/ej2-data": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-lists/node_modules/@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-navigations": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-navigations/-/ej2-navigations-22.1.36.tgz", + "integrity": "sha512-fOVA1c8W0R5lQJFwLkfKxotlVI1CeJ83CVXdJJwmGM7MQ8Y/42s1fJE33sc5/sSBBCB4lJdNU+oL7+97/z6lpA==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~21.1.36", + "@syncfusion/ej2-data": "~22.1.36", + "@syncfusion/ej2-inputs": "~22.1.34", + "@syncfusion/ej2-lists": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.36" + } + }, + "node_modules/@syncfusion/ej2-popups": { + "version": "22.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-popups/-/ej2-popups-22.1.37.tgz", + "integrity": "sha512-SeljR99Hp8ghM3F/xuMhfN0jYAnq3swVapB0fLYGER/V+TIVNLbGqFDuEx4ONCA0xdW2cTTcGKTSg5iUD/4hdQ==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.36" + } + }, + "node_modules/@syncfusion/ej2-popups/node_modules/@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-splitbuttons": { + "version": "22.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-splitbuttons/-/ej2-splitbuttons-22.1.37.tgz", + "integrity": "sha512-mgzQV/E6pEykS1jL9BzDFxq1afRx/OMgbEWR2TVXP2DOKmhLzbObBm8dnvUm1u4WAHceh6JEtUNJs8QELv8Y8g==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.37" + } + }, + "node_modules/@syncfusion/ej2-vue-base": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-vue-base/-/ej2-vue-base-22.1.34.tgz", + "integrity": "sha512-CgR4sVpN2hJzVqEz4JrvX4X7uP5oEIJOMlgkxSNiIcK1rwOrIEeYjr3FmzJ/3v/hIPkmYG9GKIKrUjzSzvUvFA==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "node_modules/@syncfusion/ej2-vue-diagrams": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-vue-diagrams/-/ej2-vue-diagrams-22.1.36.tgz", + "integrity": "sha512-5rh3NOMCBaq/0OOJO8ulYU/Tjyy/mPWfEXZiHbsiRXz8yEEftIsLT6ie3LI0ECNkK043ayV4f1bg4LYKcpPfKg==", + "dependencies": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-diagrams": "22.1.36", + "@syncfusion/ej2-vue-base": "~22.1.34" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", + "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "dependencies": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==", + "deprecated": "This is probably built in to whatever tool you're using. If you still need it... idk", + "dev": true, + "dependencies": { + "acorn": "^4.0.3" + } + }, + "node_modules/acorn-dynamic-import/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", + "dev": true + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", + "dev": true, + "dependencies": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/autoprefixer/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", + "dev": true, + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", + "dev": true, + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", + "dev": true, + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "babel-core": "6", + "webpack": "2 || 3 || 4" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==", + "dev": true + }, + "node_modules/babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha512-EbciFN5Jb9iqU9bqaLmmFLx2G8pAUsvpWJ6OzOWBNrSY9qTohXj+7YfZx6Ug1Qqh7tCb1EA7Jvn9bMC1HBiucg==", + "dev": true + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==", + "dev": true + }, + "node_modules/babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", + "dev": true + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", + "dev": true + }, + "node_modules/babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha512-uT7eovUxtXe8Q2ufcjRuJIOL0hg6VAUJhiWJBLxH/evYAw+aqoJLcYTR8hqx13iOx/FfbCMHgBmXWZjukbkyPg==", + "dev": true, + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", + "dev": true, + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", + "dev": true, + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", + "dev": true, + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", + "dev": true, + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", + "dev": true, + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA==", + "dev": true, + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha512-eCbEOF8uN0KypFXJmZXn2sTk7bPV9uM5xov7G/7BM08TbQEObsVs0cEWfy6NQySlfk7JBi/t+XJP1JkruYfthA==", + "dev": true, + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==", + "dev": true, + "dependencies": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-api/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/caniuse-db": { + "version": "1.0.30001514", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001514.tgz", + "integrity": "sha512-UNM+FPzezoXIoMfGlpurnP8nUmNnHlwrUFrCsh/HmyN8OFtd6wXzyKTTuXPfEOEc6JDDtnX5vVSG7lvjBKjSzA==", + "dev": true + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001514", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz", + "integrity": "sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dev": true, + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", + "dev": true, + "dependencies": { + "q": "^1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==", + "dev": true, + "dependencies": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "node_modules/colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha512-PZFskfj64QnpKVK9cPdY36pyWEhZNM+srRVqtwMiVTlnViSoZcvX35PpBhhUcyLTHXYvz7pZRmxvsqwzJqg9kA==", + "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.5" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">=0.12.0 || >= 4.3.0 < 5.0.0 || >=5.10" + } + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==", + "dev": true, + "dependencies": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "node_modules/csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==", + "dev": true, + "dependencies": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + }, + "bin": { + "csso": "bin/csso" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", + "dev": true, + "dependencies": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.454", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz", + "integrity": "sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", + "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "es6-iterator": "~2.0.3", + "es6-symbol": "^3.1.3", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-set/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", + "dev": true, + "dependencies": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha512-bbB5tEuvC+SuRUG64X8ghvjgiRniuA4WlehWbFnoN4z6TxDXpyX+BMHF7rMgZAqoe+EbyNRUbHN0uuP9phy5jQ==", + "dev": true, + "dependencies": { + "original": ">=0.0.5" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz", + "integrity": "sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ==", + "dev": true, + "dependencies": { + "http-proxy": "^1.18.1", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/icss-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha512-DzGfTasXPmwizQP4XV2rR6r2vp8TjlOpMnJqG9Iy2i1pl1lkZdZj5rSpIc7YFGX2nS46PPgAGEyT+Q5hE2FB2g==", + "dev": true, + "dependencies": { + "meow": "^3.3.0" + }, + "bin": { + "internal-ip": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-expression-evaluator": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz", + "integrity": "sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==", + "dev": true + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "dependencies": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==", + "dev": true, + "dependencies": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "node_modules/postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==", + "dev": true, + "dependencies": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==", + "dev": true, + "dependencies": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==", + "dev": true, + "dependencies": { + "postcss": "^5.0.14" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==", + "dev": true, + "dependencies": { + "postcss": "^5.0.14" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==", + "dev": true, + "dependencies": { + "postcss": "^5.0.16" + } + }, + "node_modules/postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==", + "dev": true, + "dependencies": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha512-3fpCfnXo9Qd/O/q/XL4cJUhRsqjVD2V1Vhy3wOEcLE5kz0TGtdDXJSoiTdH4e847KphbEac4+EZSH4qLRYIgLw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha512-WKS5LJMZLWGwtfhs5ahb2ycpoYF3m0kK4QEaM+elr5EpiMt0H296P/9ETa13WXzjPwB0DDTBiUBBWSHoApQIJg==", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha512-/WGUMYhKiryWjYO6c7kAcqMuD7DVkaQ8HcbQenDme/d3OBOmrYMFObOKgUWyUy1uih5U2Dakq8H6VcJi5C9wHQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==", + "dev": true, + "dependencies": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "dev": true, + "dependencies": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==", + "dev": true + }, + "node_modules/postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==", + "dev": true, + "dependencies": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", + "dev": true, + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-values/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==", + "dev": true, + "dependencies": { + "postcss": "^5.0.5" + } + }, + "node_modules/postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==", + "dev": true, + "dependencies": { + "postcss": "^5.0.4" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "node_modules/postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==", + "dev": true, + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "node_modules/postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==", + "dev": true, + "dependencies": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==", + "dev": true, + "dependencies": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "node_modules/postcss/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==", + "dev": true, + "dependencies": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + } + }, + "node_modules/reduce-css-calc/node_modules/balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==", + "dev": true + }, + "node_modules/reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dev": true, + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "node_modules/sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha512-PmPRkAYIeuRgX+ZSieViT4Z3Q23bLS2Itm/ck1tSf5P0/yVuFDiI5q9mcnpXoMdToaPSRS9MEyUx/aaBxrFzyw==", + "dev": true, + "dependencies": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", + "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/time-stamp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz", + "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dev": true, + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dev": true, + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dev": true, + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "dev": true, + "optional": true + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha512-TNM20HMW67kxHRNCZdvLyiwE1ST6WyY5Ae+TG55V81NpvNwJ9+V4/po4LHA1R9afV/WrqzfedG2UJCk2+swirw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + }, + "peerDependencies": { + "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/vue": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", + "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "dependencies": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-loader": { + "version": "13.7.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz", + "integrity": "sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w==", + "dev": true, + "dependencies": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.1", + "postcss": "^6.0.8", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "prettier": "^1.7.0", + "resolve": "^1.4.0", + "source-map": "^0.6.1", + "vue-hot-reload-api": "^2.2.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.6.0" + }, + "peerDependencies": { + "css-loader": "*", + "vue-template-compiler": "^2.0.0" + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-loader/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vue-style-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", + "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, + "dependencies": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, + "dependencies": { + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" + }, + "engines": { + "node": ">=0.6" + }, + "peerDependencies": { + "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz", + "integrity": "sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.1.2", + "compression": "^1.7.3", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "^0.19.1", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">=4.7" + }, + "peerDependencies": { + "webpack": "^2.2.0 || ^3.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==", + "dev": true, + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" + }, + "@syncfusion/ej2-base": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-22.1.34.tgz", + "integrity": "sha512-Cxk488BXsMHDYp4YmQ4uSBS1TSO9o6iiHs7qXO69BfNiSaRYhGfTbrBvtXgLFoE0KO4e/39sQ9Mle/zo+a2knw==", + "requires": { + "@syncfusion/ej2-icons": "~22.1.34" + } + }, + "@syncfusion/ej2-buttons": { + "version": "21.1.42", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-21.1.42.tgz", + "integrity": "sha512-llP3bA3GWnwLbyzdjgoR9kEQrRJ0hztWDgo3FtKePN/TDv+FrrgdMLW/wmZbPpHJT++/7FIqMOndiZIDLh7q7Q==", + "requires": { + "@syncfusion/ej2-base": "~21.1.37" + }, + "dependencies": { + "@syncfusion/ej2-base": { + "version": "21.1.40", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-base/-/ej2-base-21.1.40.tgz", + "integrity": "sha512-hFAtGh6TqbEckDRPGBSp5jFiyRCiOSubFsM99qoiP6Ub6GROAfzG7NvHwuoVulWsOLPgpye37DQsM2K0ex5Jyg==", + "requires": { + "@syncfusion/ej2-icons": "~21.1.37" + } + }, + "@syncfusion/ej2-icons": { + "version": "21.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-icons/-/ej2-icons-21.1.37.tgz", + "integrity": "sha512-oJWxxYNcvz4PSsAKsFqwR027c4p6GXsxqDVJGy8tr0L/XT8hpBE+3mHsmSfeOhKyCHg4HCBiT3POVUd9Jg1unw==" + } + } + }, + "@syncfusion/ej2-data": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-data/-/ej2-data-22.1.36.tgz", + "integrity": "sha512-pbS7NSc3qn6cTAueFE8poN4Ap1635CzIsJ19/INac2lclJp2aej979tcS3jQ3VRDykBMskGkv/HVN27aMR2UIg==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "@syncfusion/ej2-diagrams": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-diagrams/-/ej2-diagrams-22.1.36.tgz", + "integrity": "sha512-gd5b8LaTeLksdGEKWQby+klEaJrx3Uo/WcoCLN2YOy8aOIGmQKbAWw0MjF4LJK80VYP+6ttLVDvSgpXrIOl/4w==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~21.1.36", + "@syncfusion/ej2-data": "~22.1.36", + "@syncfusion/ej2-inputs": "~22.1.34", + "@syncfusion/ej2-lists": "~22.1.34", + "@syncfusion/ej2-navigations": "~22.1.36", + "@syncfusion/ej2-popups": "~22.1.36" + } + }, + "@syncfusion/ej2-icons": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-icons/-/ej2-icons-22.1.34.tgz", + "integrity": "sha512-DErl0LGB7gndgdCUJ4DgGkccAAxga6BlqR0nxtYBKetNhQpICkzafiq0o8ZfDR5xV3bguIxHOTLZGYNB3PgVCw==" + }, + "@syncfusion/ej2-inputs": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-inputs/-/ej2-inputs-22.1.34.tgz", + "integrity": "sha512-hORgtRRfujHh7ASH7RFteoLVkLIbT21J9/FLWlBMiQHcQ4UUTsyTiFEhJATUOuSsQZkxZ97ssv+OeZ13C1pjMw==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.34", + "@syncfusion/ej2-splitbuttons": "~22.1.34" + }, + "dependencies": { + "@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34" + } + } + } + }, + "@syncfusion/ej2-lists": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-lists/-/ej2-lists-22.1.34.tgz", + "integrity": "sha512-fiOuLBXIWFh1Gf3VzCvhjJvOGLbreRnbEHqLyb7frTDM8hHNMYag53f+OwGF/+PG3X+M4eQmia/Lik3iJDaHTA==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.34", + "@syncfusion/ej2-data": "~22.1.34" + }, + "dependencies": { + "@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34" + } + } + } + }, + "@syncfusion/ej2-navigations": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-navigations/-/ej2-navigations-22.1.36.tgz", + "integrity": "sha512-fOVA1c8W0R5lQJFwLkfKxotlVI1CeJ83CVXdJJwmGM7MQ8Y/42s1fJE33sc5/sSBBCB4lJdNU+oL7+97/z6lpA==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~21.1.36", + "@syncfusion/ej2-data": "~22.1.36", + "@syncfusion/ej2-inputs": "~22.1.34", + "@syncfusion/ej2-lists": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.36" + } + }, + "@syncfusion/ej2-popups": { + "version": "22.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-popups/-/ej2-popups-22.1.37.tgz", + "integrity": "sha512-SeljR99Hp8ghM3F/xuMhfN0jYAnq3swVapB0fLYGER/V+TIVNLbGqFDuEx4ONCA0xdW2cTTcGKTSg5iUD/4hdQ==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-buttons": "~22.1.36" + }, + "dependencies": { + "@syncfusion/ej2-buttons": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-buttons/-/ej2-buttons-22.1.36.tgz", + "integrity": "sha512-9KgwGRdNOy8+qQCqr42qIUifeddIjTC6pnuWp2PnklKVbGUjdWHgdtkIdkaRTzLLbNLxTfiahgPbkrzB+459Dw==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34" + } + } + } + }, + "@syncfusion/ej2-splitbuttons": { + "version": "22.1.37", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-splitbuttons/-/ej2-splitbuttons-22.1.37.tgz", + "integrity": "sha512-mgzQV/E6pEykS1jL9BzDFxq1afRx/OMgbEWR2TVXP2DOKmhLzbObBm8dnvUm1u4WAHceh6JEtUNJs8QELv8Y8g==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-popups": "~22.1.37" + } + }, + "@syncfusion/ej2-vue-base": { + "version": "22.1.34", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-vue-base/-/ej2-vue-base-22.1.34.tgz", + "integrity": "sha512-CgR4sVpN2hJzVqEz4JrvX4X7uP5oEIJOMlgkxSNiIcK1rwOrIEeYjr3FmzJ/3v/hIPkmYG9GKIKrUjzSzvUvFA==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34" + } + }, + "@syncfusion/ej2-vue-diagrams": { + "version": "22.1.36", + "resolved": "https://registry.npmjs.org/@syncfusion/ej2-vue-diagrams/-/ej2-vue-diagrams-22.1.36.tgz", + "integrity": "sha512-5rh3NOMCBaq/0OOJO8ulYU/Tjyy/mPWfEXZiHbsiRXz8yEEftIsLT6ie3LI0ECNkK043ayV4f1bg4LYKcpPfKg==", + "requires": { + "@syncfusion/ej2-base": "~22.1.34", + "@syncfusion/ej2-diagrams": "22.1.36", + "@syncfusion/ej2-vue-base": "~22.1.34" + } + }, + "@vue/compiler-sfc": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz", + "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==", + "requires": { + "@babel/parser": "^7.18.4", + "postcss": "^8.4.14", + "source-map": "^0.6.1" + }, + "dependencies": { + "postcss": { + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "requires": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==", + "dev": true, + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true + } + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", + "dev": true, + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-loader": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha512-EbciFN5Jb9iqU9bqaLmmFLx2G8pAUsvpWJ6OzOWBNrSY9qTohXj+7YfZx6Ug1Qqh7tCb1EA7Jvn9bMC1HBiucg==", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha512-uT7eovUxtXe8Q2ufcjRuJIOL0hg6VAUJhiWJBLxH/evYAw+aqoJLcYTR8hqx13iOx/FfbCMHgBmXWZjukbkyPg==", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha512-ocgA9VJvyxwt+qJB0ncxV8kb/CjfTcECUY4tQ5VT7nP6Aohzobm8CDFaQ5FHdvZQzLmf0sgDxB8iRXZXxwZcyA==", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha512-eCbEOF8uN0KypFXJmZXn2sTk7bPV9uM5xov7G/7BM08TbQEObsVs0cEWfy6NQySlfk7JBi/t+XJP1JkruYfthA==", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==", + "dev": true, + "requires": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30001514", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001514.tgz", + "integrity": "sha512-UNM+FPzezoXIoMfGlpurnP8nUmNnHlwrUFrCsh/HmyN8OFtd6wXzyKTTuXPfEOEc6JDDtnX5vVSG7lvjBKjSzA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001514", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001514.tgz", + "integrity": "sha512-ENcIpYBmwAAOm/V2cXgM7rZUrKKaqisZl4ZAI520FIkqGXUxJjmaIssbRW5HVVR5tyV6ygTLIm15aU8LUmQSaQ==", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dev": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "dev": true, + "requires": { + "chalk": "^1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", + "dev": true, + "requires": { + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==", + "dev": true, + "requires": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==", + "dev": true, + "requires": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha512-PZFskfj64QnpKVK9cPdY36pyWEhZNM+srRVqtwMiVTlnViSoZcvX35PpBhhUcyLTHXYvz7pZRmxvsqwzJqg9kA==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", + "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.5" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "dev": true + }, + "css-loader": { + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==", + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==", + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.454", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.454.tgz", + "integrity": "sha512-pmf1rbAStw8UEQ0sr2cdJtWl48ZMuPD9Sto8HVQOq9vx9j2WgDEN6lYoaqFvqEHYOmGA9oRGn7LqWI9ta0YugQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", + "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "es6-iterator": "~2.0.3", + "es6-symbol": "^3.1.3", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha512-bbB5tEuvC+SuRUG64X8ghvjgiRniuA4WlehWbFnoN4z6TxDXpyX+BMHF7rMgZAqoe+EbyNRUbHN0uuP9phy5jQ==", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "requires": { + "type": "^2.7.2" + }, + "dependencies": { + "type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.2.tgz", + "integrity": "sha512-aYk1rTKqLTus23X3L96LGNCGNgWpG4cG0XoZIT1GUPhhulEHX/QalnO6Vbo+WmKWi4AL2IidjuC0wZtbpg0yhQ==", + "dev": true, + "requires": { + "http-proxy": "^1.18.1", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha512-DzGfTasXPmwizQP4XV2rR6r2vp8TjlOpMnJqG9Iy2i1pl1lkZdZj5rSpIc7YFGX2nS46PPgAGEyT+Q5hE2FB2g==", + "dev": true, + "requires": { + "meow": "^3.3.0" + } + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true + }, + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "loglevel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-expression-evaluator": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz", + "integrity": "sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==", + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==", + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==", + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==", + "dev": true, + "requires": { + "postcss": "^5.0.16" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==", + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha512-3fpCfnXo9Qd/O/q/XL4cJUhRsqjVD2V1Vhy3wOEcLE5kz0TGtdDXJSoiTdH4e847KphbEac4+EZSH4qLRYIgLw==", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha512-WKS5LJMZLWGwtfhs5ahb2ycpoYF3m0kK4QEaM+elr5EpiMt0H296P/9ETa13WXzjPwB0DDTBiUBBWSHoApQIJg==", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha512-/WGUMYhKiryWjYO6c7kAcqMuD7DVkaQ8HcbQenDme/d3OBOmrYMFObOKgUWyUy1uih5U2Dakq8H6VcJi5C9wHQ==", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==", + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", + "dev": true, + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==", + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==", + "dev": true, + "requires": { + "postcss": "^5.0.5" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==", + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==", + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha512-PmPRkAYIeuRgX+ZSieViT4Z3Q23bLS2Itm/ck1tSf5P0/yVuFDiI5q9mcnpXoMdToaPSRS9MEyUx/aaBxrFzyw==", + "dev": true, + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==", + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } + }, + "tapable": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", + "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "dev": true + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "time-stamp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz", + "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha512-TNM20HMW67kxHRNCZdvLyiwE1ST6WyY5Ae+TG55V81NpvNwJ9+V4/po4LHA1R9afV/WrqzfedG2UJCk2+swirw==", + "dev": true, + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz", + "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==", + "requires": { + "@vue/compiler-sfc": "2.7.14", + "csstype": "^3.1.0" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "13.7.3", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz", + "integrity": "sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w==", + "dev": true, + "requires": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "lru-cache": "^4.1.1", + "postcss": "^6.0.8", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "prettier": "^1.7.0", + "resolve": "^1.4.0", + "source-map": "^0.6.1", + "vue-hot-reload-api": "^2.2.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "vue-style-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", + "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "optional": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.5.tgz", + "integrity": "sha512-7TdOKKt7G3sWEhPKV0zP+nD0c4V9YKUJ3wDdBwQsZNo58oZIRoVIu66pg7PYkBW8A74msP9C2kLwmxGHndz/pw==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.1.2", + "compression": "^1.7.3", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "^0.19.1", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "yargs": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + } + } + } + } +} diff --git a/Vue-Sample/quickstart/package.json b/Vue-Sample/quickstart/package.json new file mode 100644 index 0000000..79fad8c --- /dev/null +++ b/Vue-Sample/quickstart/package.json @@ -0,0 +1,34 @@ +{ + "name": "quickstart", + "description": "A Vue.js project", + "version": "1.0.0", + "author": "sivaranjith ", + "license": "MIT", + "private": true, + "scripts": { + "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", + "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" + }, + "dependencies": { + "@syncfusion/ej2-vue-diagrams": "^22.1.36", + "vue": "^2.5.11" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ], + "devDependencies": { + "babel-core": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-preset-env": "^1.6.0", + "babel-preset-stage-3": "^6.24.1", + "cross-env": "^5.0.5", + "css-loader": "^0.28.7", + "file-loader": "^1.1.4", + "vue-loader": "^13.0.5", + "vue-template-compiler": "^2.4.4", + "webpack": "^3.6.0", + "webpack-dev-server": "^2.9.1" + } +} diff --git a/Vue-Sample/quickstart/src/App.vue b/Vue-Sample/quickstart/src/App.vue new file mode 100644 index 0000000..1e40741 --- /dev/null +++ b/Vue-Sample/quickstart/src/App.vue @@ -0,0 +1,81 @@ + + + diff --git a/Vue-Sample/quickstart/src/annotation-template.vue b/Vue-Sample/quickstart/src/annotation-template.vue new file mode 100644 index 0000000..873149e --- /dev/null +++ b/Vue-Sample/quickstart/src/annotation-template.vue @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/Vue-Sample/quickstart/src/assets/logo.png b/Vue-Sample/quickstart/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
    +
    +
    +
    +
    +
    + +
    + + + + + \ No newline at end of file diff --git a/Vue-Sample/quickstart/src/main.js b/Vue-Sample/quickstart/src/main.js new file mode 100644 index 0000000..385fcfe --- /dev/null +++ b/Vue-Sample/quickstart/src/main.js @@ -0,0 +1,7 @@ +import Vue from 'vue' +import App from './App.vue' + +new Vue({ + el: '#app', + render: h => h(App) +}) diff --git a/Vue-Sample/quickstart/src/userHandle-template.vue b/Vue-Sample/quickstart/src/userHandle-template.vue new file mode 100644 index 0000000..7454ee9 --- /dev/null +++ b/Vue-Sample/quickstart/src/userHandle-template.vue @@ -0,0 +1,28 @@ + + + + + \ No newline at end of file diff --git a/Vue-Sample/quickstart/webpack.config.js b/Vue-Sample/quickstart/webpack.config.js new file mode 100644 index 0000000..e10255f --- /dev/null +++ b/Vue-Sample/quickstart/webpack.config.js @@ -0,0 +1,79 @@ +var path = require('path') +var webpack = require('webpack') + +module.exports = { + devtool: 'source-map', + entry: './src/main.js', + output: { + path: path.resolve(__dirname, './dist'), + publicPath: '/dist/', + filename: 'build.js' + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + 'vue-style-loader', + 'css-loader' + ], + }, { + test: /\.vue$/, + loader: 'vue-loader', + options: { + loaders: { + } + // other vue-loader options go here + } + }, + { + test: /\.js$/, + loader: 'babel-loader', + exclude: /node_modules/ + }, + { + test: /\.(png|jpg|gif|svg)$/, + loader: 'file-loader', + options: { + name: '[name].[ext]?[hash]' + } + } + ] + }, + resolve: { + alias: { + 'vue$': 'vue/dist/vue.esm.js' + }, + extensions: ['*', '.js', '.vue', '.json'] + }, + devServer: { + historyApiFallback: true, + noInfo: true, + overlay: true + }, + performance: { + hints: false + }, + devtool: '#eval-source-map' +} + +if (process.env.NODE_ENV === 'production') { + module.exports.devtool = '#source-map' + // http://vue-loader.vuejs.org/en/workflow/production.html + module.exports.plugins = (module.exports.plugins || []).concat([ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: '"production"' + } + }), + new webpack.optimize.UglifyJsPlugin({ + sourceMap: true, + compress: { + warnings: false + } + }), + new webpack.LoaderOptionsPlugin({ + minimize: true + }) + ]) +}

    KOruLxK`WE2qzm_dXJ# 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