blob: dd04c1e6245ad92f54216f43678ffcf5a134fdf8 [file] [log] [blame]
{"remainingRequest":"/Users/jaslan/Development/nifi-fds/angular-url-loader.js!/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js??ref--5-2!/Users/jaslan/Development/nifi-fds/webapp/components/flow-design-system/fds-demo.js","dependencies":[{"path":"/Users/jaslan/Development/nifi-fds/webapp/components/flow-design-system/fds-demo.js","mtime":1562689731053},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/jaslan/Development/nifi-fds/angular-url-loader.js","mtime":1562689731025},{"path":"/Users/jaslan/Development/nifi-fds/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the 'License'); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\nimport { TdDataTableService } from '@covalent/core/bundles/covalent-core.umd.min.js';\nimport { MatDialog } from '@angular/material';\nimport { FdsDialogService, FdsSnackBarService, FdsAnimations } from '@nifi-fds/core';\nimport FdsService from 'webapp/services/fds.service.js';\nimport FdsDemoDialog from 'webapp/components/flow-design-system/dialogs/demo/fds-demo-dialog.js';\n\nvar NUMBER_FORMAT = function NUMBER_FORMAT(v) {\n return v;\n};\n\nvar DECIMAL_FORMAT = function DECIMAL_FORMAT(v) {\n return v.toFixed(2);\n};\n\nvar date = new Date();\n/**\n * FdsDemo constructor.\n *\n * @param FdsSnackBarService The FDS snack bar service module.\n * @param FdsService The FDS service module.\n * @param dialog The angular material dialog module.\n * @param TdDialogService The covalent dialog service module.\n * @param TdDataTableService The covalent data table service module.\n * @constructor\n */\n\nfunction FdsDemo(FdsSnackBarService, FdsService, dialog, TdDataTableService, FdsDialogService) {\n this.fdsService = FdsService; //<editor-fold desc='Snack Bars'>\n\n this.snackBarService = FdsSnackBarService; //</editor-fold>\n //<editor-fold desc='Dialog'>\n\n this.dialog = dialog; //</editor-fold>\n //<editor-fold desc='Simple Dialogs'>\n\n this.dialogService = FdsDialogService; //</editor-fold>\n //<editor-fold desc='Expansion Panel'>\n\n this.expandCollapseExpansion1Msg = 'No expanded/collapsed detected yet';\n this.expansion1 = false;\n this.disabled = false; //</editor-fold>\n //<editor-fold desc='Autocomplete'>\n\n this.currentState = '';\n this.reactiveStates = '';\n this.tdStates = [];\n this.tdDisabled = false;\n this.states = [{\n code: 'AL',\n name: 'Alabama'\n }, {\n code: 'AK',\n name: 'Alaska'\n }, {\n code: 'AZ',\n name: 'Arizona'\n }, {\n code: 'AR',\n name: 'Arkansas'\n }, {\n code: 'CA',\n name: 'California'\n }, {\n code: 'CO',\n name: 'Colorado'\n }, {\n code: 'CT',\n name: 'Connecticut'\n }, {\n code: 'DE',\n name: 'Delaware'\n }, {\n code: 'FL',\n name: 'Florida'\n }, {\n code: 'GA',\n name: 'Georgia'\n }, {\n code: 'HI',\n name: 'Hawaii'\n }, {\n code: 'ID',\n name: 'Idaho'\n }, {\n code: 'IL',\n name: 'Illinois'\n }, {\n code: 'IN',\n name: 'Indiana'\n }, {\n code: 'IA',\n name: 'Iowa'\n }, {\n code: 'KS',\n name: 'Kansas'\n }, {\n code: 'KY',\n name: 'Kentucky'\n }, {\n code: 'LA',\n name: 'Louisiana'\n }, {\n code: 'ME',\n name: 'Maine'\n }, {\n code: 'MD',\n name: 'Maryland'\n }, {\n code: 'MA',\n name: 'Massachusetts'\n }, {\n code: 'MI',\n name: 'Michigan'\n }, {\n code: 'MN',\n name: 'Minnesota'\n }, {\n code: 'MS',\n name: 'Mississippi'\n }, {\n code: 'MO',\n name: 'Missouri'\n }, {\n code: 'MT',\n name: 'Montana'\n }, {\n code: 'NE',\n name: 'Nebraska'\n }, {\n code: 'NV',\n name: 'Nevada'\n }, {\n code: 'NH',\n name: 'New Hampshire'\n }, {\n code: 'NJ',\n name: 'New Jersey'\n }, {\n code: 'NM',\n name: 'New Mexico'\n }, {\n code: 'NY',\n name: 'New York'\n }, {\n code: 'NC',\n name: 'North Carolina'\n }, {\n code: 'ND',\n name: 'North Dakota'\n }, {\n code: 'OH',\n name: 'Ohio'\n }, {\n code: 'OK',\n name: 'Oklahoma'\n }, {\n code: 'OR',\n name: 'Oregon'\n }, {\n code: 'PA',\n name: 'Pennsylvania'\n }, {\n code: 'RI',\n name: 'Rhode Island'\n }, {\n code: 'SC',\n name: 'South Carolina'\n }, {\n code: 'SD',\n name: 'South Dakota'\n }, {\n code: 'TN',\n name: 'Tennessee'\n }, {\n code: 'TX',\n name: 'Texas'\n }, {\n code: 'UT',\n name: 'Utah'\n }, {\n code: 'VT',\n name: 'Vermont'\n }, {\n code: 'VA',\n name: 'Virginia'\n }, {\n code: 'WA',\n name: 'Washington'\n }, {\n code: 'WV',\n name: 'West Virginia'\n }, {\n code: 'WI',\n name: 'Wisconsin'\n }, {\n code: 'WY',\n name: 'Wyoming'\n }]; //</editor-fold>\n //<editor-fold desc='Searchable Expansion Panels'>\n\n this.dataTableService = TdDataTableService;\n this.droplets = [{\n id: '23f6cc59-0156-1000-09b4-2b0610089090',\n name: 'Decompression_Circular_Flow',\n displayName: 'Decompressed Circular flow',\n type: 'flow',\n sublabel: 'A sublabel',\n compliant: {\n id: '25fd6vv87-3549-0001-05g6-4d4567890765',\n label: 'Compliant',\n type: 'certification'\n },\n fleet: {\n id: '23f6cc59-3549-0001-05g6-4d4567890765',\n label: 'Fleet',\n type: 'certification'\n },\n prod: {\n id: '52fd6vv87-3549-0001-05g6-4d4567890765',\n label: 'Production Ready',\n type: 'certification'\n },\n secure: {\n id: '32f6cc59-3549-0001-05g6-4d4567890765',\n label: 'Secure',\n type: 'certification'\n },\n versions: [{\n id: '23f6cc59-0156-1000-06b4-2b0810089090',\n revision: '1',\n dependentFlows: [{\n id: '25fd6vv87-3549-0001-05g6-4d4567890765'\n }],\n created: date.setDate(date.getDate() - 1),\n updated: new Date()\n }, {\n id: '25fd6vv87-3549-0001-05g6-4d4567890765',\n revision: '2',\n dependentFlows: [{\n id: '23f6cc59-0156-1000-06b4-2b0810089090'\n }],\n created: new Date(),\n updated: new Date()\n }],\n flows: [],\n extensions: [],\n assets: [],\n actions: [{\n 'name': 'Delete',\n 'icon': 'fa fa-close',\n 'tooltip': 'Delete User'\n }, {\n 'name': 'Manage',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage User'\n }, {\n 'name': 'Action 3',\n 'icon': 'fa fa-question',\n 'tooltip': 'Whatever else we want to do...'\n }]\n }, {\n id: '25fd6vv87-3249-0001-05g6-4d4767890765',\n name: 'DateConversion',\n displayName: 'Date conversion',\n type: 'asset',\n sublabel: 'A sublabel',\n compliant: {\n id: '25fd6vv34-3549-0001-05g6-4d4567890765',\n label: 'Compliant',\n type: 'certification'\n },\n prod: {\n id: '52vn6vv87-3549-0001-05g6-4d4567890765',\n label: 'Production Ready',\n type: 'certification'\n },\n versions: [{\n id: '23f6ic59-0156-1000-06b4-2b0810089090',\n revision: '1',\n dependentFlows: [{\n id: '23f6cc19-0156-1000-06b4-2b0810089090'\n }],\n created: new Date(),\n updated: new Date()\n }],\n flows: [],\n extensions: [],\n assets: [],\n actions: [{\n 'name': 'Delete',\n 'icon': 'fa fa-close',\n 'tooltip': 'Delete User'\n }]\n }, {\n id: '52fd6vv87-3294-0001-05g6-4d4767890765',\n name: 'nifi-email-bundle',\n displayName: 'nifi-email-bundle',\n type: 'extension',\n sublabel: 'A sublabel',\n compliant: {\n id: '33fd6vv87-3549-0001-05g6-4d4567890765',\n label: 'Compliant',\n test: {\n label: 'test'\n },\n type: 'certification'\n },\n versions: [{\n id: '23d3cc59-0156-1000-06b4-2b0810089090',\n revision: '1',\n dependentFlows: [{\n id: '23f6cc89-0156-1000-06b4-2b0810089090'\n }],\n created: new Date(),\n updated: new Date()\n }],\n flows: [],\n extensions: [],\n assets: [],\n actions: [{\n 'name': 'Delete',\n 'icon': 'fa fa-close',\n 'tooltip': 'Delete User'\n }, {\n 'name': 'Manage',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage User'\n }]\n }];\n this.filteredDroplets = [];\n this.dropletColumns = [{\n name: 'id',\n label: 'ID',\n sortable: true\n }, {\n name: 'name',\n label: 'Name',\n sortable: true\n }, {\n name: 'displayName',\n label: 'Display Name',\n sortable: true\n }, {\n name: 'sublabel',\n label: 'Label',\n sortable: true\n }, {\n name: 'type',\n label: 'Type',\n sortable: true\n }];\n this.activeDropletColumn = this.dropletColumns[0];\n this.autoCompleteDroplets = [];\n this.dropletsSearchTerms = []; //</editor-fold>\n //<editor-fold desc='Data Tables'>\n\n this.data = [{\n 'id': 1,\n 'name': 'Frozen yogurt',\n 'type': 'Ice cream',\n 'calories': 159.0,\n 'fat': 6.0,\n 'carbs': 24.0,\n 'protein': 4.0,\n 'sodium': 87.0,\n 'calcium': 14.0,\n 'iron': 1.0,\n 'comments': 'I love froyo!',\n 'actions': [{\n 'name': 'Action 1',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage Users'\n }, {\n 'name': 'Action 2',\n 'icon': 'fa fa-key',\n 'tooltip': 'Manage Permissions'\n }]\n }, {\n 'id': 2,\n 'name': 'Ice cream sandwich',\n 'type': 'Ice cream',\n 'calories': 237.0,\n 'fat': 9.0,\n 'carbs': 37.0,\n 'protein': 4.3,\n 'sodium': 129.0,\n 'calcium': 8.0,\n 'iron': 1.0,\n 'actions': [{\n 'name': 'Action 1',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage Users'\n }, {\n 'name': 'Action 2',\n 'icon': 'fa fa-key',\n 'tooltip': 'Manage Permissions'\n }, {\n 'name': 'Action 3',\n 'tooltip': 'Action 3'\n }, {\n 'name': 'Action 4',\n 'disabled': true,\n 'tooltip': 'Action 4'\n }, {\n 'name': 'Action 5',\n 'tooltip': 'Action 5'\n }]\n }, {\n 'id': 3,\n 'name': 'Eclair',\n 'type': 'Pastry',\n 'calories': 262.0,\n 'fat': 16.0,\n 'carbs': 24.0,\n 'protein': 6.0,\n 'sodium': 337.0,\n 'calcium': 6.0,\n 'iron': 7.0,\n 'actions': [{\n 'name': 'Action 1',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage Users'\n }, {\n 'name': 'Action 2',\n 'icon': 'fa fa-key',\n 'tooltip': 'Manage Permissions'\n }, {\n 'name': 'Action 3',\n 'tooltip': 'Action 3'\n }, {\n 'name': 'Action 4',\n 'disabled': true,\n 'tooltip': 'Action 4'\n }, {\n 'name': 'Action 5',\n 'tooltip': 'Action 5'\n }]\n }, {\n 'id': 4,\n 'name': 'Cupcake',\n 'type': 'Pastry',\n 'calories': 305.0,\n 'fat': 3.7,\n 'carbs': 67.0,\n 'protein': 4.3,\n 'sodium': 413.0,\n 'calcium': 3.0,\n 'iron': 8.0,\n 'actions': [{\n 'name': 'Action 1',\n 'icon': 'fa fa-user',\n 'tooltip': 'Manage Users'\n }, {\n 'name': 'Action 2',\n 'icon': 'fa fa-key',\n 'tooltip': 'Manage Permissions'\n }, {\n 'name': 'Action 3',\n 'tooltip': 'Action 3'\n }, {\n 'name': 'Action 4',\n 'disabled': true,\n 'tooltip': 'Action 4'\n }, {\n 'name': 'Action 5',\n 'tooltip': 'Action 5'\n }]\n }, {\n 'id': 5,\n 'name': 'Jelly bean',\n 'type': 'Candy',\n 'calories': 375.0,\n 'fat': 0.0,\n 'carbs': 94.0,\n 'protein': 0.0,\n 'sodium': 50.0,\n 'calcium': 0.0,\n 'iron': 0.0\n }, {\n 'id': 6,\n 'name': 'Lollipop',\n 'type': 'Candy',\n 'calories': 392.0,\n 'fat': 0.2,\n 'carbs': 98.0,\n 'protein': 0.0,\n 'sodium': 38.0,\n 'calcium': 0.0,\n 'iron': 2.0\n }, {\n 'id': 7,\n 'name': 'Honeycomb',\n 'type': 'Other',\n 'calories': 408.0,\n 'fat': 3.2,\n 'carbs': 87.0,\n 'protein': 6.5,\n 'sodium': 562.0,\n 'calcium': 0.0,\n 'iron': 45.0\n }, {\n 'id': 8,\n 'name': 'Donut',\n 'type': 'Pastry',\n 'calories': 452.0,\n 'fat': 25.0,\n 'carbs': 51.0,\n 'protein': 4.9,\n 'sodium': 326.0,\n 'calcium': 2.0,\n 'iron': 22.0\n }, {\n 'id': 9,\n 'name': 'KitKat',\n 'type': 'Candy',\n 'calories': 518.0,\n 'fat': 26.0,\n 'carbs': 65.0,\n 'protein': 7.0,\n 'sodium': 54.0,\n 'calcium': 12.0,\n 'iron': 6.0\n }, {\n 'id': 10,\n 'name': 'Chocolate',\n 'type': 'Candy',\n 'calories': 518.0,\n 'fat': 26.0,\n 'carbs': 65.0,\n 'protein': 7.0,\n 'sodium': 54.0,\n 'calcium': 12.0,\n 'iron': 6.0\n }, {\n 'id': 11,\n 'name': 'Chamoy',\n 'type': 'Candy',\n 'calories': 518.0,\n 'fat': 26.0,\n 'carbs': 65.0,\n 'protein': 7.0,\n 'sodium': 54.0,\n 'calcium': 12.0,\n 'iron': 6.0\n }];\n this.filteredData = this.data;\n this.filteredTotal = this.data.length;\n this.columns = [{\n name: 'comments',\n label: 'Comments',\n width: 10\n }, {\n name: 'name',\n label: 'Dessert (100g serving)',\n sortable: true,\n width: 10\n }, {\n name: 'type',\n label: 'Type',\n sortable: true,\n width: 10\n }, {\n name: 'calories',\n label: 'Calories',\n numeric: true,\n format: NUMBER_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'fat',\n label: 'Fat (g)',\n numeric: true,\n format: DECIMAL_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'carbs',\n label: 'Carbs (g)',\n numeric: true,\n format: NUMBER_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'protein',\n label: 'Protein (g)',\n numeric: true,\n format: DECIMAL_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'sodium',\n label: 'Sodium (mg)',\n numeric: true,\n format: NUMBER_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'calcium',\n label: 'Calcium (%)',\n numeric: true,\n format: NUMBER_FORMAT,\n sortable: true,\n width: 10\n }, {\n name: 'iron',\n label: 'Iron (%)',\n numeric: true,\n format: NUMBER_FORMAT,\n width: 10\n }];\n this.allRowsSelected = false;\n this.autoCompleteData = [];\n this.selectedRows = [];\n this.searchTerm = [];\n this.fromRow = 1;\n this.currentPage = 1;\n this.pageSize = 5;\n this.pageCount = 0; //</editor-fold>\n //<editor-fold desc='Chips $ Autocomplete'>\n\n this.readOnly = false;\n this.items = ['stepper', 'expansion-panel', 'markdown', 'highlight', 'loading', 'media', 'chips', 'http', 'json-formatter', 'pipes', 'need more?'];\n this.itemsRequireMatch = this.items.slice(0, 6); //</editor-fold>\n //<editor-fold desc='Radios'>\n\n this.favoriteSeason = 'Autumn';\n this.seasonOptions = ['Winter', 'Spring', 'Summer', 'Autumn']; //</editor-fold>\n //<editor-fold desc='Select'>\n\n this.selectedValue = '';\n this.foods = [{\n value: 'steak-0',\n viewValue: 'Steak'\n }, {\n value: 'pizza-1',\n viewValue: 'Pizza'\n }, {\n value: 'tacos-2',\n viewValue: 'Tacos'\n }]; //</editor-fold>\n //<editor-fold desc='Checkbox'>\n\n this.user = {\n agreesToTOS: false\n };\n this.groceries = [{\n bought: true,\n name: 'Seitan'\n }, {\n bought: false,\n name: 'Almond Meal Flour'\n }, {\n bought: false,\n name: 'Organic Eggs'\n }]; //</editor-fold>\n //<editor-fold desc='Slide Toggle'>\n\n this.systems = [{\n name: 'Lights',\n on: false,\n color: 'primary'\n }, {\n name: 'Surround Sound',\n on: true,\n color: 'accent'\n }, {\n name: 'T.V.',\n on: true,\n color: 'warn'\n }];\n this.house = {\n lockHouse: false\n }; //</editor-fold>\n}\n\nFdsDemo.prototype = {\n constructor: FdsDemo,\n //<editor-fold desc='Autocomplete'>\n displayFn: function displayFn(value) {\n return value && _typeof(value) === 'object' ? value.name : value;\n },\n filterStates: function filterStates(val) {\n return val ? this.states.filter(function (s) {\n return s.name.match(new RegExp(val, 'gi'));\n }) : this.states;\n },\n //</editor-fold>\n //<editor-fold desc='Snack Bars'>\n showSuccessSnackBar: function showSuccessSnackBar() {\n this.snackBarService.openCoaster({\n title: 'Success',\n message: 'Some help text regarding the successful event.',\n verticalPosition: 'top',\n horizontalPosition: 'right',\n icon: 'fa fa-check-circle-o',\n color: '#1EB475',\n duration: 3000\n });\n },\n showWarnSnackBar: function showWarnSnackBar() {\n this.snackBarService.openCoaster({\n title: 'Warning',\n message: 'Some help text regarding the warning.',\n verticalPosition: 'top',\n horizontalPosition: 'left',\n icon: 'fa fa-exclamation-triangle',\n color: '#E98A40',\n duration: 3000\n });\n },\n showErrorSnackBar: function showErrorSnackBar() {\n this.snackBarService.openCoaster({\n title: 'Error',\n message: 'Some help text regarding the critical error. This coaster will stay open until closed with the `x` or if another coaster is created.',\n verticalPosition: 'bottom',\n horizontalPosition: 'right',\n icon: 'fa fa-times-circle-o',\n color: '#EF6162'\n });\n },\n showRegularSnackBar: function showRegularSnackBar() {\n this.snackBarService.openCoaster({\n title: 'Regular',\n message: 'Something interesting.',\n verticalPosition: 'bottom',\n horizontalPosition: 'left',\n color: '#808793',\n duration: 3000\n });\n },\n //</editor-fold>\n //<editor-fold desc='Dialog'>\n openDialog: function openDialog() {\n this.dialog.open(FdsDemoDialog);\n },\n //</editor-fold>\n //<editor-fold desc='Expansion Panel'>\n toggleExpansion1: function toggleExpansion1() {\n if (!this.disabled) {\n this.expansion1 = !this.expansion1;\n }\n },\n toggleDisabled: function toggleDisabled() {\n this.disabled = !this.disabled;\n },\n expandExpansion1Event: function expandExpansion1Event() {\n this.expandCollapseExpansion1Msg = 'Expand event emitted.';\n },\n collapseExpansion1Event: function collapseExpansion1Event() {\n this.expandCollapseExpansion1Msg = 'Collapse event emitted.';\n },\n //</editor-fold>\n //<editor-fold desc='Simple Dialogs'>\n openAlert: function openAlert() {\n this.dialogService.openAlert({\n title: 'Alert',\n disableClose: true,\n message: 'This is how simple it is to create an alert with this wrapper service.'\n });\n },\n openConfirm: function openConfirm() {\n this.dialogService.openConfirm({\n title: 'Confirm',\n message: 'This is how simple it is to create a confirm with this wrapper service. Do you agree?',\n cancelButton: 'Disagree',\n acceptButton: 'Agree'\n });\n },\n openPrompt: function openPrompt() {\n this.dialogService.openPrompt({\n title: 'Prompt',\n message: 'This is how simple it is to create a prompt with this wrapper service. Prompt something.',\n value: 'Populated value',\n cancelButton: 'Cancel',\n acceptButton: 'Ok'\n });\n },\n //</editor-fold>\n //<editor-fold desc='Searchable Expansion Panels'>\n isDropletFilterChecked: function isDropletFilterChecked(term) {\n return this.dropletsSearchTerms.indexOf(term) > -1;\n },\n getDropletTypeCount: function getDropletTypeCount(type) {\n return this.filteredDroplets.filter(function (droplet) {\n return droplet.type === type;\n }).length;\n },\n getDropletCertificationCount: function getDropletCertificationCount(certification) {\n return this.filteredDroplets.filter(function (droplet) {\n return Object.keys(droplet).find(function (key) {\n if (key === certification && droplet[certification].type === 'certification') {\n return droplet;\n }\n\n return null;\n });\n }).length;\n },\n getSortBy: function getSortBy() {\n var sortByColumnLabel;\n var arrayLength = this.dropletColumns.length;\n\n for (var i = 0; i < arrayLength; i++) {\n if (this.dropletColumns[i].active === true) {\n sortByColumnLabel = this.dropletColumns[i].label;\n break;\n }\n }\n\n return sortByColumnLabel;\n },\n sortDroplets: function sortDroplets(column) {\n if (column.sortable === true) {\n // toggle column sort order\n column.sortOrder = column.sortOrder === 'ASC' ? 'DESC' : 'ASC';\n var sortOrder = column.sortOrder;\n this.filterDroplets(column.name, sortOrder); //only one column can be actively sorted so we reset all to inactive\n\n this.dropletColumns.forEach(function (c) {\n c.active = false;\n }); //and set this column as the actively sorted column\n\n column.active = true;\n this.activeDropletColumn = column;\n }\n },\n toggleDropletsFilter: function toggleDropletsFilter(searchTerm) {\n var applySearchTerm = true; // check if the search term is already applied and remove it if true\n\n if (this.dropletsSearchTerms.length > 0) {\n var arrayLength = this.dropletsSearchTerms.length;\n\n for (var i = 0; i < arrayLength; i++) {\n var index = this.dropletsSearchTerms.indexOf(searchTerm);\n\n if (index > -1) {\n this.dropletsSearchTerms.splice(index, 1);\n applySearchTerm = false;\n }\n }\n } // if we just removed the search term do NOT apply it again\n\n\n if (applySearchTerm) {\n this.dropletsSearchTerms.push(searchTerm);\n }\n\n this.filterDroplets(this.activeDropletColumn.name, this.activeDropletColumn.sortOrder);\n },\n filterDroplets: function filterDroplets(sortBy, sortOrder) {\n // if `sortOrder` is `undefined` then use 'ASC'\n if (sortOrder === undefined) {\n sortOrder = 'ASC';\n } // if `sortBy` is `undefined` then find the first sortable column in this.dropletColumns\n\n\n if (sortBy === undefined) {\n var arrayLength = this.dropletColumns.length;\n\n for (var i = 0; i < arrayLength; i++) {\n if (this.dropletColumns[i].sortable === true) {\n sortBy = this.dropletColumns[i].name;\n this.activeDropletColumn = this.dropletColumns[i]; //only one column can be actively sorted so we reset all to inactive\n\n this.dropletColumns.forEach(function (c) {\n c.active = false;\n }); //and set this column as the actively sorted column\n\n this.dropletColumns[i].active = true;\n this.dropletColumns[i].sortOrder = sortOrder;\n break;\n }\n }\n }\n\n var newData = this.droplets;\n\n for (var _i = 0; _i < this.dropletsSearchTerms.length; _i++) {\n newData = this.filterData(newData, this.dropletsSearchTerms[_i], true, this.activeDropletColumn.name);\n }\n\n newData = this.dataTableService.sortData(newData, sortBy, sortOrder);\n this.filteredDroplets = newData;\n this.getAutoCompleteDroplets();\n },\n getAutoCompleteDroplets: function getAutoCompleteDroplets() {\n var self = this;\n this.autoCompleteDroplets = [];\n this.dropletColumns.forEach(function (c) {\n self.filteredDroplets.forEach(function (r) {\n return r[c.name.toLowerCase()] ? self.autoCompleteDroplets.push(r[c.name.toLowerCase()].toString()) : '';\n });\n });\n },\n //</editor-fold>\n filterData: function filterData(data, searchTerm, ignoreCase) {\n var field = '';\n\n if (searchTerm.indexOf(':') > -1) {\n field = searchTerm.split(':')[0].trim();\n searchTerm = searchTerm.split(':')[1].trim();\n }\n\n var filter = searchTerm ? ignoreCase ? searchTerm.toLowerCase() : searchTerm : '';\n\n if (filter) {\n data = data.filter(function (item) {\n var res = Object.keys(item).find(function (key) {\n if (field.indexOf('.') > -1) {\n var objArray = field.split('.');\n var obj = item;\n var arrayLength = objArray.length;\n\n for (var i = 0; i < arrayLength; i++) {\n try {\n obj = obj[objArray[i]];\n } catch (e) {\n return false;\n }\n }\n\n var _preItemValue = '' + obj;\n\n var _itemValue = ignoreCase ? _preItemValue.toLowerCase() : _preItemValue;\n\n return _itemValue.indexOf(filter) > -1;\n }\n\n if (key !== field && field !== '') {\n return false;\n }\n\n var preItemValue = '' + item[key];\n var itemValue = ignoreCase ? preItemValue.toLowerCase() : preItemValue;\n return itemValue.indexOf(filter) > -1;\n });\n return !(typeof res === 'undefined');\n });\n }\n\n return data;\n },\n //<editor-fold desc='Data Tables'>\n sort: function sort(sortEvent, column) {\n if (column.sortable) {\n var sortBy = column.name;\n column.sortOrder = column.sortOrder === 'ASC' ? 'DESC' : 'ASC';\n var sortOrder = column.sortOrder;\n this.filter(sortBy, sortOrder); //only one column can be actively sorted so we reset all to inactive\n\n this.columns.forEach(function (c) {\n c.active = false;\n }); //and set this column as the actively sorted column\n\n column.active = true;\n }\n },\n searchRemove: function searchRemove(searchTerm) {\n //only remove the first occurrence of the search term\n var index = this.searchTerm.indexOf(searchTerm);\n\n if (index !== -1) {\n this.searchTerm.splice(index, 1);\n }\n\n this.fromRow = 1;\n this.currentPage = 1;\n this.filter();\n },\n searchAdd: function searchAdd(searchTerm) {\n this.searchTerm.push(searchTerm);\n this.fromRow = 1;\n this.currentPage = 1;\n this.filter();\n },\n page: function page(pagingEvent) {\n this.fromRow = pagingEvent.fromRow;\n this.currentPage = pagingEvent.page;\n this.pageSize = pagingEvent.pageSize;\n this.allRowsSelected = false;\n this.filter();\n },\n filter: function filter(sortBy, sortOrder) {\n if (this.allRowsSelected) {\n this.toggleSelectAll();\n }\n\n this.deselectAll();\n var newData = this.data;\n\n for (var i = 0; i < this.searchTerm.length; i++) {\n newData = this.filterData(newData, this.searchTerm[i], true);\n }\n\n this.filteredTotal = newData.length;\n newData = this.dataTableService.sortData(newData, sortBy, sortOrder);\n this.pageCount = newData.length;\n newData = this.dataTableService.pageData(newData, this.fromRow, this.currentPage * this.pageSize);\n this.filteredData = newData;\n this.getAutoCompleteData();\n },\n toggleSelect: function toggleSelect(row) {\n if (this.allFilteredRowsSelected()) {\n this.allRowsSelected = true;\n } else {\n this.allRowsSelected = false;\n }\n },\n toggleSelectAll: function toggleSelectAll() {\n if (this.allRowsSelected) {\n this.selectAll();\n } else {\n this.deselectAll();\n }\n },\n selectAll: function selectAll() {\n this.filteredData.forEach(function (c) {\n c.checked = true;\n });\n },\n deselectAll: function deselectAll() {\n this.filteredData.forEach(function (c) {\n c.checked = false;\n });\n },\n allFilteredRowsSelected: function allFilteredRowsSelected() {\n var allFilteredRowsSelected = true;\n this.filteredData.forEach(function (c) {\n if (c.checked === undefined || c.checked === false) {\n allFilteredRowsSelected = false;\n }\n });\n return allFilteredRowsSelected;\n },\n areTooltipsOn: function areTooltipsOn() {\n return this.columns[0].hasOwnProperty('tooltip');\n },\n toggleTooltips: function toggleTooltips() {\n if (this.columns[0].tooltip) {\n this.columns.forEach(function (c) {\n delete c.tooltip;\n });\n } else {\n this.columns.forEach(function (c) {\n c.tooltip = 'This is ' + c.label + '!';\n });\n }\n },\n openDataTablePrompt: function openDataTablePrompt(row, name) {\n this.dialogService.openPrompt({\n message: 'Enter comment?',\n value: row[name]\n }).afterClosed().subscribe(function (value) {\n if (value !== undefined) {\n row[name] = value;\n }\n });\n },\n getAutoCompleteData: function getAutoCompleteData() {\n var self = this;\n this.autoCompleteData = [];\n this.columns.forEach(function (c) {\n self.filteredData.forEach(function (r) {\n return r[c.name.toLowerCase()] ? self.autoCompleteData.push(r[c.name.toLowerCase()].toString()) : '';\n });\n });\n },\n //</editor-fold>\n //<editor-fold desc='Chips $ Autocomplete'>\n toggleReadOnly: function toggleReadOnly() {\n this.readOnly = !this.readOnly;\n },\n //</editor-fold>\n //<editor-fold desc='Life Cycle Listeners'>\n\n /**\n * Initialize the component\n */\n ngOnInit: function ngOnInit() {\n this.filter();\n this.filterDroplets();\n },\n\n /**\n * Respond after Angular checks the component's views and child views\n */\n ngAfterViewChecked: function ngAfterViewChecked() {\n this.fdsService.inProgress = false;\n } //</editor-fold>\n\n};\nFdsDemo.annotations = [new Component({\n template: require('./fds-demo.html'),\n animations: [FdsAnimations.slideInLeftAnimation],\n host: {\n '[@routeAnimation]': 'routeAnimation'\n }\n})];\nFdsDemo.parameters = [FdsSnackBarService, FdsService, MatDialog, TdDataTableService, FdsDialogService];\nexport default FdsDemo;"]}