ng2-qgrid
Version:
Angular Grid
921 lines • 139 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/material'), require('ng2-qgrid'), require('@angular/common'), require('@angular/forms')) :
typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/material', 'ng2-qgrid', '@angular/common', '@angular/forms'], factory) :
(factory((global['theme-material'] = {}),global.ng.core,global.ng.material,null,global.ng.common,null));
}(this, (function (exports,core,material,ng2Qgrid,common,forms) { 'use strict';
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var jsx = function () {
var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7;
return function createRawReactElement(type, props, key, children) {
var defaultProps = type && type.defaultProps;
var childrenLength = arguments.length - 3;
if (!props && childrenLength !== 0) {
props = {};
}
if (props && defaultProps) {
for (var propName in defaultProps) {
if (props[propName] === void 0) {
props[propName] = defaultProps[propName];
}
}
} else if (!props) {
props = defaultProps || {};
}
if (childrenLength === 1) {
props.children = children;
} else if (childrenLength > 1) {
var childArray = Array(childrenLength);
for (var i = 0; i < childrenLength; i++) {
childArray[i] = arguments[i + 3];
}
props.children = childArray;
}
return {
$$typeof: REACT_ELEMENT_TYPE,
type: type,
key: key === undefined ? null : '' + key,
ref: null,
props: props,
_owner: null
};
};
}();
var asyncIterator = function (iterable) {
if (typeof Symbol === "function") {
if (Symbol.asyncIterator) {
var method = iterable[Symbol.asyncIterator];
if (method != null) return method.call(iterable);
}
if (Symbol.iterator) {
return iterable[Symbol.iterator]();
}
}
throw new TypeError("Object is not async iterable");
};
var asyncGenerator = function () {
function AwaitValue(value) {
this.value = value;
}
function AsyncGenerator(gen) {
var front, back;
function send(key, arg) {
return new Promise(function (resolve, reject) {
var request = {
key: key,
arg: arg,
resolve: resolve,
reject: reject,
next: null
};
if (back) {
back = back.next = request;
} else {
front = back = request;
resume(key, arg);
}
});
}
function resume(key, arg) {
try {
var result = gen[key](arg);
var value = result.value;
if (value instanceof AwaitValue) {
Promise.resolve(value.value).then(function (arg) {
resume("next", arg);
}, function (arg) {
resume("throw", arg);
});
} else {
settle(result.done ? "return" : "normal", result.value);
}
} catch (err) {
settle("throw", err);
}
}
function settle(type, value) {
switch (type) {
case "return":
front.resolve({
value: value,
done: true
});
break;
case "throw":
front.reject(value);
break;
default:
front.resolve({
value: value,
done: false
});
break;
}
front = front.next;
if (front) {
resume(front.key, front.arg);
} else {
back = null;
}
}
this._invoke = send;
if (typeof gen.return !== "function") {
this.return = undefined;
}
}
if (typeof Symbol === "function" && Symbol.asyncIterator) {
AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
return this;
};
}
AsyncGenerator.prototype.next = function (arg) {
return this._invoke("next", arg);
};
AsyncGenerator.prototype.throw = function (arg) {
return this._invoke("throw", arg);
};
AsyncGenerator.prototype.return = function (arg) {
return this._invoke("return", arg);
};
return {
wrap: function (fn) {
return function () {
return new AsyncGenerator(fn.apply(this, arguments));
};
},
await: function (value) {
return new AwaitValue(value);
}
};
}();
var asyncGeneratorDelegate = function (inner, awaitWrap) {
var iter = {},
waiting = false;
function pump(key, value) {
waiting = true;
value = new Promise(function (resolve) {
resolve(inner[key](value));
});
return {
done: false,
value: awaitWrap(value)
};
}
if (typeof Symbol === "function" && Symbol.iterator) {
iter[Symbol.iterator] = function () {
return this;
};
}
iter.next = function (value) {
if (waiting) {
waiting = false;
return value;
}
return pump("next", value);
};
if (typeof inner.throw === "function") {
iter.throw = function (value) {
if (waiting) {
waiting = false;
throw value;
}
return pump("throw", value);
};
}
if (typeof inner.return === "function") {
iter.return = function (value) {
return pump("return", value);
};
}
return iter;
};
var asyncToGenerator = function (fn) {
return function () {
var gen = fn.apply(this, arguments);
return new Promise(function (resolve, reject) {
function step(key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
return Promise.resolve(value).then(function (value) {
step("next", value);
}, function (err) {
step("throw", err);
});
}
}
return step("next");
});
};
};
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
var createClass = function () {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function (Constructor, protoProps, staticProps) {
if (protoProps) defineProperties(Constructor.prototype, protoProps);
if (staticProps) defineProperties(Constructor, staticProps);
return Constructor;
};
}();
var defineEnumerableProperties = function (obj, descs) {
for (var key in descs) {
var desc = descs[key];
desc.configurable = desc.enumerable = true;
if ("value" in desc) desc.writable = true;
Object.defineProperty(obj, key, desc);
}
return obj;
};
var defaults = function (obj, defaults) {
var keys = Object.getOwnPropertyNames(defaults);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var value = Object.getOwnPropertyDescriptor(defaults, key);
if (value && value.configurable && obj[key] === undefined) {
Object.defineProperty(obj, key, value);
}
}
return obj;
};
var defineProperty = function (obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
};
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
var get = function get(object, property, receiver) {
if (object === null) object = Function.prototype;
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
return get(parent, property, receiver);
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
};
var inherits = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
};
var _instanceof = function (left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
};
var interopRequireDefault = function (obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
};
var interopRequireWildcard = function (obj) {
if (obj && obj.__esModule) {
return obj;
} else {
var newObj = {};
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
}
}
newObj.default = obj;
return newObj;
}
};
var newArrowCheck = function (innerThis, boundThis) {
if (innerThis !== boundThis) {
throw new TypeError("Cannot instantiate an arrow function");
}
};
var objectDestructuringEmpty = function (obj) {
if (obj == null) throw new TypeError("Cannot destructure undefined");
};
var objectWithoutProperties = function (obj, keys) {
var target = {};
for (var i in obj) {
if (keys.indexOf(i) >= 0) continue;
if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
target[i] = obj[i];
}
return target;
};
var possibleConstructorReturn = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && (typeof call === "object" || typeof call === "function") ? call : self;
};
var selfGlobal = typeof global === "undefined" ? self : global;
var set = function set(object, property, value, receiver) {
var desc = Object.getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent !== null) {
set(parent, property, value, receiver);
}
} else if ("value" in desc && desc.writable) {
desc.value = value;
} else {
var setter = desc.set;
if (setter !== undefined) {
setter.call(receiver, value);
}
}
return value;
};
var slicedToArray = function () {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function (arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
}();
var slicedToArrayLoose = function (arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
var _arr = [];
for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {
_arr.push(_step.value);
if (i && _arr.length === i) break;
}
return _arr;
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
var taggedTemplateLiteral = function (strings, raw) {
return Object.freeze(Object.defineProperties(strings, {
raw: {
value: Object.freeze(raw)
}
}));
};
var taggedTemplateLiteralLoose = function (strings, raw) {
strings.raw = raw;
return strings;
};
var temporalRef = function (val, name, undef) {
if (val === undef) {
throw new ReferenceError(name + " is not defined - temporal dead zone");
} else {
return val;
}
};
var temporalUndefined = {};
var toArray = function (arr) {
return Array.isArray(arr) ? arr : Array.from(arr);
};
var toConsumableArray = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return Array.from(arr);
}
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ThemeComponent = function ThemeComponent() {
classCallCheck(this, ThemeComponent);
};
ThemeComponent.decorators = [{ type: core.Component, args: [{
selector: 'q-grid-theme',
styles: ["@charset \"UTF-8\"; .q-grid.q-grid-theme-material .q-grid-view:not(.q-grid-active) td { border-top-color: rgba(0, 0, 0, 0.06); } .q-grid-backdrop { top: 0; left: 0; width: 100%; height: 100%; position: fixed; background: transparent; z-index: -1; } .q-grid-backdrop-inactive { pointer-events: none; } .q-grid.q-grid-theme-material.q-grid-box { font-family: Roboto, \"Helvetica Neue\", sans-serif; } .q-grid.q-grid-theme-material td.q-grid-array > ul { list-style: none; margin: 0; padding: 0; overflow: hidden; } .q-grid.q-grid-theme-material td.q-grid-array > ul li { display: inline-block; min-width: 16px; padding: 4px 8px; text-align: center; white-space: nowrap; vertical-align: middle; background-color: #e0e0e0; border-radius: 16px; margin-right: 4px; } .q-grid.q-grid-theme-material td.q-grid-array > ul li:last-child { margin-right: 0; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-array { min-height: 48px; width: 340px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-array .q-grid-array-view { max-height: 140px; overflow-y: auto; overflow-x: hidden; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-array .q-grid-array-view .q-grid-array-item { margin: 3px 1px 3px 1px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-array .q-grid-array-input { margin: 0px 3px 3px 0px; width: 100%; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-autocomplete { width: 200px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-autocomplete input { border-color: #3f51b5; border-width: 0 0 2px 0; border-radius: 0; border-style: solid; line-height: 26px; padding: 2px 2px 1px 2px; height: 30px; } .q-grid-autocomplete-menu { z-index: 101; } .q-grid.q-grid-theme-material td.q-grid-bool { text-overflow: unset; } .q-grid.q-grid-theme-material td.q-grid-bool .q-grid-checkbox { margin: 0; outline: none; } .q-grid.q-grid-theme-material th.q-grid-bool.q-grid-filter-row { text-align: center; } .q-grid.q-grid-theme-material .q-grid-edit-trigger { position: absolute; right: 2px; font-size: 12px; min-width: 16px; width: 16px; min-height: 16px; height: 16px; outline: none; border: none; background: transparent; padding: 0; margin: auto 0; top: 0; bottom: 0; } .q-grid.q-grid-theme-material .q-grid-edit-trigger .q-grid-icon { color: #757575; font-size: 16px; height: 16px; width: 16px; min-height: 16px; min-width: 16px; line-height: 16px; display: block; } .q-grid.q-grid-theme-material td.q-grid-edit { overflow: visible !important; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor { display: block; position: fixed; border-radius: 4px; background-color: #fcfcfc; color: rgba(0, 0, 0, 0.87); left: 0; top: 0; box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12); -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; flex-direction: column; box-sizing: content-box; z-index: 2; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-actions button { margin: 8px 0 0 8px; float: right; text-transform: uppercase; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-position { opacity: 0; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor-content { padding: 24px; overflow: hidden; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor-content h2 { margin-top: 0; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor-content .q-grid-editor-actions { text-align: right; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor-content .q-grid-editor-actions button { margin-bottom: 0; display: inline-block; } .q-grid.q-grid-theme-material td.q-grid-edit .q-grid-editor-content .q-grid-editor-actions button:last-child { margin-right: 0; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-email { width: 297px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-email .q-grid-email-fields { padding-top: 8px; } .q-grid.q-grid-theme-material td .q-grid-editor.q-grid-file { height: 192px; width: 346px; padding-bottom: 12px; } .q-grid.q-grid-theme-material td .q-grid-editor.q-grid-file h2 { text-align: left; } .q-grid-file-upload-area { position: relative; border: 1px dashed #e0e0e0; text-align: center; height: 120px; } .q-grid-file-upload-area .q-grid-file-upload-message { position: relative; top: 40%; line-height: 24px; } .q-grid-file-upload-area .q-grid-file-upload-message span { overflow: hidden; text-overflow: ellipsis; } .q-grid-file-upload-area .q-grid-file-upload-message .q-grid-icon { margin: 0; } .q-grid-file-upload-area.q-grid-file-has-preview .q-grid-file-upload-message { visibility: hidden; } .q-grid-file-upload-area .q-grid-file-upload-filename { padding: 10px; font-weight: bold; color: #757575; } .q-grid-file-upload-area input { opacity: 0; position: absolute; height: 100%; width: 100%; left: 0; top: 0; z-index: 2; } .q-grid-file-upload-area .q-grid-file-preview { opacity: 1; position: absolute; left: 0; top: 0; height: 100%; width: 100%; vertical-align: middle; text-align: center; } .q-grid-file-upload-area .q-grid-file-preview img { position: relative; max-height: 100% !important; max-width: 100% !important; z-index: 3; } .q-grid-file-upload-area:hover { background-color: #f5f5f5; } .q-grid-file-upload-area:hover .q-grid-file-preview { opacity: 0; transition: opacity 0.2s ease-in-out; } .q-grid-file-upload-area:hover .q-grid-file-preview img { z-index: 1; } .q-grid-file-upload-area:hover .q-grid-file-upload-message { visibility: visible; } .q-grid.q-grid-theme-material td.q-grid-group-summary { color: #007fa3 !important; background-color: rgba(0, 0, 0, 0.04) !important; } .q-grid.q-grid-theme-material td.q-grid-image { cursor: pointer; text-align: center; } .q-grid.q-grid-theme-material td.q-grid-image img { max-height: 40px; max-width: 40px; } .q-grid.q-grid-theme-material td.q-grid-image .q-grid-icon { color: #757575; } .q-grid.q-grid-theme-material thead th.q-grid-pivot { border-top: 1px solid #e0e0e0; border-left: 1px solid #e0e0e0; padding: 0; } .q-grid.q-grid-theme-material thead th.q-grid-pivot:nth-last-child(2) { border-right: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-reference { height: 427px; width: 385px; padding-bottom: 12px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-reference .q-grid-reference-content { width: 100%; height: 100%; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-reference .q-grid-reference-content .q-grid-title h2, .q-grid.q-grid-theme-material .q-grid-editor.q-grid-reference .q-grid-reference-content .q-grid-caption h2 { margin-bottom: 8px; } .q-grid.q-grid-theme-material td.q-grid-row-details { background: #fff; } .q-grid.q-grid-theme-material td.q-grid-row-indicator, .q-grid.q-grid-theme-material th.q-grid-row-indicator { padding: 0 !important; } .q-grid.q-grid-theme-material td.q-grid-row-indicator .q-grid-icon, .q-grid.q-grid-theme-material th.q-grid-row-indicator .q-grid-icon { font-size: 16px; width: 16px; min-width: 16px; height: 16px; min-height: 16px; } .q-grid.q-grid-theme-material td.q-grid-edit.q-grid-row-options button { width: 24px; margin: 0; padding: 0; } .q-grid.q-grid-theme-material td.q-grid-select, .q-grid.q-grid-theme-material th.q-grid-select { text-align: center; } .q-grid.q-grid-theme-material td.q-grid-select > div, .q-grid.q-grid-theme-material th.q-grid-select > div { width: 100%; height: 100%; display: inline-block; } .q-grid.q-grid-theme-material td.q-grid-select > div div, .q-grid.q-grid-theme-material th.q-grid-select > div div { border-radius: 2px; width: 100%; height: 100%; box-sizing: border-box; text-align: center; } .q-grid.q-grid-theme-material td.q-grid-select > div div .q-grid-icon, .q-grid.q-grid-theme-material th.q-grid-select > div div .q-grid-icon { font-size: 18px; font-weight: 500; width: 18px; height: 18px; min-width: 18px; min-height: 18px; margin-top: 1px; } .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-checked, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-checked { cursor: pointer; background: rgba(255, 64, 129, 0.87); } .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-checked .q-grid-icon, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-checked .q-grid-icon { color: #fff; } .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-unchecked, .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-indeterminate, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-unchecked, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-indeterminate { cursor: pointer; border: 2px solid rgba(0, 0, 0, 0.54); border-radius: 2px; width: 20px; height: 20px; min-width: 20px; min-height: 20px; box-sizing: border-box; } .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-unchecked .q-grid-icon, .q-grid.q-grid-theme-material td.q-grid-select > div div.q-grid-indeterminate .q-grid-icon, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-unchecked .q-grid-icon, .q-grid.q-grid-theme-material th.q-grid-select > div div.q-grid-indeterminate .q-grid-icon { color: rgba(0, 0, 0, 0.54); } .q-grid.q-grid-theme-material td.q-grid-select .q-grid-checkbox, .q-grid.q-grid-theme-material th.q-grid-select .q-grid-checkbox { margin: 0; outline: none; } .q-grid.q-grid-theme-material td.q-grid-text-area > span { display: block; white-space: normal; overflow: hidden; position: relative; line-height: 1.2em; max-height: 3.6em; text-align: justify; margin-right: -1em; padding-right: 1em; } .q-grid.q-grid-theme-material td.q-grid-text-area > span:before { content: '...'; position: absolute; right: 0; bottom: 0; } .q-grid.q-grid-theme-material td.q-grid-text-area > span:after { content: ''; position: absolute; right: 0; width: 1em; height: 1em; margin-top: 0.2em; background-color: #fff; } .q-grid.q-grid-theme-material td.q-grid-text-area.q-grid-highlighted > span { overflow: hidden; position: relative; line-height: 1.2em; max-height: 3.6em; text-align: justify; margin-right: -1em; padding-right: 1em; } .q-grid.q-grid-theme-material td.q-grid-text-area.q-grid-highlighted > span:before { content: '...'; position: absolute; right: 0; bottom: 0; } .q-grid.q-grid-theme-material td.q-grid-text-area.q-grid-highlighted > span:after { content: ''; position: absolute; right: 0; width: 1em; height: 1em; margin-top: 0.2em; background-color: #eee; } .q-grid.q-grid-theme-material tr:hover .q-grid-text-area td > span { overflow: hidden; position: relative; line-height: 1.2em; max-height: 3.6em; text-align: justify; margin-right: -1em; padding-right: 1em; } .q-grid.q-grid-theme-material tr:hover .q-grid-text-area td > span:before { content: '...'; position: absolute; right: 0; bottom: 0; } .q-grid.q-grid-theme-material tr:hover .q-grid-text-area td > span:after { content: ''; position: absolute; right: 0; width: 1em; height: 1em; margin-top: 0.2em; background-color: #eee; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-text-area { height: 202px; width: 347px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-text-area textarea { height: 150px !important; } .q-grid.q-grid-theme-material td .q-grid-editor.q-grid-text { width: 203px; height: 96px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-url { height: auto; width: 300px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-url .q-grid-url-fields { padding-top: 8px; } .q-grid.q-grid-theme-material td { color: #212121; font-size: 13px; padding: 0 16px; font-size: 13px; } .q-grid.q-grid-theme-material tfoot td { color: #007fa3 !important; background-color: rgba(0, 0, 0, 0.04) !important; } .q-grid.q-grid-theme-material thead th { color: #757575; font-size: 12px; font-weight: bold; padding: 0 16px; } .q-grid.q-grid-theme-material thead th:hover label { font-weight: bold; } .q-grid.q-grid-theme-material.q-grid-box:not(.q-grid-drag) th.q-grid-highlighted .q-grid-column-filter-trigger { opacity: 1; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger { position: absolute; right: 2px; transition: opacity 0.3s; margin: 0 auto; height: 16px; line-height: 16px; opacity: 0; transition: opacity 0.3s; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger.q-grid-active { opacity: 1; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger.q-grid-active .q-grid-icon { color: #212121; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger.q-grid-active + label { color: #212121; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger button { font-size: 12px; width: 16px; min-width: 16px; min-height: 16px; height: 16px; outline: none; border: none; background: transparent; padding: 0; left: 0; margin: 0 2px 2px 2px; } .q-grid.q-grid-theme-material .q-grid-column-filter-trigger button .q-grid-icon { color: #757575; font-size: 16px; height: 16px; width: 16px; min-height: 16px; min-width: 16px; line-height: 16px; display: block; } .q-grid-column-filter.q-grid-menu { width: 360px; min-width: 360px; max-width: 360px; height: 500px; overflow: hidden; } .q-grid-column-filter.q-grid-menu ul { list-style-type: none; padding: 0; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-filter { margin: 0; padding: 0; width: 100%; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-list { overflow-y: auto; height: 255px; margin-bottom: 14px; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-list ul { margin: 0; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-by { height: 57px; overflow-y: auto; overflow-x: hidden; margin-bottom: 10px; margin-top: -5px; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-by-blank { text-align: center; color: #C8C8C8; position: relative; top: 20px; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-by ul { margin-top: 0; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-by li { display: inline; } .q-grid-column-filter.q-grid-menu .q-grid-column-filter-actions { padding: 7px 0; } .q-grid-column-filter.q-grid-menu .q-grid-checkbox { width: 100%; overflow: hidden; margin: 0 0 5px 0; } .q-grid-filter-by { display: inline-flex; background-color: #EBEBEB; margin-right: 2px; border-radius: 100px; padding: 0 14px; margin-bottom: 3px; } .q-grid-filter-by-item { font-size: 12px; margin: 2px 7px 1px -4px; } .q-grid-filter-by-remove { width: 5px; height: 5px; position: relative; cursor: pointer; } .q-grid-filter-by .q-grid-icon { top: 2px; font-size: 14px; width: 5px; height: 5px; position: absolute; color: #C8C8C8; } @media (max-height: 540px) { .q-grid-persistence-panel.q-grid-menu { height: 400px; max-height: 400px; min-height: 400px; } } .q-grid.q-grid-theme-material td.q-grid-sorted { background-color: #f5f5f5; } .q-grid.q-grid-theme-material th .q-grid-desc, .q-grid.q-grid-theme-material th .q-grid-asc { display: none; } .q-grid.q-grid-theme-material th.q-grid-can-sort .q-grid-sort { cursor: pointer; } .q-grid.q-grid-theme-material th.q-grid-can-sort .q-grid-desc, .q-grid.q-grid-theme-material th.q-grid-can-sort .q-grid-asc { display: block; } .q-grid.q-grid-theme-material.q-grid-box:not(.q-grid-drag) th .q-grid-sort:not(.q-grid-active):hover .q-grid-desc { opacity: 1; } .q-grid.q-grid-theme-material th .q-grid-sort { overflow: hidden; text-overflow: ellipsis; margin-left: -16px; padding-left: 16px; } .q-grid.q-grid-theme-material th .q-grid-sort label { display: inline; } .q-grid.q-grid-theme-material th .q-grid-sort.q-grid-active label { color: #212121; } .q-grid.q-grid-theme-material th .q-grid-sort.q-grid-active .q-grid-icon { color: #212121; } .q-grid.q-grid-theme-material th .q-grid-sort .q-grid-icon { transition: opacity 0.3s; opacity: 0; position: absolute; margin-left: -16px; color: #757575; font-size: 16px; height: 16px; width: 16px; min-height: 16px; min-width: 16px; vertical-align: middle; } .q-grid.q-grid-theme-material th .q-grid-sort .q-grid-icon.q-grid-active { opacity: 1; } .q-grid.q-grid-theme-material th .q-grid-sort.q-grid-hide .q-grid-icon { opacity: 0 !important; } @keyframes arrow-animation-up { 0% { transform: rotate(180deg); } 25% { transform: rotate(220deg); } 50% { transform: rotate(270deg); } 75% { transform: rotate(300deg); } 100% { transform: rotate(360deg); } } @keyframes arrow-animation-down { 0% { transform: rotate(-180deg); } 25% { transform: rotate(-220deg); } 50% { transform: rotate(-270deg); } 75% { transform: rotate(-300deg); } 100% { transform: rotate(-360deg); } } .q-grid.q-grid-theme-material .q-grid-icon.q-grid-asc.q-grid-active { animation-name: arrow-animation-up; animation-duration: .2s; animation-iteration-count: 1; } .q-grid.q-grid-theme-material .q-grid-icon.q-grid-desc.q-grid-active { animation-name: arrow-animation-down; animation-duration: .2s; animation-iteration-count: 1; } .q-grid.q-grid-theme-material .q-grid-embed, .q-grid.q-grid-theme-material .q-grid-lcc { font-family: Roboto; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-title h2, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-title h2 { font-size: 24px; font-weight: normal; font-style: normal; text-align: left; color: #006f8f; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-sort, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-sort { margin-left: 0px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-text, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-text { font-size: 13px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table tr, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table tr { height: 30px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table th, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table th { font-size: 12px !important; color: #006f8f !important; font-weight: normal !important; line-height: 14px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table th:hover label, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table th:hover label { font-weight: normal !important; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table th .q-grid-icon, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table th .q-grid-icon { line-height: 14px; font-size: 14px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table th .q-grid-column-filter-trigger, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table th .q-grid-column-filter-trigger { line-height: 14px; height: 14px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table th .q-grid-sort.q-grid-active label, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table th .q-grid-sort.q-grid-active label { color: inherit; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table td, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table td { font-size: 16px; line-height: 16px; font-weight: normal; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table td.q-grid-text-area > span, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table td.q-grid-text-area > span { white-space: nowrap; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table td.q-grid-array li, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table td.q-grid-array li { padding: 2px 8px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table td.q-grid-edit.q-grid-row-options button, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table td.q-grid-edit.q-grid-row-options button { width: 24px; height: 24px; line-height: 24px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-table td.q-grid-image img, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-table td.q-grid-image img { max-height: 24px; max-width: 24px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-legend-list, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-legend-list { font-size: 16px !important; text-align: left !important; color: #000000 !important; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-legend-item, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-legend-item { width: 8px !important; height: 8px !important; margin-right: 18px !important; margin-bottom: 2px !important; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-progress-linear, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-progress-linear { top: -10px; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-pager, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-pager { padding: 11px 0; } .q-grid.q-grid-theme-material .q-grid-embed .q-grid .q-grid-legend-list, .q-grid.q-grid-theme-material .q-grid-lcc .q-grid .q-grid-legend-list { margin-top: 15px; } .q-grid.q-grid-theme-material .q-grid-export { padding: 10px 0; } .q-grid.q-grid-theme-material .q-grid-head-span thead tr { height: 30px; } .q-grid.q-grid-theme-material .q-grid-head-span thead th { line-height: 14px; border-top: 1px solid #e0e0e0; border-left: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material .q-grid-head-span thead th .q-grid-icon { line-height: 14px; font-size: 14px; } .q-grid.q-grid-theme-material .q-grid-head-span thead th .q-grid-column-filter-trigger { line-height: 14px; height: 14px; } .q-grid.q-grid-theme-material .q-grid-head-span thead th:nth-last-child(2) { border-right: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material.q-grid-box:not(.q-grid-drag) td.q-grid-highlighted, .q-grid.q-grid-theme-material.q-grid-box:not(.q-grid-drag) tr.q-grid-highlighted { background-color: #eee; } .q-grid-highlight-part { background-color: yellow; color: #000; } .q-grid.q-grid-theme-material .q-grid-legend-list { list-style-type: none; padding: 0; margin: 24px 20px 0 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #212121; font-size: 13px; } .q-grid.q-grid-theme-material .q-grid-legend-list li { margin-right: 20px; display: inline; } .q-grid.q-grid-theme-material .q-grid-legend-list li:last-child { margin-right: 0; } .q-grid.q-grid-theme-material .q-grid-legend-list li .q-grid-legend-item { display: inline-block; } .q-grid.q-grid-theme-material .q-grid-legend-item { width: 10px; height: 10px; border-radius: 10px; margin: auto; } .q-grid.q-grid-theme-material tbody tr.q-grid-scroll-mark { height: 0; border: none; } .q-grid-menu ::-webkit-scrollbar { width: 8px; height: 8px; } .q-grid-menu ::-webkit-scrollbar-thumb { height: 15px; background-color: #c8c8c8; -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); } .q-grid-menu ::-webkit-scrollbar-button { width: 0; height: 0; display: none; } .q-grid-menu ::-webkit-scrollbar-corner { background-color: transparent; } .q-grid-menu ::-webkit-scrollbar-track, .q-grid-menu ::-webkit-scrollbar-track-piece { background-color: #f8f8f8; } .q-grid.q-grid-theme-material th.q-grid-group label { cursor: pointer; outline: none; } .q-grid.q-grid-theme-material td.q-grid-group button, .q-grid.q-grid-theme-material td.q-grid-row-expand button { width: 24px; height: 24px; line-height: 24px; min-height: 24px; margin: -1px 0 0 -6px; padding: 0; } .q-grid.q-grid-theme-material td.q-grid-group button.q-grid-expand .q-grid-icon, .q-grid.q-grid-theme-material td.q-grid-row-expand button.q-grid-expand .q-grid-icon { transform: rotate(90deg); } .q-grid.q-grid-theme-material td.q-grid-group button .q-grid-icon, .q-grid.q-grid-theme-material td.q-grid-row-expand button .q-grid-icon { opacity: 0.54; } .q-grid.q-grid-theme-material td.q-grid-group .q-grid-group-label, .q-grid.q-grid-theme-material td.q-grid-row-expand .q-grid-group-label { margin-left: -6px; vertical-align: middle; } .q-grid.q-grid-theme-material td.q-grid-group .q-grid-group-count, .q-grid.q-grid-theme-material td.q-grid-row-expand .q-grid-group-count { vertical-align: middle; color: #757575; } .q-grid.q-grid-theme-material .q-grid-pager-target-trigger { top: 3px; } .q-grid.q-grid-theme-material .q-grid-icon-class { font-size: 16px; margin-bottom: 4px; } .q-grid.q-grid-theme-material .q-grid-pager { font-family: Roboto, \"Helvetica Neue\", sans-serif; height: 24px; color: #757575; float: right; padding: 16px 0; font-size: 12px; } .q-grid.q-grid-theme-material .q-grid-pager > * { display: inline-block; } @media (max-width: 599px) { .q-grid.q-grid-theme-material .q-grid-pager .hide-xs:not(.show-xs):not(.show), .q-grid.q-grid-theme-material .q-grid-pager .hide:not(.show-xs):not(.show) { display: none; } } .q-grid.q-grid-theme-material .q-grid-pager .q-grid-page { margin-left: 32px; margin-right: 14px; } .q-grid.q-grid-theme-material .q-grid-pager button { background: transparent; border: none; font-size: 20px; width: 24px; height: 24px; line-height: 24px; padding: 0; } .q-grid.q-grid-theme-material .q-grid-pager button.q-grid-prev-page { top: 3px; margin-left: 18px; margin-right: 0; } .q-grid.q-grid-theme-material .q-grid-pager button.q-grid-prev-page .q-grid-icon { margin-bottom: 4px; margin-right: 1px; } .q-grid.q-grid-theme-material .q-grid-pager button.q-grid-next-page { top: 3px; margin-right: 14px; margin-left: 0; } .q-grid.q-grid-theme-material .q-grid-pager button.q-grid-next-page .q-grid-icon { margin-bottom: 4px; margin-left: 1px; } .q-grid.q-grid-theme-material .q-grid-pager button.q-grid-target-page .q-grid-icon { font-size: 16px; width: 16px; height: 16px; min-width: 16px; min-height: 16px; } .q-grid-pager-target { width: 200px; } .q-grid.q-grid-theme-material .q-grid-progress { position: relative; } .q-grid.q-grid-theme-material .q-grid-progress .q-grid-progress-linear { position: absolute; } .q-grid-query-builder-panel.q-grid-menu { width: 480px; min-width: 480px; max-width: 480px; height: 540px; overflow: hidden; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression { margin-top: 15px; height: 270px; overflow: auto; padding: 2px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul { margin: 0; padding: 0; list-style-type: none; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul li { display: inline; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul li.q-grid-eb-expression { margin-right: 3px; display: inline-block; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node { padding: 5px; white-space: nowrap; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical { padding-left: 0; position: relative; min-height: 27px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical > .q-grid-eb-line { position: absolute; transform: rotate(-90deg); transform-origin: top; top: 50%; left: -5px; margin-top: -1px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical > .q-grid-eb-line > ul { transform: rotate(90deg); } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical > .q-grid-eb-children { display: flex; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical > .q-grid-eb-children > ul { border-left: 1px solid #999; border-radius: 5px; margin-left: 35px; padding-left: 10px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-node.qb-logical.qb-or > .q-grid-eb-line { left: 5px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression ul.q-grid-eb-group { display: inline; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .q-grid-eb-active { outline: 2px solid rgba(63, 81, 181, 0.25); background: #f5f5f5; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-icon-button { height: 16px; width: 16px; line-height: 16px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-icon-button .q-grid-icon { line-height: 16px; height: 16px; width: 16px; font-size: 16px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line { margin-top: 15px; font-size: 12px; background-color: #f5f5f5; padding: 10px; overflow-y: auto; height: 27px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line span { word-break: break-word; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-node, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-node-left, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-node-right { display: inline; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-group-op { color: #3eb1c8; text-transform: uppercase; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-group-op:before, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-group-op:after { content: ' '; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-unary:before { content: ' '; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-group-open, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-group-close, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-open, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-close { color: #888; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-left { color: #888; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-quote { color: #a11; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-op { color: #666; text-transform: uppercase; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-value-text { color: #a11 !important; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-value, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-value { color: #000; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression-line .q-grid-markup-condition-value-invalid:before { color: #dd2c00; content: '﹏'; } @media (max-height: 540px) { .q-grid-query-builder-panel.q-grid-menu { height: 400px; max-height: 400px; min-height: 400px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression { height: 138px; } } .q-grid.q-grid-theme-material tbody tr { height: 48px; } .q-grid.q-grid-theme-material tfoot tr, .q-grid.q-grid-theme-material tbody tr { border-top: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material tfoot tr:nth-child(2), .q-grid.q-grid-theme-material tbody tr:nth-child(2) { border-top: 0; } .q-grid.q-grid-theme-material thead tr, .q-grid.q-grid-theme-material tfoot tr { height: 56px; } .q-grid.q-grid-theme-material tr:not(.q-grid-highlighted) td.q-grid-selected { background-color: #f5f5f5; } .q-grid.q-grid-theme-material tr:not(.q-grid-highlighted) td.q-grid-selected.q-grid-sorted { background-color: #f5f5f5; } .q-grid.q-grid-theme-material tr:not(.q-grid-highlighted) td.q-grid-selected.q-grid-highlighted { background-color: #eee; } .q-grid.q-grid-theme-material .q-grid-select-cell.q-grid-select-single tr:not(.q-grid-highlighted) td.q-grid-selected:not(.q-grid-sorted):not(.q-grid-highlighted) { background-color: inherit; } .q-grid.q-grid-theme-material q-grid-status-bar { font-size: 14px; text-align: right; height: 24px; padding: 11px 8px; display: flex; flex-direction: row; justify-content: flex-end; } .q-grid.q-grid-theme-material thead { box-shadow: 0 1px 0px #ddd; } .q-grid.q-grid-theme-material .q-grid-body-top tr:last-child { border-bottom: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material .q-grid-body-bottom tr:first-child { border-top: 1px solid #e0e0e0; } .q-grid.q-grid-theme-material .q-grid-title h3, .q-grid.q-grid-theme-material .q-grid-caption h3 { margin: 0; overflow: hidden; text-overflow: ellipsis; } .q-grid.q-grid-theme-material .q-grid-validator { display: block; width: calc(100% - 48px); position: absolute; bottom: 25px; text-align: left; color: #dd2c00; font-size: 11px; } .q-grid.q-grid-theme-material .q-grid-validator ul { margin: 0; padding: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .q-grid.q-grid-theme-material .q-grid-validator ul li { display: inline; list-style: none; margin-right: 4px; } .q-grid.q-grid-theme-material .q-grid-view > .q-grid-table-left, .q-grid.q-grid-theme-material .q-grid-view > .q-grid-table-right { transition: box-shadow .2s ease-in-out; } .q-grid.q-grid-theme-material .q-grid-view.q-grid-scroll-horizontal > .q-grid-table-left { box-shadow: 1px 0 0 0 #e0e0e0; } .q-grid.q-grid-theme-material .q-grid-view.q-grid-scroll-horizontal > .q-grid-table-right { box-shadow: -1px 0 0 0 #e0e0e0; } .q-grid.q-grid-theme-material q-grid-edit-form-trigger .q-grid-icon { color: #757575; font-size: 16px; height: 16px; width: 16px; min-height: 16px; min-width: 16px; line-height: 16px; } .q-grid-edit-form { width: 500px; min-width: 500px !important; } .q-grid-edit-form .q-grid-edit-form-body { height: 300px; overflow-y: auto; overflow-x: hidden; padding: 0 15px; } .q-grid-edit-form .q-grid-edit-form-body .q-grid-edit-form-control { display: block; margin-bottom: 1.25em; } .q-grid-edit-form .q-grid-edit-form-body .q-grid-edit-form-control-image, .q-grid-edit-form .q-grid-edit-form-body .q-grid-edit-form-control-bool { margin-bottom: 2.5em; } .q-grid.q-grid-theme-material td.q-grid-array .mat-form-field-prefix { width: 100%; } .q-grid.q-grid-theme-material td.q-grid-array .q-grid-editor-content .mat-chip-list-wrapper { margin: 0; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-autocomplete md-autocomplete { min-width: 30px; background-color: transparent; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-autocomplete md-autocomplete-wrap { box-shadow: none; } .q-grid.q-grid-theme-material td .q-grid-checkbox .md-label, .q-grid.q-grid-theme-material th .q-grid-checkbox .md-label { display: none; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-date .md-datepicker-button { margin-left: 0; padding: 0; width: 24px; height: 24px; } .q-grid.q-grid-theme-material .q-grid-editor.q-grid-date .md-datepicker-triangle-button { margin-right: 0; padding: 0; width: 24px; height: 24px; } .q-grid.q-grid-theme-material td.q-grid-edit.q-grid-dropdown .q-grid-editor-content { padding: 0; } .q-grid.q-grid-theme-material td.q-grid-edit.q-grid-dropdown .q-grid-editor-content .mat-select-arrow-wrapper { opacity: 0; width: 0; height: 0; } .q-grid.q-grid-theme-material th.q-grid-filter-row { height: 56px; text-overflow: unset; } .q-grid.q-grid-theme-material th.q-grid-filter-row:hover label { font-weight: normal; } .q-grid.q-grid-theme-material th.q-grid-filter-row .mat-form-field { width: 100%; font-size: 14px; color: rgba(0, 0, 0, 0.87); max-height: 56px; } .q-grid.q-grid-theme-material .q-grid-reference-card { margin: 0; box-shadow: none; padding: 0; } .q-grid.q-grid-theme-material .q-grid-reference-card .mat-card-header-text { margin: 0; } .q-grid.q-grid-theme-material .q-grid-reference-card .mat-card-content { height: 325px; margin: 0; } .q-grid.q-grid-theme-material .q-grid-reference-card .mat-card-actions { margin-left: 0; margin-right: 0; text-align: right; } .q-grid.q-grid-theme-material .q-grid-reference-card .mat-card-actions > button { text-transform: uppercase; } .q-grid.q-grid-theme-material td.q-grid-text-area textarea.mat-input-element { padding: 0; } .q-grid.q-grid-theme-material td.q-grid-text-area .mat-form-field-hint-wrapper { justify-content: flex-end; transform: none !important; } .q-grid.q-grid-theme-material td.q-grid-text-area .mat-form-field-hint-wrapper .mat-hint { position: fixed; } .q-grid.q-grid-theme-material td.q-grid-text-area.q-grid-edit .mat-form-field-infix { border-top: none; padding-top: 0; } .q-grid.q-grid-theme-material td.q-grid-edit .mat-form-field { width: 100%; } .q-grid-column-chooser.q-grid-menu { width: 360px; max-width: 360px; min-width: 360px; height: 500px; overflow: hidden; } .q-grid-column-chooser.q-grid-menu .mat-card { padding: 4px 12px; box-shadow: none; margin: 0; } .q-grid-column-chooser.q-grid-menu ul { list-style-type: none; padding: 0; } .q-grid-column-chooser.q-grid-menu .mat-card-actions { margin-left: 0; margin-right: 0; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-filter { width: 100%; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-list { margin: 0; overflow-y: auto; height: 275px; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-list ul { margin: 0; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-list ul ul { padding-left: 24px; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-toolbar { margin-top: 0; padding-left: 16px; margin-bottom: 14px; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-actions { padding: 7px 0; } .q-grid-column-chooser.q-grid-menu .q-grid-checkbox { width: 100%; overflow: hidden; margin: 0 0 5px 0; } .q-grid-column-chooser.q-grid-menu .q-grid-can-drag { cursor: move; opacity: 0.4; display: inline-block; user-select: none; } .q-grid-column-chooser.q-grid-menu .q-grid-can-drag .q-grid-icon { width: 16px; min-width: 16px; min-height: 16px; height: 16px; font-size: 16px; vertical-align: middle; } @media (max-height: 540px) { .q-grid-column-chooser.q-grid-menu { height: 400px; max-height: 400px; min-height: 400px; } .q-grid-column-chooser.q-grid-menu .q-grid-column-chooser-list { height: 184px; } } .q-grid-column-filter .mat-card { box-shadow: none; padding: 4px 16px; margin: 0; } .q-grid-column-filter .mat-card .q-grid-column-filter-toolbar { margin-top: 0; } .q-grid-column-filter .mat-card .mat-card-actions { margin-top: -12px; margin-left: 0; margin-right: 0; } .q-grid-edit-form .q-grid-edit-form-control .mat-form-field { width: 100%; } .q-grid-menu .mat-menu-content { padding: 0; } .q-grid-menu .mat-card-header-text { margin: 0; } .q-grid-menu .mat-card-actions { text-align: right; } .q-grid-menu .mat-card-actions > button { text-transform: uppercase; } .q-grid-mat-menu .mat-menu-content { padding-top: 0; padding-bottom: 0; } .q-grid.q-grid-theme-material .q-grid-pager mat-select { width: 50px; max-width: 50px; background: transparent; border: 0; margin: 0 0 0 12px; display: inline-flex; height: 24px; padding: 0; } .q-grid.q-grid-theme-material tbody tr.q-grid-scroll-mark { height: 0; border: none; } .q-grid-persistence-panel ::-webkit-scrollbar { width: 8px; height: 8px; } .q-grid-persistence-panel ::-webkit-scrollbar-thumb { height: 15px; background-color: #c8c8c8; -webkit-box-shadow: inset 1px 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.07); } .q-grid-persistence-panel ::-webkit-scrollbar-button { width: 0; height: 0; display: none; } .q-grid-persistence-panel ::-webkit-scrollbar-corner { background-color: transparent; } .q-grid-persistence-panel ::-webkit-scrollbar-track, .q-grid-persistence-panel ::-webkit-scrollbar-track-piece { background-color: #f8f8f8; } .q-grid-persistence-panel.q-grid-menu { width: 400px; min-width: 400px; max-width: 400px; height: 500px; overflow: hidden; } .q-grid-persistence-panel .mat-card-content { display: flex; flex-direction: column; max-height: 419px; } .q-grid-persistence-panel .mat-card-content > div { flex: 0 0; } .q-grid-persistence-panel .q-grid-persistence-title { margin: 0; } .q-grid-persistence-panel .q-grid-persistence-title .mat-form-field { width: 100%; } .q-grid-persistence-panel .q-grid-persistence-save { margin: auto 0 auto 8px; } .q-grid-persistence-panel .q-grid-persistence-save .mat-button-wrapper { text-transform: uppercase; } .q-grid-persistence-panel .q-grid-persistence-default-icon { max-width: 14px; min-width: 14px; max-height: 14px; min-height: 14px; margin-bottom: 14px; } .q-grid-persistence-panel .q-grid-persistence-default-icon .q-grid-icon { color: #757575; font-size: 14px; height: 14px; width: 14px; } .q-grid-persistence-panel .q-grid-persistence-list { padding: 0; overflow: auto; } .q-grid-persistence-panel .q-grid-persistence-list > .q-grid-persistence-list-item { height: 40px; } .q-grid-persistence-panel .q-grid-persistence-list-item { font-size: 13px; } .q-grid-persistence-panel .q-grid-persistence-list-item.q-grid-persistence-selected { background-color: #f5f5f5; } .q-grid-persistence-panel .q-grid-persistence-list-item.mat-list-item .mat-list-item-content { padding: 0 6px; } .q-grid-persistence-panel .q-grid-persistence-list-item .mat-button { line-height: 13px; flex: 1 1; padding: 0 6px; } .q-grid-persistence-panel .q-grid-persistence-list-item .mat-list[dense] { padding: 0; } .q-grid-persistence-panel .q-grid-persistence-list-item .mat-list[dense] .mat-list-item { height: 40px; } .q-grid-persistence-panel .q-grid-persistence-list-item .mat-list[dense] .mat-list-item-content { padding: 0; text-align: left; } .q-grid-persistence-panel .q-grid-persistence-list-item h3 { text-transform: uppercase; } .q-grid-persistence-panel .q-grid-persistence-list-item .q-grid-selected-item-modified { color: #757575; } .q-grid-persistence-panel .q-grid-persistence-item-edit { flex: 1; padding: 0 6px; } .q-grid-persistence-panel .q-grid-persistence-item-edit .mat-form-field-infix { width: 100%; } .q-grid-persistence-panel .q-grid-more .mat-button { min-width: 24px; } .q-grid-persistence-panel .q-grid-more .mat-button .mat-button-focus-overlay { background-color: transparent; } .q-grid-persistence-panel .q-grid-more .mat-icon { color: #757575; line-height: 20px; font-size: 20px; } .q-grid-persistence-panel .q-grid-persistence-group-title { margin: 0; text-transform: uppercase; } @media (max-height: 540px) { .q-grid-persistence-panel.q-grid-menu { height: 400px; max-height: 400px; min-height: 400px; } .q-grid-persistence-panel.q-grid-menu .mat-card-content { max-height: 318px; } } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-select { width: auto; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-select-value { max-width: none; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-select-arrow-wrapper { display: none; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field { width: 75px; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-wrapper { padding-bottom: 0; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-wrapper .mat-form-field-infix { border: none; padding: 0; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-wrapper .mat-form-field-infix input { margin: 0; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-label-wrapper { top: 0; padding-top: 0; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-label-wrapper > .mat-form-field-label { top: 0; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field .mat-form-field-underline { bottom: 0; display: none; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field.mat-focused .mat-form-field-underline { display: block; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-form-field.qb-invalid .mat-form-field-underline { display: block; background: #dd2c00; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-chip-list { display: inline-block; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-chip-list .mat-chip-list-wrapper { display: inline-block; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-chip-list .mat-chip { padding: 0; border-radius: 0; background-color: transparent; outline: none; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .mat-chip-list .mat-chip .q-grid-icon { margin-left: -3px; margin-right: 0px; font-size: 13px; line-height: 13px; height: 15px; width: 15px; vertical-align: middle; } .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .qb-operation .mat-select-value, .q-grid-query-builder-panel.q-grid-menu .q-grid-query-builder-expression .qb-operator .mat-select-value { color: #3eb1c8; } .q-grid-query-builder-error-tooltip { text-transform: lowercase; } .q-grid-shortcut { text-transform: uppercase; } .q-grid-row-options .q-grid-shortcut { padding-left: 20px; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr { height: 24px; background-color: #eee; border-spacing: 0; border-collapse: collapse; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th { border-left: 1px solid #d2d2d2; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th label { color: black; font-weight: normal; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th.q-grid-highlighted { background-color: #9FD5B7; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th.q-grid-sorted { background-color: #D3F0E0; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th .q-grid-divider { display: none; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th.focused-row-header { background-color: #d2d2d2; border-bottom: 1px solid #227447; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-view thead tr th.focused-row-header label { color: #227447; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody { border-collapse: collapse; border-spacing: 0; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr:first-child td.q-grid-focus:first-child { border-left-width: 1px; border-top-width: 1px; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td { color: black; border: 1px solid #ccc; line-height: 21px; padding: 0 4px 0 4px; background-color: white; vertical-align: top; overflow: hidden; outline-width: 0; border-collapse: collapse; border-spacing: 0; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td:not(.q-grid-row-number) { cursor: cell; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-array ul { display: inline-block; vertical-align: middle; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-array ul li { display: block; min-width: 0; text-align: left; padding: 0; vertical-align: middle; background-color: transparent; border-radius: 0; margin-right: 0; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-array ul li::after { content: ','; white-space: pre; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-array ul li:last-child::after { content: ''; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-focus { background-color: white !important; border: 2px solid #227447; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-focus.q-grid-edit input { border: none; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-selected { background-color: white !important; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-row-number { background-color: #eee; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.q-grid-sorted { background-color: #c6c6c6; border-left: 2px solid #227447; border-right: 2px solid #227447; } .q-grid-excel .q-grid.q-grid-theme-material .q-grid-table tbody tr td.focused-row-header { background-color: #d2d2d2; border-right: 2px solid #227447; } .q-grid-embed, .q-grid-lcc { font-family: Roboto; } .q-grid-embed .q-grid .q-grid-title h2, .q-grid-lcc .q-grid .q-grid-title h2 { font-size: 24px; font-weight: normal; font-style: normal; text-align: left; color: #006f8f; } .q-grid-embed .q-grid .q-grid-sort, .q-grid-lcc .q-grid .q-grid-sort { margin-left: 0px; } .q-grid-embed .q-grid .q-grid-text, .q-grid-lcc .q-grid .q-grid-text { font-size: 13px; } .q-grid-embed .q-grid .q-grid-table tr, .q-grid-lcc .q-grid .q-grid-table tr { height: 30px; } .q-grid-embed .q-grid .q-grid-table th, .q-grid-lcc .q-grid .q-grid-table th { font-size: 12px !important; color: #006f8f !important; font-weight: normal !important; line-height: 14px; } .q-grid-embed .q-grid .q-grid-table th:hover label, .q-grid-lcc .q-grid .q-grid-table th:hover label { font-weight: normal !important; } .q-grid-embed .q-grid .q-grid-table th .q-grid-icon, .q-grid-lcc .q-grid .q-grid-table th .q-grid-icon { line-height: 14px; font-size: 14px; } .q-grid-embed .q-grid .q-grid-table th .q-grid-column-filter-trigger, .q-grid-lcc .q-grid .q-grid-table th .q-grid-column-filter-trigger { line-height: 14px; height: 14px; } .q-grid-embed .q-grid .q-grid-table th .q-grid-sort.q-grid-active label, .q-grid-lcc .q-grid .q-grid-table th .q-grid-sort.q-grid-active label { color: inherit; } .q-grid-embed .q-grid .q-grid-table td, .q-grid-lcc .q-grid .q-grid-table td { font-size: 16px; line-height: 16px; font-weight: normal; } .q-grid-embed .q-grid .q-grid-table td.q-grid-text-area > span, .q-grid-lcc .q-grid .q-grid-table td.q-grid-text-area > span { white-space: nowrap; } .q-grid-embed .q-grid .q-grid-table td.q-grid-array li, .q-grid-lcc .q-grid .q-grid-table td.q-grid-array li { padding: 2px 8px; } .q-grid-embed .q-grid .q-grid-table td.q-grid-edit.q-grid-row-options button, .q-grid-lcc .q-grid .q-grid-table td.q-grid-edit.q-grid-row-options button { width: 24px; height: 24px; line-height: 24px; } .q-grid-embed .q-grid .q-grid-table td.q-grid-image img, .q-grid-lcc .q-grid .q-grid-table td.q-grid-image img { max-height: 24px; max-width: 24px; } .q-grid-embed .q-grid .q-grid-legend-list, .q-grid-lcc .q-grid .q-grid-legend-list { font-size: 16px !important; text-align: left !important; color: #000000 !important; } .q-grid-embed .q-grid .q-grid-legend-item, .q-grid-lcc .q-grid .q-grid-legend-item { width: 8px !important; height: 8px !important; margin-right: 18px !important; margin-bottom: 2px !important; } .q-grid-embed .q-grid .q-grid-progress-linear, .q-grid-lcc .q-grid .q-grid-progress-linear { top: -10px; } .q-grid-embed .q-grid .q-grid-pager, .q-grid-lcc .q-grid .q-grid-pager { padding: 11px 0; } .q-grid-embed .q-grid .q-grid-legend-list, .q-grid-lcc .q-grid .q-grid-legend-list { margin-top: 15px; } .q-grid-dark .q-grid.q-grid-theme-material { background-color: #363640; font-family: \"Roboto Condensed\", Roboto, \"Helvetica Neue\", sans-serif; font-weight: 300; } .q-grid-dark .q-grid.q-grid-theme-material thead { box-shadow: 0 1px 0px rgba(255, 255, 255, 0.12); } .q-grid-dark .q-grid.q-grid-theme-material thead th { font-weight: 300; } .q-grid-dark .q-grid.q-grid-theme-material tbody tr { border-top: 1px solid rgba(255, 255, 255, 0.12); } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-toolbar .q-grid-title h3, .q-grid-dark .q-grid.q-grid-theme-material .q-grid-toolbar .q-grid-caption h3 { color: #ffffff; padding-left: 10px; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-toolbar .q-grid-icon { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-pager label { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view { background-color: #3c3c46; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view thead tr th { color: rgba(255, 255, 255, 0.6); } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view thead tr th.q-grid-sorted .q-grid-sort.q-grid-active label { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view thead tr th.q-grid-sorted .q-grid-sort.q-grid-active .q-grid-icon { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view thead tr th > .q-grid-divider { border-right: 1px solid rgba(255, 255, 255, 0.12); } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view tr td { color: #ffffff; font-family: \"Roboto Condensed\"; font-size: 14px; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view tr.q-grid-highlighted { background-color: #616161; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view tr:not(.q-grid-highlighted) td.q-grid-selected { background-color: #616161; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view tr:not(.q-grid-highlighted) td.q-grid-selected.q-grid-sorted { background-color: #3c3c46; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td.q-grid-highlighted { background-color: #616161; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td.q-grid-sorted { background-color: rgba(0, 0, 0, 0); } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td.q-grid-selected { background-color: #616161; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td.q-grid-email a { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td.q-grid-array ul li { color: #424242; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view td .q-grid-editor { color: #ffffff; background-color: #424242; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .q-grid-icon { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .mat-hint { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .mat-form-field-underline { background-color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .mat-checkbox-frame { border-color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .mat-icon { color: #ffffff; } .q-grid-dark .q-grid.q-grid-theme-material .q-grid-view .mat-form-field-ripple { background-color: #616161; } .q-grid-dark .q-grid.q-grid-theme-material ul.q-grid-legend-list { color: #ffffff; } .q-grid-dark .q-grid ::-webkit-scrollbar-track, .q-grid-dark .q-grid ::-webkit-scrollbar-track-piece { background-color: #424242; } .q-grid-dark .q-grid-menu ::-webkit-scrollbar-track, .q-grid-dark .q-grid-menu ::-webkit-scrollbar-track-piece { background-color: #616161; } .q-grid-dark .q-grid .mat-select-value { color: #ffffff; } .q-grid-dark .q-grid .mat-select-arrow { color: #ffffff; } .q-grid-dark div.mat-select-content { background: #424242; } .q-grid-dark div.mat-select-content .mat-option { color: #ffffff; } .q-grid-dark div.mat-select-content .mat-option:hover { background: #616161; } .q-grid-dark .mat-menu-panel { background: #424242; } .q-grid-dark .mat-menu-content { background: #424242; height: 500px; } .q-grid-dark q-grid-column-chooser .mat-card, .q-grid-dark q-grid-column-filter .mat-card { background-color: #424242; color: #ffffff; font-weight: 300; } .q-grid-dark q-grid-column-chooser .mat-card .mat-card-title, .q-grid-dark q-grid-column-filter .mat-card .mat-card-title { font-size: 16px; } .q-grid-dark q-grid-column-chooser .mat-card .mat-button, .q-grid-dark q-grid-column-filter .mat-card .mat-button { color: #ffffff; } .q-grid-dark q-grid-column-chooser .mat-card .mat-button:hover, .q-grid-dark q-grid-column-filter .mat-card .mat-button:hover { background-color: #616161; } .q-grid-dark q-grid-column-chooser .mat-card .mat-button.mat-primary, .q-grid-dark q-grid-column-filter .mat-card .mat-button.mat-primary { background-color: #616161; } .q-grid-dark q-grid-column-chooser .mat-card .mat-form-field-label, .q-grid-dark q-grid-column-filter .mat-card .mat-form-field-label { color: #ffffff; } .q-grid-dark q-grid-column-chooser .mat-card .mat-input-underline, .q-grid-dark q-grid-column-filter .mat-card .mat-input-underline { color: #fff; } .q-grid-dark q-grid-column-chooser .mat-card .mat-form-field, .q-grid-dark q-grid-column-filter .mat-card .mat-form-field { font-weight: 300; } .q-grid-dark q-grid-column-chooser .mat-card .mat-form-field-underline, .q-grid-dark q-grid-column-filter .mat-card .mat-form-field-underline { background-color: rgba(255, 255, 255, 0.12); } .q-grid-dark q-grid-column-chooser .mat-card .mat-form-field-ripple, .q-grid-dark q-grid-column-filter .mat-card .mat-form-field-ripple { background-color: #1eb980; } .q-grid-dark q-grid-column-chooser .mat-card .mat-form-field-should-float label, .q-grid-dark q-grid-column-chooser .mat-card .q-grid-filter-by-item, .q-grid-dark q-grid-column-filter .mat-card .mat-form-field-should-float label, .q-grid-dark q-grid-column-filter .mat-card .q-grid-filter-by-item { font-family: \"Roboto Condensed\", Roboto, \"Helvetica Neue\", sans-serif; font-weight: 300; } .q-grid-dark q-grid-column-chooser .mat-card .q-grid-filter-by-item, .q-grid-dark q-grid-column-filter .mat-card .q-grid-filter-by-item { color: #424242; } .q-grid-dark q-grid-column-chooser .mat-card .mat-checkbox-checked.mat-accent .mat-checkbox-background, .q-grid-dark q-grid-column-chooser .mat-card .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .q-grid-dark q-grid-column-filter .mat-card .mat-checkbox-checked.mat-accent .mat-checkbox-background, .q-grid-dark q-grid-column-filter .mat-card .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background { background-color: #616161; } .q-grid-dark q-grid-column-chooser .mat-card .q-grid-highlight-part, .q-grid-dark q-grid-column-filter .mat-card .q-grid-highlight-part { background-color: #8d8d8d; color: #ffffff; } .q-grid-dark q-grid-column-chooser label, .q-grid-dark q-grid-column-filter label { border-color: #ffffff; } .q-grid-dark q-grid-column-chooser .mat-input-underline, .q-grid-dark q-grid-column-filter .mat-input-underline { color: #ffffff; } .q-grid-dark q-grid-column-chooser .mat-checkbox-frame, .q-grid-dark q-grid-column-filter .mat-checkbox-frame { border-color: #ffffff; } .q-grid-dark .q-grid-box:not(.q-grid-drag) td.q-grid-focused { outline-color: #5565A0; } .q-grid-dark .q-grid-view:not(.q-grid-active) td.q-grid-focused { outline-color: #5565A0; } .q-grid-dark .q-grid-cell-handler { outline-color: #5565A0; } "],
template: "<ng-template key=\"body-cell-array-of-date.tpl.html\" let-$cell> <ul> <li *ngFor=\"let item of $cell.value\">{{item | date: $cell.column.itemFormat}}</li> </ul> </ng-template><ng-template key=\"body-cell-array-of-number.tpl.html\" let-$cell> <ul> <li *ngFor=\"let item of $cell.value\">{{item | number: $cell.column.itemFormat}}</li> </ul> </ng-template><ng-template key=\"body-cell-array.tpl.html\" let-$cell> <ul> <li *ngFor=\"let item of $cell.value\">{{$cell.column.itemLabel(item)}}</li> </ul> </ng-template><ng-template key=\"body-cell-bool.tpl.html\" let-$cell> <mat-icon class=\"q-grid-icon\" *ngIf=\"$cell.value === $cell.column.trueValue\"> check </mat-icon> <mat-icon class=\"q-grid-icon\" *ngIf=\"$cell.column.isIndeterminate($cell.value)\"> remove </mat-icon> </ng-template><ng-template key=\"body-cell-currency.tpl.html\" let-$cell> <span>{{$cell.value | currency: $cell.column.code}}</span> </ng-template><ng-template key=\"body-cell-date.tpl.html\" let-$cell> <span>{{$cell.label | date: $cell.column.format}}</span> </ng-template> <ng-template key=\"body-cell-email.tpl.html\" let-$cell let-$view=\"$view\"> <a href=\"mailto:{{$cell.value}}\"> {{$cell.label || $cell.value}} </a> <button class=\"q-grid-url-edit q-grid-edit-trigger\" color=\"primary\" mat-icon-button matTooltip=\"Edit Email\" [matTooltipShowDelay]=\"800\" [matTooltipPosition]=\"'before'\" aria-label=\"'email'\" (disabled)=\"!$view.edit.cell.enter.canExecute($cell)\" (click)=\"$view.edit.cell.enter.execute($cell)\"> <mat-icon class=\"q-grid-icon\">edit</mat-icon> </button> </ng-template><ng-template key=\"body-cell-file.tpl.html\" let-$cell let-$view=\"$view\"> <a [href]=\"$cell.value\">{{$cell.label || $cell.value}}</a> <button mat-icon-button *ngIf=\"$view.edit.cell.canEdit($cell)\" class=\"q-grid-file-edit q-grid-edit-trigger\" matTooltip=\"Upload\" aria-label=\"Аile edit\" (disabled)=\"!$view.edit.cell.enter.canExecute($cell)\" (click)=\"$view.edit.cell.enter.execute($cell)\" tabindex=\"-1\"> <mat-icon class=\"q-grid-icon\">file_upload</mat-icon> </button> </ng-template><ng-template key=\"body-cell-group.tpl.html\" let-$cell let-$view=\"$view\"> <div [ngStyle]=\"{'padding-left': $view.group.offset($cell.row, $cell.column) + 'px'}\" *ngIf=\"$view.group.isVisible($cell.row, $cell.column)\"> <button (mouseup)=\"$view.group.toggleStatus.execute($cell.row, $cell.column)\" *ngIf=\"$view.group.toggleStatus.canExecute($cell.row, $cell.column)\" [ngClass]=\"'q-grid-'+$view.group.status($cell.row, $cell.column)\" tabindex=\"-1\" mat-icon-button> <mat-icon class=\"q-grid-icon\"> chevron_right </mat-icon> </button> <span>{{$view.group.value($cell.row, $cell.column)}}</span> <span *ngIf=\" $view.group.toggleStatus.canExecute($cell.row, $cell.column)\">({{$view.group.count($cell.row, $cell.column)}})</span> </div> </ng-template> <ng-template key=\"body-cell-image.tpl.html\" let-$cell> <img *ngIf=\"$cell.value\" [src]=\"$cell.value\" /> <mat-icon class=\"q-grid-icon\" *ngIf=\"!$cell.value\"> insert_photo </mat-icon> </ng-template><ng-template key=\"body-cell-number.tpl.html\" let-$cell> <span>{{$cell.label | number: $cell.column.format}}</span> </ng-template> <ng-template key=\"body-cell-password.tpl.html\"> *** </ng-template><ng-template key=\"body-cell-reference.tpl.html\" let-$cell let-$view=\"$view\"> <span>{{$cell.label}}</span> <button *ngIf=\"$view.edit.cell.canEdit($cell)\" class=\"q-grid-reference-edit q-grid-edit-trigger\" (disabled)=\"!$view.edit.cell.enter.canExecute($cell)\" (click)=\"$view.edit.cell.enter.execute($cell)\" type=\"button\" mat-icon-button matTooltip=\"Edit reference\" matTooltipPosition=\"below\" tabindex=\"-1\"> <mat-icon matSuffix class=\"q-grid-icon\"> search </mat-icon> </button> </ng-template><ng-template key=\"body-cell-row-expand.tpl.html\" let-$cell let-$view=\"$view\"> <button (mouseup)=\"$view.rowDetails.toggleStatus.execute($cell.row)\" *ngIf=\"$view.rowDetails.toggleStatus.canExecute($cell.row)\" [ngClass]=\"'q-grid-'+$view.rowDetails.status($cell.row)\" tabindex=\"-1\" mat-icon-button> <mat-icon class=\"q-grid-icon\"> chevron_right </mat-icon> </button> </ng-template><ng-template key=\"body-cell-row-indicator.tpl.html\" let-$cell let-$view=\"$view\"> <ng-container *ngIf=\"$view.row.canMove\"> <div [q-grid-drag]=\"$view.row.drag\" [q-grid-drag-data]=\"$cell.rowIndex\" q-grid-drop-area=\"body\"> <mat-icon class=\"q-grid-icon\">drag_indicator</mat-icon> </div> </ng-container> <ng-container *ngIf=\"$view.row.canResize\"> <div [q-grid-drag]=\"$view.row.resize\" [q-grid-resize]=\"$cell.row\" q-grid-resize-path=\"rows\" [q-grid-can-resize]=\"$view.row.resize.canExecute\"> </div> </ng-container> </ng-template><ng-template key=\"body-cell-row-number.tpl.html\" let-$cell let-$view=\"$view\"> {{$cell.rowIndex + 1}} </ng-template><ng-template key=\"body-cell-row-options.tpl.html\"> <mat-icon class=\"q-grid-icon\">more_vert</mat-icon> </ng-template><ng-template key=\"body-cell-select.tpl.html\" let-$cell let-$view=\"$view\"> <mat-checkbox [indeterminate]=\"$view.selection.isIndeterminate($cell.row)\" [checked]=\"$view.selection.state($cell.row)\" [disabled]=\"!$view.selection.toggleRow.canExecute($cell.row)\" (change)=\"$view.selection.toggleRow.execute($cell.row)\" tabindex=\"-1\" aria-label=\"Select\" class=\"q-grid-checkbox\"> </mat-checkbox> </ng-template><ng-template key=\"body-cell-text.tpl.html\" let-$cell> <span>{{$cell.label}}</span> </ng-template><ng-template key=\"body-cell-time.tpl.html\" let-$cell> {{$cell.label | qGridTime: $cell.column.format}} </ng-template><ng-template key=\"body-cell-url.tpl.html\" let-$cell let-$view=\"$view\"> <a [attr.href]=\"$cell.value\"> {{$cell.label || $cell.value}} </a> <button *ngIf=\"$view.edit.cell.canEdit($cell)\" class=\"q-grid-url-edit q-grid-edit-trigger\" mat-icon-button aria-label=\"url\" [disabled]=\"!$view.edit.cell.enter.canExecute($cell)\" (click)=\"$view.edit.cell.enter.execute($cell)\" tabindex=\"-1\" matTooltip=\"Edit Url\" [matTooltipPosition]=\"'below'\" [matTooltipShowDelay]=\"800\"> <mat-icon class=\"q-grid-icon\">edit</mat-icon> </button> </ng-template><ng-template key=\"column-filter-cell-currency.tpl.html\" let-$item let-$list=\"itemList\"> <span [innerHTML]=\"$item.value | currency: $list.column.code | qGridHighlight: $list.search\"></span> </ng-template><ng-template key=\"column-filter-cell-date.tpl.html\" let-$item let-$list=\"itemList\"> <span [innerHTML]=\"$item.value | date: $list.column.format | qGridHighlight: $list.search\"></span> </ng-template><ng-template key=\"column-filter-cell-number.tpl.html\" let-$item let-$list=\"itemList\"> <span [innerHTML]=\"$item.value | number: $list.column.format | qGridHighlight: $list.search\"></span> </ng-template><ng-template key=\"column-filter-cell-text.tpl.html\" let-$item let-$list=\"itemList\"> <span [innerHTML]=\"$item.value | qGridHighlight: $list.search\"></span> </ng-template><ng-template key=\"edit-cell-array.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-array q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <div class=\"q-grid-array-view\"> <mat-chip-list #chipList> <mat-chip class=\"q-grid-array-item\" *ngFor=\"let value of $view.edit.cell.value;let $index = index\" selectable=\"true\" removable=\"true\" (removed)=\"$view.edit.cell.value.splice($index, 1)\"> {{value}} <mat-icon class=\"q-grid-icon\" matChipRemove> cancel </mat-icon> </mat-chip> </mat-chip-list> </div> <mat-form-field q-grid-chips (push)=\"$view.edit.cell.value.push($event)\" [floatLabel]=\"'never'\"> <input class=\"q-grid-array-input\" matInput type={{$cell.column.itemType}} #chipInput placeholder=\"New value\" q-grid-focus [matChipInputFor]=\"chipList\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key='edit-cell-autocomplete.tpl.html' let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <q-grid-autocomplete-editor> </q-grid-autocomplete-editor> </ng-template> </q-grid-cell-editor> </ng-template><ng-template key=\"edit-cell-bool.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-bool-editor [autofocus]=\"true\" [column]=\"$cell.column\" [(value)]=\"$view.edit.cell.value\"> </q-grid-bool-editor> </ng-template><ng-template key=\"edit-cell-currency.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-currency q-grid-editor q-grid-position q-grid-text\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <input matInput type=\"number\" #input q-grid-focus [(ngModel)]=\"$view.edit.cell.value\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-date.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-date q-grid-editor q-grid-position q-grid-text\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field *q-grid-date=\"let isValid='isValid'\" [ngClass]=\"{'mat-form-field-invalid': !isValid(input.value)}\"> <input q-grid-focus matInput #input [matDatepicker]=\"picker\" [ngModel]=\"$view.edit.cell.value | date:'yyyy-MM-dd'\" (ngModelChange)=\"isValid(input.value) && ($view.edit.cell.value = $event)\" /> <mat-datepicker-toggle matSuffix [for]=\"picker\"> </mat-datepicker-toggle> <mat-datepicker #picker> </mat-datepicker> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-dropdown.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-dropdown\" (close)=\"$view.edit.cell.cancel.execute($cell)\"> <ng-template> <mat-select disableRipple q-grid-select [(value)]=\"$view.edit.cell.value\" (openedChange)=\"!$event && $view.edit.cell.exit.execute()\"> <mat-option *ngFor=\"let option of $view.edit.cell.fetch.result\" [value]=\"option\"> {{option}} </mat-option> </mat-select> </ng-template> </q-grid-cell-editor> </ng-template><ng-template key=\"edit-cell-email.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-email q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <q-grid-tab-trap> <ng-template> <div class=\"layout-column q-grid-email-fields\" flex> <mat-form-field *ngIf=\"$cell.column.label !== null\"> <input matInput type=\"text\" [(ngModel)]=\"$view.edit.cell.label\" placeholder=\"Label\" /> </mat-form-field> <mat-form-field> <input q-grid-focus matInput type=\"email\" [(ngModel)]=\"$view.edit.cell.value\" placeholder=\"Email\" /> </mat-form-field> </div> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-tab-trap> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-file.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-editor q-grid-file q-grid-position\" (close)=\"$view.edit.cell.cancel.execute($cell)\" q-grid-position=\"td\"> <ng-template> <div class=\"layout-column flex\"> <div class=\"q-grid-file-upload-area\" [ngClass]=\"{'q-grid-file-has-preview': $cell.column.hasPreview($view.edit.cell.label)}\"> <div class=\"layout-column q-grid-file-upload-message\" [ngSwitch]=\"!!$view.edit.cell.value\"> <span class=\"q-grid-file-upload-filename\" *ngSwitchCase=\"true\"> {{$view.edit.cell.label}} </span> <div class=\"layout-row layout-align-center-center\"> <mat-icon>file_upload</mat-icon> <span *ngSwitchCase=\"false\">Drag and drop a file here or click</span> <span *ngSwitchCase=\"true\">Drag and drop or click to replace </span> </div> </div> <input [(q-grid-file)]=\"$view.edit.cell.value\" [(q-grid-file-label)]=\"$view.edit.cell.label\" [q-grid-file-is-valid]=\"$cell.column.canUpload\" type=\"file\" /> <div class=\"q-grid-file-preview\" *ngIf=\"$cell.column.hasPreview($view.edit.cell.label)\"> <img [src]=\"$view.edit.cell.value\" /> </div> </div> </div> <div class=\"q-grid-actions\"> <button mat-button color=\"primary\" (click)=\"$view.edit.cell.commit.execute($cell, $event)\"> Save </button> <button mat-button (click)=\"$view.edit.cell.clear.execute($cell)\"> Clear </button> <button mat-button (click)=\"$view.edit.cell.cancel.execute($cell, $event)\"> Cancel </button> </div> </ng-template> </q-grid-cell-editor> </ng-template><ng-template key=\"edit-cell-image.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-editor q-grid-file q-grid-position\" (close)=\"$view.edit.cell.cancel.execute($cell)\" q-grid-position=\"td\"> <ng-template> <div class=\"layout-column flex\"> <div class=\"q-grid-file-upload-area\" [ngClass]=\"{'q-grid-file-has-preview': $cell.column.hasPreview($view.edit.cell.label)}\"> <div class=\"layout-column q-grid-file-upload-message\" [ngSwitch]=\"!!$view.edit.cell.value\"> <span class=\"q-grid-file-upload-filename\" *ngSwitchCase=\"true\"> {{$view.edit.cell.label}} </span> <div class=\"layout-row layout-align-center-center\"> <mat-icon>file_upload</mat-icon> <span *ngSwitchCase=\"false\">Drag and drop an image here or click</span> <span *ngSwitchCase=\"true\">Drag and drop or click to replace </span> </div> </div> <input [(q-grid-file)]=\"$view.edit.cell.value\" [(q-grid-file-label)]=\"$view.edit.cell.label\" [q-grid-file-is-valid]=\"$cell.column.canUpload\" type=\"file\" /> <div class=\"q-grid-file-preview\" *ngIf=\"$cell.column.hasPreview($view.edit.cell.label)\"> <img [src]=\"$view.edit.cell.value\" /> </div> </div> </div> <div class=\"q-grid-actions\"> <button mat-button color=\"primary\" (click)=\"$view.edit.cell.commit.execute($cell, $event)\"> Save </button> <button mat-button (click)=\"$view.edit.cell.clear.execute($cell)\"> Clear </button> <button mat-button (click)=\"$view.edit.cell.cancel.execute($cell, $event)\"> Cancel </button> </div> </ng-template> </q-grid-cell-editor> </ng-template><ng-template key=\"edit-cell-number.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-number q-grid-editor q-grid-position q-grid-text\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <input matInput type=\"number\" #input q-grid-focus [(ngModel)]=\"$view.edit.cell.value\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-password.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-password q-grid-editor q-grid-position q-grid-text\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <input matInput [type]=\"'password'\" q-grid-focus [(ngModel)]=\"$view.edit.cell.value\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-reference.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-reference q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <q-grid-reference-editor [cell]=\"$cell\" [(value)]=\"$view.edit.cell.value\" [caption]=\"$cell.column.title\" (afterSubmit)=\"$view.edit.cell.commit.canExecute() && $view.edit.cell.commit.execute()\" (afterCancel)=\"$view.edit.cell.cancel.execute()\"> </q-grid-reference-editor> </ng-template> </q-grid-cell-editor> </ng-template><ng-template key=\"edit-cell-row-options.tpl.html\" let-$cell let-$view=\"$view\"> <button aria-label=\"Open row menu\" mat-icon-button [matMenuTriggerFor]=\"menu\" (q-grid-menu-trigger)=\"$view.edit.cell.cancel.execute($cell)\"> <mat-icon class=\"q-grid-icon\">more_vert</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-row-options\"> <button mat-menu-item *ngFor=\"let $action of $cell.column.editorOptions.actions\" (click)=\"$action.command.execute($cell)\" [disabled]=\"!$action.command.canExecute($cell)\" [q-grid-command]=\"$action.command\" [q-grid-command-context]=\"$cell\" (q-grid-command-execute)=\"$view.edit.cell.cancel.execute($cell)\"> <mat-icon class=\"q-grid-icon\">{{$action.icon}}</mat-icon> <span>{{$action.title}}</span> <span *ngIf=\"$action.command.shortcut\" class=\"q-grid-shortcut\"> {{$action.command.shortcut}} </span> </button> </mat-menu> </ng-template><ng-template key=\"edit-cell-text-area.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-text-area q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <textarea matInput #input rows=\"10\" q-grid-focus maxlength=\"{{$cell.column.maxLength}}\" [(ngModel)]=\"$view.edit.cell.value\"> </textarea> <mat-hint align=\"end\">{{input.value.length}} / {{$cell.column.maxLength}}</mat-hint> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-text.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-text q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <input matInput #input q-grid-focus maxlength=\"{{$cell.column.maxLength}}\" [(ngModel)]=\"$view.edit.cell.value\" /> <mat-hint align=\"end\">{{input.value.length}} / {{$cell.column.maxLength}}</mat-hint> </mat-form-field> <q-grid-validator *ngIf=\"$view?.edit\" class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-time.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-time q-grid-editor q-grid-position q-grid-text\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <mat-form-field> <input matInput type=\"time\" #input *q-grid-time=\"let time='time'\" q-grid-focus [value]=\"$view.edit.cell.value | qGridTime: 'hh:mm'\" (change)=\"$view.edit.cell.value = time($view.edit.cell.value, input.value)\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-cell-url.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-cell-editor class=\"q-grid-url q-grid-editor q-grid-position\" (close)=\"$view.edit.cell.exit.execute($cell)\" q-grid-position=\"td\"> <ng-template> <q-grid-tab-trap> <ng-template> <div class=\"flex layout-column q-grid-url-fields\"> <mat-form-field *ngIf=\"$cell.column.label !== null\"> <input matInput type=\"text\" [(ngModel)]=\"$view.edit.cell.label\" placeholder=\"Label\" /> </mat-form-field> <mat-form-field> <input matInput type=\"url\" q-grid-focus [(ngModel)]=\"$view.edit.cell.value\" placeholder=\"Url\" /> </mat-form-field> <q-grid-validator class=\"q-grid-validator\" [key]=\"$cell.column.key\" [type]=\"$cell.column.type\" [value]=\"$view.edit.cell.value\"> </q-grid-validator> </div> </ng-template> </q-grid-tab-trap> </ng-template> </q-grid-cell-editor> </ng-template> <ng-template key=\"edit-form-array.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <div class=\"q-grid-array-view\"> <mat-chip-list #chipList> <mat-chip class=\"q-grid-array-item\" *ngFor=\"let value of $editor.value;let $index = index\" selectable=\"true\" removable=\"true\" (removed)=\"$editor.value.splice($index, 1)\"> {{value}} <mat-icon class=\"q-grid-icon\" matChipRemove> cancel </mat-icon> </mat-chip> </mat-chip-list> </div> <mat-form-field q-grid-chips (push)=\"$editor.value.push($event)\" [floatLabel]=\"'never'\"> <input class=\"q-grid-array-input\" matInput type={{$editor.cell.column.itemType}} #chipInput placeholder=\"New value\" [matChipInputFor]=\"chipList\" /> </mat-form-field> </ng-template> <ng-template key=\"edit-form-bool.tpl.html\" let-$editor> <q-grid-bool-editor [column]=\"$editor.cell.column\" [(value)]=\"$editor.value\" [label]=\"$editor.cell.column.title\"> </q-grid-bool-editor> </ng-template><ng-template key=\"edit-form-currency.tpl.html\" let-$editor> <mat-form-field> <input matInput type=\"number\" [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\" /> </mat-form-field> </ng-template><ng-template key=\"edit-form-date.tpl.html\" let-$editor> <mat-form-field> <input matInput [matDatepicker]=\"picker\" [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\" /> <mat-datepicker-toggle matSuffix [for]=\"picker\"> </mat-datepicker-toggle> <mat-datepicker #picker> </mat-datepicker> </mat-form-field> </ng-template><ng-template key=\"edit-form-dropdown.tpl.html\"> Dropdown is not implemented </ng-template><ng-template key=\"edit-form-email.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <mat-form-field *ngIf=\"$editor.cell.column.label !== null\"> <input matInput type=\"text\" [(ngModel)]=\"$editor.label\" placeholder=\"Label\" /> </mat-form-field> <mat-form-field> <input matInput type=\"email\" [(ngModel)]=\"$editor.value\" placeholder=\"Email\" /> </mat-form-field> </ng-template><ng-template key=\"edit-form-file.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <div class=\"q-grid-file-upload-area\" [ngClass]=\"{'q-grid-file-has-preview': $editor.cell.column.hasPreview($editor.label)}\"> <div class=\"layout-column q-grid-file-upload-message\" [ngSwitch]=\"!!$editor.value\"> <span class=\"q-grid-file-upload-filename\" *ngSwitchCase=\"true\"> {{$editor.label}} </span> <div class=\"layout-row layout-align-center-center\"> <mat-icon>file_upload</mat-icon> <span *ngSwitchCase=\"false\">Drag and drop a file here or click</span> <span *ngSwitchCase=\"true\">Drag and drop or click to replace </span> </div> </div> <input [(q-grid-file)]=\"$editor.value\" [(q-grid-file-label)]=\"$editor.label\" [q-grid-file-is-valid]=\"$editor.cell.column.canUpload\" q-grid-file type=\"file\" /> <div class=\"q-grid-file-preview\" *ngIf=\"$editor.cell.column.hasPreview($editor.label)\"> <img [src]=\"$editor.value\" /> </div> </div> </ng-template><ng-template key=\"edit-form-image.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <div class=\"q-grid-file-upload-area\" [ngClass]=\"{'q-grid-file-has-preview': $editor.cell.column.hasPreview($editor.label)}\"> <div class=\"layout-column q-grid-file-upload-message\" [ngSwitch]=\"!!$editor.value\"> <span class=\"q-grid-file-upload-filename\" *ngSwitchCase=\"true\"> {{$editor.label}} </span> <div class=\"layout-row layout-align-center-center\"> <mat-icon>file_upload</mat-icon> <span *ngSwitchCase=\"false\">Drag and drop an image here or click</span> <span *ngSwitchCase=\"true\">Drag and drop or click to replace </span> </div> </div> <input [(q-grid-file)]=\"$editor.value\" [(q-grid-file-label)]=\"$editor.label\" [q-grid-file-is-valid]=\"$editor.cell.column.canUpload\" type=\"file\" /> <div class=\"q-grid-file-preview\" *ngIf=\"$editor.cell.column.hasPreview($editor.label)\"> <img [src]=\"$editor.value\" /> </div> </div> </ng-template><ng-template key=\"edit-form-number.tpl.html\" let-$editor> <mat-form-field> <input matInput type=\"number\" #input [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\" /> </mat-form-field> </ng-template><ng-template key=\"edit-form-password.tpl.html\" let-$editor> <mat-form-field> <input matInput type=\"password\" [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\" /> </mat-form-field> </ng-template><ng-template key=\"edit-form-reference.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <q-grid-reference [cell]=\"$editor.cell\" [(value)]=\"$editor.value\" [autofocus]=\"false\"> </q-grid-reference> </ng-template><ng-template key=\"edit-form-text-area.tpl.html\" let-$editor> <mat-form-field> <textarea matInput #input rows=\"10\" [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\"> </textarea> <mat-hint align=\"end\">{{input.value.length}} / {{$editor.cell.column.maxLength}}</mat-hint> </mat-form-field> </ng-template><ng-template key=\"edit-form-text.tpl.html\" let-$editor> <mat-form-field class=\"edit-form-text\"> <input matInput #input maxlength=\"{{$editor.cell.column.maxLength}}\" [(ngModel)]=\"$editor.value\" [placeholder]=\"$editor.cell.column.title\" /> <mat-hint align=\"end\">{{input.value.length}} / {{$editor.cell.column.maxLength}}</mat-hint> </mat-form-field> </ng-template><ng-template key=\"edit-form-time.tpl.html\" let-$editor> <mat-form-field> <input matInput type=\"time\" [placeholder]=\"$editor.cell.column.title\" [(ngModel)]=\"$editor.value\" /> </mat-form-field> </ng-template><ng-template key=\"edit-form-url.tpl.html\" let-$editor> <h3>{{$editor.cell.column.title}}</h3> <mat-form-field *ngIf=\"$editor.cell.column.label !== null\"> <input matInput type=\"text\" [(ngModel)]=\"$editor.label\" placeholder=\"Label\" /> </mat-form-field> <mat-form-field> <input matInput type=\"url\" [(ngModel)]=\"$editor.value\" placeholder=\"Url\" /> </mat-form-field> </ng-template><ng-template key=\"filter-cell-bool.tpl.html\" let-$cell let-$view=\"$view\"> <mat-checkbox *ngIf=\"$cell.column.canFilter\" aria-label=\"Bool cell filter\" class=\"q-grid-checkbox\" #input (change)=\"$view.filter.column.execute($cell.column.model, input.checked)\"> </mat-checkbox> </ng-template><ng-template key=\"filter-cell-currency.tpl.html\" let-$cell let-$view=\"$view\"> <mat-form-field *ngIf=\"$cell.column.canFilter\" floatLabel=\"never\"> <mat-placeholder> <mat-icon>filter_list</mat-icon> </mat-placeholder> <input type=\"number\" matInput #input (change)=\"$view.filter.column.execute($cell.column.model, input.value)\" /> </mat-form-field> </ng-template><ng-template key=\"filter-cell-date.tpl.html\" let-$cell let-$view=\"$view\"> <mat-form-field *ngIf=\"$cell.column.canFilter\" floatLabel=\"never\"> <mat-placeholder> <mat-icon>filter_list</mat-icon> </mat-placeholder> <input matInput #input [matDatepicker]=\"picker\" (dateChange)=\"$view.filter.column.execute($cell.column.model, input.value)\" /> <mat-datepicker-toggle matSuffix [for]=\"picker\"> </mat-datepicker-toggle> <mat-datepicker #picker> </mat-datepicker> </mat-form-field> </ng-template><ng-template key=\"filter-cell-number.tpl.html\" let-$cell let-$view=\"$view\"> <mat-form-field *ngIf=\"$cell.column.canFilter\" floatLabel=\"never\"> <mat-placeholder> <mat-icon>filter_list</mat-icon> </mat-placeholder> <input type=\"number\" matInput #input (change)=\"$view.filter.column.execute($cell.column.model, input.value)\" /> </mat-form-field> </ng-template><ng-template key=\"filter-cell-text.tpl.html\" let-$cell let-$view=\"$view\"> <mat-form-field *ngIf=\"$cell.column.canFilter\" floatLabel=\"never\"> <mat-placeholder> <mat-icon>filter_list</mat-icon> </mat-placeholder> <input type=\"search\" matInput #input (change)=\"$view.filter.column.execute($cell.column.model, input.value)\" /> </mat-form-field> </ng-template><ng-template key=\"foot-cell-currency.tpl.html\" let-$cell> <span>{{$cell.value | currency:$cell.column.code}}</span> </ng-template><ng-template key=\"foot-cell-number.tpl.html\" let-$cell> <span>{{$cell.value | number:$cell.column.format}}</span> </ng-template><ng-template key=\"foot-cell-text.tpl.html\" let-$cell> <span>{{$cell.value}}</span> </ng-template> <ng-template key=\"head-cell-group.tpl.html\" let-$cell let-$view=\"$view\"> <label (click)=\"$view.group.toggleAllStatus.execute()\" tabindex=\"-1\" [matTooltip]=\"$cell.column.description\" [matTooltipShowDelay]=\"800\"> {{$cell.column.title}} </label> </ng-template><ng-template key=\"head-cell-select.tpl.html\" let-$view=\"$view\"> <ng-container> <mat-checkbox [indeterminate]=\"$view.selection.isIndeterminate()\" [checked]=\"$view.selection.state()\" [disabled]=\"!$view.selection.toggleRow.canExecute()\" (change)=\"$view.selection.toggleRow.execute()\" tabindex=\"-1\" aria-label=\"Select all\" class=\"q-grid-checkbox\"> </mat-checkbox> </ng-container> </ng-template><ng-template key=\"head-cell-text.tpl.html\" let-$cell let-$view=\"$view\"> <q-grid-column-sort *ngIf=\"$cell.column.canSort\" [column]=\"$cell.column\" class=\"q-grid-sort\"> <ng-template> <label [matTooltip]=\"$cell.column.description\" [matTooltipShowDelay]=\"800\"> {{$cell.column.title}} </label> </ng-template> </q-grid-column-sort> <label *ngIf=\"!$cell.column.canSort\" [matTooltip]=\"$cell.column.description\" [matTooltipShowDelay]=\"800\"> {{$cell.column.title}} </label> <q-grid-column-filter-trigger class=\"q-grid-column-filter-trigger\" *ngIf=\"$cell.column.canFilter\" [column]=\"$cell.column\"> </q-grid-column-filter-trigger> </ng-template><ng-template key=\"plugin-action-bar.tpl.html\" let-$actionBar> <div class=\"layout-row\"> <div class=\"flex-100 layout-row\" layout-align=\"start center\" layout-align-xs=\"start start\" layout-align-sm=\"start start\" layout-xs=\"column\" layout-sm=\"column\"> </div> <div class=\"q-grid-actions flex-none layout-row\" layout-align=\"end center\"> <q-grid-action-core *ngFor=\"let action of $actionBar.actions\" [action]=\"action\"> </q-grid-action-core> </div> </div> </ng-template> <ng-template key=\"plugin-action-core.tpl.html\" let-$action> <div class=\"q-grid-action\" [ngSwitch]=\"!!$action.templateUrl\"> <ng-container *ngSwitchCase=\"true\" [key]=\"$action.templateUrl\" [context]=\"{$implicit: $action}\"> </ng-container> <button *ngSwitchDefault mat-icon-button (click)=\"$action.execute()\" [disabled]=\"!$action.canExecute()\" [matTooltip]=\"$action.title\" [matTooltipShowDelay]=\"800\" tabindex=\"-1\"> <mat-icon class=\"q-grid-icon\">{{$action.icon}}</mat-icon> </button> </div> </ng-template> <ng-template key=\"plugin-autocomplete-editor.tpl.html\" let-$editor> <mat-form-field> <input type=\"text\" #input q-grid-focus matInput [(ngModel)]=\"$editor.value\" (ngModelChange)=\"$editor.filter(input.value)\" placeholder=\"Pick a {{$editor.title}}\" [matAutocomplete]=\"autocomplete\"> </mat-form-field> <mat-autocomplete #autocomplete=\"matAutocomplete\"> <mat-option *ngFor=\"let option of $editor.options\" [value]=\"option\">{{option}}</mat-option> </mat-autocomplete> </ng-template><ng-template key=\"plugin-backdrop.tpl.html\" let-$backdrop> <div class=\"q-grid-backdrop\"> <ng-container [ngTemplateOutlet]=\"$backdrop.template\"></ng-container> </div> </ng-template><ng-template key=\"plugin-bool-editor.tpl.html\" let-$editor> <mat-checkbox aria-label=\"Bool cell edit\" class=\"q-grid-checkbox\" #checkbox [q-grid-focus]=\"checkbox\" [q-grid-focus-disabled]=\"!$editor.autofocus\" [checked]=\"$editor.isChecked\" (change)=\"$editor.isChecked = $event.checked\"> {{$editor.label}} </mat-checkbox> </ng-template><ng-template key=\"plugin-caption.tpl.html\" let-$caption> <div class=\"q-grid-caption\"> <h3 class=\"mat-card-title\"> {{$caption.value}} </h3> </div> </ng-template><ng-template key=\"plugin-cell-editor.tpl.html\" let-$editor> <q-grid-backdrop (close)=\"$editor.close($event)\"> </q-grid-backdrop> <div class=\"q-grid-editor-content\" q-grid-stop-propagate=\"click\"> <ng-container [ngTemplateOutlet]=\"$editor.template\"></ng-container> </div> </ng-template><ng-template key=\"column-chooser.tpl.html\" let-$columnChooser let-$plugin=\"plugin\"> <mat-card class=\"mat-elevation-z\"> <mat-card-header> <mat-card-title>Columns Filter</mat-card-title> </mat-card-header> <mat-card-content> <div class=\"flex-none layout-row\"> <mat-form-field class=\"q-grid-column-chooser-filter\"> <input type=\"search\" placeholder=\"Find in the list\" matInput (input)=\"$columnChooser.search($columnChooser.searchText)\" [(ngModel)]=\"$columnChooser.searchText\" q-grid-focus /> </mat-form-field> </div> <div class=\"flex layout-column\"> <ul class=\"q-grid-column-chooser-toolbar\"> <li> <mat-checkbox [checked]=\"$columnChooser.stateAll()\" (change)=\"$columnChooser.toggleAll.execute()\" [indeterminate]=\"$columnChooser.isIndeterminate()\"> Select All </mat-checkbox> </li> <li> <mat-checkbox [checked]=\"$columnChooser.stateDefault()\" (change)=\"$columnChooser.defaults.execute()\"> Select Defaults </mat-checkbox> </li> </ul> <div class=\"q-grid-column-chooser-list\"> <ng-container key=\"column-chooser-node.tpl.html\" [context]=\"$plugin.root()\"> </ng-container> </div> </div> </mat-card-content> <mat-card-actions> <button mat-button (click)=\"$columnChooser.cancel.execute()\"> Cancel </button> <button mat-button color=\"primary\" (click)=\"$columnChooser.submit.execute()\"> Apply </button> </mat-card-actions> </mat-card> </ng-template> <ng-template key=\"column-chooser-node.tpl.html\" let-$context> <ul> <ng-container *ngFor=\"let node of $context.node.children\"> <li *ngIf=\"$context.ctrl.toggle.canExecute(node)\" [q-grid-drop]=\"$context.ctrl.drop\" [q-grid-drop-data]=\"node\" [q-grid-drag-over]=\"$context.ctrl.drop\" q-grid-drop-area=\"column-chooser\" q-grid-drag-direction=\"y\"> <div [q-grid-drag]=\"$context.ctrl.drag\" [q-grid-drag-data]=\"node\" q-grid-drop-area=\"column-chooser\"> <mat-icon class=\"q-grid-icon\">drag_indicator</mat-icon> </div> <mat-checkbox [checked]=\"$context.ctrl.state(node)\" (change)=\"$context.ctrl.toggle.execute(node)\" aria-label=\"Selection\"> <span [innerHTML]=\"node.value.column.title | qGridHighlight: $context.ctrl.searchText\"></span> </mat-checkbox> </li> <ng-container key=\"column-chooser-node.tpl.html\" [context]=\"{$implicit: {ctrl: $context.ctrl, node: node}}\"> </ng-container> </ng-container> </ul> </ng-template><ng-template key=\"plugin-column-filter-by.tpl.html\" let-$by> <ul [q-grid-column-filter-item-list]=\"$by.column\"> <li *ngFor=\"let item of $by.by\"> <div class=\"q-grid-filter-by\"> <div class=\"q-grid-filter-by-item\"> <ng-container [q-grid-column-filter-item]=\"item\"></ng-container> </div> <div class=\"q-grid-filter-by-remove\" (click)=\"$by.remove(item)\"> <mat-icon class=\"q-grid-icon\">clear</mat-icon> </div> </div> </li> <li *ngIf=\"$by.isBlanks\"> <div class=\"q-grid-filter-by\"> <div class=\"q-grid-filter-by-item\"> (Blanks) </div> <div class=\"q-grid-filter-by-remove\" (click)=\"$by.removeByBlanks()\"> <mat-icon class=\"q-grid-icon\">clear</mat-icon> </div> </div> </li> </ul> </ng-template> <ng-template key=\"plugin-column-filter-trigger.tpl.html\" let-$columnFilterTrigger> <button mat-icon-button tabindex=\"-1\" #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" aria-label=\"Column filter\"> <mat-icon class=\"q-grid-icon\">filter_list</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-column-filter q-grid-menu\"> <q-grid-column-filter q-grid-menu q-grid-theme-overlay *ngIf=\"trigger.menuOpen\" [column]=\"$columnFilterTrigger.column\" (cancel)=\"trigger.closeMenu()\" (submit)=\"trigger.closeMenu()\"> </q-grid-column-filter> </mat-menu> </ng-template> <ng-template key=\"plugin-column-filter.tpl.html\" let-$columnFilter let-$plugin=\"plugin\" let-$vscroll=\"vscroll\"> <mat-card class=\"mat-elevation-z\"> <mat-card-header> <mat-card-title> {{$columnFilter.title}} Filter </mat-card-title> </mat-card-header> <mat-card-content> <mat-form-field class=\"q-grid-column-filter-filter\"> <input type=\"search\" matInput placeholder=\"Find in the list\" [(ngModel)]=\"$plugin.search\" (input)=\"$plugin.reset()\" q-grid-focus/> </mat-form-field> <ul class=\"q-grid-column-filter-toolbar\"> <li> <mat-checkbox [checked]=\"$columnFilter.stateAll()\" (change)=\"$columnFilter.toggleAll.execute($plugin.search)\" [indeterminate]=\"$columnFilter.isIndeterminate()\"> Select All </mat-checkbox> </li> </ul> <div [ngSwitch]=\"$columnFilter.isEmpty()\" class=\"q-grid-column-filter-by\"> <ng-container *ngSwitchCase=\"false\"> <div class=\"q-grid-column-filter-by-blank\"> NO SELECTED FILTERS </div> </ng-container> <ng-container *ngSwitchCase=\"true\"> <q-grid-column-filter-by [by]=\"$columnFilter.by\" [(byBlanks)]=\"$columnFilter.byBlanks\" [column]=\"$plugin.column\"> </q-grid-column-filter-by> </ng-container> </div> <div class=\"q-grid-column-filter-list\" [q-grid-column-filter-item-list]=\"$plugin.column\" [q-grid-column-filter-search]=\"$plugin.search\" q-grid-vscroll> <ul [q-grid-vscroll-port-y]=\"$vscroll\"> <li *ngFor=\"let item of $columnFilter.items | qGridVscroll: $vscroll; let $index = index; trackBy: $plugin.rowId\" [q-grid-vscroll-row]=\"$index\"> <mat-checkbox [checked]=\"$columnFilter.state(item)\" *ngIf=\"$columnFilter.toggle.canExecute(item)\" aria-label=\"Select filter value\" (change)=\"$columnFilter.toggle.execute(item)\"> <ng-container [q-grid-column-filter-item]=\"item\"></ng-container> </mat-checkbox> </li> <li> <mat-checkbox *ngIf=\"$columnFilter.hasBlanks\" [(ngModel)]=\"$columnFilter.byBlanks\" aria-label=\"Select blanks\"> <span [innerHTML]=\"'(Blanks)' | qGridHighlight: $plugin.search\"></span> </mat-checkbox> </li> </ul> </div> </mat-card-content> <mat-card-actions> <button mat-button (click)=\"$columnFilter.cancel.execute()\">Cancel</button> <button mat-button (click)=\"$columnFilter.reset.execute()\">Clear</button> <button mat-button color=\"primary\" (click)=\"$columnFilter.submit.execute()\">Apply</button> </mat-card-actions> </mat-card> </ng-template> <ng-template key=\"plugin-column-sort.tpl.html\" let-$columnSort> <mat-icon class=\"q-grid-icon q-grid-asc\">arrow_upward</mat-icon> <mat-icon class=\"q-grid-icon q-grid-desc\">arrow_downward</mat-icon> <ng-container [ngTemplateOutlet]=\"$columnSort.template\"></ng-container> </ng-template><ng-template key=\"plugin-eb-autocomplete.tpl.html\" let-$expr> <mat-form-field floatLabel=\"never\" q-grid-autosize=\"input\" [q-grid-autisize-value]=\"$expr.value\" [q-grid-eb-class]=\"$expr.classes\" [q-grid-eb-class-model]=\"$expr\" matTooltip=\"{{$expr.state && $expr.state.join(', ')}}\" matTooltipPosition=\"after\" matTooltipShowDelay=\"500\" matTooltipClass=\"q-grid-query-builder-error-tooltip\"> <input matInput #input=\"matAutocompleteTrigger\" [(ngModel)]=\"$expr.value\" (click)=\"$expr.refresh && $expr.refresh() && input.openPanel()\" (input)=\"$expr.change && $expr.change();$expr.refresh && $expr.refresh()\" (optionSelected)=\"$expr.change && $expr.change()\" [placeholder]=\"$expr.placeholderText\" [matAutocomplete]=\"autocomplete\"> <mat-autocomplete #autocomplete=\"matAutocomplete\" (q-grid-backdrop)=\"input.closePanel()\" [q-grid-backdrop-active]=\"autocomplete.isOpen\" q-grid-backdrop-selector=\".mat-autocomplete-panel\"> <mat-option *ngFor=\"let option of $expr.options | async\" [value]=\"option\"> {{option}} </mat-option> </mat-autocomplete> </mat-form-field> </ng-template> <ng-template key=\"plugin-eb-button.tpl.html\" let-$expr> <button mat-button class=\"q-grid-query-builder-button\" (click)=\"$expr.click && $expr.click($event)\" [ngClass]=\"$expr.classes\"> {{$expr.text}} </button> </ng-template><ng-template key=\"plugin-eb-icon-button.tpl.html\" let-$expr> <button class=\"q-grid-query-builder-icon-button\" (click)=\"$expr.click && $expr.click($event)\" [ngClass]=\"$expr.classes\" mat-icon-button> <mat-icon class=\"q-grid-icon\"> {{ $expr.icon }} </mat-icon> </button> </ng-template><ng-template key=\"plugin-eb-input.tpl.html\" let-$expr> <mat-form-field floatLabel=\"never\" q-grid-autosize=\"input\" [q-grid-autisize-value]=\"$expr.value\" [q-grid-eb-class]=\"$expr.classes\" [q-grid-eb-class-model]=\"$expr\" matTooltip=\"{{$expr.state && $expr.state.join(', ')}}\" matTooltipPosition=\"after\" matTooltipShowDelay=\"500\" matTooltipClass=\"q-grid-query-builder-error-tooltip\"> <input matInput [(ngModel)]=\"$expr.value\" (input)=\"$expr.change && $expr.change();$expr.refresh && $expr.refresh()\" [placeholder]=\"$expr.placeholderText\" /> </mat-form-field> </ng-template><ng-template key=\"plugin-eb-label.tpl.html\" let-$expr> <label class=\"q-grid-query-builder-label\"> {{$expr.text}} </label> </ng-template><ng-template key=\"plugin-eb-multiselect.tpl.html\" let-$expr> <mat-chip-list #chipList class=\"q-grid-query-builder-multiselect\" [ngClass]=\"$expr.classes\"> <mat-chip *ngFor=\"let value of $expr.values; let $index = index;\" class=\"mat-basic-chip\" selectable=\"false\" removable=\"true\" (removed)=\"$expr.values.splice($index, 1)\"> {{value}} <mat-icon class=\"q-grid-icon\" matChipRemove> close </mat-icon> </mat-chip> </mat-chip-list> <mat-form-field [floatLabel]=\"'never'\"> <input matInput #chipInput [placeholder]=\"$expr.placeholderText\" [matChipInputFor]=\"chipList\" matChipInputAddOnBlur=\"true\" (matChipInputTokenEnd)=\"$expr.add($event.value);$event.input.value = '';\" /> </mat-form-field> </ng-template><ng-template key=\"plugin-eb-select.tpl.html\" let-$expr> <mat-select [(value)]=\"$expr.value\" (selectionChange)=\"$expr.change && $expr.change($event)\" (openedChange)=\"$expr.open && $expr.open($event)\" [q-grid-eb-class]=\"$expr.classes\" [q-grid-eb-class-model]=\"$expr\"> <mat-option *ngFor=\"let option of ($expr.options || $expr.getOptions())\" [value]=\"option\" [disabled]=\"$expr.disabled && $expr.disabled(option)\"> <mat-icon *ngIf=\"$expr.icon\">{{$expr.icon(option)}}</mat-icon> {{($expr.getLabel && $expr.getLabel(option)) || option}} </mat-option> </mat-select> </ng-template><ng-template key=\"plugin-edit-form-trigger.tpl.html\" let-$trigger> <button mat-icon-button tabindex=\"-1\" #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" aria-label=\"Edit form\"> <mat-icon class=\"q-grid-icon\">edit</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-edit-form q-grid-menu\"> <q-grid-edit-form q-grid-menu [caption]=\"$trigger.caption\" [cell]=\"$trigger.cell\" *ngIf=\"trigger.menuOpen\" (cancel)=\"trigger.closeMenu()\" (submit)=\"trigger.closeMenu()\"> </q-grid-edit-form> </mat-menu> </ng-template><ng-template key=\"plugin-edit-form.tpl.html\" let-$editForm> <mat-card class=\"mat-elevation-z\" (keydown)=\"$event.stopPropagation()\"> <mat-card-header> <mat-card-title>{{$editForm.caption}}</mat-card-title> </mat-card-header> <mat-card-content class=\"q-grid-edit-form-body\"> <q-grid-edit-form-control *ngFor=\"let editor of $editForm.editors\" class=\"q-grid-edit-form-control\" [ngClass]=\"'q-grid-edit-form-control-' + (editor.cell.column.editor || editor.cell.column.type)\" [editor]=\"editor\"> </q-grid-edit-form-control> </mat-card-content> <mat-card-actions> <button mat-button q-grid-focus (click)=\"$editForm.cancel.execute($event)\"> Cancel </button> <button mat-button color=\"primary\" (click)=\"$editForm.submit.execute($event)\"> Save </button> </mat-card-actions> </mat-card> </ng-template><ng-template key=\"plugin-export.tpl.html\" let-$export> <div class=\"q-grid-export\"> <button mat-button *ngIf=\"$export[$export.type] && $export[$export.type].canExecute()\" (click)=\"$export[$export.type].execute()\"> <mat-icon class=\"q-grid-icon\">file_download</mat-icon> Export to {{$export.type}} </button> </div> </ng-template> <ng-template key=\"plugin-pager-target.tpl.html\" let-$target> <mat-menu #menu=\"matMenu\" class=\"q-grid-mat-menu\"> <mat-card *ngIf=\"trigger.menuOpen\"> <mat-form-field> <input id=\"q-grid-menu-input\" matInput type=\"number\" #input (click)=\"$event.stopPropagation()\" [(ngModel)]=\"$target.value\" [max]=\"$target.total\" [min]=\"1\" q-grid-focus (keydown)=\"$target.keyDown($event)\" (keyup.enter)=\"trigger.closeMenu()\" placeholder=\"Go to page:\" /> </mat-form-field> </mat-card> </mat-menu> <button #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" tabindex=\"-1\" mat-button (click)=\"$target.value = $target.current\" class=\"q-grid-pager-target-trigger mat-icon-button\"> <mat-icon class=\"q-grid-icon-class\">location_searching</mat-icon> </button> </ng-template><ng-template key=\"plugin-pager.tpl.html\" let-$pager> <div class=\"q-grid-pager\" [ngSwitch]=\"$pager.scroll.mode\"> <div *ngSwitchCase=\"'virtual'\"> <label class=\"q-grid-page\" [ngSwitch]=\"$pager.mode\"> <span *ngSwitchCase=\"'row'\">{{$pager.from}}-{{$pager.to}} of {{$pager.total}}</span> <span *ngSwitchDefault>{{$pager.current + 1}} of {{$pager.totalPages}}</span> </label> </div> <div *ngSwitchDefault> <label class=\"q-grid-page-size hide-xs\">Rows per page:</label> <mat-select tabindex=\"-1\" aria-label=\"Page Size List\" class=\"q-grid-page-size hide-xs\" [panelClass]=$pager.theme [(value)]=\"$pager.size\"> <mat-option *ngFor=\"let size of $pager.sizeList\" [value]=\"size\">{{size}}</mat-option> </mat-select> <label class=\"q-grid-page hide-xs\" ng-switch=\"::$pager.mode\"> <span *ngSwitchCase=\"'row'\">{{$pager.from}}-{{$pager.to}} of {{$pager.total}}</span> <span *ngSwitchDefault>{{$pager.current + 1}} of {{$pager.totalPages}}</span> </label> <button tabindex=\"-1\" mat-button class=\"mat-icon-button q-grid-prev-page\" [disabled]=\"!$pager.prev.canExecute()\" (click)=\"$pager.prev.execute();\"> <mat-icon class=\"q-grid-icon\">keyboard_arrow_left</mat-icon> </button> <q-grid-pager-target></q-grid-pager-target> <button tabindex=\"-1\" mat-button class=\"mat-icon-button q-grid-next-page\" [disabled]=\"!$pager.next.canExecute()\" (click)=\"$pager.next.execute();\"> <mat-icon class=\"q-grid-icon\">keyboard_arrow_right</mat-icon> </button> </div> </div> </ng-template><ng-template key=\"plugin-persistence-panel.tpl.html\" let-$persistence> <mat-card class=\"mat-elevation-z\"> <mat-card-header> <mat-card-title>Save/Load</mat-card-title> </mat-card-header> <mat-card-content> <div class=\"flex-none layout-row\"> <div class=\"flex-100 q-grid-persistence-title\"> <mat-form-field> <input matInput type=\"text\" q-grid-focus placeholder=\"Save As...\" [(ngModel)]=\"$persistence.title\" /> </mat-form-field> </div> <div class=\"flex-none q-grid-persistence-save\"> <button mat-button color=\"primary\" [disabled]=\"!$persistence.create.canExecute()\" (click)=\"$persistence.create.execute()\"> Save </button> </div> </div> <mat-list class=\"q-grid-persistence-list\"> <mat-list-item [ngClass]=\"{'q-grid-persistence-selected': $persistence.isActive($persistence.blank)}\" class=\"q-grid-persistence-list-item\"> <div class=\"q-grid-persistence-default-icon\"></div> <button mat-button matTooltip=\"No settings\" [disabled]=\"!$persistence.reset.canExecute()\" (click)=\"$persistence.reset.execute()\"> <mat-list dense> <mat-list-item> <h3 matLine>{{$persistence.blank.title}}</h3> <span matLine></span> </mat-list-item> </mat-list> </button> </mat-list-item> <ng-container *ngFor=\"let group of $persistence.groups\"> <h3 mat-subheader>{{group.key}}</h3> <mat-list-item *ngFor=\"let item of group.items\" [ngClass]=\"{'q-grid-persistence-selected': $persistence.isActive(item)}\" class=\"q-grid-persistence-list-item\"> <div class=\"q-grid-persistence-default-icon\"> <mat-icon class=\"q-grid-icon\" *ngIf=\"item.isDefault\">star</mat-icon> </div> <button mat-button matTooltip=\"{{$persistence.stringify(item)}}\" *ngIf=\"$persistence.state.editItem !== item\" (click)=\"$persistence.load.execute(item)\"> <mat-list dense> <mat-list-item> <h3 matLine>{{item.title}}</h3> <span matLine class=\"q-grid-selected-item-modified\">{{item.modified | date: 'yyyy/MM/dd h:mm a'}}</span> </mat-list-item> </mat-list> </button> <mat-form-field *ngIf=\"$persistence.state.editItem === item\" class=\"q-grid-persistence-item-edit\"> <input matInput #input (blur)=\"$persistence.edit.commit.canExecute(item) && $persistence.edit.commit.execute(item)\" [(ngModel)]=\"item.title\" q-grid-focus/> </mat-form-field> <div class=\"q-grid-more\"> <button mat-button [matMenuTriggerFor]=\"menu\"> <mat-icon>more_vert</mat-icon> </button> <mat-menu #menu=\"matMenu\"> <button mat-menu-item (click)=\"$persistence.setDefault.execute(item)\" [disabled]=\"!$persistence.setDefault.canExecute(item)\"> <mat-icon class=\"q-grid-icon\">star</mat-icon> Default </button> <button mat-menu-item (click)=\"$persistence.edit.enter.execute(item)\" [disabled]=\"!$persistence.edit.enter.canExecute(item)\"> <mat-icon class=\"q-grid-icon\">mode_edit</mat-icon> Edit </button> <button mat-menu-item (click)=\"$persistence.remove.execute(item)\" [disabled]=\"!$persistence.remove.canExecute(item)\"> <mat-icon class=\"q-grid-icon\">close</mat-icon> Remove </button> </mat-menu> </div> </mat-list-item> </ng-container> </mat-list> </mat-card-content> </mat-card> </ng-template> <ng-template key=\"plugin-persistence.tpl.html\"> <button mat-icon-button tabindex=\"-1\" #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" aria-label=\"Persistence\"> <mat-icon class=\"q-grid-icon\">history</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-menu q-grid-persistence-panel\"> <q-grid-persistence-panel q-grid-menu *ngIf=\"trigger.menuOpen\"> </q-grid-persistence-panel> </mat-menu> </ng-template> <ng-template key=\"plugin-progress.tpl.html\" let-$progress> <mat-progress-bar class=\"q-grid-progress-linear\" *ngIf=\"$progress.isBusy\" mode=\"indeterminate\"> </mat-progress-bar> </ng-template> <ng-template key=\"plugin-query-builder-panel.tpl.html\" let-$builder> <mat-card class=\"mat-elevation-z\"> <mat-card-header> <mat-card-title> Query Builder </mat-card-title> </mat-card-header> <mat-card-content> <div class=\"q-grid-query-builder-toolbar\"> <mat-toolbar> <button mat-button (click)=\"$builder.addGroup.execute()\" [disabled]=\"!$builder.addGroup.canExecute()\"> <mat-icon>playlist_add</mat-icon>Add Group </button> <button mat-button (click)=\"$builder.addRule.execute()\" [disabled]=\"!$builder.addRule.canExecute()\"> <mat-icon>add</mat-icon>Add Rule </button> <button mat-button (click)=\"$builder.remove.execute()\" [disabled]=\"!$builder.remove.canExecute()\"> <mat-icon>delete_forever</mat-icon>Remove </button> </mat-toolbar> </div> <div class=\"q-grid-query-builder-expression\"> <q-grid-eb-node [model]=\"$builder.node\"> </q-grid-eb-node> </div> <div class=\"q-grid-query-builder-expression-line\" [innerHTML]=\"$builder.node | qGridQueryBuilderMarkup: $builder.queryService\"> </div> </mat-card-content> <mat-card-actions> <button mat-button (click)=\"$builder.cancel.execute()\"> Cancel </button> <button mat-button (click)=\"$builder.reset.execute()\"> Clear </button> <button mat-button color=\"primary\" (click)=\"$builder.submit.execute()\" [disabled]=\"!$builder.submit.canExecute()\"> Apply </button> </mat-card-actions> </mat-card> </ng-template><ng-template key=\"plugin-query-builder.tpl.html\"> <button mat-icon-button tabindex=\"-1\" #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" aria-label=\"Query Builder\"> <mat-icon class=\"q-grid-icon\">filter_list</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-menu q-grid-query-builder-panel\"> <q-grid-query-builder-panel q-grid-menu (close)=\"trigger.closeMenu()\" *ngIf=\"trigger.menuOpen\"> </q-grid-query-builder-panel> </mat-menu> </ng-template><ng-template key=\"plugin-reference-editor.tpl.html\" let-$editor> <mat-card class=\"q-grid-reference-card\"> <mat-card-header> <mat-card-title>{{$editor.caption}}</mat-card-title> </mat-card-header> <mat-card-content> <q-grid-reference [cell]=\"$editor.cell\" [(value)]=\"$editor.value\" [autofocus]=\"true\" (modelChange)=\"$editor.model = $event\" (referenceChange)=\"$editor.reference = $event\"> </q-grid-reference> </mat-card-content> <mat-card-actions> <button mat-button [disabled]=\"!$editor.cancel.canExecute()\" (click)=\"$editor.cancel.execute()\">Cancel</button> <button mat-button color=\"primary\" [disabled]=\"!$editor.submit.canExecute()\" (click)=\"$editor.submit.execute()\">Save</button> </mat-card-actions> </mat-card> </ng-template><ng-template key=\"plugin-reference.tpl.html\" let-$reference> <q-grid class=\"q-grid-embed\" [model]=\"$reference.model\" [q-grid-autofocus]=\"$reference.autofocus\"> <q-grid-toolbar> <ng-template for=\"top\"> <div class=\"q-grid-progress\"> <q-grid-progress></q-grid-progress> </div> </ng-template> </q-grid-toolbar> </q-grid> </ng-template><ng-template key=\"plugin-status-bar.tpl.html\" let-$statusBar> <div class=\"q-grid-status-bar\"> {{$statusBar.columnIndex}}:{{$statusBar.rowIndex}} </div> </ng-template> <ng-template key=\"plugin-tab-trap.tpl.html\" let-$tabTrap> <div q-grid-tab-trap-in=\"start\" [q-grid-tab-trap-host]=\"$tabTrap\"> </div> <ng-container [ngTemplateOutlet]=\"$tabTrap.template\"> </ng-container> <div q-grid-tab-trap-in=\"end\" [q-grid-tab-trap-host]=\"$tabTrap\"> </div> </ng-template><ng-template key=\"plugin-title.tpl.html\" let-$title> <div class=\"q-grid-title\"> <h3 class=\"mat-card-title\"> {{$title.value}} </h3> </div> </ng-template><ng-template key=\"plugin-validator.tpl.html\" let-$validator> <ul> <li *ngFor=\"let error of $validator.errors; let $index = index\"> <span *ngIf=\"error\">{{error}}</span> <span *ngIf=\"error && $validator.type === 'array'\">: \"{{$validator.value[$index]}}\"</span> </li> </ul> </ng-template> <ng-template key=\"toolbar-bottom.tpl.html\"> <div class=\"layout-row\"> <div class=\"flex\"> <q-grid-legend></q-grid-legend> </div> <div class=\"flex-none\"> <q-grid-pager></q-grid-pager> </div> </div> </ng-template> <ng-template key=\"toolbar-left.tpl.html\"> </ng-template> <ng-template key=\"toolbar-right.tpl.html\"> </ng-template> <ng-template key=\"toolbar-top.tpl.html\"> <div class=\"layout-row\"> <div class=\"flex-100\" style=\"padding: 16px 0;\"> <q-grid-caption></q-grid-caption> </div> <div class=\"flex-auto layout-row\" style=\"padding: 12px 0;\"> <div class=\"flex-100\"> <q-grid-action-bar></q-grid-action-bar> </div> <div class=\"flex-auto\"> <button mat-icon-button tabindex=\"-1\" #trigger=\"matMenuTrigger\" [matMenuTriggerFor]=\"menu\" aria-label=\"Column chooser\"> <mat-icon class=\"q-grid-icon\">more_vert</mat-icon> </button> <mat-menu #menu=\"matMenu\" class=\"q-grid-column-chooser q-grid-menu\"> <q-grid-column-chooser q-grid-menu q-grid-theme-overlay *ngIf=\"trigger.menuOpen\" (cancel)=\"trigger.closeMenu()\" (submit)=\"trigger.closeMenu()\"> </q-grid-column-chooser> </mat-menu> </div> </div> </div> <div class=\"q-grid-progress\"> <q-grid-progress></q-grid-progress> </div> </ng-template> ",
changeDetection: core.ChangeDetectionStrategy.OnPush,
encapsulation: core.ViewEncapsulation.None
}] }];
/** @nocollapse */
ThemeComponent.ctorParameters = function () {
return [];
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var SelectDirective = function () {
function SelectDirective() {
classCallCheck(this, SelectDirective);
}
/**
* @return {?}
*/
createClass(SelectDirective, [{
key: 'ngAfterViewInit',
value: function ngAfterViewInit() {
var _this = this;
this.input.focus();
Promise.resolve(null).then(function () {
return _this.input.open();
});
}
}]);
return SelectDirective;
}();
SelectDirective.decorators = [{ type: core.Directive, args: [{
selector: '[q-grid-select]'
}] }];
/** @nocollapse */
SelectDirective.ctorParameters = function () {
return [];
};
SelectDirective.propDecorators = {
input: [{ type: core.ContentChild, args: [material.MatSelect] }]
};
function SelectDirective_tsickle_Closure_declarations() {
/** @type {?} */
SelectDirective.prototype.input;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var SelectModule = function SelectModule() {
classCallCheck(this, SelectModule);
};
SelectModule.decorators = [{ type: core.NgModule, args: [{
declarations: [SelectDirective],
exports: [SelectDirective]
}] }];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ChipsDirective = function () {
function ChipsDirective() {
classCallCheck(this, ChipsDirective);
this.push = new core.EventEmitter();
}
createClass(ChipsDirective, [{
key: 'ngAfterViewInit',
/**
* @return {?}
*/
value: function ngAfterViewInit() {
var _this = this;
this.input.chipEnd.subscribe(function (e) {
// we need to override it to prevent default behavior
});
var /** @type {?} */input = this.element.nativeElement;
input.addEventListener('keydown', function (e) {
var /** @type {?} */code = ng2Qgrid.Shortcut.translate(e);
if (code === 'enter') {
var /** @type {?} */value = (input.value || '').trim();
if (value) {
_this.push.emit(value);
input.value = '';
e.stopPropagation();
}
}
});
}
}]);
return ChipsDirective;
}();
ChipsDirective.decorators = [{ type: core.Directive, args: [{
selector: '[q-grid-chips]'
}] }];
/** @nocollapse */
ChipsDirective.ctorParameters = function () {
return [];
};
ChipsDirective.propDecorators = {
input: [{ type: core.ContentChild, args: [material.MatChipInput] }],
element: [{ type: core.ContentChild, args: ['chipInput'] }],
push: [{ type: core.Output }]
};
function ChipsDirective_tsickle_Closure_declarations() {
/** @type {?} */
ChipsDirective.prototype.input;
/** @type {?} */
ChipsDirective.prototype.element;
/** @type {?} */
ChipsDirective.prototype.push;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ChipsModule = function ChipsModule() {
classCallCheck(this, ChipsModule);
};
ChipsModule.decorators = [{ type: core.NgModule, args: [{
declarations: [ChipsDirective],
exports: [ChipsDirective]
}] }];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var MenuDirective =
/**
* @param {?} element
* @param {?} zone
*/
function MenuDirective(element, zone) {
classCallCheck(this, MenuDirective);
zone.runOutsideAngular(function () {
return element.nativeElement.addEventListener('click', function (e) {
return e.stopPropagation();
});
});
};
MenuDirective.decorators = [{ type: core.Directive, args: [{
selector: '[q-grid-menu]'
}] }];
/** @nocollapse */
MenuDirective.ctorParameters = function () {
return [{ type: core.ElementRef }, { type: core.NgZone }];
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var MenuTriggerDirective = function () {
function MenuTriggerDirective() {
classCallCheck(this, MenuTriggerDirective);
this.onClose = new core.EventEmitter();
}
/**
* @return {?}
*/
createClass(MenuTriggerDirective, [{
key: 'ngAfterViewInit',
value: function ngAfterViewInit() {
var _this = this;
Promise.resolve(null).then(function () {
return _this.trigger.openMenu();
});
this.trigger.menuClosed.subscribe(function () {
if (_this.onClose) {
setTimeout(function () {
return _this.onClose.emit();
}, 10);
}
});
}
}]);
return MenuTriggerDirective;
}();
MenuTriggerDirective.decorators = [{ type: core.Directive, args: [{
selector: '[q-grid-menu-trigger]'
}] }];
/** @nocollapse */
MenuTriggerDirective.ctorParameters = function () {
return [];
};
MenuTriggerDirective.propDecorators = {
trigger: [{ type: core.ContentChild, args: [material.MatMenuTrigger] }],
onClose: [{ type: core.Output, args: ['q-grid-menu-trigger'] }]
};
function MenuTriggerDirective_tsickle_Closure_declarations() {
/** @type {?} */
MenuTriggerDirective.prototype.trigger;
/** @type {?} */
MenuTriggerDirective.prototype.onClose;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var MenuModule = function MenuModule() {
classCallCheck(this, MenuModule);
};
MenuModule.decorators = [{ type: core.NgModule, args: [{
declarations: [MenuDirective, MenuTriggerDirective],
exports: [MenuDirective, MenuTriggerDirective]
}] }];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ThemeOverlayDirective = function () {
/**
* @param {?} plugin
* @param {?} element
* @param {?} renderer
*/
function ThemeOverlayDirective(plugin, element, renderer) {
classCallCheck(this, ThemeOverlayDirective);
this.plugin = plugin;
this.element = element;
this.renderer = renderer;
}
/**
* @return {?}
*/
createClass(ThemeOverlayDirective, [{
key: 'ngAfterViewInit',
value: function ngAfterViewInit() {
var _this = this;
var model = this.plugin.model;
var /** @type {?} */element = this.element.nativeElement;
var /** @type {?} */parent = this.renderer.parentNode(element);
var /** @type {?} */overlayContainer = null;
while (parent && !(parent.id && parent.id.startsWith('cdk-overlay'))) {
parent = this.renderer.parentNode(parent);
if (parent.nodeName === 'BODY') break;
}
if (parent.nodeName !== 'BODY') {
overlayContainer = parent;
}
if (!overlayContainer) {
throw new ng2Qgrid.GridError('theme-overlay.directive', 'cdk-overlay container is not found');
}
model.style().classList.forEach(function (cssClass) {
_this.renderer.addClass(overlayContainer, cssClass);
});
}
}]);
return ThemeOverlayDirective;
}();
ThemeOverlayDirective.decorators = [{ type: core.Directive, args: [{
selector: '[q-grid-theme-overlay]',
providers: [ng2Qgrid.GridPlugin]
}] }];
/** @nocollapse */
ThemeOverlayDirective.ctorParameters = function () {
return [{ type: ng2Qgrid.GridPlugin }, { type: core.ElementRef }, { type: core.Renderer2 }];
};
function ThemeOverlayDirective_tsickle_Closure_declarations() {
/** @type {?} */
ThemeOverlayDirective.prototype.plugin;
/** @type {?} */
ThemeOverlayDirective.prototype.element;
/** @type {?} */
ThemeOverlayDirective.prototype.renderer;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ThemeOverlayModule = function ThemeOverlayModule() {
classCallCheck(this, ThemeOverlayModule);
};
ThemeOverlayModule.decorators = [{ type: core.NgModule, args: [{
declarations: [ThemeOverlayDirective],
exports: [ThemeOverlayDirective]
}] }];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
var ThemeModule =
/**
* @param {?} theme
*/
function ThemeModule(theme) {
classCallCheck(this, ThemeModule);
theme.name = 'material';
theme.component = ThemeComponent;
};
ThemeModule.decorators = [{ type: core.NgModule, args: [{
declarations: [ThemeComponent],
exports: [ThemeComponent],
imports: [ChipsModule, common.CommonModule, forms.FormsModule, ng2Qgrid.CommonModule, ng2Qgrid.GridModule, material.MatAutocompleteModule, material.MatButtonModule, material.MatCardModule, material.MatCheckboxModule, material.MatChipsModule, material.MatDatepickerModule, material.MatDialogModule, material.MatIconModule, material.MatInputModule, material.MatListModule, material.MatMenuModule, material.MatNativeDateModule, material.MatProgressBarModule, material.MatSelectModule, material.MatToolbarModule, material.MatTooltipModule, MenuModule, ng2Qgrid.PipeModule, ng2Qgrid.PluginModule, SelectModule, ng2Qgrid.TemplateModule, ThemeOverlayModule, ng2Qgrid.VscrollModule],
entryComponents: [ThemeComponent]
}] }];
/** @nocollapse */
ThemeModule.ctorParameters = function () {
return [{ type: ng2Qgrid.ThemeService }];
};
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
exports.ThemeModule = ThemeModule;
exports.ɵc = ChipsDirective;
exports.ɵb = ChipsModule;
exports.ɵf = MenuTriggerDirective;
exports.ɵe = MenuDirective;
exports.ɵd = MenuModule;
exports.ɵh = SelectDirective;
exports.ɵg = SelectModule;
exports.ɵj = ThemeOverlayDirective;
exports.ɵi = ThemeOverlayModule;
exports.ɵa = ThemeComponent;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=theme-material.umd.js.map