ng-smn-ui 4.2.8 → 4.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ng-smn-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ng-smn-ui/lib/utils/providers/element.provider.ts","ng://ng-smn-ui/lib/button/button.service.ts","ng://ng-smn-ui/lib/utils/functions/debounce.ts","ng://ng-smn-ui/lib/utils/functions/unaccent.ts","ng://ng-smn-ui/lib/calendar/add-calendar.directive.ts","ng://ng-smn-ui/lib/calendar/datetime.service.ts","ng://ng-smn-ui/lib/utils/providers/color.provider.ts","ng://ng-smn-ui/lib/calendar/calendar-content.component.ts","ng://ng-smn-ui/lib/calendar/calendar.component.ts","ng://ng-smn-ui/lib/utils/pipes/capitalize.pipe.ts","ng://ng-smn-ui/lib/utils/providers/cookie.provider.ts","ng://ng-smn-ui/lib/data-table/order-by.directive.ts","ng://ng-smn-ui/lib/date-picker/references.service.ts","ng://ng-smn-ui/lib/date-picker/date-picker-caller.directive.ts","ng://ng-smn-ui/lib/date-picker/date-picker.directive.ts","ng://ng-smn-ui/lib/utils/providers/element-ref.provider.ts","ng://ng-smn-ui/lib/dialog/dialog.component.ts","ng://ng-smn-ui/lib/dialog/dialog-trigger.directive.ts","ng://ng-smn-ui/lib/input/input-container.component.ts","ng://ng-smn-ui/lib/input/input.directive.ts","ng://ng-smn-ui/lib/utils/validators/maxlength.directive.ts","ng://ng-smn-ui/lib/menu/menu.component.ts","ng://ng-smn-ui/lib/menu/menu-trigger.directive.ts","ng://ng-smn-ui/lib/nav-drawer/nav-drawer.component.ts","ng://ng-smn-ui/lib/selection-control/option/option.component.ts","ng://ng-smn-ui/lib/progress/radial/progress-radial.component.ts","ng://ng-smn-ui/lib/ripple/ripple.directive.ts","ng://ng-smn-ui/lib/smart-list/smart-list.component.ts","ng://ng-smn-ui/lib/smart-list/item/item.component.ts","ng://ng-smn-ui/lib/snackbar/snackbar.provider.ts","ng://ng-smn-ui/lib/snackbar/snackbar.component.ts","ng://ng-smn-ui/lib/snackbar/snackbar-container.component.ts","ng://ng-smn-ui/lib/selection-control/switch/switch.component.ts","ng://ng-smn-ui/lib/toolbar/toolbar.component.ts","ng://ng-smn-ui/lib/toolbar/toolbar.service.ts","ng://ng-smn-ui/lib/utils/providers/window.provider.ts","ng://ng-smn-ui/lib/utils/masks/date/check-date.ts","ng://ng-smn-ui/lib/utils/masks/date/mask-date.directive.ts","ng://ng-smn-ui/lib/utils/pipes/time-ago.pipe.ts","ng://ng-smn-ui/lib/list/list-item.directive.ts","ng://ng-smn-ui/lib/utils/masks/cpf/cpf.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cpf/mask-cpf.directive.ts","ng://ng-smn-ui/lib/utils/masks/cnpj/cnpj.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cnpj/mask-cnpj.directive.ts","ng://ng-smn-ui/lib/utils/masks/cep/cep.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cep/mask-cep.directive.ts","ng://ng-smn-ui/lib/utils/masks/cep-novo/cep-novo.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cep-novo/mask-cep-novo.directive.ts","ng://ng-smn-ui/lib/utils/masks/phone/phone.pipe.ts","ng://ng-smn-ui/lib/utils/masks/phone/mask-phone.directive.ts","ng://ng-smn-ui/lib/list/list.component.ts","ng://ng-smn-ui/lib/list/items/items.component.ts","ng://ng-smn-ui/lib/list/item/item.component.ts","ng://ng-smn-ui/lib/slider/slider.component.ts","ng://ng-smn-ui/lib/slider/slider-multi-handle.component.ts","ng://ng-smn-ui/lib/utils/infinite-load/infinite-load.service.ts","ng://ng-smn-ui/lib/utils/infinite-load/infinite-load.directive.ts","ng://ng-smn-ui/lib/autocomplete/autocomplete.component.ts","ng://ng-smn-ui/lib/autocomplete/autocomplete.directive.ts","ng://ng-smn-ui/lib/utils/masks/integer/mask-integer.directive.ts","ng://ng-smn-ui/lib/old-tabs/tabs.component.ts","ng://ng-smn-ui/lib/old-tabs/pages/tabs-pages.component.ts","ng://ng-smn-ui/lib/lazy-load/lazy-load.directive.ts","ng://ng-smn-ui/lib/data-table/data-table.component.ts","ng://ng-smn-ui/lib/bottom-sheet/bottom-sheet.component.ts","ng://ng-smn-ui/lib/bottom-sheet/bottom-sheet.directive.ts","ng://ng-smn-ui/lib/input/input-file.directive.ts","ng://ng-smn-ui/lib/ellipsis/ellipsis.directive.ts","ng://ng-smn-ui/lib/utils/validators/required.directive.ts","ng://ng-smn-ui/lib/color-picker/color-picker.palette.ts","ng://ng-smn-ui/lib/color-picker/color-picker.component.ts","ng://ng-smn-ui/lib/color-picker/color-picker.directive.ts","ng://ng-smn-ui/lib/input/autosize.directive.ts","ng://ng-smn-ui/lib/clock/clock.component.ts","ng://ng-smn-ui/lib/time-picker/time-picker.service.ts","ng://ng-smn-ui/lib/time-picker/time-picker.directive.ts","ng://ng-smn-ui/lib/time-picker/time-picker-caller.directive.ts","ng://ng-smn-ui/lib/utils/masks/time/time.pipe.ts","ng://ng-smn-ui/lib/utils/masks/time/mask-time.directive.ts","ng://ng-smn-ui/lib/utils/masks/currency/currency.pipe.ts","ng://ng-smn-ui/lib/utils/masks/currency/mask-currency.directive.ts","ng://ng-smn-ui/lib/dialog/dialog.service.ts","ng://ng-smn-ui/lib/select/select.component.ts","ng://ng-smn-ui/lib/select/option/option.component.ts","ng://ng-smn-ui/lib/select/select-filter.pipe.ts","ng://ng-smn-ui/lib/utils/pipes/filter.pipe.ts","ng://ng-smn-ui/lib/avatar/avatar.component.ts","ng://ng-smn-ui/lib/utils/masks/float/float.pipe.ts","ng://ng-smn-ui/lib/utils/masks/float/mask-float.directive.ts","ng://ng-smn-ui/lib/tooltip/tooltip.directive.ts","ng://ng-smn-ui/lib/chosen/chosen-option/chosen-option.component.ts","ng://ng-smn-ui/lib/chosen/chosen-group/chosen-group.component.ts","ng://ng-smn-ui/lib/chosen/chosen.component.ts","ng://ng-smn-ui/lib/utils/masks/credit-card/credit-card.pipe.ts","ng://ng-smn-ui/lib/utils/masks/credit-card/credit-card-mask.directive.ts","ng://ng-smn-ui/lib/expansion-panel/expansion-panel.component.ts","ng://ng-smn-ui/lib/tab/tab-content.directive.ts","ng://ng-smn-ui/lib/tab/tab-label.directive.ts","ng://ng-smn-ui/lib/tab/tab.component.ts","ng://ng-smn-ui/lib/tab/header/tab-header.component.ts","ng://ng-smn-ui/lib/tab/group/tab-group.animation.ts","ng://ng-smn-ui/lib/tab/group/tab-group.component.ts","ng://ng-smn-ui/lib/label-content/label-content.component.ts","ng://ng-smn-ui/lib/upload/upload.ts","ng://ng-smn-ui/lib/utils/animations/enter-leave-view.animations.ts","ng://ng-smn-ui/lib/upload/upload.component.ts","ng://ng-smn-ui/lib/smn-ui.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiElement {\r\n static caretPosition = {\r\n get: getCaretPosition,\r\n set: setCaretPosition\r\n };\r\n\r\n static classList = {\r\n remove: removeClass,\r\n add: addClass,\r\n contains: containsClass\r\n };\r\n\r\n static disableScroll(): any {\r\n if (window.addEventListener) { // older FF\r\n window.addEventListener('DOMMouseScroll', preventDefault, false);\r\n }\r\n\r\n window.onwheel = preventDefault; // modern standard\r\n // window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE\r\n window.ontouchmove = preventDefault; // mobile\r\n document.onkeydown = preventDefaultForScrollKeys;\r\n }\r\n\r\n static enableScroll(): any {\r\n if (window.removeEventListener) {\r\n window.removeEventListener('DOMMouseScroll', preventDefault, false);\r\n }\r\n // window.onmousewheel = document.onmousewheel = null;\r\n window.onwheel = null;\r\n window.ontouchmove = null;\r\n document.onkeydown = null;\r\n }\r\n\r\n static closest(el, selector): any {\r\n /* Source: http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery */\r\n\r\n let matchesFn = null;\r\n\r\n // find vendor prefix\r\n ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (fn) {\r\n if (typeof document.body[fn] === 'function') {\r\n matchesFn = fn;\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n let parent;\r\n\r\n // traverse parents\r\n while (el) {\r\n parent = el.parentElement;\r\n if (parent && parent[matchesFn](selector)) {\r\n return parent;\r\n }\r\n el = parent;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static index(el): any {\r\n const nodes = el.parentNode.childNodes;\r\n let node;\r\n let count;\r\n let i = count = 0;\r\n while ((node = nodes.item(i++)) && node !== el) {\r\n if (node.nodeType === 1) {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n static trigger(el, eventToTrigger): any {\r\n const event = document.createEvent('HTMLEvents');\r\n event.initEvent(eventToTrigger, true, false);\r\n el.dispatchEvent(event);\r\n }\r\n\r\n static on(el, events, listener): any {\r\n let elements;\r\n if (el.constructor === NodeList) {\r\n elements = el;\r\n } else {\r\n elements = [el];\r\n }\r\n\r\n events = events.split(' ');\r\n\r\n Array.prototype.forEach.call(elements, el2 => {\r\n events.forEach(event => el2.addEventListener(event, listener, false));\r\n });\r\n }\r\n\r\n static off(el, events, listener): any {\r\n events = events.split(' ');\r\n const iLen = events.length;\r\n for (let i = 0; i < iLen; i++) {\r\n if (events[i]) {\r\n el.removeEventListener(events[i], listener, false);\r\n }\r\n }\r\n }\r\n\r\n static is(el, selector): any {\r\n const matches = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector;\r\n\r\n if (matches) {\r\n return (matches).call(el, selector);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static position(el, withoutScroll?): any {\r\n /* http://javascript.info/tutorial/coordinates */\r\n\r\n if (el.getBoundingClientRect) {\r\n return getOffsetRect(el);\r\n } else { // old browser\r\n return getOffsetSum(el);\r\n }\r\n\r\n function getOffsetSum(elem) {\r\n /* Source: http://javascript.info/tutorial/coordinates */\r\n\r\n let top = 0, left = 0;\r\n\r\n while (elem) {\r\n top = top + parseInt(elem.offsetTop, 10);\r\n left = left + parseInt(elem.offsetLeft, 10);\r\n elem = elem.offsetParent;\r\n }\r\n\r\n return {top: top, left: left};\r\n }\r\n\r\n function getOffsetRect(elem) {\r\n /* http://javascript.info/tutorial/coordinates */\r\n\r\n const box = elem.getBoundingClientRect();\r\n\r\n const body = document.body;\r\n const docElem = document.documentElement;\r\n\r\n let scrollTop = 0;\r\n let scrollLeft = 0;\r\n if (!withoutScroll) {\r\n scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;\r\n scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;\r\n }\r\n\r\n const clientTop = docElem.clientTop || body.clientTop || 0;\r\n const clientLeft = docElem.clientLeft || body.clientLeft || 0;\r\n\r\n const top = box.top + scrollTop - clientTop;\r\n const left = box.left + scrollLeft - clientLeft;\r\n\r\n return {top: Math.round(top), left: Math.round(left)};\r\n }\r\n }\r\n\r\n static offset(el): any {\r\n const top = el.offsetTop;\r\n const left = el.offsetLeft;\r\n\r\n return {top: Math.round(top), left: Math.round(left)};\r\n }\r\n\r\n static animate(object, property, start_value, end_value, time, end?, tick?): any {\r\n const propWithPx = ['width', 'height', 'left', 'top', 'border-radius', 'border-spacing', 'margin-left', 'margin-top'];\r\n\r\n const frame_rate = 0.06; // 60 FPS\r\n let frame = 0;\r\n const delta = (end_value - start_value) / time / frame_rate;\r\n const handle = setInterval(() => {\r\n frame++;\r\n const value = start_value + delta * frame;\r\n\r\n if (tick) {\r\n tick(value);\r\n }\r\n\r\n const hasPx = propWithPx.indexOf(property) > -1;\r\n\r\n object.style[property] = value + (hasPx ? 'px' : '');\r\n if ((start_value > end_value ? value.toFixed(2) <= end_value : value.toFixed(2) >= end_value)) {\r\n clearInterval(handle);\r\n\r\n if (end) {\r\n end();\r\n }\r\n }\r\n }, 1 / frame_rate);\r\n }\r\n\r\n static css(el, styleProp, newValue?) {\r\n if (typeof newValue !== 'undefined') {\r\n styleProp = styleProp.replace(/-([a-z])/g, function (g) {\r\n return g[1].toUpperCase();\r\n });\r\n\r\n el.style[styleProp] = newValue;\r\n } else {\r\n let value;\r\n const defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/-(\\w)/g, function (str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function (value2) {\r\n const oldLeft = el.style.left;\r\n const oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value2 || 0;\r\n value2 = el.style.pixelLeft + 'px';\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value2;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n static isInViewport(el) {\r\n const rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n }\r\n\r\n static focus(el) {\r\n el.focus();\r\n const headerSpace = document.querySelector('ui-toolbar header').clientHeight + 16;\r\n const elTop = UiElement.position(el, true).top;\r\n\r\n if (elTop < headerSpace) {\r\n window.scrollTo(0, UiElement.position(el).top - headerSpace);\r\n }\r\n\r\n return;\r\n }\r\n\r\n static isMobile() {\r\n let isMobile = false;\r\n\r\n (function (a) {\r\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\r\n isMobile = true;\r\n }\r\n })(navigator.userAgent || navigator.vendor || (<any>window).opera);\r\n\r\n return isMobile;\r\n }\r\n}\r\n\r\n// left: 37, up: 38, right: 39, down: 40,\r\n// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36\r\n// const keys = {37: 1, 38: 1, 39: 1, 40: 1};\r\nconst keys = {38: 1, 40: 1};\r\n\r\nfunction preventDefault(e) {\r\n e = e || window.event;\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n e.returnValue = false;\r\n}\r\n\r\nfunction preventDefaultForScrollKeys(e) {\r\n if (keys[e.keyCode]) {\r\n preventDefault(e);\r\n return false;\r\n }\r\n}\r\n\r\nexport function getCaretPosition(el): any {\r\n const documentt: any = {\r\n selection: undefined\r\n };\r\n Object.assign(documentt, document);\r\n\r\n let caretPos = 0;\r\n if (documentt.selection) { // IE Support\r\n el.focus();\r\n const select = documentt.selection.createRange();\r\n select.moveStart('character', -el.value.length);\r\n caretPos = select.text.length;\r\n } else if (el.selectionStart || el.selectionStart === '0') { // Firefox support\r\n caretPos = el.selectionStart;\r\n }\r\n\r\n return caretPos;\r\n}\r\n\r\nexport function setCaretPosition(el, beforeSelIndex, afterSelIndex, symbolsPositions?): any {\r\n // https://javascriptexamples.info/snippet/getset-cursor-in-html-textarea\r\n\r\n let futureSelIndex;\r\n symbolsPositions = symbolsPositions || [];\r\n if (el.selectionStart || el.selectionStart === '0') {\r\n\r\n futureSelIndex = afterSelIndex;\r\n\r\n for (let i = 0; i < symbolsPositions.length; i++) {\r\n if (beforeSelIndex === symbolsPositions[i] && afterSelIndex === symbolsPositions[i] + 1) {\r\n futureSelIndex = symbolsPositions[i] + 2;\r\n\r\n break;\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n setCaret();\r\n });\r\n }\r\n\r\n function setCaret() {\r\n if (el.setSelectionRange) {\r\n if (el.selectionStart) {\r\n el.focus();\r\n el.setSelectionRange(futureSelIndex, futureSelIndex);\r\n } else {\r\n el.focus();\r\n }\r\n } else if (el.createTextRange) {\r\n const range = el.createTextRange();\r\n range.collapse(true);\r\n range.move('character', futureSelIndex);\r\n range.moveEnd('character', futureSelIndex);\r\n range.moveStart('character', futureSelIndex);\r\n range.select();\r\n }\r\n }\r\n}\r\n\r\nexport function removeClass(el, className) {\r\n return el.classList.remove(className);\r\n}\r\n\r\nexport function addClass(el, className) {\r\n return el.classList.add(className);\r\n}\r\n\r\nexport function containsClass(el, className) {\r\n return el.classList.contains(className);\r\n}\r\n","import {UiElement} from '../utils/providers/element.provider';\r\n\r\nUiElement.on(window, 'scroll resize', (e) => {\r\n const fabContainers = document.querySelectorAll('.ui-fab-container');\r\n\r\n const len = fabContainers.length;\r\n\r\n if (len) {\r\n const scroll = (window.scrollY || window.pageYOffset);\r\n\r\n for (let i = 0; i < len; i++) {\r\n const fabContainer = fabContainers[i];\r\n\r\n if (scroll > 1) {\r\n fabContainer.classList.add('scrolled');\r\n } else {\r\n fabContainer.classList.remove('scrolled');\r\n }\r\n }\r\n }\r\n});\r\n","export function debounce(func, wait, immediate?) {\r\n let timeout;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n","/*\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n*/\r\nconst defaultDiacriticsRemovalMap = [\r\n {\r\n 'base': 'A',\r\n 'letters': '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F'\r\n },\r\n {'base': 'AA', 'letters': '\\uA732'},\r\n {'base': 'AE', 'letters': '\\u00C6\\u01FC\\u01E2'},\r\n {'base': 'AO', 'letters': '\\uA734'},\r\n {'base': 'AU', 'letters': '\\uA736'},\r\n {'base': 'AV', 'letters': '\\uA738\\uA73A'},\r\n {'base': 'AY', 'letters': '\\uA73C'},\r\n {'base': 'B', 'letters': '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181'},\r\n {'base': 'C', 'letters': '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E'},\r\n {\r\n 'base': 'D',\r\n 'letters': '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\u00D0'\r\n },\r\n {'base': 'DZ', 'letters': '\\u01F1\\u01C4'},\r\n {'base': 'Dz', 'letters': '\\u01F2\\u01C5'},\r\n {\r\n 'base': 'E',\r\n 'letters': '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E'\r\n },\r\n {'base': 'F', 'letters': '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B'},\r\n {\r\n 'base': 'G',\r\n 'letters': '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E'\r\n },\r\n {\r\n 'base': 'H',\r\n 'letters': '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D'\r\n },\r\n {\r\n 'base': 'I',\r\n 'letters': '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197'\r\n },\r\n {'base': 'J', 'letters': '\\u004A\\u24BF\\uFF2A\\u0134\\u0248'},\r\n {\r\n 'base': 'K',\r\n 'letters': '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2'\r\n },\r\n {\r\n 'base': 'L',\r\n 'letters': '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780'\r\n },\r\n {'base': 'LJ', 'letters': '\\u01C7'},\r\n {'base': 'Lj', 'letters': '\\u01C8'},\r\n {'base': 'M', 'letters': '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C'},\r\n {\r\n 'base': 'N',\r\n 'letters': '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4'\r\n },\r\n {'base': 'NJ', 'letters': '\\u01CA'},\r\n {'base': 'Nj', 'letters': '\\u01CB'},\r\n {\r\n 'base': 'O',\r\n 'letters': '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C'\r\n },\r\n {'base': 'OI', 'letters': '\\u01A2'},\r\n {'base': 'OO', 'letters': '\\uA74E'},\r\n {'base': 'OU', 'letters': '\\u0222'},\r\n {'base': 'OE', 'letters': '\\u008C\\u0152'},\r\n {'base': 'oe', 'letters': '\\u009C\\u0153'},\r\n {'base': 'P', 'letters': '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754'},\r\n {'base': 'Q', 'letters': '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A'},\r\n {\r\n 'base': 'R',\r\n 'letters': '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782'\r\n },\r\n {\r\n 'base': 'S',\r\n 'letters': '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784'\r\n },\r\n {\r\n 'base': 'T',\r\n 'letters': '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786'\r\n },\r\n {'base': 'TZ', 'letters': '\\uA728'},\r\n {\r\n 'base': 'U',\r\n 'letters': '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244'\r\n },\r\n {'base': 'V', 'letters': '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245'},\r\n {'base': 'VY', 'letters': '\\uA760'},\r\n {'base': 'W', 'letters': '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72'},\r\n {'base': 'X', 'letters': '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C'},\r\n {\r\n 'base': 'Y',\r\n 'letters': '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE'\r\n },\r\n {\r\n 'base': 'Z',\r\n 'letters': '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762'\r\n },\r\n {\r\n 'base': 'a',\r\n 'letters': '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250'\r\n },\r\n {'base': 'aa', 'letters': '\\uA733'},\r\n {'base': 'ae', 'letters': '\\u00E6\\u01FD\\u01E3'},\r\n {'base': 'ao', 'letters': '\\uA735'},\r\n {'base': 'au', 'letters': '\\uA737'},\r\n {'base': 'av', 'letters': '\\uA739\\uA73B'},\r\n {'base': 'ay', 'letters': '\\uA73D'},\r\n {'base': 'b', 'letters': '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253'},\r\n {'base': 'c', 'letters': '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184'},\r\n {\r\n 'base': 'd',\r\n 'letters': '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A'\r\n },\r\n {'base': 'dz', 'letters': '\\u01F3\\u01C6'},\r\n {\r\n 'base': 'e',\r\n 'letters': '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD'\r\n },\r\n {'base': 'f', 'letters': '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C'},\r\n {\r\n 'base': 'g',\r\n 'letters': '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F'\r\n },\r\n {\r\n 'base': 'h',\r\n 'letters': '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265'\r\n },\r\n {'base': 'hv', 'letters': '\\u0195'},\r\n {\r\n 'base': 'i',\r\n 'letters': '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131'\r\n },\r\n {'base': 'j', 'letters': '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249'},\r\n {\r\n 'base': 'k',\r\n 'letters': '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3'\r\n },\r\n {\r\n 'base': 'l',\r\n 'letters': '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747'\r\n },\r\n {'base': 'lj', 'letters': '\\u01C9'},\r\n {'base': 'm', 'letters': '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F'},\r\n {\r\n 'base': 'n',\r\n 'letters': '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5'\r\n },\r\n {'base': 'nj', 'letters': '\\u01CC'},\r\n {\r\n 'base': 'o',\r\n 'letters': '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275'\r\n },\r\n {'base': 'oi', 'letters': '\\u01A3'},\r\n {'base': 'ou', 'letters': '\\u0223'},\r\n {'base': 'oo', 'letters': '\\uA74F'},\r\n {'base': 'p', 'letters': '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755'},\r\n {'base': 'q', 'letters': '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759'},\r\n {\r\n 'base': 'r',\r\n 'letters': '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783'\r\n },\r\n {\r\n 'base': 's',\r\n 'letters': '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B'\r\n },\r\n {\r\n 'base': 't',\r\n 'letters': '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787'\r\n },\r\n {'base': 'tz', 'letters': '\\uA729'},\r\n {\r\n 'base': 'u',\r\n 'letters': '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289'\r\n },\r\n {'base': 'v', 'letters': '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C'},\r\n {'base': 'vy', 'letters': '\\uA761'},\r\n {'base': 'w', 'letters': '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73'},\r\n {'base': 'x', 'letters': '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D'},\r\n {\r\n 'base': 'y',\r\n 'letters': '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF'\r\n },\r\n {\r\n 'base': 'z',\r\n 'letters': '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763'\r\n }\r\n];\r\n\r\nconst diacriticsMap = {};\r\nfor (let i = 0; i < defaultDiacriticsRemovalMap.length; i++) {\r\n const letters = defaultDiacriticsRemovalMap [i].letters;\r\n for (let j = 0; j < letters.length; j++) {\r\n diacriticsMap[letters[j]] = defaultDiacriticsRemovalMap [i].base;\r\n }\r\n}\r\n\r\n// \"what?\" version ... http://jsperf.com/diacritics/12\r\nexport function unaccent(str) {\r\n return str.replace(/[^\\u0000-\\u007E]/g, function (a) {\r\n return diacriticsMap[a] || a;\r\n });\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[addCalendar]'\r\n})\r\nexport class UiAddCalendarDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiDatetimeService {\r\n days: any;\r\n shortDays: any;\r\n months: any;\r\n shortMonths: any;\r\n\r\n constructor() {\r\n this.days = ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'];\r\n this.shortDays = ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'];\r\n this.months = ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'];\r\n this.shortMonths = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'];\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiColor {\r\n static isBright(hex, minDarkPerc?): boolean {\r\n return _isBright(hex, minDarkPerc);\r\n }\r\n\r\n static hexToRgb(hex): {} {\r\n return _hexToRgb(hex);\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\nexport function _isBright(hex, minDarkPerc) {\r\n const color = _hexToRgb(hex);\r\n if (!color) {\r\n return false;\r\n }\r\n const luminosityPerc = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;\r\n return (luminosityPerc < (minDarkPerc || 0.3));\r\n}\r\n\r\nexport function _hexToRgb(hex) {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n}\r\n","import {AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {UiDatetimeService} from './datetime.service';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiColor} from '../utils/providers/color.provider';\r\n\r\n@Component({\r\n selector: 'ui-calendar-content',\r\n templateUrl: './calendar-content.component.html',\r\n styleUrls: ['./calendar-content.component.scss'],\r\n})\r\nexport class UiCalendarContentComponent implements AfterViewInit {\r\n\r\n maxDate: Date;\r\n minDate: Date;\r\n calendar: any;\r\n ngModel: any;\r\n events: any[];\r\n chosenDate: any;\r\n days: any;\r\n months: any;\r\n confirmSelection: boolean;\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public datetimeService: UiDatetimeService, public elementRef: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.days = datetimeService.days;\r\n this.months = datetimeService.months;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.events && this.events.length) {\r\n this.verifyEventDates();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n this.elementRef.nativeElement.querySelectorAll('.days button').forEach(item => {\r\n item.addEventListener('keydown', e => {\r\n const target = UiElement.closest(e.target, '.day');\r\n const index = UiElement.index(target);\r\n\r\n let toFocus;\r\n let toFocusIndex = 0;\r\n let toFocusAlt;\r\n\r\n setTimeout(() => {\r\n switch (e.keyCode) {\r\n // Seta para esquerda\r\n case 37:\r\n toFocus = this.getSibling(index - 1);\r\n if (!toFocus.length) {\r\n toFocus = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])');\r\n toFocusIndex = toFocus.length - 1;\r\n }\r\n toFocus[toFocusIndex].focus();\r\n break;\r\n // Seta para cima\r\n case 38:\r\n toFocus = this.getSibling(index - 7);\r\n toFocusAlt = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])')[0];\r\n\r\n if (toFocus.length && index > UiElement.index(toFocus[0])) {\r\n toFocus[0].focus();\r\n } else {\r\n toFocusAlt.focus();\r\n }\r\n break;\r\n // Seta para direita\r\n case 39:\r\n toFocus = this.getSibling(index + 1);\r\n if (!toFocus.length) {\r\n this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])')[0].focus();\r\n } else {\r\n toFocus[0].focus();\r\n }\r\n break;\r\n // // Seta para baixo\r\n case 40:\r\n toFocus = this.getSibling(index + 7);\r\n toFocusAlt = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])');\r\n toFocusAlt = toFocusAlt[toFocusAlt.length - 1];\r\n\r\n if (toFocus.length && index < UiElement.index(toFocus[0].parentNode)) {\r\n toFocus[0].focus();\r\n } else {\r\n toFocusAlt.focus();\r\n }\r\n break;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.elementRef.nativeElement.addEventListener('keydown', e => {\r\n if ([37, 38, 39, 40].indexOf(e.keyCode) > -1) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n getSibling(index): any[] {\r\n if (index < 0 || !this.elementRef.nativeElement.querySelectorAll('.day')[index]) {\r\n return [];\r\n }\r\n return this.elementRef.nativeElement.querySelectorAll('.day')[index].querySelectorAll('button:not([disabled])');\r\n }\r\n\r\n isDay(value) {\r\n const dateToCheck = this.chosenDate;\r\n if (!dateToCheck) {\r\n return;\r\n }\r\n\r\n return (\r\n dateToCheck.getDate() === value.getDate() &&\r\n dateToCheck.getMonth() === value.getMonth() &&\r\n dateToCheck.getFullYear() === value.getFullYear()\r\n );\r\n }\r\n\r\n chooseDate(value) {\r\n if (value) {\r\n this.chosenDate = value;\r\n if (!this.confirmSelection) {\r\n this.ngModel = value;\r\n }\r\n const newValue = {\r\n value,\r\n confirmSelection: this.confirmSelection\r\n };\r\n\r\n this.chosen.next(newValue);\r\n }\r\n }\r\n\r\n isDisabled(value) {\r\n const minDate = this.minDate ? new Date(this.minDate).getTime() : null;\r\n const maxDate = this.maxDate ? new Date(this.maxDate).getTime() : null;\r\n const date = value.getTime();\r\n\r\n return (typeof minDate === 'number' && !isNaN(minDate) && date < minDate) || (typeof maxDate === 'number' && !isNaN(maxDate) && date > maxDate);\r\n }\r\n\r\n verifyEventDates() {\r\n this.calendar.days.map(day => {\r\n this.events.map(event => {\r\n const date = new Date (event.date);\r\n\r\n if ((date.getTime() + (day.value.getTimezoneOffset() * 60000)) === day.value.getTime()) {\r\n day.hasEvent = true;\r\n day.eventColor = event.color;\r\n day.blocked = event.blocked;\r\n }\r\n });\r\n });\r\n }\r\n\r\n isBright(color) {\r\n return UiColor.isBright(color);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {UiCalendarContentComponent} from './calendar-content.component';\r\nimport {UiAddCalendarDirective} from './add-calendar.directive';\r\nimport {UiDatetimeService} from './datetime.service';\r\nimport {Subject} from 'rxjs';\r\nimport {isDate} from 'rxjs/internal/util/isDate';\r\n\r\n@Component({\r\n selector: 'ui-calendar',\r\n templateUrl: './calendar.component.html',\r\n styleUrls: ['./calendar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiCalendarComponent implements OnInit, OnChanges {\r\n @Input() ngModel: any;\r\n @Input() maxDate: Date;\r\n @Input() minDate: Date;\r\n @Input() hideHeader: boolean;\r\n @Input() initOnSelected: Date;\r\n @Input() confirmSelection: boolean;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() selectDateChange: EventEmitter<any> = new EventEmitter();\r\n @Output() cancel: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Output() updateMonth: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(UiAddCalendarDirective, { static: true }) addCalendar: UiAddCalendarDirective;\r\n chosen: Subject<any> = new Subject();\r\n\r\n calendar: any;\r\n days: any;\r\n shortDays: any;\r\n months: any;\r\n viewDate: Date;\r\n chosenDate: any;\r\n componentRef;\r\n\r\n constructor(public componentFactoryResolver: ComponentFactoryResolver, public datetimeService: UiDatetimeService) {\r\n this.days = datetimeService.days;\r\n this.shortDays = datetimeService.shortDays;\r\n this.months = datetimeService.months;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n this.chosenDate = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : null;\r\n this.ngModel = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : this.ngModel;\r\n this.viewDate = isDate(this.ngModel) ? this.ngModel : this.initOnSelected || new Date();\r\n this.renderCalendar(this.viewDate);\r\n\r\n }\r\n\r\n public ngOnChanges(value): void {\r\n if (value.ngModel && !value.ngModel.firstChange && !isNaN(value.ngModel.currentValue)) {\r\n const ngModel = value.ngModel.currentValue = value.ngModel.currentValue && isDate(new Date(value.ngModel.currentValue)) ? new Date(value.ngModel.currentValue) : value.ngModel.currentValue;\r\n this.ngModel = this.chosenDate = this.componentRef.instance.chosenDate = this.componentRef.instance.ngModel = ngModel;\r\n }\r\n if (value.maxDate && !value.maxDate.firstChange) {\r\n const maxDate = value.maxDate.currentValue = value.maxDate.currentValue && isDate(new Date(value.maxDate.currentValue)) ? new Date(value.maxDate.currentValue) : value.maxDate.currentValue;\r\n this.componentRef.instance.maxDate = this.maxDate = maxDate;\r\n }\r\n if (value.minDate && !value.minDate.firstChange) {\r\n const minDate = value.minDate.currentValue = value.minDate.currentValue && isDate(new Date(value.minDate.currentValue)) ? new Date(value.minDate.currentValue) : value.minDate.currentValue;\r\n this.componentRef.instance.minDate = this.minDate = minDate;\r\n }\r\n if (value.confirmSelection) {\r\n this.confirmSelection = value.confirmSelection.currentValue;\r\n }\r\n }\r\n\r\n public prevMonth(): void {\r\n this.viewDate.setMonth(this.viewDate.getMonth() - 1);\r\n this.updateMonth.emit();\r\n this.renderCalendar(this.viewDate);\r\n }\r\n\r\n public nextMonth(): void {\r\n this.viewDate.setMonth(this.viewDate.getMonth() + 1);\r\n this.updateMonth.emit();\r\n this.renderCalendar(this.viewDate);\r\n }\r\n\r\n public selectDate(value) {\r\n this.ngModel = this.componentRef.instance.ngModel = value;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.select.emit(this.ngModel);\r\n this.selectDateChange.emit(this.ngModel);\r\n this.chosen.next(this.ngModel);\r\n }\r\n\r\n public cancelDate() {\r\n this.ngModel = this.chosenDate = this.componentRef.instance.ngModel = this.componentRef.instance.chosenDate = null;\r\n this.cancel.emit();\r\n this.ngModelChange.emit(this.ngModel);\r\n }\r\n\r\n public renderCalendar(dateTarget: Date): void {\r\n let date: Date = dateTarget;\r\n\r\n date.setHours(0, 0, 0, 0);\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + 1);\r\n date.setDate(0);\r\n\r\n this.viewDate = date;\r\n\r\n const calendar: any = {\r\n year: date.getFullYear(),\r\n month: date.getMonth(),\r\n monthDays: date.getDate(),\r\n lastDayWeek: date.getDay(),\r\n lastDayWeekName: this.days[date.getDay()]\r\n };\r\n\r\n date.setDate(1);\r\n calendar.firstDayWeek = date.getDay();\r\n calendar.firstDayWeekName = this.days[date.getDay()];\r\n calendar.totalDays = calendar.monthDays + calendar.firstDayWeek + (6 - calendar.lastDayWeek);\r\n calendar.days = [];\r\n\r\n const firstDate = -calendar.firstDayWeek + 1;\r\n const lastDate = calendar.monthDays + (7 - calendar.lastDayWeek);\r\n\r\n for (let i = firstDate; i < lastDate; i++) {\r\n date = new Date(calendar.year, calendar.month, i);\r\n let today: any = new Date();\r\n today = date.getFullYear() === today.getFullYear() && date.getMonth() === today.getMonth() && date.getDate() === today.getDate();\r\n calendar.days.push({\r\n month: date.getMonth(),\r\n date: date.getDate(),\r\n value: date,\r\n time: date.getTime(),\r\n today: today\r\n });\r\n }\r\n\r\n this.calendar = calendar;\r\n\r\n const keysComponent = ['calendar', 'ngModel', 'minDate', 'maxDate', 'chosenDate', 'confirmSelection', 'events'];\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiCalendarContentComponent);\r\n const viewContainerRef = this.addCalendar.viewContainerRef;\r\n viewContainerRef.clear();\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n keysComponent.map(key => this.componentRef.instance[key] = this[key]);\r\n\r\n this.componentRef.instance.chosen.subscribe(newValue => {\r\n if (newValue) {\r\n this.chosenDate = newValue.value;\r\n if (!newValue.confirmSelection) {\r\n this.selectDate(newValue.value);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCapitalize'\r\n})\r\nexport class UiCapitalizePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n return value && value.length > 0 ? value[0].toUpperCase() + value.substr(1).toLowerCase() : value;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class UiCookie {\r\n static get(name: string) {\r\n const ca: Array<string> = document.cookie.split(';');\r\n const caLen: number = ca.length;\r\n const cookieName = `${name}=`;\r\n let c: string;\r\n\r\n for (let i = 0; i < caLen; i += 1) {\r\n c = ca[i].replace(/^\\s+/g, '');\r\n if (c.indexOf(cookieName) === 0) {\r\n return c.substring(cookieName.length, c.length);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n static has(name: string) {\r\n return !!this.get(name);\r\n }\r\n\r\n static delete(name: string, domain?: string) {\r\n this.set(name, '', -1, null, domain);\r\n }\r\n\r\n static set(name: string, value: string, expireDays: number = 365, path: string = '/', domain?: string) {\r\n const d: Date = new Date();\r\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\r\n const expires: string = 'expires=' + d.toUTCString();\r\n if (domain) domain = '; domain=' + domain\r\n document.cookie = name + '=' + value + '; ' + expires + '; path=' + path + domain;\r\n }\r\n}\r\n","import {Directive, ElementRef, AfterViewInit, HostListener, Input, OnChanges} from '@angular/core';\r\n\r\n@Directive({selector: 'th[uiDataTableOrderBy]'})\r\nexport class UiDataTableOrderByDirective implements AfterViewInit, OnChanges {\r\n @Input('withCondition') withCondition: boolean;\r\n @Input('uiDataTableOrderBy') uiDataTableOrderBy: 'ASC' | 'DESC' | null;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const icon: HTMLElement = document.createElement('i');\r\n icon.classList.add('material-icons');\r\n icon.innerHTML = 'arrow_downward';\r\n\r\n if (this.element.nativeElement.classList.contains('align-right')) {\r\n this.element.nativeElement.insertBefore(icon.cloneNode(true), this.element.nativeElement.firstChild);\r\n } else {\r\n this.element.nativeElement.appendChild(icon.cloneNode(true));\r\n }\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.uiDataTableOrderBy && !changes.uiDataTableOrderBy.firstChange) {\r\n this.uiDataTableOrderBy = changes.uiDataTableOrderBy.currentValue;\r\n this.orderByCondition();\r\n }\r\n }\r\n\r\n orderByClick() {\r\n if (this.element.nativeElement.classList.contains('order_desc')\r\n || this.element.nativeElement.classList.contains('order_asc')) {\r\n if (this.element.nativeElement.classList.contains('order_asc')) {\r\n this.element.nativeElement.classList.add('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n } else if (this.element.nativeElement.classList.contains('order_desc')) {\r\n this.element.nativeElement.classList.remove('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n }\r\n } else {\r\n this.element.nativeElement.classList.add('order_asc');\r\n }\r\n }\r\n\r\n orderByCondition() {\r\n switch (this.uiDataTableOrderBy) {\r\n case 'ASC':\r\n this.element.nativeElement.classList.add('order_asc');\r\n this.element.nativeElement.classList.remove('order_desc');\r\n break;\r\n case 'DESC':\r\n this.element.nativeElement.classList.add('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n break;\r\n default:\r\n this.element.nativeElement.classList.remove('order_asc', 'order_desc');\r\n break;\r\n }\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.withCondition) {\r\n return;\r\n }\r\n\r\n this.orderByClick();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiDatePickerDirective} from './date-picker.directive';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Injectable()\r\nexport class UiReferencesService {\r\n\r\n datePickers: any = {};\r\n\r\n constructor() {\r\n }\r\n\r\n add(name: string, component: UiDatePickerDirective): void {\r\n if (this.datePickers && this.datePickers[name]) {\r\n return;\r\n }\r\n\r\n this.datePickers[name] = component;\r\n }\r\n\r\n get(name: string): UiDatePickerDirective {\r\n return this.datePickers[name];\r\n }\r\n\r\n remove(name: string) {\r\n delete this.datePickers[name];\r\n }\r\n\r\n closeAll() {\r\n UiElement.trigger(window, 'click');\r\n }\r\n\r\n getAll(): UiDatePickerDirective {\r\n return this.datePickers;\r\n }\r\n\r\n updateModel(name, value) {\r\n this.datePickers[name].ngModel = value;\r\n this.datePickers[name].ngModelChange.emit(value);\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n EmbeddedViewRef,\r\n ElementRef,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport {UiReferencesService} from './references.service';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiCalendarComponent} from '../calendar/calendar.component';\r\n\r\n@Directive({\r\n selector: '[uiDatePickerCaller]'\r\n})\r\nexport class UiDatePickerCallerDirective implements AfterViewInit {\r\n datePicker;\r\n componentRef: any;\r\n componentElement: any;\r\n pickerOpen: boolean;\r\n wrapDatePicker: HTMLElement;\r\n inputElement: HTMLElement;\r\n @Input() pickerEvent: string;\r\n @Input('uiDatePickerCaller') datePickerCaller: string;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private referencesService: UiReferencesService,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.datePicker = this.referencesService.get(this.datePickerCaller);\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.pickerEvent || 'click', (e) => {\r\n this.inputElement = <HTMLElement>document.querySelector(`[date-picker-name=\"${this.datePickerCaller}\"]`);\r\n\r\n this.referencesService.closeAll();\r\n\r\n if (!this.pickerOpen) {\r\n this.renderDatePicker(this.datePicker);\r\n e.stopPropagation(); // Parando propagação do evento para os eventos do window\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.pickerOpen) {\r\n if ((!(UiElement.is(e.target, '.wrap-date-picker') || UiElement.closest(e.target, '.wrap-date-picker'))\r\n && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.closePicker();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getComponentAsElement(componentRef): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n public setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'maxDate', 'minDate', 'initOnSelected', 'confirmSelection', 'select', 'selectDateChange', 'events'];\r\n keysComponent.map(key => componentRef.instance[key] = component[key]);\r\n componentRef.instance.cancel.subscribe(() => this.closePicker());\r\n componentRef.instance.updateMonth.subscribe(() => this.setCoordinate(this.componentElement));\r\n component.chosen.subscribe(value => componentRef.instance.ngOnChanges(value));\r\n componentRef.instance.chosen.subscribe(value => {\r\n this.referencesService.updateModel(this.datePickerCaller, value);\r\n if (this.pickerOpen) {\r\n this.inputElement.focus();\r\n this.closePicker();\r\n }\r\n });\r\n }\r\n\r\n public renderViewCalendar(element, themeClass): void {\r\n this.wrapDatePicker = document.createElement('div');\r\n this.wrapDatePicker.classList.add('wrap-date-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n if (themeClass) {\r\n this.wrapDatePicker.classList.add(themeClass);\r\n }\r\n\r\n this.wrapDatePicker.style.transform = 'scale(0)';\r\n element.classList.add('portrait-only');\r\n this.wrapDatePicker.appendChild(overlay);\r\n this.wrapDatePicker.appendChild(element);\r\n document.body.appendChild(this.wrapDatePicker);\r\n\r\n this.setCoordinate(element);\r\n }\r\n\r\n public renderDatePicker(component): void {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiCalendarComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.componentElement = this.getComponentAsElement(this.componentRef);\r\n\r\n this.setInstances(component, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.renderViewCalendar(this.componentElement, component.themeClass);\r\n this.pickerOpen = true;\r\n }\r\n\r\n public closePicker(): void {\r\n this.wrapDatePicker.classList.remove('open');\r\n setTimeout(() => {\r\n this.pickerOpen = false;\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n document.body.style.overflowY = '';\r\n try {\r\n document.body.removeChild(this.wrapDatePicker);\r\n } catch (e) {\r\n }\r\n }, 280);\r\n }\r\n\r\n private setCoordinate(element) {\r\n const position = UiElement.position(this.inputElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: this.inputElement.offsetHeight + position.top\r\n };\r\n\r\n setTimeout(() => {\r\n const pickerHorizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const pickerVerticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (pickerHorizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n if (pickerVerticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n this.wrapDatePicker.style.transform = '';\r\n element.style.position = 'absolute';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n this.wrapDatePicker.classList.add('open');\r\n if (document.body.clientWidth <= 600) {\r\n document.body.style.overflowY = 'hidden';\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive, EventEmitter, Input, Output, OnChanges, OnInit, OnDestroy, ElementRef,\r\n AfterViewInit, ChangeDetectorRef\r\n} from '@angular/core';\r\nimport {UiReferencesService} from './references.service';\r\nimport {Subject} from 'rxjs';\r\nimport {isDate} from 'rxjs/internal/util/isDate';\r\n\r\n@Directive({\r\n selector: '[uiDatePicker]'\r\n})\r\nexport class UiDatePickerDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() ngModel;\r\n @Input() maxDate: Date;\r\n @Input() minDate: Date;\r\n @Input() events: any;\r\n @Input() initOnSelected: Date;\r\n @Input() confirmSelection: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input('uiDatePicker') datePicker: string;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() selectDateChange: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public referencesService: UiReferencesService, public element: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n }\r\n\r\n ngOnInit() {\r\n this.referencesService.add(this.datePicker, this);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute('date-picker-name', this.datePicker);\r\n }\r\n\r\n ngOnChanges(value) {\r\n this.chosen.next(value);\r\n if (value.ngModel && value.ngModel.currentValue === '') {\r\n this.ngModelChange.emit(null);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.referencesService.remove(this.datePicker);\r\n }\r\n}\r\n","import {UiElement} from './element.provider';\r\n\r\nexport class UiElementRef {\r\n nativeElement: any;\r\n length: number;\r\n classList: any;\r\n\r\n constructor(element: any) {\r\n this.nativeElement = element;\r\n\r\n if (element) {\r\n if (element.length) {\r\n this.length = element.length;\r\n if (element === window) {\r\n this[0] = new UiElementRef(element);\r\n } else {\r\n for (let i = 0; i < element.length; i++) {\r\n this[i] = new UiElementRef(element[i]);\r\n }\r\n }\r\n } else {\r\n this.length = 1;\r\n this[0] = element;\r\n }\r\n }\r\n\r\n this.classList = {\r\n remove: function removeClass(className) {\r\n return UiElement.classList.remove(element, className);\r\n },\r\n add: function addClass(className) {\r\n return UiElement.classList.add(element, className);\r\n },\r\n contains: function addClass(className) {\r\n return UiElement.classList.contains(element, className);\r\n }\r\n };\r\n }\r\n\r\n closest(selector): any {\r\n return new UiElementRef(UiElement.closest(this.nativeElement, selector));\r\n }\r\n\r\n index(): any {\r\n return UiElement.index(this.nativeElement);\r\n }\r\n\r\n trigger(eventToTrigger): any {\r\n return UiElement.trigger(this.nativeElement, eventToTrigger);\r\n }\r\n\r\n on(events, listener): any {\r\n return UiElement.on(this.nativeElement, events, listener);\r\n }\r\n\r\n off(events, listener): any {\r\n return UiElement.off(this.nativeElement, events, listener);\r\n }\r\n\r\n is(selector): any {\r\n return UiElement.is(this.nativeElement, selector);\r\n }\r\n\r\n position(withoutScroll?): any {\r\n return UiElement.position(this.nativeElement, withoutScroll);\r\n }\r\n\r\n offset(): any {\r\n return UiElement.offset(this.nativeElement);\r\n }\r\n\r\n animate(property, start_value, end_value, time, end?, tick?): any {\r\n return UiElement.animate(this.nativeElement, property, start_value, end_value, time, end, tick);\r\n }\r\n\r\n querySelector(selector): any {\r\n let selected = this.nativeElement.querySelectorAll(selector);\r\n\r\n if (selected.length) {\r\n selected = selected.length === 1 ? selected[0] : selected;\r\n return new UiElementRef(selected);\r\n }\r\n\r\n return new UiElementRef(null);\r\n }\r\n\r\n forEach(callback): any {\r\n return Array.prototype.forEach.call(this, callback);\r\n }\r\n\r\n filter(callback): any {\r\n return Array.prototype.filter.call(this, callback);\r\n }\r\n\r\n indexOf(element): any {\r\n return Array.prototype.indexOf.call(this, element);\r\n }\r\n\r\n css(styleProp, newValue?): any {\r\n return UiElement.css(this.nativeElement, styleProp, newValue);\r\n }\r\n\r\n isInViewport(): any {\r\n return UiElement.isInViewport(this.nativeElement);\r\n }\r\n\r\n attribute(name, value?): any {\r\n if (typeof value !== 'undefined') {\r\n return this.nativeElement.setAttribute(name, value);\r\n } else {\r\n return this.nativeElement.getAttribute(name);\r\n }\r\n }\r\n\r\n height(newHeight?) {\r\n if (typeof newHeight !== 'undefined') {\r\n UiElement.css(this.nativeElement, 'height', newHeight);\r\n }\r\n\r\n return this.nativeElement.clientHeight;\r\n }\r\n\r\n parent() {\r\n return new UiElementRef(this.nativeElement.parentNode);\r\n }\r\n\r\n focus() {\r\n if (this.nativeElement && this.nativeElement.focus) {\r\n this.nativeElement.focus();\r\n }\r\n }\r\n}\r\n","import {\r\n Component, ElementRef, Output, TemplateRef, ViewChild,\r\n ViewEncapsulation, EventEmitter, Input\r\n} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiDialogComponent {\r\n viewRef: any;\r\n opened: boolean;\r\n @Input('card-size') cardSize: number;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n this.closeChange.emit();\r\n\r\n if (this.viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n if (this.viewRef) {\r\n setTimeout(() => {\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n this.viewRef.destroy();\r\n this.viewRef = null;\r\n }, 280);\r\n }\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n show(config?: any) {\r\n if (!this.viewRef) {\r\n const dialog = this;\r\n\r\n this.close();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n this.viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, config);\r\n }\r\n });\r\n }\r\n }\r\n\r\n open(element, config) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (config.darkClass) {\r\n element.classList.add(config.darkClass);\r\n }\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize || this.cardSize) {\r\n element.querySelector('ui-card').style.maxWidth = (config.cardSize || this.cardSize) + 'px';\r\n element.querySelector('ui-card').style.width = '100%';\r\n }\r\n\r\n if (!config.transparentOverlay && fabs.length) {\r\n fabs.classList.add('hide');\r\n }\r\n\r\n if (config.clickOverlayToClose) {\r\n element.querySelector('.overlay').addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, ViewContainerRef } from '@angular/core';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiDialogTrigger]'\r\n})\r\nexport class UiDialogTriggerDirective implements AfterViewInit {\r\n viewRef: any;\r\n opened: boolean;\r\n @Input('trigger-events') triggerEvents: string;\r\n @Input('dark-class') darkClass: string;\r\n @Input('theme-class') themeClass: string;\r\n @Input('transparent-overlay') transparentOverlay: boolean;\r\n @Input('uiDialogTrigger') dialog;\r\n @Input('click-overlay-to-close') clickOverlayToClose;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dialog.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', () => {\r\n this.render();\r\n });\r\n\r\n this.clickOverlayToClose = this.clickOverlayToClose !== undefined ? this.clickOverlayToClose : true;\r\n }\r\n\r\n render() {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode);\r\n }\r\n });\r\n }\r\n\r\n open(element) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n const fabs = document.querySelectorAll('.ui-fab-container');\r\n\r\n if (this.darkClass) {\r\n element.classList.add(this.darkClass);\r\n }\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (this.dialog.cardSize) {\r\n element.querySelectorAll('ui-card')[0].style.maxWidth = this.dialog.cardSize + 'px';\r\n element.querySelectorAll('ui-card')[0].style.width = '100%';\r\n }\r\n\r\n if (!this.transparentOverlay && fabs.length) {\r\n Array.prototype.forEach.call(fabs, fab => {\r\n fab.classList.add('hide');\r\n });\r\n }\r\n\r\n if (this.clickOverlayToClose) {\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n const fabs = document.querySelectorAll('.ui-fab-container');\r\n if (fabs.length) {\r\n\r\n Array.prototype.forEach.call(fabs, fab => {\r\n fab.classList.remove('hide');\r\n });\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n}\r\n","import {AfterViewInit, Component, ViewEncapsulation, ElementRef, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-input-container',\r\n template: `\r\n <div class=\"ui-input-wrap\">\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"loading\" class=\"ui-progress input\">\r\n <div class=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n `,\r\n // styleUrls: ['input.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class UiInputContainerComponent implements AfterViewInit {\r\n\r\n @Input() loading;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const nativeElement = this.element.nativeElement;\r\n const inputWrap = nativeElement.getElementsByClassName('ui-input-wrap')[0];\r\n\r\n const icon = nativeElement.getElementsByClassName('icon')[0];\r\n const line = document.createElement('div');\r\n line.className = 'line';\r\n inputWrap.appendChild(line);\r\n\r\n if (icon) {\r\n const methodInsertIcon = icon === inputWrap.firstElementChild ? 'insertBefore' : 'appendChild';\r\n inputWrap.removeChild(icon);\r\n nativeElement[methodInsertIcon](icon, nativeElement.firstChild);\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { isNullOrUndefined } from 'util';\r\n\r\n@Directive({\r\n selector: '[uiInput]'\r\n})\r\n\r\nexport class UiInputDirective implements AfterViewInit, OnChanges {\r\n placeholder: string;\r\n @Input() ngModel: any;\r\n @Input() persistPlaceholder: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private element: ElementRef, private renderer: Renderer2) {\r\n this.placeholder = element.nativeElement.placeholder;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderer.addClass(this.element.nativeElement, 'ui-control');\r\n this.setPlaceholder();\r\n }\r\n\r\n ngOnChanges() {\r\n this.isEmpty(this.ngModel);\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur() {\r\n this.isEmpty(this.ngModel);\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n this.isEmpty(this.ngModel);\r\n this.setPlaceholder(this.placeholder);\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusout() {\r\n this.setPlaceholder();\r\n }\r\n\r\n isEmpty(value: any): void {\r\n // TODO: Try model e view value\r\n const self = this;\r\n function isEmpty() {\r\n let action = isNullOrUndefined(value) && !self.element.nativeElement.value ? 'addClass' : 'removeClass';\r\n if (!isNullOrUndefined(self.ngModel) && self.ngModel.trim && !self.ngModel.trim()) {\r\n action = 'addClass';\r\n }\r\n self.renderer[action](self.element.nativeElement, 'ui-empty');\r\n }\r\n\r\n isEmpty();\r\n setTimeout(isEmpty);\r\n }\r\n\r\n setPlaceholder(value?: string) {\r\n value = this.persistPlaceholder ? this.placeholder : value || '';\r\n this.renderer.setProperty(this.element.nativeElement, 'placeholder', value);\r\n }\r\n}\r\n","import { Directive, Input, forwardRef} from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiMaxlength][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => UiMaxlengthDirective), multi: true }\r\n ]\r\n})\r\nexport class UiMaxlengthDirective implements Validator {\r\n @Input('uiMaxlength') maxLength: any;\r\n\r\n constructor() {}\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n\r\n const value = control.value ? control.value.toString() : control.value;\r\n\r\n if (value && value.length > this.maxLength) {\r\n return {\r\n uiMaxlength: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import {\r\n Component, ElementRef, EventEmitter, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiMenuComponent implements OnDestroy {\r\n viewRef;\r\n menu;\r\n themeClass;\r\n menuAlign;\r\n persistentMenu;\r\n element;\r\n listenerExists;\r\n overlay;\r\n\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter(); // OLD VERSION\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.close();\r\n }\r\n\r\n show(event, config?) {\r\n if (config) {\r\n this.element = config.element || null;\r\n this.themeClass = config.class || null;\r\n this.menuAlign = config.align || null;\r\n this.persistentMenu = config.persistent || null;\r\n }\r\n\r\n this.createListener();\r\n\r\n let coordinate = {\r\n x: event.clientX,\r\n y: event.clientY + window.pageYOffset\r\n };\r\n if (this.element) {\r\n const position = UiElement.position(this.element);\r\n coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n }\r\n this.render(coordinate);\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n let horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = document.body.clientHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (this.menuAlign === 'right') {\r\n coordinate.x -= element.clientWidth - (this.element ? this.element.clientWidth : 0);\r\n horizontalCoveringArea = coordinate.x;\r\n }\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n element.classList.add('right');\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.menuAlign) {\r\n element.classList.add(this.menuAlign);\r\n }\r\n\r\n element.style.transform = '';\r\n element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n this.closeChange.emit(); // OLD VERSION\r\n\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n\r\n createListener() {\r\n if (!this.listenerExists) {\r\n this.listenerExists = true;\r\n UiElement.on(window, 'mouseup resize scroll touchend', (e) => {\r\n if (this.elementRef.nativeElement !== e.target) {\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, Input, ViewContainerRef, AfterViewChecked,\r\n HostListener\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMenuTrigger]'\r\n})\r\nexport class UiMenuTriggerDirective implements AfterViewInit {\r\n viewRef;\r\n @Input('trigger-events') triggerEvents;\r\n @Input('theme-class') themeClass;\r\n @Input() align;\r\n @Input('menu-align') menuAlign;\r\n @Input('uiMenuTrigger') menu;\r\n @Input() persistentMenu;\r\n @Input('click-overlay-to-close') clickOverlayToClose;\r\n @Input() contextmenu: boolean;\r\n @Input() overlay: boolean;\r\n @Input() fixed: boolean;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.menu.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', event => {\r\n this.menu.overlay = this.overlay;\r\n\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n\r\n if (this.contextmenu) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n });\r\n });\r\n\r\n UiElement.on(window, 'mouseup resize scroll touchend', (e) => {\r\n\r\n if (this.fixed && (e.type === 'scroll' || e.type === 'resize')) {\r\n return;\r\n }\r\n\r\n if (this.clickOverlayToClose) {\r\n switch (e.type) {\r\n case 'mouseup':\r\n case 'touchend':\r\n if (!UiElement.closest(e.target, '.wrap-menu')) {\r\n this.close();\r\n }\r\n return;\r\n default:\r\n this.close();\r\n return;\r\n }\r\n }\r\n\r\n if (this.elementRef.nativeElement !== e.target) {\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n\r\n }\r\n });\r\n\r\n UiElement.on(window, 'mouseup touchend', e => {\r\n if (this.clickOverlayToClose && !UiElement.closest(e.target, '.wrap-menu')) {\r\n this.close();\r\n return;\r\n }\r\n });\r\n }\r\n\r\n @HostListener('contextmenu') onContextmenu() {\r\n if (!this.contextmenu) {\r\n return true;\r\n }\r\n\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n\r\n return false;\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.menu.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth && !rootNode.classList.contains('wrap-menu-overlay')) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n let horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = document.body.clientHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (this.align === 'right' || this.menuAlign === 'right') {\r\n coordinate.x -= element.clientWidth - this.elementRef.nativeElement.clientWidth;\r\n horizontalCoveringArea = coordinate.x;\r\n }\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.align || this.menuAlign) {\r\n element.classList.add(this.align || this.menuAlign);\r\n }\r\n\r\n element.style.transform = '';\r\n element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.querySelector('ui-card').style.maxWidth = (window.innerWidth - 16) + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n AfterViewInit,\r\n ViewEncapsulation,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n OnChanges,\r\n Input, OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { UiElement } from '../utils/providers/element.provider';\r\nimport { UiCookie } from '../utils/providers/cookie.provider';\r\n\r\n@Component({\r\n selector: 'ui-nav-drawer',\r\n templateUrl: './nav-drawer.component.html',\r\n styleUrls: ['./nav-drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiNavDrawerComponent implements AfterViewInit, OnChanges, OnDestroy {\r\n @Input() open: boolean;\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public openNav: Function;\r\n public closeNav: Function;\r\n onTouchStart: Function;\r\n onTouchMove: Function;\r\n onTouchEnd: Function;\r\n\r\n constructor(private element: ElementRef) {\r\n this.openNav = () => {\r\n if (document.body.clientWidth <= 375 || (!this.element.nativeElement.classList.contains('persistent') && (window.scrollY || window.pageYOffset) > 1)) {\r\n const fabContainer = document.querySelectorAll('.ui-fab-container')[0];\r\n if (fabContainer) {\r\n fabContainer.classList.add('hide');\r\n }\r\n }\r\n this.element.nativeElement.classList.add('open');\r\n if (!this.element.nativeElement.classList.contains('persistent')) {\r\n document.body.style.overflowY = 'hidden';\r\n } else {\r\n document.body.style.overflowY = '';\r\n }\r\n };\r\n\r\n this.closeNav = () => {\r\n const fabContainer = document.querySelectorAll('.ui-fab-container')[0];\r\n if (fabContainer) {\r\n fabContainer.classList.remove('hide');\r\n }\r\n this.element.nativeElement.classList.remove('open');\r\n document.body.style.overflowY = '';\r\n };\r\n }\r\n\r\n ngAfterViewInit() {\r\n const body = UiElement.closest(this.element.nativeElement, 'body');\r\n body.classList.add('notransition');\r\n\r\n setTimeout(() => {\r\n body.classList.remove('notransition');\r\n this.element.nativeElement.querySelectorAll('.ui-nav-drawer-overlay')[0].style.visibility = 'visible';\r\n }, 300);\r\n\r\n const isPersistent = this.element.nativeElement.classList.contains('persistent');\r\n const isOpen = this.element.nativeElement.classList.contains('open');\r\n if (isPersistent && isOpen) {\r\n if (document.body.clientWidth > 375) {\r\n body.classList.add('ui-nav-drawer-persistent');\r\n }\r\n } else {\r\n body.classList.remove('ui-nav-drawer-persistent');\r\n }\r\n\r\n this.element.nativeElement.addEventListener('click', (e) => {\r\n if (!(isPersistent && window.innerWidth > 763) && UiElement.is(e.srcElement, 'a')) {\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n }\r\n });\r\n\r\n if (this.open) {\r\n this.openNav();\r\n } else {\r\n this.closeNav();\r\n }\r\n\r\n const navDrawer = this.element.nativeElement.querySelector('nav');\r\n\r\n let navDrawerTouch;\r\n let mouseX;\r\n let mouseXMovement;\r\n\r\n this.onTouchStart = (e) => {\r\n if (this.element.nativeElement.classList.contains('.right')) {\r\n return;\r\n }\r\n \r\n mouseX = e.touches[0].pageX;\r\n navDrawerTouch = (mouseX > 0 && mouseX < 40) ? 'open' : navDrawerTouch;\r\n navDrawerTouch = (mouseX > 320 && mouseX < 360) ? 'close' : navDrawerTouch;\r\n };\r\n\r\n this.onTouchMove = (e) => {\r\n if (navDrawerTouch) {\r\n mouseXMovement = e.touches[0].pageX - mouseX;\r\n if (navDrawerTouch === 'open' && !this.open) {\r\n mouseXMovement = mouseXMovement > 320 ? 320 : mouseXMovement;\r\n UiElement.css(navDrawer, 'transform', 'translateX(' + (-320 + mouseXMovement) + 'px)');\r\n } else if (navDrawerTouch === 'close' && this.open) {\r\n mouseXMovement = mouseXMovement < -330 ? -330 : mouseXMovement;\r\n mouseXMovement = mouseXMovement > 0 ? 0 : mouseXMovement;\r\n UiElement.css(navDrawer, 'transform', 'translateX(' + (mouseXMovement) + 'px)');\r\n }\r\n }\r\n };\r\n\r\n this.onTouchEnd = (e) => {\r\n if (navDrawerTouch) {\r\n if (navDrawerTouch === 'open' && mouseXMovement > 20) {\r\n UiElement.css(navDrawer, 'transform', '');\r\n this.open = true;\r\n this.openChange.emit(this.open);\r\n this.openNav();\r\n } else if (navDrawerTouch === 'close' && mouseXMovement < -20) {\r\n UiElement.css(navDrawer, 'transform', '');\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n this.closeNav();\r\n } else {\r\n UiElement.css(navDrawer, 'transform', '');\r\n }\r\n }\r\n\r\n navDrawerTouch = undefined;\r\n };\r\n\r\n UiElement.on(window, 'touchstart', this.onTouchStart);\r\n UiElement.on(window, 'touchmove', this.onTouchMove);\r\n UiElement.on(window, 'touchend', this.onTouchEnd);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n const isNavDrawerPersistent = UiCookie.get('NavDrawerPersistent') === 'true';\r\n\r\n if (isNavDrawerPersistent) {\r\n this.open = true;\r\n this.openNav();\r\n }\r\n\r\n if (changes.open) {\r\n const isOpen = changes.open.currentValue;\r\n this.open = isOpen;\r\n\r\n if (isOpen) {\r\n this.openNav();\r\n } else {\r\n this.closeNav();\r\n }\r\n\r\n const isPersistent = this.element.nativeElement.classList.contains('persistent');\r\n const body = UiElement.closest(this.element.nativeElement, 'body');\r\n\r\n if (isPersistent && isOpen) {\r\n if (document.body.clientWidth > 375) {\r\n body.classList.add('ui-nav-drawer-persistent');\r\n UiCookie.set('NavDrawerPersistent', 'true');\r\n }\r\n } else {\r\n body.classList.remove('ui-nav-drawer-persistent');\r\n UiCookie.set('NavDrawerPersistent', 'false');\r\n }\r\n\r\n setTimeout(() => {\r\n UiElement.trigger(window, 'resize');\r\n }, 280);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(window, 'touchstart', this.onTouchStart);\r\n UiElement.off(window, 'touchmove', this.onTouchMove);\r\n UiElement.off(window, 'touchend', this.onTouchEnd);\r\n document.body.classList.add('notransition');\r\n document.body.classList.remove('ui-nav-drawer-persistent');\r\n setTimeout(() => {\r\n document.body.classList.remove('notransition');\r\n }, 1);\r\n }\r\n\r\n closeMenuOverlay() {\r\n if (this.open !== undefined) {\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n }\r\n }\r\n}\r\n","import {Component, AfterViewInit, ElementRef, ViewEncapsulation, Input, OnChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-option',\r\n templateUrl: './option.component.html',\r\n styleUrls: ['./option.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiOptionComponent implements AfterViewInit, OnChanges {\r\n @Input() color: string;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelector('input');\r\n\r\n input.classList.add('ui-option');\r\n\r\n const optionShell = '<div class=\"ui-option-shell\"><div class=\"ui-option-fill\"></div><div class=\"ui-option-mark\"></div></div>';\r\n\r\n input.insertAdjacentHTML('afterend', optionShell);\r\n this.setColor();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.color && !changes.color.firstChange) {\r\n this.setColor();\r\n }\r\n }\r\n\r\n setColor() {\r\n const optionFill = this.element.nativeElement.querySelector('.ui-option-fill');\r\n optionFill.style.borderColor = this.color || '';\r\n }\r\n\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-progress-radial.indeterminate',\r\n templateUrl: 'progress-radial.component.html',\r\n styleUrls: ['./progress-radial.component.scss']\r\n})\r\n\r\nexport class UiProgressRadialComponent implements OnInit {\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\nconst maxRipples = 10;\r\nlet ripples = 0;\r\nimport {debounce} from '../utils/functions/debounce';\r\n\r\n@Directive({\r\n selector: '[uiRipple]'\r\n})\r\nexport class UiRippleDirective implements AfterViewInit {\r\n isIE: boolean;\r\n @Input('ripple-disable') rippleDisable;\r\n public elRippleContainerTemplate: HTMLElement;\r\n public elRippleTemplate: HTMLElement;\r\n public elRippleContainerTemplateClone: HTMLElement;\r\n\r\n constructor(public element: ElementRef) {\r\n this.isIE = navigator.userAgent.indexOf('Trident') > -1;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.elRippleContainerTemplate = document.createElement('div');\r\n this.elRippleContainerTemplate.classList.add('ui-ripple-container');\r\n this.elRippleTemplate = document.createElement('div');\r\n this.elRippleTemplate.classList.add('ui-ripple-wave');\r\n\r\n this.elRippleContainerTemplateClone = <HTMLElement>this.elRippleContainerTemplate.cloneNode(true);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(e) {\r\n if (!this.isIE) {\r\n ripples = document.querySelectorAll('.ui-ripple-wave').length;\r\n\r\n if (!this.rippleDisable && !this.element.nativeElement.hasAttribute('disabled') && ripples < maxRipples) {\r\n const elementWidth = this.element.nativeElement.offsetWidth;\r\n const elementHeight = this.element.nativeElement.offsetHeight;\r\n\r\n const isIcon = this.element.nativeElement.classList.contains('icon');\r\n const isFab = this.element.nativeElement.classList.contains('fab');\r\n const isRounded = this.element.nativeElement.classList.contains('ripple-rounded');\r\n\r\n if (isIcon || isFab || isRounded) {\r\n this.elRippleContainerTemplateClone.style.borderRadius = '50%';\r\n }\r\n this.elRippleContainerTemplateClone.style.width = elementWidth + 'px';\r\n this.elRippleContainerTemplateClone.style.height = elementHeight + 'px';\r\n\r\n this.element.nativeElement.appendChild(this.elRippleContainerTemplateClone);\r\n\r\n const elRippleTemplateClone = <HTMLElement>this.elRippleTemplate.cloneNode(true);\r\n\r\n const isElementHorizontal = elementWidth > elementHeight;\r\n\r\n let finalWidth;\r\n let finalHeight;\r\n let finalTop;\r\n let finalLeft;\r\n\r\n if (isElementHorizontal) {\r\n finalWidth = elementWidth * 3;\r\n finalHeight = elementWidth * 3;\r\n } else {\r\n finalWidth = elementHeight * 3;\r\n finalHeight = elementHeight * 3;\r\n }\r\n\r\n finalTop = -(finalWidth / 2);\r\n finalLeft = -(finalWidth / 2);\r\n\r\n elRippleTemplateClone.style.width = finalWidth + 'px';\r\n elRippleTemplateClone.style.height = finalHeight + 'px';\r\n\r\n const mousePos = this.getMousePosition(e);\r\n const elementPos = UiElement.position(this.element.nativeElement);\r\n\r\n const pos = {\r\n y: mousePos.y - elementPos.top,\r\n x: mousePos.x - elementPos.left\r\n };\r\n\r\n if (isIcon || isFab || isRounded) {\r\n finalTop = finalTop + (elementWidth / 2);\r\n finalLeft = finalLeft + (elementWidth / 2);\r\n } else {\r\n finalTop = finalTop + pos.y;\r\n finalLeft = finalLeft + pos.x;\r\n }\r\n\r\n elRippleTemplateClone.style.top = finalTop + 'px';\r\n elRippleTemplateClone.style.left = finalLeft + 'px';\r\n\r\n this.elRippleContainerTemplateClone.insertBefore(elRippleTemplateClone, this.elRippleContainerTemplateClone.firstChild);\r\n\r\n this.elRippleContainerTemplateClone.classList.add('pressed');\r\n\r\n UiElement.animate(this.elRippleContainerTemplateClone, 'border-spacing', 0, 1, 800, null, (tick) => {\r\n elRippleTemplateClone.style.transform = `scale(${tick})`;\r\n });\r\n\r\n ripples++;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseup')\r\n onMouseup() {\r\n if (!this.isIE) {\r\n debounce(() => {\r\n this.eraseRipples(this);\r\n }, 800, true)();\r\n }\r\n }\r\n\r\n @HostListener('mouseout')\r\n onMouseout() {\r\n if (!this.isIE) {\r\n debounce(() => {\r\n this.eraseRipples(this);\r\n }, 2000, true)();\r\n }\r\n }\r\n\r\n eraseRipples(thiss?) {\r\n thiss.elRippleContainerTemplateClone.classList.remove('pressed');\r\n\r\n const elRipples = thiss.elRippleContainerTemplateClone.children;\r\n\r\n const len = elRipples.length;\r\n\r\n ripples = len;\r\n\r\n for (let i = 0; i < len; i++) {\r\n const elRipple = <HTMLElement>elRipples[i];\r\n if (elRipple) {\r\n const elementOpacity = elRipple.style.opacity || '1';\r\n\r\n if (elementOpacity === '1') {\r\n UiElement.animate(elRipple, 'opacity', 1, 0, 800, () => {\r\n try {\r\n elRipple.parentNode.removeChild(elRipple);\r\n ripples--;\r\n } catch (e) {\r\n }\r\n if (!ripples) {\r\n try {\r\n thiss.elRippleContainerTemplateClone.parentNode.removeChild(thiss.elRippleContainerTemplateClone);\r\n } catch (e) {\r\n }\r\n }\r\n }, null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getMousePosition(e?) {\r\n const pos = {\r\n y: undefined,\r\n x: undefined\r\n };\r\n\r\n if (e.originalEvent && e.originalEvent.touches !== undefined) {\r\n pos.y = e.originalEvent.touches[0].pageY;\r\n pos.x = e.originalEvent.touches[0].pageX;\r\n } else if (e.pageX) {\r\n pos.y = e.pageY;\r\n pos.x = e.pageX;\r\n } else if (e && e.touches !== undefined) {\r\n pos.y = e.touches[0].pageY;\r\n pos.x = e.touches[0].pageX;\r\n }\r\n\r\n return pos;\r\n }\r\n}\r\n","import {\r\n Component, OnInit, Input, DoCheck, KeyValueDiffers, Output, EventEmitter, OnChanges,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-smart-list',\r\n templateUrl: 'smart-list.component.html',\r\n styleUrls: ['smart-list.component.scss']\r\n})\r\n\r\nexport class UiSmartListComponent implements OnInit, DoCheck, OnChanges {\r\n @Input() model: any;\r\n @Input('default-item') defaultItem: any;\r\n @Input('auto-delete-exception') autoDeleteException: any;\r\n @Output() modelChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n list: any[];\r\n differ: any;\r\n objDiffer: { string?: any };\r\n currentFocusedElementIndex: any;\r\n\r\n constructor(private differs: KeyValueDiffers, public element: ElementRef) {\r\n this.differ = differs.find([]).create();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.defaultItem) {\r\n this.defaultItem = {};\r\n }\r\n this.list = [Object.assign({}, this.defaultItem)];\r\n if (!this.model) {\r\n console.error('Você precisa declarar a model no seu componente');\r\n }\r\n this.objDiffer = {};\r\n this.list.forEach((elt, i) => {\r\n this.objDiffer[i] = this.differs.find(elt).create();\r\n });\r\n this.model.forEach((item) => {\r\n this.list.push(item);\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n let wasChanged = false;\r\n\r\n this.list.forEach((elt, i) => {\r\n let objDiffer = this.objDiffer[i];\r\n if (!objDiffer) {\r\n objDiffer = this.objDiffer[i] = this.differs.find(elt).create();\r\n }\r\n const objChanges = objDiffer.diff(elt);\r\n if (objChanges) {\r\n wasChanged = true;\r\n objChanges.forEachChangedItem((elt2) => {\r\n if (!elt2.currentValue && typeof elt2.currentValue !== 'number' && typeof elt2.currentValue !== 'boolean' && !elt[this.autoDeleteException]) {\r\n delete elt[elt2.key];\r\n }\r\n });\r\n\r\n if (elt && this.model.indexOf(elt) < 0 && (Object.keys(elt).length > Object.keys(this.defaultItem).length)) {\r\n this.model.push(elt);\r\n }\r\n\r\n if (elt && (Object.keys(elt).length === Object.keys(this.defaultItem).length) && equals(elt, this.defaultItem) && this.model.length && this.model.indexOf(elt) > -1 && !elt[this.autoDeleteException]) {\r\n this.model.splice(this.model.indexOf(elt), 1);\r\n }\r\n }\r\n });\r\n\r\n if (wasChanged) {\r\n this.newItem();\r\n }\r\n }\r\n\r\n newItem() {\r\n let found = 0;\r\n\r\n this.list.forEach((item) => {\r\n if (item && (Object.keys(item).length <= Object.keys(this.defaultItem).length) && equals(item, this.defaultItem)) {\r\n found++;\r\n const element = this.list[this.list.indexOf(item)];\r\n this.list.splice(this.list.indexOf(item), 1);\r\n this.list.splice(this.list.length, 0, element);\r\n }\r\n });\r\n\r\n if (!found) {\r\n this.list.push(Object.assign({}, this.defaultItem));\r\n } else {\r\n setTimeout(() => {\r\n this.list.splice(this.list.length - 1, 1);\r\n this.newItem();\r\n });\r\n }\r\n }\r\n\r\n remove(i) {\r\n Object.keys(this.list[i]).forEach((key) => {\r\n if (!Object.keys(this.defaultItem).includes(key)) {\r\n delete this.list[i][key];\r\n } else {\r\n this.list[i][key] = this.defaultItem[key];\r\n }\r\n });\r\n this.ngDoCheck();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.model && changes.model.currentValue) {\r\n if (changes.model.currentValue.length) {\r\n changes.model.currentValue.forEach((item) => {\r\n if (this.list && this.list.indexOf(item) === -1) {\r\n this.list.push(item);\r\n }\r\n });\r\n } else if (changes.model.currentValue && changes.model.previousValue) {\r\n this.list = [Object.assign({}, this.defaultItem)];\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction equals(x, y) {\r\n return JSON.stringify(x) === JSON.stringify(y);\r\n}\r\n","import {Component, ElementRef, Inject, AfterViewInit} from '@angular/core';\r\nimport {UiSmartListComponent} from '../smart-list.component';\r\nimport {UiElementRef} from '../../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-smart-list-item',\r\n templateUrl: '../smart-list.component.html'\r\n})\r\n\r\nexport class UiSmartListItemComponent implements AfterViewInit {\r\n constructor(@Inject(UiSmartListComponent) private parent: UiSmartListComponent, private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const self = this;\r\n const inputs = this.element.nativeElement.querySelectorAll('input');\r\n for (let i = 0; i < inputs.length; i++) {\r\n const el = inputs[i];\r\n el.addEventListener('focus', e => {\r\n this.onFocus(e, self);\r\n });\r\n\r\n el.addEventListener('blur', e => {\r\n this.onBlur(e, self);\r\n });\r\n }\r\n }\r\n\r\n onFocus(event, self) {\r\n const el = event.target;\r\n\r\n const elItem = new UiElementRef(el).closest('ui-smart-list-item');\r\n const newIndex = Array.prototype.indexOf.call(self.parent.element.nativeElement.children, elItem.nativeElement);\r\n self.parent.currentFocusedElementIndex = newIndex > -1 ? newIndex : self.parent.currentFocusedElementIndex;\r\n }\r\n\r\n onBlur(event, self) {\r\n setTimeout(() => {\r\n const target = new UiElementRef(event.target);\r\n if (!target.closest('body').nativeElement) {\r\n setTimeout(() => {\r\n self.parent.element.nativeElement.children[self.parent.currentFocusedElementIndex].querySelector('input').focus();\r\n }, 100);\r\n }\r\n });\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\n\r\nlet timeout: any;\r\nconst bars: any[] = [];\r\nconst defaults: {} = {\r\n duration: 5000,\r\n center: false,\r\n actionText: null\r\n};\r\n\r\n@Injectable()\r\nexport class UiSnackbar {\r\n static barsChange: EventEmitter<any> = new EventEmitter();\r\n\r\n static show(bar) {\r\n bar = Object.assign({}, defaults, bar);\r\n bars.push(bar);\r\n if (bars.length === 1) {\r\n this.timerBar(bar);\r\n }\r\n this.barsChange.emit(bars);\r\n }\r\n\r\n static hide() {\r\n if (bars.length) {\r\n const snackbar = document.querySelector('ui-snackbar-container > ui-snackbar');\r\n if (!snackbar) {\r\n return;\r\n }\r\n\r\n snackbar.classList.add('leave');\r\n setTimeout(() => {\r\n clearTimeout(timeout);\r\n this.finishTimeout();\r\n }, 280);\r\n }\r\n }\r\n\r\n private static timerBar(bar) {\r\n if (bars.length) {\r\n this.elevateFAB();\r\n\r\n if (bar.duration !== Infinity) {\r\n timeout = setTimeout(() => {\r\n const firstSnackbar = document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0];\r\n if (firstSnackbar) {\r\n document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0].classList.add('leave');\r\n }\r\n setTimeout(() => this.finishTimeout(), 280);\r\n }, bar.duration);\r\n }\r\n }\r\n };\r\n\r\n private static finishTimeout() {\r\n bars.shift();\r\n this.setTranslateFAB(0, false);\r\n if (bars.length) {\r\n this.timerBar(bars[0]);\r\n }\r\n this.barsChange.emit(bars);\r\n }\r\n\r\n public static elevateFAB() {\r\n setTimeout(() => {\r\n let snackHeight;\r\n if (window.innerWidth <= 764) {\r\n snackHeight = document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0].clientHeight;\r\n } else {\r\n snackHeight = 0;\r\n }\r\n this.setTranslateFAB(snackHeight, true);\r\n });\r\n }\r\n\r\n private static setTranslateFAB(translate, addClass) {\r\n let fabs;\r\n if (window.innerWidth <= 764) {\r\n fabs = document.querySelectorAll('.ui-fab-container');\r\n } else {\r\n fabs = document.querySelectorAll('.ui-fab-container.scrolled');\r\n }\r\n\r\n [].forEach.call(document.querySelectorAll('.ui-fab-container'), (fab) => {\r\n fab.classList.remove('elevating-snack');\r\n fab.style.transform = '';\r\n });\r\n\r\n [].forEach.call(fabs, (fab) => {\r\n fab.classList[addClass ? 'add' : 'remove']('elevating-snack');\r\n if (translate) {\r\n fab.style.transform = `translateY(-${translate}px)`;\r\n } else {\r\n fab.style.transform = '';\r\n }\r\n });\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {UiSnackbar} from './snackbar.provider';\r\n\r\n@Component({\r\n selector: 'ui-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss']\r\n})\r\nexport class UiSnackbarComponent {\r\n\r\n @Input() bar;\r\n\r\n constructor() {\r\n }\r\n\r\n hide() {\r\n UiSnackbar.hide();\r\n }\r\n}\r\n","import {AfterViewInit, Component} from '@angular/core';\r\nimport {UiSnackbar} from './snackbar.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-snackbar-container',\r\n templateUrl: './snackbar-container.component.html',\r\n styleUrls: ['./snackbar-container.component.scss']\r\n})\r\nexport class UiSnackbarContainerComponent implements AfterViewInit {\r\n\r\n bars: any[];\r\n\r\n constructor() {\r\n UiSnackbar.barsChange.subscribe((value) => {\r\n this.bars = value;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n UiElement.on(window, 'resize', () => {\r\n if (this.bars && this.bars.length) {\r\n UiSnackbar.elevateFAB();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {Component, AfterViewInit, ElementRef, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-switch',\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiSwitchComponent implements AfterViewInit {\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelectorAll('input')[0];\r\n\r\n input.classList.add('ui-switch');\r\n\r\n const switchShell = '<div class=\"switch-cover\"><div class=\"track\"></div><div class=\"thumb-container\"><div class=\"thumb\"></div></div></div>';\r\n\r\n input.insertAdjacentHTML('afterend', switchShell);\r\n }\r\n\r\n}\r\n","import {Component, AfterViewInit, ViewEncapsulation, ElementRef} from '@angular/core';\r\n\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n // styleUrls: ['./toolbar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiToolbarComponent implements AfterViewInit {\r\n\r\n constructor(private element: ElementRef) {\r\n UiElement.on(window, 'scroll resize', (e) => {\r\n if (this.element.nativeElement.classList.contains('elevate-on-scroll')) {\r\n const header = this.element.nativeElement.querySelectorAll('header')[0];\r\n const scroll = (window.scrollY || window.pageYOffset) * 3.6;\r\n\r\n if (this.element.nativeElement.classList.contains('size-2x')) {\r\n if (e.type === 'scroll' && scroll < 97) {\r\n this.element.nativeElement.classList.add('notransition');\r\n header.style.paddingBottom = (102 - scroll) + 'px';\r\n header.style.height = (162 - (scroll)) + 'px';\r\n setTimeout(() => {\r\n this.element.nativeElement.classList.remove('notransition');\r\n }, 500);\r\n } else {\r\n header.style.paddingBottom = '';\r\n header.style.height = '';\r\n }\r\n\r\n if (scroll > 97) {\r\n header.style.zIndex = 3;\r\n this.element.nativeElement.classList.add('scrolled');\r\n } else {\r\n header.style.zIndex = 2;\r\n this.element.nativeElement.classList.remove('scrolled');\r\n }\r\n } else {\r\n if ((window.scrollY || window.pageYOffset) > 1) {\r\n this.element.nativeElement.classList.add('scrolled');\r\n } else {\r\n this.element.nativeElement.classList.remove('scrolled');\r\n }\r\n }\r\n }\r\n });\r\n\r\n // let form: any = document.querySelectorAll('form');\r\n // if (form.length) {\r\n // form = <HTMLElement>form[0];\r\n // const input = form.querySelectorAll('input')[0];\r\n // input.addEventListener('focus', () => {\r\n // form.classList.add('open');\r\n // });\r\n // input.addEventListener('blur', () => {\r\n // form.classList.remove('open');\r\n // });\r\n // }\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n","import {Injectable, EventEmitter} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\nlet mainToolbar: HTMLElement;\r\nlet defaultBreakpoint: any;\r\nconst change: EventEmitter<any> = new EventEmitter();\r\n\r\nconst sizes: any[] = [480, 600, 840, 960, 1280, 1440, 1600];\r\n\r\n@Injectable()\r\nexport class UiToolbarService {\r\n sharedValue: String;\r\n change: EventEmitter<any>;\r\n\r\n constructor() {\r\n this.change = change;\r\n }\r\n\r\n public get() {\r\n return this.sharedValue;\r\n }\r\n\r\n public set(sharedValue: String) {\r\n this.sharedValue = sharedValue;\r\n\r\n this.change.emit(sharedValue);\r\n }\r\n\r\n public registerMainToolbar(element: any) {\r\n mainToolbar = <HTMLElement>element;\r\n defaultBreakpoint = [];\r\n sizes.forEach(size => {\r\n if (mainToolbar.classList.contains(`elevate-on-s${size}`)) {\r\n defaultBreakpoint.push(size);\r\n }\r\n });\r\n }\r\n\r\n public getMainToolbar(): HTMLElement {\r\n if (!mainToolbar) {\r\n console.error('Você não registrou um toolbar principal.');\r\n } else {\r\n return mainToolbar;\r\n }\r\n }\r\n\r\n public activateExtendedToolbar(breakpoint?: any) {\r\n if (!mainToolbar) {\r\n return;\r\n }\r\n\r\n if (breakpoint) {\r\n if (!sizes.includes(breakpoint)) {\r\n console.error(`O tamanho do \"breakpoint\" tem que ser um dos tamanhos suportados: ${sizes.join(', ')}`);\r\n } else {\r\n sizes.forEach(size => this.getMainToolbar().classList.remove(`elevate-on-s${size}`));\r\n this.getMainToolbar().classList.add(`elevate-on-s${breakpoint}`);\r\n }\r\n }\r\n\r\n this.getMainToolbar().classList.add('size-2x');\r\n\r\n const header = this.getMainToolbar().querySelectorAll('header')[0];\r\n header.style.transition = 'all 280ms';\r\n setTimeout(() => {\r\n header.style.transition = '';\r\n UiElement.trigger(window, 'scroll');\r\n }, 280);\r\n }\r\n\r\n public deactivateExtendedToolbar() {\r\n if (!mainToolbar) {\r\n return;\r\n }\r\n\r\n sizes.forEach(size => this.getMainToolbar().classList.remove(`elevate-on-s${size}`));\r\n defaultBreakpoint.forEach(size => this.getMainToolbar().classList.add(`elevate-on-s${size}`));\r\n\r\n this.getMainToolbar().classList.remove('size-2x');\r\n this.getMainToolbar().classList.remove('scrolled');\r\n\r\n const header = this.getMainToolbar().querySelectorAll('header')[0];\r\n header.style.transition = 'all 280ms';\r\n header.style.height = '';\r\n header.style.paddingBottom = '';\r\n setTimeout(() => {\r\n header.style.transition = '';\r\n }, 280);\r\n\r\n UiElement.trigger(window, 'scroll');\r\n }\r\n\r\n public activateTransparentToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.add('transparent');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.add(auxiliarClass);\r\n }\r\n }\r\n\r\n public deactivateTransparentToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.remove('transparent');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.remove(auxiliarClass);\r\n }\r\n }\r\n\r\n public activateElevatingToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.add('elevate-on-scroll');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.add(auxiliarClass);\r\n }\r\n }\r\n\r\n public deactivateElevatingToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.remove('elevate-on-scroll');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.remove(auxiliarClass);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nexport function _window(): any {\r\n // return the global native browser window object\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class UiWindowRef {\r\n static nativeWindow(): any {\r\n return _window();\r\n }\r\n}\r\n","export function checkDate(value: any): any {\r\n value = value.replace(/[^\\w\\s!\\/]/gi, '');\r\n if (!/^[\\d, \\/]+$/.test(value)) {\r\n return false;\r\n }\r\n\r\n const splittedDate: string[] = value.split('/');\r\n\r\n if (splittedDate.length !== 3) {\r\n return false;\r\n }\r\n\r\n let dayIndex: any;\r\n let monthIndex: any;\r\n let yearIndex: any;\r\n let mask: any = 'd/M/yy';\r\n\r\n mask = mask.split('/');\r\n for (let i = 0; i < 3; i++) {\r\n if (mask[i].indexOf('d') > -1) {\r\n dayIndex = i;\r\n }\r\n if (mask[i].indexOf('M') > -1) {\r\n monthIndex = i;\r\n }\r\n if (mask[i].indexOf('y') > -1) {\r\n yearIndex = i;\r\n }\r\n }\r\n\r\n if (isNaN(dayIndex) || isNaN(monthIndex) || isNaN(yearIndex)) {\r\n return false;\r\n }\r\n\r\n const date: any = splittedDate[dayIndex];\r\n const month: any = splittedDate[monthIndex];\r\n const year: any = splittedDate[yearIndex];\r\n\r\n if (!date || !month || !year) {\r\n return false;\r\n }\r\n if (month < 1 || month > 12) {\r\n return false;\r\n }\r\n if (year.length < 4) {\r\n return false;\r\n }\r\n\r\n const dateCheck: number = new Date(year, month, 0).getDate();\r\n if (date > dateCheck || date < 1) {\r\n return false;\r\n }\r\n\r\n return new Date(year, month - 1, date);\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\n\r\nimport { isDate } from 'rxjs/internal/util/isDate';\r\n\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { checkDate } from './check-date';\r\n\r\n@Directive({\r\n selector: '[uiMaskDate][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskDateDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskDateDirective),\r\n multi: true\r\n }, DatePipe]\r\n})\r\nexport class UiMaskDateDirective implements ControlValueAccessor, Validator, OnChanges, AfterViewInit, OnInit {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: any;\r\n maxlength = 10;\r\n regex = /^\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d$/g;\r\n regexiso = /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z|(((\\+|\\-)[0-1][0-9]):([0-5][0-9])))?$/g;\r\n symbolsPositions: number[] = [2, 5];\r\n dateFormatsList = [\r\n {\r\n format: 'dd/MM/yyyy',\r\n maxlength: 10,\r\n regex: /^(\\d{2}\\/){2}\\d{4}$/g,\r\n symbolsPositions: [2, 5]\r\n },\r\n {\r\n format: 'dd/MM',\r\n maxlength: 5,\r\n regex: /^(\\d{2})\\/(\\d{2})$/g,\r\n symbolsPositions: [2]\r\n },\r\n {\r\n format: 'MM/yyyy',\r\n maxlength: 7,\r\n regex: /^(\\d{2})\\/(\\d{4})$/g,\r\n symbolsPositions: [2]\r\n },\r\n {\r\n format: 'dd/MM/yy',\r\n maxlength: 8,\r\n regex: /^(\\d{2}\\/){2}\\d{2}$/g,\r\n symbolsPositions: [2, 5]\r\n },\r\n {\r\n format: 'MM/yy',\r\n maxlength: 5,\r\n regex: /^(\\d{2})\\/(\\d{2})$/g,\r\n symbolsPositions: [2]\r\n }\r\n ];\r\n\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() ngModel: any;\r\n @Input() dateFormat: string;\r\n @Input() day = '01'; // Dia padrão\r\n @Input() year: string = (new Date().getFullYear()).toString(); // Ano Padrão\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public datePipe: DatePipe) {\r\n }\r\n\r\n ngOnInit() {\r\n this.validaDateFormat();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n\r\n this.ngModel = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : this.ngModel;\r\n\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input && rawValue) {\r\n this.elementRef.nativeElement.value = this.format(this.datePipe.transform(this.ngModel, this.dateFormat));\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = checkDate(this.getCorrectValue(this.format(rawValue))) || this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.format(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(date: string): string {\r\n if (!date) {\r\n return '';\r\n }\r\n\r\n date = date.toString().replace(/[^0-9]+/g, '');\r\n if (date.length > this.symbolsPositions[0]) {\r\n date = date.substring(0, this.symbolsPositions[0]) + '/' + date.substring(this.symbolsPositions[0]);\r\n }\r\n if (date.length > this.symbolsPositions[1]) {\r\n date = date.substring(0, this.symbolsPositions[1]) + '/' + date.substring(this.symbolsPositions[1], this.maxlength - 1);\r\n }\r\n return date.substring(0, this.maxlength);\r\n }\r\n\r\n /**\r\n * Verifica se o formato da data é válido\r\n */\r\n validaDateFormat() {\r\n if (!this.dateFormat) { // Caso não seja passado nenhum parametro, coloca o default\r\n this.dateFormat = 'dd/MM/yyyy';\r\n return;\r\n }\r\n\r\n let valid = false;\r\n\r\n this.dateFormatsList.forEach(item => {\r\n if (item.format === this.dateFormat) {\r\n this.maxlength = item.maxlength;\r\n this.regex = item.regex;\r\n this.symbolsPositions = item.symbolsPositions;\r\n valid = true;\r\n }\r\n });\r\n\r\n if (!valid) {\r\n console.error('Formato de data não suportado, tente algum destes: [\"dd/MM/yyyy\", \"dd/MM\", \"MM/yyyy\", \"dd/MM/yy\", \"MM/yy\"]');\r\n }\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (changes.minDate && !changes.minDate.firstChange) {\r\n this.minDate = changes.minDate.currentValue && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n if (changes.maxDate && !changes.maxDate.firstChange) {\r\n this.maxDate = changes.maxDate.currentValue && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n if ((changes.minDate && !changes.minDate.firstChange) || (changes.maxDate && !changes.maxDate.firstChange)) {\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n }\r\n\r\n /**\r\n * Retorna o valor formatado corretamente p/ uma data válida\r\n * @param value { string } valor da view\r\n */\r\n getCorrectValue(value: string) {\r\n const test = this.regex.test(value);\r\n\r\n if (this.dateFormat === 'MM/yyyy' && test) {\r\n return `${this.day}/${value}`;\r\n }\r\n\r\n if (this.dateFormat === 'dd/MM' && test) {\r\n return `${value}/${this.year}`;\r\n }\r\n\r\n if (this.dateFormat === 'dd/MM/yy' && test) {\r\n const valueSplitted = value.split('/');\r\n return `${valueSplitted[0]}/${valueSplitted[1]}/20${valueSplitted[2]}`;\r\n }\r\n\r\n if (this.dateFormat === 'MM/yy' && test) {\r\n const valueSplitted = value.split('/');\r\n return `${this.day}/${valueSplitted[0]}/20${valueSplitted[1]}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n const value = this.ngModel && this.regexiso.test(this.ngModel) ? new Date(this.ngModel) : this.ngModel;\r\n const dateControl = isDate(control.value) ? control.value : new Date(control.value);\r\n\r\n if (value && (!isDate(value) || !checkDate(value.toLocaleDateString('pt-BR')))) {\r\n return { parse: true };\r\n }\r\n\r\n if (value && (isDate(value) || checkDate(value.toLocaleDateString('pt-BR')))) {\r\n dateControl.setHours(0, 0, 0, 0);\r\n\r\n if (this.minDate && isDate(this.minDate)) {\r\n this.minDate.setHours(0, 0, 0, 0);\r\n\r\n if (dateControl.getTime() < this.minDate.getTime()) {\r\n return { minDate: true };\r\n }\r\n }\r\n if (this.maxDate && isDate(this.maxDate)) {\r\n this.maxDate.setHours(0, 0, 0, 0);\r\n\r\n if (dateControl.getTime() > this.maxDate.getTime()) {\r\n return { maxDate: true };\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown')\r\n onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n}\r\n","import {OnDestroy, ChangeDetectorRef, Pipe, PipeTransform} from '@angular/core';\r\nimport {AsyncPipe} from '@angular/common';\r\nimport {Observable, of, timer} from 'rxjs/index';\r\nimport {repeatWhen, takeWhile, map, flatMap} from 'rxjs/internal/operators';\r\n\r\n@Pipe({\r\n name: 'uiTimeAgo',\r\n pure: false\r\n})\r\nexport class UiTimeAgoPipe implements PipeTransform, OnDestroy {\r\n private async: AsyncPipe;\r\n private isDestroyed = false;\r\n private value: Date;\r\n private timer: Observable<string>;\r\n\r\n private textBefore: string;\r\n private textAfter: string;\r\n private isMinified: boolean;\r\n private isHence: boolean;\r\n\r\n constructor(ref: ChangeDetectorRef) {\r\n this.async = new AsyncPipe(ref);\r\n }\r\n\r\n public transform(obj: any, textBefore: string = '', textAfter: string = '', isMinified: boolean, isHence: boolean): any {\r\n this.textBefore = textBefore;\r\n this.textAfter = textAfter;\r\n this.isMinified = isMinified;\r\n this.isHence = isHence;\r\n\r\n if (obj == null) {\r\n return '';\r\n }\r\n\r\n if (!(obj instanceof Date)) {\r\n try {\r\n obj = new Date(obj);\r\n } catch (e) {\r\n throw new Error('UiTimeAgo só funciona com datas');\r\n }\r\n }\r\n\r\n this.value = obj;\r\n\r\n if (!this.timer) {\r\n this.timer = this.getObservable();\r\n }\r\n\r\n return this.async.transform(this.timer);\r\n }\r\n\r\n public now(): Date {\r\n return new Date();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.isDestroyed = true;\r\n }\r\n\r\n private getObservable() {\r\n return of(1).pipe(\r\n repeatWhen(notifications => {\r\n return notifications.pipe(\r\n flatMap((x, i) => {\r\n const sleep = i < 60 ? 1000 : 30000;\r\n return timer(sleep);\r\n })\r\n );\r\n }),\r\n takeWhile(_ => !this.isDestroyed),\r\n map((x, i) => this.elapsed())\r\n );\r\n }\r\n\r\n private elapsed(): string {\r\n const now = this.now().getTime();\r\n\r\n let delta = (now - this.value.getTime()) / 1000;\r\n\r\n if (this.isHence) {\r\n delta = delta * -1;\r\n }\r\n\r\n if (delta < 60) {\r\n const realDelta = Math.floor(delta);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}s`;\r\n } else {\r\n timeAgo = `${realDelta} segundo${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else if (delta < 3600) {\r\n const realDelta = Math.floor(delta / 60);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}m`;\r\n } else {\r\n timeAgo = `${realDelta} minuto${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else if (delta < 86400) {\r\n const realDelta = Math.floor(delta / 3600);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}h`;\r\n } else {\r\n timeAgo = `${realDelta} hora${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else {\r\n const realDelta = Math.floor(delta / 86400);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}d`;\r\n } else {\r\n timeAgo = `${realDelta} dia${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({selector: '[uiListItem]'})\r\nexport class UiListItemDirective implements AfterViewInit {\r\n @Input() uiListItem;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n const itemActive = this.uiListItem.querySelectorAll('.ui-list-item.active')[0];\r\n if (itemActive) {\r\n this.element.nativeElement.classList.toggle('expanded');\r\n this.uiListItem.classList.toggle('expanded');\r\n toggleExpand(this.uiListItem, this.element.nativeElement);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.element.nativeElement.classList.toggle('expanded');\r\n this.uiListItem.classList.toggle('expanded');\r\n toggleExpand(this.uiListItem, this.element.nativeElement);\r\n }\r\n}\r\n\r\nfunction toggleExpand(elementList, elementTrigger) {\r\n if (!elementList.style.height || elementList.style.height === '0px') {\r\n const height = getHeight(elementList);\r\n elementList.style.height = (elementList.style.maxHeight ? (height > elementList.style.maxHeight.replace('px', '') ? elementList.style.maxHeight : height + 'px') : height + 'px');\r\n let listItemGroup = UiElement.closest(elementList, '.ui-list-item-group');\r\n while (listItemGroup) {\r\n listItemGroup.style.height = getHeight(listItemGroup) + height + 'px';\r\n if (listItemGroup) {\r\n listItemGroup = UiElement.closest(listItemGroup, '.ui-list-item-group');\r\n }\r\n }\r\n } else {\r\n const backupHeight = parseInt(elementList.style.height.replace('px', ''), 10);\r\n elementList.style.height = '';\r\n\r\n let listItemGroup = UiElement.closest(elementList, '.ui-list-item-group');\r\n while (listItemGroup) {\r\n listItemGroup.style.height = getHeight(listItemGroup) - backupHeight + 'px';\r\n if (listItemGroup) {\r\n listItemGroup = UiElement.closest(listItemGroup, '.ui-list-item-group');\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const list = UiElement.closest(elementList, '.ui-list');\r\n if (list) {\r\n let overflow = list.parentNode;\r\n if (UiElement.is(overflow, 'ui-list')) {\r\n overflow = overflow.parentNode;\r\n }\r\n UiElement.animate(elementList, 'border-spacing', overflow.scrollTop, elementTrigger.offsetTop, 500, null, (tick) => {\r\n overflow.scrollTop = tick;\r\n });\r\n }\r\n }, 500);\r\n}\r\n\r\nfunction getHeight(element) {\r\n return Array.prototype.reduce.call(element.childNodes, (p, c) => p + (c.offsetHeight || 0), 0);\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCpf'\r\n})\r\nexport class UiCpfPipe implements PipeTransform {\r\n\r\n transform(value: any, mask?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if (!mask) {\r\n value = value.padStart(11, '0');\r\n }\r\n\r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + '.' + value.substring(3);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + '.' + value.substring(7);\r\n }\r\n if (value.length > 11) {\r\n value = value.substring(0, 11) + '-' + value.substring(11);\r\n }\r\n if (value.length > 14) {\r\n value = value.substring(0, 14);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges, Output } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiCpfPipe } from './cpf.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskCpf][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCpfDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCpfDirective),\r\n multi: true\r\n }, UiCpfPipe]\r\n})\r\nexport class UiMaskCpfDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n beforeSelIndex;\r\n control: FormControl;\r\n input: boolean;\r\n loaded: boolean;\r\n symbolsPositions: number[] = [3, 7, 11, 14];\r\n onChange: Function;\r\n onTouched: Function;\r\n @Input() ngModel: any;\r\n @Input() padOnPaste: boolean = true;\r\n @Input('uiMaskCpf') uiMaskCpf;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cpfPipe: UiCpfPipe) {}\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n if (!this.input) {\r\n this.ngModel = this.ngModel ? this.ngModel.toString().padStart(11, '0') : '';\r\n this.elementRef.nativeElement.value = this.cpfPipe.transform(this.ngModel, true);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cpfPipe.transform(this.elementRef.nativeElement.value, true);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 11);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (this.input) {\r\n if (control.value && this.format(control.value).length < 11) {\r\n return {parse: true};\r\n }\r\n }\r\n\r\n if (this.uiMaskCpf === true && control.value && !this.cpfIsValid(control.value)) {\r\n return {parse: true};\r\n }\r\n\r\n this.input = false;\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n cpfIsValid(cpf) {\r\n if (cpf && cpf.length === 11) {\r\n let sum;\r\n let rest;\r\n sum = 0;\r\n if (cpf === '00000000000') {\r\n return false;\r\n }\r\n for (let i = 1; i <= 9; i++) {\r\n sum = sum + parseInt(cpf.substring(i - 1, i), 10) * (11 - i);\r\n }\r\n rest = (sum * 10) % 11;\r\n if ((rest === 10) || (rest === 11)) {\r\n rest = 0;\r\n }\r\n if (rest !== parseInt(cpf.substring(9, 10), 10)) {\r\n return false;\r\n }\r\n sum = 0;\r\n for (let i = 1; i <= 10; i++) {\r\n sum = sum + parseInt(cpf.substring(i - 1, i), 20) * (12 - i);\r\n }\r\n rest = (sum * 10) % 11;\r\n if ((rest === 10) || (rest === 11)) {\r\n rest = 0;\r\n }\r\n return rest === parseInt(cpf.substring(10, 11), 10);\r\n }\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = this.format(rawValue) !== this.ngModel;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n padLeft(event: any): void {\r\n if (this.padOnPaste) {\r\n event.preventDefault();\r\n\r\n let data: any;\r\n\r\n if (window['clipboardData']) {\r\n data = window['clipboardData'];\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n data = event.clipboardData;\r\n }\r\n\r\n const text = data.getData('text').toString().replace(/[^0-9]+/g, '');\r\n this.renderViaInput(text.padStart(11, '0'));\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCnpj'\r\n})\r\nexport class UiCnpjPipe implements PipeTransform {\r\n\r\n transform(value: any, mask?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if(!mask) {\r\n value = value.padStart(14, '0');\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + '.' + value.substring(2);\r\n }\r\n if (value.length > 6) {\r\n value = value.substring(0, 6) + '.' + value.substring(6);\r\n }\r\n if (value.length > 10) {\r\n value = value.substring(0, 10) + '/' + value.substring(10);\r\n }\r\n if (value.length > 15) {\r\n value = value.substring(0, 15) + '-' + value.substring(15);\r\n }\r\n if (value.length > 18) {\r\n value = value.substring(0, 18);\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges,\r\n Output\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCnpjPipe} from './cnpj.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCnpj][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCnpjDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCnpjDirective),\r\n multi: true\r\n }, UiCnpjPipe]\r\n})\r\nexport class UiMaskCnpjDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [2, 6, 10, 15, 18];\r\n @Input() ngModel: any;\r\n @Input() padOnPaste: boolean = true;\r\n @Input('uiMaskCnpj') uiMaskCnpj;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cnpjPipe: UiCnpjPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.ngModel = this.ngModel ? this.ngModel.toString().padStart(14, '0') : '';\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.ngModel, true);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.elementRef.nativeElement.value, true);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 14);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (this.input) {\r\n if (control.value && this.format(control.value).length < 14) {\r\n return {parse: true};\r\n }\r\n }\r\n\r\n if (this.uiMaskCnpj === true && control.value && !this.cnpjIsValid(control.value)) {\r\n return {parse: true};\r\n }\r\n\r\n this.input = false;\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n cnpjIsValid(cnpj) {\r\n if (!(+cnpj) || cnpj.length !== 14) {\r\n return false;\r\n }\r\n let size = cnpj.length - 2;\r\n let numbers = cnpj.substring(0, size);\r\n const digits = cnpj.substring(size);\r\n let sum = 0;\r\n let pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += numbers.charAt(size - i) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n let result = sum % 11 < 2 ? 0 : 11 - sum % 11;\r\n if (result.toString() !== digits.charAt(0)) {\r\n return false;\r\n }\r\n\r\n size = size + 1;\r\n numbers = cnpj.substring(0, size);\r\n sum = 0;\r\n pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += numbers.charAt(size - i) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\r\n\r\n return result.toString() === digits.charAt(1);\r\n }\r\n\r\n @HostListener('keydown')\r\n onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = this.format(rawValue) !== this.ngModel;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n padLeft(event: any): void {\r\n if (this.padOnPaste) {\r\n event.preventDefault();\r\n\r\n let data: any;\r\n\r\n if (window['clipboardData']) {\r\n data = window['clipboardData'];\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n data = event.clipboardData;\r\n }\r\n\r\n const text = data.getData('text').toString().replace(/[^0-9]+/g, '');\r\n this.renderViaInput(text.padStart(14, '0'));\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCep'\r\n})\r\nexport class UiCepPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 5) {\r\n value = value.substring(0, 5) + '-' + value.substring(5);\r\n }\r\n if (value.length > 9) {\r\n value = value.substring(0, 9);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCepPipe} from './cep.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCep][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCepDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCepDirective),\r\n multi: true\r\n }, UiCepPipe]\r\n})\r\nexport class UiMaskCepDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [5, 9];\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cepPipe: UiCepPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 8);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 8) {\r\n return {parse: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCepNovo'\r\n})\r\nexport class UiCepNovoPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^a-zA-Z0-9]+/g, '');\r\n if (value.length > 5) {\r\n value = value.substring(0, 5) + '-' + value.substring(5);\r\n }\r\n if (value.length > 9) {\r\n value = value.substring(0, 9);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCepNovoPipe} from './cep-novo.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCepNovo][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCepNovoDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCepNovoDirective),\r\n multi: true\r\n }, UiCepNovoPipe]\r\n})\r\nexport class UiMaskCepNovoDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [5, 9];\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cepPipe: UiCepNovoPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^a-zA-Z0-9]+/g, '');\r\n return value.substring(0, 8);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 8) {\r\n return {parse: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiPhone'\r\n})\r\nexport class UiPhonePipe implements PipeTransform {\r\n\r\n transform(value: any, type?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n \r\n\r\n if (type === 'ddi') { // MASK COM PADRAO DDI\r\n if (value.length > 0) {\r\n value = '+' + value;\r\n } \r\n if (value[1] === '1') { // US +1 (000) 000-000-0000\r\n \r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + ' (' + value.substring(2);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + ') ' + value.substring(7);\r\n }\r\n if (value.length > 12) {\r\n value = value.substring(0, 12) + '-' + value.substring(12);\r\n }\r\n if (value.length > 17) {\r\n value = value.substring(0, 17);\r\n }\r\n } else { // BR +55 (00) 00000-0000 \r\n \r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + ' (' + value.substring(3);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + ') ' + value.substring(7);\r\n }\r\n if (value.length > 12 && value.length < 18) {\r\n value = value.substring(0, 13) + '-' + value.substring(13);\r\n } else if (value.length > 17) {\r\n value = value.substring(0, 14) + '-' + value.substring(14);\r\n }\r\n if (value.length > 17) {\r\n value = value.substring(0, 19);\r\n }\r\n } \r\n } else { // MASK COM PADRÃO DEFAULT (00) 00000-0000 \r\n if (value.length > 0) {\r\n value = '(' + value;\r\n }\r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + ') ' + value.substring(3);\r\n }\r\n if (value.length > 9 && value.length < 14) {\r\n value = value.substring(0, 9) + '-' + value.substring(9);\r\n } else if (value.length > 13) {\r\n value = value.substring(0, 10) + '-' + value.substring(10);\r\n }\r\n if (value.length > 15) {\r\n value = value.substring(0, 15);\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiPhonePipe } from './phone.pipe';\r\nimport { UiElement } from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskPhone][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskPhoneDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskPhoneDirective),\r\n multi: true\r\n }, UiPhonePipe]\r\n})\r\nexport class UiMaskPhoneDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges, OnInit {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[];\r\n maxLength: number;\r\n @Input() ngModel: any;\r\n @Input() uiMaskPhone: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public phonePipe: UiPhonePipe) {\r\n }\r\n\r\n ngOnInit() {\r\n switch (this.uiMaskPhone) {\r\n case 'ddi':\r\n this.symbolsPositions = [0, 12, 14, 17];\r\n break;\r\n default:\r\n this.maxLength = 11;\r\n this.symbolsPositions = [0, 9, 11, 14];\r\n }\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.uiMaskPhone === 'ddi' && rawValue) {\r\n const firstChar = rawValue.toString().substring(0, 1);\r\n this.maxLength = firstChar === '1' ? 11 : 13;\r\n }\r\n\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n this.elementRef.nativeElement.value = this.phonePipe.transform(this.ngModel, this.uiMaskPhone || '');\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.phonePipe.transform(this.elementRef.nativeElement.value, this.uiMaskPhone || '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, this.maxLength);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < this.maxLength - 1) {\r\n return { parse: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n let afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n\r\n if (this.uiMaskPhone === 'ddi') {\r\n if (this.ngModel && this.ngModel.substring(0, 1) === '1') {\r\n this.maxLength = 11;\r\n if (afterSelIndex === 3) {\r\n this.beforeSelIndex = 4;\r\n afterSelIndex = 5;\r\n }\r\n } else {\r\n this.maxLength = 13;\r\n if (afterSelIndex === 4) {\r\n this.beforeSelIndex = 5;\r\n afterSelIndex = 6;\r\n }\r\n }\r\n\r\n if (afterSelIndex === 8) {\r\n this.beforeSelIndex = 9;\r\n afterSelIndex = 10;\r\n }\r\n } else {\r\n if (afterSelIndex === 4) {\r\n this.beforeSelIndex = 5;\r\n afterSelIndex = 6;\r\n }\r\n }\r\n\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Component, Input, OnChanges, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list',\r\n templateUrl: 'list.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class UiListComponent implements OnChanges {\r\n @Input() list: any;\r\n @Input('item-model') itemModel: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.list) {\r\n console.error('É obrigatório fornecer a model \"list\"');\r\n return false;\r\n }\r\n\r\n if (!this.itemModel) {\r\n this.itemModel = {\r\n id: 'id',\r\n parentId: 'parentId',\r\n name: 'name',\r\n url: 'url',\r\n icon: 'icon'\r\n };\r\n }\r\n\r\n this.list.forEach(item => {\r\n Object.keys(this.itemModel).forEach((key) => {\r\n const old_key = this.itemModel[key];\r\n renameObjectKey(item, old_key, key);\r\n });\r\n });\r\n\r\n this.list = iteratePristineMenu(this.list);\r\n }\r\n}\r\n\r\nfunction iteratePristineMenu(allItems) {\r\n const remainingList = [];\r\n const newMenu = allItems.filter(function (item) {\r\n if (item.parentId !== null) {\r\n remainingList.push(item);\r\n }\r\n return item.parentId === null;\r\n });\r\n return iterateOptionsMenu(newMenu, remainingList)[0];\r\n}\r\n\r\nfunction iterateOptionsMenu(list, fullList) {\r\n let remainingList;\r\n for (let i = 0; i < list.length; i++) {\r\n remainingList = [];\r\n const target = list[i];\r\n const subMenus = fullList.filter(item => {\r\n if (item.parentId !== target.id) {\r\n remainingList.push(item);\r\n }\r\n return item.parentId === target.id;\r\n });\r\n if (subMenus.length) {\r\n target.childs = subMenus;\r\n remainingList = iterateOptionsMenu(target.childs, remainingList)[1];\r\n }\r\n }\r\n return [list, remainingList];\r\n}\r\n\r\nfunction renameObjectKey(obj, oldName, newName) {\r\n if (!obj.hasOwnProperty(oldName) || oldName === newName) {\r\n return false;\r\n }\r\n\r\n obj[newName] = obj[oldName];\r\n delete obj[oldName];\r\n return true;\r\n}\r\n","import {Component, Input, OnInit, OnChanges, Output, EventEmitter} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list-items',\r\n templateUrl: 'items.component.html'\r\n})\r\n\r\nexport class UiListItemsComponent implements OnInit {\r\n @Input() items: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list-item',\r\n templateUrl: 'item.component.html'\r\n})\r\n\r\nexport class UiListItemComponent implements OnInit {\r\n @Input() item: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-slider[value]',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss']\r\n})\r\nexport class UiSliderComponent implements OnInit, AfterViewInit, OnChanges {\r\n multiHandle: boolean;\r\n valueModel;\r\n mouseDown: boolean;\r\n percentageBlock: number;\r\n valueElement: HTMLElement;\r\n getPercentageLeft: Function;\r\n getPercentageRight: Function;\r\n\r\n @Input() hideBalloon: boolean;\r\n @Input() disabled: boolean;\r\n @Input() begin: number;\r\n @Input() end: number;\r\n @Input() direction: string;\r\n @Input() value: number;\r\n @Input() range: number[];\r\n @Input() color: string;\r\n @Input('text-color') textColor: string;\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @Input('view-format') viewFormat: Function;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n if (!this.viewFormat) {\r\n this.viewFormat = value => value;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.percentageBlock = 100 / (this.range.length - 1);\r\n this.value = this.value || this.range[0];\r\n this.valueModel = this.closestNumber(this.value).index || this.range[0];\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.value && !changes.value.firstChange && !this.mouseDown) {\r\n this.valueModel = this.closestNumber(changes.value.currentValue).index;\r\n }\r\n if (changes.color && !changes.color.firstChange && !this.mouseDown) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.textColor && !changes.textColor.firstChange && !this.mouseDown) {\r\n this.textColor = changes.textColor.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.valueElement = this.elementRef.nativeElement.querySelectorAll('.thumb-container')[0];\r\n this.registerEventsListeners();\r\n }\r\n\r\n registerEventsListeners() {\r\n UiElement.on(this.valueElement, 'mousedown touchstart', () => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.mouseDown = true;\r\n this.toggleTackOn(true);\r\n this.toggleBalloon(true, 0);\r\n\r\n this.valueElement.classList.add('active');\r\n });\r\n\r\n UiElement.on(document, 'mouseup touchend', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.valueElement.classList.remove('active');\r\n\r\n if (this.mouseDown && (e.pageX || e.originalEvent)) {\r\n this.change(e, true);\r\n }\r\n\r\n this.mouseDown = false;\r\n this.toggleBalloon();\r\n this.toggleTackOn();\r\n });\r\n\r\n UiElement.on(document, 'mousemove touchmove', e => {\r\n if (!this.mouseDown || this.disabled) {\r\n return;\r\n }\r\n\r\n this.change(e);\r\n });\r\n }\r\n\r\n change(event, mouseUp?) {\r\n const currentPosition = event.pageX || (event.touches ? event.touches[0].pageX : null) || (event.changedTouches ? event.changedTouches[0].pageX : null);\r\n let position = this.getPositionInIndex(currentPosition);\r\n const newValue = this.closestNumber(this.range[Math.round(position)]);\r\n\r\n if (mouseUp) {\r\n position = newValue.index;\r\n }\r\n\r\n this.value = newValue.value;\r\n this.valueModel = position;\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n toggleBalloon(active?, right?) {\r\n const balloon = this.elementRef.nativeElement.querySelectorAll('.balloon-wrap')[0];\r\n\r\n if (balloon) {\r\n if (active) {\r\n balloon.style.right = typeof right === 'number' ? right : '';\r\n balloon.classList.add('active');\r\n } else {\r\n balloon.classList.remove('active');\r\n }\r\n }\r\n }\r\n\r\n toggleTackOn(active?) {\r\n const trackOn = this.elementRef.nativeElement.querySelectorAll('.track.on')[0];\r\n const method = active ? 'add' : 'remove';\r\n trackOn.classList[method]('no-transition');\r\n }\r\n\r\n getPositionInIndex(position) {\r\n const trackOff = this.elementRef.nativeElement.querySelectorAll('.track.off')[0];\r\n position -= UiElement.position(trackOff).left;\r\n position = position / trackOff.clientWidth * 100;\r\n position = position > 100 ? 100 : position < 0 ? 0 : position;\r\n return ((this.range.length - 1) / 100) * position;\r\n }\r\n\r\n closestNumber(number) {\r\n let current = this.range[0];\r\n let difference = Math.abs(number - current);\r\n let itemIndex = 0;\r\n let newDifference;\r\n for (let i = 0; i < this.range.length; i++) {\r\n newDifference = Math.abs(number - this.range[i]);\r\n if (newDifference < difference) {\r\n difference = newDifference;\r\n current = this.range[i];\r\n itemIndex = i;\r\n }\r\n }\r\n\r\n return {index: itemIndex, value: current};\r\n }\r\n\r\n getPercentage() {\r\n return this.percentageBlock * this.valueModel;\r\n }\r\n\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-slider[begin][end]',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss']\r\n})\r\nexport class UiSliderMultiHandleComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n multiHandle: boolean;\r\n beginModel;\r\n endModel;\r\n direction: string;\r\n mouseDown: boolean;\r\n percentageBlock: number;\r\n beginElement: HTMLElement;\r\n endElement: HTMLElement;\r\n thumbs: HTMLElement;\r\n bodyElement: HTMLElement;\r\n htmlElement: HTMLElement;\r\n getPercentage: Function;\r\n\r\n @Input() hideBalloon: boolean;\r\n @Input() disabled: boolean;\r\n @Input() begin: number;\r\n @Input() end: number;\r\n @Input() value;\r\n @Input() range: number[];\r\n @Input() color: string;\r\n @Input('text-color') textColor: string;\r\n @Output() beginChange: EventEmitter<number> = new EventEmitter();\r\n @Output() endChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @Input('view-format') viewFormat: Function;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n if (!this.viewFormat) {\r\n this.viewFormat = value => value;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.bodyElement = document.body;\r\n this.htmlElement = <HTMLElement>document.documentElement;\r\n\r\n this.multiHandle = true;\r\n this.percentageBlock = 100 / (this.range.length - 1);\r\n this.begin = this.begin || this.range[0];\r\n this.end = this.end || this.range[0];\r\n this.beginModel = this.closestNumber(this.begin).index || this.range[0];\r\n this.endModel = this.closestNumber(this.end).index || this.range[0];\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.begin && !changes.begin.firstChange && !this.mouseDown) {\r\n this.beginModel = this.closestNumber(this.begin).index;\r\n }\r\n if (changes.end && !changes.end.firstChange && !this.mouseDown) {\r\n this.endModel = this.closestNumber(this.end).index;\r\n }\r\n if (changes.color && !changes.color.firstChange && !this.mouseDown) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.textColor && !changes.textColor.firstChange && !this.mouseDown) {\r\n this.textColor = changes.textColor.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.thumbs = this.elementRef.nativeElement.querySelectorAll('.thumb-container');\r\n this.beginElement = this.thumbs[0];\r\n this.endElement = this.thumbs[1];\r\n\r\n this.registerEventsListeners();\r\n }\r\n\r\n registerEventsListeners() {\r\n UiElement.on(this.beginElement, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.direction = 'begin';\r\n this.toggleBalloon(true);\r\n\r\n this.beginElement.classList.add('active');\r\n this.endElement.classList.remove('active');\r\n });\r\n\r\n UiElement.on(this.thumbs, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.mouseDown = true;\r\n this.toggleTackOn(true);\r\n UiElement.disableScroll();\r\n });\r\n\r\n UiElement.on(this.endElement, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.direction = 'end';\r\n this.toggleBalloon(true, 0);\r\n\r\n this.endElement.classList.add('active');\r\n this.beginElement.classList.remove('active');\r\n });\r\n\r\n UiElement.on(document, 'mouseup touchend', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.beginElement.classList.remove('active');\r\n this.endElement.classList.remove('active');\r\n\r\n if (this.mouseDown && (e.pageX || e.originalEvent)) {\r\n this.change(e, true);\r\n }\r\n\r\n this.mouseDown = false;\r\n this.toggleBalloon();\r\n this.toggleTackOn();\r\n\r\n UiElement.enableScroll();\r\n\r\n });\r\n\r\n UiElement.on(document, 'mousemove touchmove', e => {\r\n if (!this.mouseDown || this.disabled) {\r\n return;\r\n }\r\n this.change(e);\r\n });\r\n }\r\n\r\n change(event, mouseUp?) {\r\n const currentPosition = event.pageX || (event.touches ? event.touches[0].pageX : null) || (event.changedTouches ? event.changedTouches[0].pageX : null);\r\n let position = this.getPositionInIndex(currentPosition);\r\n const newValue = this.closestNumber(this.range[Math.round(position)]);\r\n\r\n if (mouseUp) {\r\n position = newValue.index;\r\n }\r\n\r\n if (this.direction === 'begin' && this.beginModel >= this.endModel) {\r\n this[`${this.direction}Model`] = newValue.index;\r\n this.direction = 'end';\r\n UiElement.trigger(this.endElement, 'mousedown');\r\n this.endElement.focus();\r\n } else if (this.direction === 'end' && this.endModel < this.beginModel) {\r\n this[`${this.direction}Model`] = newValue.index;\r\n this.direction = 'begin';\r\n UiElement.trigger(this.beginElement, 'mousedown');\r\n this.beginElement.focus();\r\n }\r\n\r\n this[this.direction] = newValue.value;\r\n this[`${this.direction}Model`] = position;\r\n this[`${this.direction}Change`].emit(this[this.direction]);\r\n\r\n }\r\n\r\n toggleBalloon(active?, right?) {\r\n const balloon = this.elementRef.nativeElement.querySelectorAll('.balloon-wrap')[0];\r\n\r\n if (balloon) {\r\n if (active) {\r\n balloon.style.right = typeof right === 'number' ? right : '';\r\n balloon.classList.add('active');\r\n } else {\r\n balloon.classList.remove('active');\r\n }\r\n }\r\n }\r\n\r\n toggleTackOn(active?) {\r\n const trackOn = this.elementRef.nativeElement.querySelectorAll('.track.on')[0];\r\n const method = active ? 'add' : 'remove';\r\n trackOn.classList[method]('no-transition');\r\n }\r\n\r\n getPositionInIndex(position) {\r\n const trackOff = this.elementRef.nativeElement.querySelectorAll('.track.off')[0];\r\n position -= UiElement.position(trackOff).left;\r\n position = position / trackOff.clientWidth * 100;\r\n position = position > 100 ? 100 : position < 0 ? 0 : position;\r\n return ((this.range.length - 1) / 100) * position;\r\n }\r\n\r\n closestNumber(number) {\r\n let current = this.range[0];\r\n let difference = Math.abs(number - current);\r\n let itemIndex = 0;\r\n let newDifference;\r\n for (let i = 0; i < this.range.length; i++) {\r\n newDifference = Math.abs(number - this.range[i]);\r\n if (newDifference < difference) {\r\n difference = newDifference;\r\n current = this.range[i];\r\n itemIndex = i;\r\n }\r\n }\r\n\r\n return {index: itemIndex, value: current};\r\n }\r\n\r\n getPercentageLeft() {\r\n return this.percentageBlock * this.beginModel;\r\n }\r\n\r\n getPercentageRight() {\r\n return this.percentageBlock * Math.abs(this.endModel - (this.range.length - 1));\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiInfiniteLoadService {\r\n readyToCheck: boolean;\r\n func;\r\n element;\r\n listener;\r\n\r\n constructor() {\r\n }\r\n\r\n register(element, func, orientation = 'vertical') {\r\n this.element = element;\r\n this.func = func;\r\n\r\n this.listener = () => {\r\n if (orientation === 'vertical') {\r\n const heightOffset = (this.element.scrollHeight || document.documentElement.scrollHeight) - (this.element.clientHeight || this.element.innerHeight);\r\n const scrollTop = this.element.scrollTop || this.element.scrollY;\r\n const safeZone = heightOffset * 0.1;\r\n\r\n if (scrollTop >= heightOffset - safeZone) {\r\n func();\r\n }\r\n } else {\r\n const widthOffset = (this.element.scrollWidth || document.documentElement.scrollWidth) - (this.element.clientWidth || this.element.innerWidth);\r\n const scrollLeft = this.element.scrollLeft || this.element.scrollX;\r\n const safeZone = widthOffset * 0.1;\r\n\r\n if (scrollLeft >= widthOffset - safeZone) {\r\n func();\r\n }\r\n }\r\n };\r\n\r\n this.element.addEventListener('scroll', this.listener);\r\n this.readyToCheck = true;\r\n }\r\n\r\n destroy() {\r\n this.element.removeEventListener('scroll', this.listener);\r\n this.readyToCheck = false;\r\n }\r\n}\r\n\r\n","import {AfterViewInit, Directive, ElementRef, Output, DoCheck, Input, EventEmitter} from '@angular/core';\r\nimport {UiInfiniteLoadService} from './infinite-load.service';\r\n\r\n@Directive({\r\n selector: '[uiInfiniteLoad]'\r\n})\r\nexport class UiInfiniteLoadDirective implements AfterViewInit, DoCheck {\r\n @Output() uiInfiniteLoad: EventEmitter<any> = new EventEmitter();\r\n @Input() orientation;\r\n\r\n constructor(private element: ElementRef, private infiniteLoad: UiInfiniteLoadService) {\r\n this.orientation = 'vertical';\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.infiniteLoad.register(this.element.nativeElement, () => {\r\n this.uiInfiniteLoad.emit();\r\n }, this.orientation);\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.infiniteLoad.listener) {\r\n this.infiniteLoad.listener();\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss']\r\n})\r\nexport class UiAutocompleteComponent {\r\n ngModel: any;\r\n list: any[];\r\n loading: boolean;\r\n primary: string;\r\n secondary: string;\r\n accentClass: boolean;\r\n focusedIndex: number;\r\n hideNotFound: boolean;\r\n selectChange: EventEmitter<any>;\r\n loadMore: EventEmitter<any>;\r\n\r\n selectItem(item) {\r\n this.selectChange.emit(item);\r\n }\r\n\r\n loadMoreEmit() {\r\n setTimeout(() => this.loadMore.emit());\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnChanges, OnInit,\r\n Output, forwardRef\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiAutocompleteComponent} from './autocomplete.component';\r\nimport {FormControl, NG_VALIDATORS} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiAutocomplete]',\r\n providers: [{\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiAutocompleteDirective),\r\n multi: true\r\n }]\r\n})\r\nexport class UiAutocompleteDirective implements AfterViewInit, OnInit, OnChanges {\r\n\r\n @Input() list: any[];\r\n @Input() ngModel: any;\r\n @Input() modelValue: any;\r\n @Input('model-property') modelProperty: any;\r\n @Input() select: Function;\r\n @Input() primary: string;\r\n @Input() secondary: string;\r\n @Input() loading: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input() hideNotFound: boolean;\r\n @Input() hidePanel: boolean;\r\n @Output() loadMore: EventEmitter<any> = new EventEmitter();\r\n @Output() loadMoreEmmiter: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Output() modelValueChange: EventEmitter<any> = new EventEmitter();\r\n @Output() selectChange: EventEmitter<any> = new EventEmitter();\r\n @Output() requiredChange: EventEmitter<any> = new EventEmitter();\r\n\r\n focusedIndex: number;\r\n accentClass: boolean;\r\n componentRef: any;\r\n componentElement: HTMLElement;\r\n wrapElement: HTMLElement;\r\n control: FormControl;\r\n onChange: Function;\r\n onTouched: Function;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngOnInit() {\r\n this.selectChange.subscribe(item => {\r\n this.ngModel = item[this.primary] || item;\r\n this.modelValue = this.modelProperty && item && typeof item === 'object' ? item[this.modelProperty] : item;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.modelValueChange.emit(this.modelValue);\r\n if (this.select) {\r\n this.select(item);\r\n }\r\n this.elementRef.nativeElement.blur();\r\n this.close();\r\n });\r\n\r\n }\r\n\r\n public ngAfterViewInit() {\r\n UiElement.on(window, 'click resize', e => {\r\n if (this.componentRef) {\r\n if (!(UiElement.is(e.target, '.wrap-autocomplete') || UiElement.closest(e.target, '.wrap-autocomplete') || UiElement.is(e.target, '.overlay') || e.target === this.elementRef.nativeElement)) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges(changes) {\r\n if (changes.ngModel && !changes.ngModel.firstChange && this.componentRef) {\r\n this.componentRef.instance.ngModel = changes.ngModel.currentValue;\r\n }\r\n if (changes.list && !changes.list.firstChange && this.componentRef) {\r\n this.componentRef.instance.list = changes.list.currentValue;\r\n setTimeout(() => {\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + 1\r\n };\r\n this.setPosition(coordinate, this.componentElement);\r\n });\r\n }\r\n if (changes.loading && !changes.loading.firstChange && this.componentRef) {\r\n this.componentRef.instance.loading = changes.loading.currentValue;\r\n }\r\n }\r\n\r\n private createComponent() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiAutocompleteComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n }\r\n\r\n private getComponentAsElement(): HTMLElement {\r\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n private setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'list', 'primary', 'secondary', 'selectChange', 'loading', 'accentClass', 'loadMore', 'hideNotFound'];\r\n\r\n keysComponent.forEach(key => {\r\n componentRef.instance[key] = component[key];\r\n });\r\n }\r\n\r\n private render(element, coordinate): void {\r\n this.createWrapElement();\r\n this.wrapElement.appendChild(element);\r\n document.body.appendChild(this.wrapElement);\r\n\r\n\r\n setTimeout(() => {\r\n this.setPosition(coordinate, element);\r\n this.wrapElement.classList.add('open');\r\n });\r\n }\r\n\r\n private createWrapElement() {\r\n this.wrapElement = document.createElement('div');\r\n this.wrapElement.classList.add('wrap-autocomplete');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n\r\n if (this.themeClass) {\r\n this.wrapElement.classList.add(this.themeClass);\r\n }\r\n\r\n UiElement.css(this.wrapElement, 'top', 0);\r\n UiElement.css(this.wrapElement, 'left', 0);\r\n UiElement.css(this.wrapElement, 'visibility', 'hidden');\r\n UiElement.css(this.wrapElement, 'transition', 'none');\r\n this.wrapElement.appendChild(overlay);\r\n }\r\n\r\n private setFocusIndex(index) {\r\n this.componentRef.instance.focusedIndex = index;\r\n }\r\n\r\n private close() {\r\n if (this.wrapElement) {\r\n this.wrapElement.classList.remove('open');\r\n setTimeout(() => {\r\n if (this.componentRef) {\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n this.componentRef = null;\r\n this.wrapElement.remove();\r\n }\r\n }, 280);\r\n }\r\n }\r\n\r\n private initialize() {\r\n this.focusedIndex = undefined;\r\n\r\n this.accentClass = this.elementRef.nativeElement.classList.contains('accent');\r\n\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + 1\r\n };\r\n\r\n if (!this.componentRef) {\r\n this.createComponent();\r\n this.setInstances(this, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.componentElement = this.getComponentAsElement();\r\n this.render(this.componentElement, coordinate);\r\n }\r\n }\r\n\r\n private setPosition(coordinate, element) {\r\n const wrap = element.querySelector('.suggestions-wrap');\r\n const maxHeightWrap = !!this.secondary ? 370 : 240;\r\n const horizontalCoveringArea = coordinate.x + wrap.clientWidth;\r\n const verticalCoveringArea = coordinate.y + (wrap.clientHeight > maxHeightWrap ? maxHeightWrap : wrap.clientHeight);\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (wrap.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = coordinate.y - ((wrap.clientHeight > maxHeightWrap ? maxHeightWrap : wrap.clientHeight) + this.elementRef.nativeElement.clientHeight) - 14; // 14 = label focus\r\n }\r\n\r\n UiElement.css(this.wrapElement, 'top', `${coordinate.y + this.elementRef.nativeElement.clientHeight}px`);\r\n UiElement.css(this.wrapElement, 'left', `${coordinate.x}px`);\r\n UiElement.css(this.wrapElement, 'width', `${this.elementRef.nativeElement.clientWidth}px`);\r\n UiElement.css(this.wrapElement, 'visibility', '');\r\n UiElement.css(this.wrapElement, 'transition', '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (this.elementRef.nativeElement.hasAttribute('required') && !control.value) {\r\n return {required: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @HostListener('input') onInput() {\r\n if (!(this.ngModel && this.modelValue) || (this.ngModel !== this.modelValue)) {\r\n this.modelValue = null;\r\n this.modelValueChange.emit(this.modelValue);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this.hidePanel) {\r\n return;\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.hidePanel) {\r\n return;\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n @HostListener('blur', ['$event']) onBlur(e) {\r\n if (!this.hidePanel && e.relatedTarget !== this.componentElement.querySelector('ui-card.suggestions')) {\r\n this.close();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeydown(e) {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n if (typeof this.focusedIndex === 'undefined') {\r\n this.focusedIndex = -1;\r\n }\r\n switch (e.which) {\r\n case 8:\r\n case 37:\r\n this.elementRef.nativeElement.focus();\r\n break;\r\n case 38:\r\n this.focusedIndex = !this.list.length ? null : this.focusedIndex ? this.focusedIndex - 1 : this.list.length - 1;\r\n this.setFocusIndex(this.focusedIndex);\r\n break;\r\n case 40:\r\n this.focusedIndex = !this.list.length ? null : this.list.length - 1 === this.focusedIndex ? 0 : this.focusedIndex + 1;\r\n this.setFocusIndex(this.focusedIndex);\r\n break;\r\n case 13:\r\n if (this.list && typeof this.focusedIndex === 'number' && this.focusedIndex !== -1) {\r\n this.selectChange.emit(this.list[this.focusedIndex]);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiMaskInteger][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskIntegerDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskIntegerDirective),\r\n multi: true\r\n }]\r\n})\r\nexport class UiMaskIntegerDirective implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit {\r\n loaded: boolean;\r\n input: boolean;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Input() uiMaskInteger: any;\r\n @Input() min: number;\r\n @Input() max: number;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n switch (this.uiMaskInteger) {\r\n case 'smallint':\r\n this.min = -32768;\r\n this.max = 32768;\r\n break;\r\n case 'bigint':\r\n this.min = -9223372036854775808;\r\n this.max = 9223372036854775807;\r\n break;\r\n case 'integer':\r\n this.min = -2147483648 ;\r\n this.max = 2147483647;\r\n break;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n const valueConverted = parseInt(this.ngModel, 10);\r\n this.elementRef.nativeElement.value = typeof this.ngModel === 'number' ? this.ngModel : !Number.isNaN(valueConverted) ? valueConverted : '';\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.ngModel || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n const newValue = value.toString().replace(/[^0-9]+/g, '');\r\n return newValue || undefined;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return {min: true};\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return {max: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const rawValue = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit\r\n} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tabs',\r\n templateUrl: 'tabs.component.html',\r\n styleUrls: ['tabs.component.scss']\r\n})\r\n/**/\r\nexport class UiTabsComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\r\n showLeftArrow: boolean;\r\n showRightArrow: boolean;\r\n onScroll;\r\n internetExplorer: boolean;\r\n\r\n @Input('infinite-load') infiniteLoad;\r\n @Input() watch;\r\n @Input() disabled;\r\n\r\n constructor(private element: ElementRef) {\r\n this.onScroll = () => this.tabsScroll(0);\r\n this.disabled = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.internetExplorer = navigator.userAgent.includes('Trident');\r\n }\r\n\r\n ngAfterViewInit() {\r\n const tabs = this.element.nativeElement.querySelectorAll('.tab');\r\n const indicator = this.element.nativeElement.querySelector('.indicator');\r\n\r\n for (let i = 0; i < tabs.length; i++) {\r\n if (tabs[i].classList.contains('disabled')) {\r\n tabs[i].classList.remove('disabled');\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.disabled.length; i++) {\r\n tabs[this.disabled[i]].classList.add('disabled');\r\n }\r\n\r\n const self = this;\r\n\r\n let timeout;\r\n\r\n function scrollToTab(tab, withoutAnimation?) {\r\n for (let i = 0; i < tabs.length; i++) {\r\n const tab2 = tabs[i];\r\n if (tab2 !== tab && tab2.classList.contains('selected')) {\r\n UiElement.css(indicator, 'left', UiElement.offset(tab2).left + 'px');\r\n UiElement.css(indicator, 'width', tab2.offsetWidth + 'px');\r\n tab2.classList.remove('selected');\r\n }\r\n }\r\n\r\n UiElement.css(indicator, 'left', UiElement.offset(tab).left + 'px');\r\n UiElement.css(indicator, 'width', tab.offsetWidth + 'px');\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n tab.classList.add('selected');\r\n UiElement.css(indicator, 'width', '');\r\n UiElement.css(indicator, 'left', '');\r\n }, 280);\r\n\r\n const overflow = self.element.nativeElement.querySelector('.overflow');\r\n\r\n self.tabsScroll(UiElement.offset(tab).left - overflow.scrollLeft, withoutAnimation);\r\n }\r\n\r\n for (let i = 0; i < tabs.length; i++) {\r\n const tab = tabs[i];\r\n this.element.nativeElement.addEventListener('click', (e) => {\r\n if (e.target === tab && !e.target.classList.contains('disabled')) {\r\n scrollToTab(tab);\r\n }\r\n });\r\n }\r\n\r\n const tabSelected = this.element.nativeElement.querySelector('.tab.first-selected');\r\n if (tabSelected) {\r\n scrollToTab(tabSelected, true);\r\n // tabSelected.nativeElement.click();\r\n }\r\n\r\n UiElement.trigger(window, 'scroll');\r\n UiElement.on(window, 'scroll resize', this.onScroll);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n setTimeout(() => {\r\n this.ngAfterViewInit();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(window, 'scroll resize', this.onScroll);\r\n }\r\n\r\n tabsScroll(value?, withoutAnimation?) {\r\n const overflow = this.element.nativeElement.querySelector('.overflow');\r\n\r\n let scrollLeft = overflow.scrollLeft;\r\n\r\n const maxScrollLeft = overflow.scrollWidth - overflow.clientWidth;\r\n\r\n const animationTiming = withoutAnimation || this.internetExplorer ? 1 : 280\r\n\r\n if (typeof value !== 'undefined') {\r\n UiElement.animate(overflow, 'borderSpacing', scrollLeft, scrollLeft + value, animationTiming, null, (tick) => {\r\n overflow.scrollLeft = tick;\r\n\r\n scrollLeft = overflow.scrollLeft;\r\n\r\n this.showLeftArrow = (scrollLeft > 0);\r\n this.showRightArrow = (scrollLeft < maxScrollLeft);\r\n });\r\n } else {\r\n this.showLeftArrow = (scrollLeft > 0);\r\n this.showRightArrow = (scrollLeft < maxScrollLeft);\r\n }\r\n\r\n if (!this.showRightArrow) {\r\n if (this.infiniteLoad) {\r\n this.infiniteLoad();\r\n }\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {UiElementRef} from '../../utils/providers/element-ref.provider';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tabs-pages',\r\n templateUrl: 'tabs-pages.component.html',\r\n styleUrls: ['tabs-pages.component.scss']\r\n})\r\n\r\nexport class UiTabsPagesComponent implements AfterViewInit {\r\n @Input() tabs: any;\r\n firstLoad: boolean;\r\n currentPage: number;\r\n timeOutTurnBack: any;\r\n @Input('enable-overflow') enableOverflow: boolean;\r\n @Output('onchangepage') onChangePage: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private element: ElementRef) {\r\n this.currentPage = 1;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.tabs) {\r\n const tabs = new UiElementRef(this.tabs.element.nativeElement).querySelector('.tab');\r\n\r\n let touchXMovement;\r\n let touchXStartPosition;\r\n let touchYMovement;\r\n let touchYStartPosition;\r\n let firstMovementCoord;\r\n let currentBannerIndex;\r\n let newPosition;\r\n\r\n const elBannerContainer = this.element.nativeElement.querySelector('.page-container');\r\n\r\n elBannerContainer.addEventListener('touchstart', (e) => {\r\n currentBannerIndex = tabs.indexOf(tabs.filter(tab => tab.is('.selected'))[0]);\r\n touchXStartPosition = e.touches[0].pageX;\r\n touchYStartPosition = e.touches[0].pageY;\r\n elBannerContainer.classList.add('no-transition');\r\n\r\n if (this.enableOverflow) {\r\n const pageContainer = new UiElementRef(this.element.nativeElement);\r\n\r\n const pages = pageContainer.querySelector('.page-container .page');\r\n for (let i = 0; i < pages.length; i++) {\r\n pages[i].css('height', '');\r\n }\r\n }\r\n });\r\n\r\n elBannerContainer.addEventListener('touchmove', (e) => {\r\n if (touchXStartPosition < 0 || touchXStartPosition > 40) {\r\n touchXMovement = touchXStartPosition - e.touches[0].pageX;\r\n touchYMovement = touchYStartPosition - e.touches[0].pageY;\r\n\r\n if (!firstMovementCoord) {\r\n if (touchXMovement > 20 || touchXMovement < -20) {\r\n firstMovementCoord = 'X';\r\n } else if (touchYMovement > 20 || touchYMovement < -20) {\r\n firstMovementCoord = 'Y';\r\n }\r\n }\r\n\r\n if (touchXMovement && firstMovementCoord === 'X') {\r\n UiElement.disableScroll();\r\n\r\n const i = currentBannerIndex;\r\n\r\n const isNegative = i > 0 ? -1 : 1;\r\n const currentPosition = (i * 100) * isNegative;\r\n\r\n const pages = this.element.nativeElement.querySelectorAll('.page-container .page');\r\n for (let i = 0; i < pages.length; i++) {\r\n const page = pages[i];\r\n newPosition = currentPosition - ((100 / page.clientWidth) * touchXMovement);\r\n page.style.transform = `translate(${newPosition}%)`;\r\n }\r\n }\r\n }\r\n });\r\n\r\n elBannerContainer.addEventListener('touchend', () => {\r\n elBannerContainer.classList.remove('no-transition');\r\n if (touchXMovement) {\r\n const newIndex = (Math.round(newPosition / 100) * -1);\r\n if (tabs[newIndex]) {\r\n tabs[newIndex].trigger('click');\r\n } else {\r\n this.pagesGoToPage();\r\n }\r\n }\r\n UiElement.enableScroll();\r\n firstMovementCoord = undefined;\r\n });\r\n }\r\n\r\n this.pagesGoToPage(1);\r\n }\r\n\r\n pagesGoToPage(nextPage?) {\r\n let tabs;\r\n if (this.tabs) {\r\n tabs = new UiElementRef(this.tabs.element.nativeElement).querySelector('.tab');\r\n } else {\r\n tabs = new UiElementRef(this.element.nativeElement).querySelector('.page');\r\n }\r\n\r\n if (tabs[nextPage - 1]) {\r\n const isNegative = (nextPage - 1) > 0 ? -1 : 1;\r\n const newPosition = (nextPage - 1) * 100 * isNegative;\r\n\r\n const pages = this.element.nativeElement.children[0].children;\r\n for (let i = 0; i < pages.length; i++) {\r\n const page = pages[i];\r\n page.style.transform = `translate(${newPosition}%)`;\r\n\r\n }\r\n } else {\r\n this.pagesGoToPage(tabs.indexOf(tabs.filter(tab => tab.is('.selected'))[0]) + 1);\r\n // TODO: Verificar se isso realmente funciona\r\n }\r\n\r\n const pageContainer = new UiElementRef(this.element.nativeElement);\r\n const elNextPage = new UiElementRef(this.element.nativeElement.children[0].children[nextPage - 1]);\r\n const pages = this.element.nativeElement.children[0].children;\r\n for (let i = 0; i < pages.length; i++) {\r\n if (nextPage - 1 === i) {\r\n const pageRef = new UiElementRef(pages[i]);\r\n pageRef.css('height', '');\r\n }\r\n }\r\n\r\n if (this.firstLoad) {\r\n const elCurrentPage = new UiElementRef(this.element.nativeElement.children[0].children[this.currentPage - 1]);\r\n pageContainer.css('height', elCurrentPage.nativeElement.clientHeight + 'px');\r\n } else {\r\n this.firstLoad = true;\r\n }\r\n if (elNextPage) {\r\n setTimeout(() => {\r\n pageContainer.css('height', elNextPage.nativeElement.clientHeight + 'px');\r\n\r\n clearTimeout(this.timeOutTurnBack);\r\n this.timeOutTurnBack = setTimeout(() => {\r\n pageContainer.css('height', '');\r\n\r\n for (let i = 0; i < pages.length; i++) {\r\n if (nextPage - 1 !== i) {\r\n const pageRef = new UiElementRef(pages[i]);\r\n pageRef.css('height', 0);\r\n }\r\n }\r\n }, 280);\r\n });\r\n }\r\n\r\n if (typeof nextPage !== 'undefined') {\r\n this.currentPage = nextPage;\r\n if (this.onChangePage) {\r\n setTimeout(() => {\r\n this.onChangePage.emit();\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, DoCheck, ElementRef, Input} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Directive({selector: '[uiLazyLoad][lazy-src]'})\r\nexport class UiLazyLoadDirective implements DoCheck {\r\n elementRef: any;\r\n visible: boolean;\r\n @Input('lazy-src') lazySrc: any;\r\n\r\n constructor(private element: ElementRef) {\r\n this.elementRef = new UiElementRef(element.nativeElement);\r\n this.elementRef.on('load', () => {\r\n this.elementRef.classList.add('loaded');\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this.visible && this.elementRef.isInViewport()) {\r\n this.visible = true;\r\n this.elementRef.attribute('src', this.lazySrc);\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-data-table',\r\n templateUrl: 'data-table.component.html'\r\n})\r\n\r\nexport class UiDataTableComponent implements OnInit {\r\n @ViewChild('tableFooter', { static: true }) tableFooter: any;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n const self = new UiElementRef(this.element.nativeElement);\r\n const tfoot = self.querySelector('tfoot');\r\n\r\n if (tfoot) {\r\n this.tableFooter.nativeElement.appendChild(tfoot.nativeElement);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { UiElementRef } from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-bottom-sheet',\r\n templateUrl: './bottom-sheet.component.html',\r\n styleUrls: ['./bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiBottomSheetComponent {\r\n @Input('card-size') cardSize: number;\r\n @ViewChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter();\r\n\r\n viewRef;\r\n opened;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n this.closeChange.emit();\r\n\r\n if (this.viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n if (this.viewRef) {\r\n setTimeout(() => {\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n this.viewRef.destroy();\r\n this.viewRef = null;\r\n }, 280);\r\n }\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n show(config?: any) {\r\n if (!this.viewRef) {\r\n const dialog = this;\r\n\r\n this.close();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n this.viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, config);\r\n }\r\n });\r\n }\r\n }\r\n\r\n open(element, config) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n setTimeout(() => {\r\n const card = element.querySelector('ui-card');\r\n card.className += ` ${this.elementRef.nativeElement.className}`;\r\n\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize) {\r\n card.style.maxWidth = config.cardSize + 'px';\r\n }\r\n if (!config.transparentOverlay && config.fabs) {\r\n config.fabs.classList.add('hide');\r\n }\r\n\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n // UiElement.disableScroll();\r\n });\r\n });\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, Input, ViewContainerRef} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiBottomSheetTrigger]'\r\n})\r\nexport class UiBottomSheetTriggerDirective implements AfterViewInit {\r\n viewRef: any;\r\n fabs: HTMLElement;\r\n @Input('trigger-events') triggerEvents: string;\r\n @Input('theme-class') themeClass: string;\r\n @Input('transparent-overlay') transparentOverlay: boolean;\r\n @Input('uiBottomSheetTrigger') bottomSheet;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.bottomSheet.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', () => {\r\n this.render();\r\n });\r\n }\r\n\r\n render() {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.bottomSheet.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode);\r\n }\r\n });\r\n }\r\n\r\n open(element) {\r\n setTimeout(() => {\r\n const card = element.querySelector('ui-card');\r\n card.className += ` ${this.bottomSheet.elementRef.nativeElement.className}`;\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (this.bottomSheet.cardSize) {\r\n card.style.maxWidth = this.bottomSheet.cardSize + 'px';\r\n }\r\n if (!this.transparentOverlay && this.fabs) {\r\n this.fabs.classList.add('hide');\r\n }\r\n\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n // UiElement.disableScroll();\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef;\r\n if (this.fabs) {\r\n this.fabs.classList.remove('hide');\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n // UiElement.enableScroll();\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output } from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiInputFile]',\r\n exportAs: 'uiInputFile'\r\n})\r\nexport class UiInputFileDirective {\r\n\r\n @Input() files: any;\r\n @Input() model: any;\r\n @Input() accept: string;\r\n @Input() read: Function;\r\n @Input() error: Function;\r\n @Input() fileChange: Function;\r\n @Input('max-size') maxSize: string;\r\n @Input('max-file-size') maxFileSize: string;\r\n @Output() filesChange: EventEmitter<any> = new EventEmitter();\r\n @Output() modelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n constructor(public element: ElementRef, public ngControl: NgControl) {\r\n }\r\n\r\n @HostListener('change', ['$event'])\r\n onChange(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n this.readFiles(e.target.files);\r\n }\r\n\r\n readFiles(files) {\r\n this.ngControl.control.markAsDirty();\r\n this.ngControl.control.setErrors(null);\r\n\r\n this.model = [];\r\n const accepts = this.accept ? this.accept.split(',') : [];\r\n const maxSize = this.maxSize ? this.toByte(this.maxSize) : null;\r\n const maxFileSize = this.maxFileSize ? this.toByte(this.maxFileSize) : null;\r\n\r\n let sum = 0;\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n sum += file.size;\r\n\r\n const validMaxFileSize = this.validateMaxSize(file.size, maxFileSize);\r\n const validMaxSize = this.validateMaxSize(sum, maxSize);\r\n const fileExtension = file.name.substring(file.name.lastIndexOf('.') + 1);\r\n const validType = this.validateType(file, fileExtension, accepts);\r\n\r\n if (validMaxFileSize) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {maxFileSize: true}));\r\n }\r\n\r\n if (!validType) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {accept: true}));\r\n }\r\n\r\n if (this.validateMaxSize(sum, maxSize)) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {maxSize: true}));\r\n }\r\n\r\n if (validType && !validMaxFileSize && !validMaxSize) {\r\n this.model.push({});\r\n this.modelChange.emit(this.model);\r\n this.readFile(file, this.model[i], i);\r\n } else if (this.error) {\r\n this.error(file, {\r\n type: !validType,\r\n maxSize: validMaxSize,\r\n maxFileSize: validMaxFileSize\r\n }, i);\r\n }\r\n }\r\n\r\n this.files = files;\r\n this.filesChange.emit(this.files);\r\n\r\n if (this.fileChange) {\r\n this.fileChange(this.files, this.ngControl.control.invalid);\r\n }\r\n\r\n this.element.nativeElement.value = ''; // Resetando value para próximos arquivos\r\n }\r\n\r\n validateType(file, extension, accepts): boolean {\r\n if (!accepts.length) {\r\n return true;\r\n }\r\n\r\n for (let j = 0; j < accepts.length; j++) {\r\n const accept = accepts[j].trim();\r\n const regex = accept.match(/^[^\\*]*\\*$/) ? new RegExp('^' + accept) : new RegExp('^' + accept + '$');\r\n\r\n if (file.type.match(regex) || extension.match(regex)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n validateMaxSize(size, maxSize): boolean {\r\n return (maxSize && size > maxSize);\r\n }\r\n\r\n toByte(sizeString: string) {\r\n sizeString = sizeString.toString();\r\n const unitMatch = sizeString.match(/[a-zA-Z]+/g);\r\n const unit = unitMatch ? unitMatch[0] : null;\r\n const sizeMatch = sizeString.match(/\\d+/);\r\n const unitSize = sizeMatch ? parseInt(sizeMatch[0], 10) : null;\r\n let size = unitSize;\r\n\r\n switch (unit) {\r\n case 'KB':\r\n size = unitSize * 1024;\r\n break;\r\n case 'MB':\r\n size = unitSize * Math.pow(1024, 2);\r\n break;\r\n case 'GB':\r\n size = unitSize * Math.pow(1024, 3);\r\n break;\r\n case 'TB':\r\n size = unitSize * Math.pow(1024, 4);\r\n break;\r\n case 'PB':\r\n size = unitSize * Math.pow(1024, 5);\r\n break;\r\n case 'EB':\r\n size = unitSize * Math.pow(1024, 6);\r\n break;\r\n case 'ZB':\r\n size = unitSize * Math.pow(1024, 7);\r\n break;\r\n case 'YB':\r\n size = unitSize * Math.pow(1024, 8);\r\n break;\r\n }\r\n return size;\r\n }\r\n\r\n readFile(file, data, index) {\r\n if (typeof (data) !== 'object') return;\r\n\r\n const reader = new FileReader();\r\n\r\n data.resolved = 'false';\r\n\r\n reader.onload = (e: any) => {\r\n data.result = e.target.result;\r\n data.resolved = true;\r\n this.modelChange.emit(this.model);\r\n this.read(file, data.result, index);\r\n };\r\n\r\n reader.onerror = (e: any) => {\r\n data.error = e.target.error;\r\n this.modelChange.emit(this.model);\r\n };\r\n\r\n reader.onprogress = (e: any) => {\r\n data.progress = {\r\n loaded: e.loaded,\r\n total: e.total,\r\n percent: Math.round((e.loaded / e.total) * 100)\r\n };\r\n this.modelChange.emit(this.model);\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnInit, Output} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Directive({selector: '[uiEllipsis]'})\r\nexport class UiEllipsisDirective implements OnInit {\r\n @Input() uiEllipsis: number;\r\n @Output() uiEllipsisChange: number;\r\n @Input('line-height') lineHeight: number;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n const elementRef = new UiElementRef(this.element.nativeElement);\r\n\r\n this.uiEllipsis = this.uiEllipsis || 1;\r\n this.lineHeight = this.lineHeight || 17;\r\n\r\n elementRef.css('-webkit-line-clamp', this.uiEllipsis);\r\n elementRef.css('max-height', (this.lineHeight * this.uiEllipsis) + 'px');\r\n elementRef.css('line-height', this.lineHeight + 'px');\r\n\r\n elementRef.on('mousemove', () => {\r\n if (elementRef.nativeElement.scrollHeight > elementRef.nativeElement.clientHeight) {\r\n elementRef.nativeElement.setAttribute('title', elementRef.nativeElement.innerText);\r\n } else {\r\n elementRef.nativeElement.removeAttribute('title');\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, Input, forwardRef} from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[required][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => UiRequiredDirective), multi: true }\r\n ]\r\n})\r\nexport class UiRequiredDirective implements Validator {\r\n @Input('required') maxLength: any;\r\n\r\n constructor() {}\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n\r\n const value = control.value;\r\n\r\n if (value && value.trim && !value.trim()) {\r\n return {\r\n required: true,\r\n uiMaxlength: false\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","const textBlack = 'rgba(0, 0, 0, .87)';\r\nconst textWhite = '#fff';\r\nconst colors: any[] = [{\r\n name: 'red'\r\n}, {\r\n name: 'pink'\r\n}, {\r\n name: 'purple'\r\n}, {\r\n name: 'deepPurple'\r\n}, {\r\n name: 'indigo'\r\n}, {\r\n name: 'blue'\r\n}, {\r\n name: 'lightBlue'\r\n}, {\r\n name: 'cyan'\r\n}, {\r\n name: 'teal'\r\n}, {\r\n name: 'green'\r\n}, {\r\n name: 'lightGreen'\r\n}, {\r\n name: 'lime'\r\n}, {\r\n name: 'yellow'\r\n}, {\r\n name: 'amber'\r\n}, {\r\n name: 'orange'\r\n}, {\r\n name: 'deepOrange'\r\n}, {\r\n name: 'brown'\r\n}, {\r\n name: 'grey'\r\n}, {\r\n name: 'blueGrey'\r\n}, {\r\n name: 'black',\r\n hideSlider: true\r\n}, {\r\n name: 'white',\r\n hideSlider: true,\r\n hasBorder: true\r\n}];\r\nconst palette: any = {\r\n red: {\r\n 50: {\r\n color: '#ffebee',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffcdd2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ef9a9a',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#e57373',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ef5350',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#f44336',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#e53935',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#d32f2f',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#c62828',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#b71c1c',\r\n text: textWhite\r\n }\r\n },\r\n pink: {\r\n 50: {\r\n color: '#fce4ec',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f8bbd0',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#f48fb1',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#f06292',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#ec407a',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#e91e63',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#d81b60',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#c2185b',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#ad1457',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#880e4f',\r\n text: textWhite\r\n }\r\n },\r\n purple: {\r\n 50: {\r\n color: '#f3e5f5',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#e1bee7',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ce93d8',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ba68c8',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#ab47bc',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#9c27b0',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#8e24aa',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#7b1fa2',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#6a1b9a',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#4a148c',\r\n text: textWhite\r\n }\r\n },\r\n deepPurple: {\r\n 50: {\r\n color: '#ede7f6',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#d1c4e9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#b39ddb',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#9575cd',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#7e57c2',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#673ab7',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#5e35b1',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#512da8',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#4527a0',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#311b92',\r\n text: textWhite\r\n }\r\n },\r\n indigo: {\r\n 50: {\r\n color: '#e8eaf6',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#c5cae9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#9fa8da',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#7986cb',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#5c6bc0',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#3f51b5',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#3949ab',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#303f9f',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#283593',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#1a237e',\r\n text: textWhite\r\n }\r\n },\r\n blue: {\r\n 50: {\r\n color: '#e3f2fd',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#bbdefb',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#90caf9',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#64b5f6',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#42a5f5',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#2196f3',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#1e88e5',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#1976d2',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#1565c0',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#0d47a1',\r\n text: textWhite\r\n }\r\n },\r\n lightBlue: {\r\n 50: {\r\n color: '#e1f5fe',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b3e5fc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#81d4fa',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4fc3f7',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#29b6f6',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#03a9f4',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#039be5',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#0288d1',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#0277bd',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#01579b',\r\n text: textWhite\r\n }\r\n },\r\n cyan: {\r\n 50: {\r\n color: '#e0f7fa',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b2ebf2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#80deea',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4dd0e1',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#26c6da',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#00bcd4',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#00acc1',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#0097a7',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#00838f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#006064',\r\n text: textWhite\r\n }\r\n },\r\n teal: {\r\n 50: {\r\n color: '#e0f2f1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b2dfdb',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#80cbc4',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4db6ac',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#26a69a',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#009688',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#00897b',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#00796b',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#00695c',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#004d40',\r\n text: textWhite\r\n }\r\n },\r\n green: {\r\n 50: {\r\n color: '#e8f5e9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#c8e6c9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#a5d6a7',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#81c784',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#66bb6a',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#4caf50',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#43a047',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#388e3c',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#2e7d32',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#1b5e20',\r\n text: textWhite\r\n }\r\n },\r\n lightGreen: {\r\n 50: {\r\n color: '#f1f8e9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#dcedc8',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#c5e1a5',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#aed581',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#9ccc65',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#8bc34a',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#7cb342',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#689f38',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#558b2f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#33691e',\r\n text: textWhite\r\n }\r\n },\r\n lime: {\r\n 50: {\r\n color: '#f9fbe7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f0f4c3',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#e6ee9c',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#dce775',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#d4e157',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#cddc39',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#c0ca33',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#afb42b',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#9e9d24',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#827717',\r\n text: textWhite\r\n }\r\n },\r\n yellow: {\r\n 50: {\r\n color: '#fffde7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#fff9c4',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#fff59d',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#fff176',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffee58',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ffeb3b',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#fdd835',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#fbc02d',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#f9a825',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#f57f17',\r\n text: textBlack\r\n }\r\n },\r\n amber: {\r\n 50: {\r\n color: '#fff8e1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffecb3',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffe082',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ffd54f',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffca28',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ffc107',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#ffb300',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#ffa000',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#ff8f00',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#ff6f00',\r\n text: textBlack\r\n }\r\n },\r\n orange: {\r\n 50: {\r\n color: '#fff3e0',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffe0b2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffcc80',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ffb74d',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffa726',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ff9800',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#fb8c00',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#f57c00',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#ef6c00',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#e65100',\r\n text: textWhite\r\n }\r\n },\r\n deepOrange: {\r\n 50: {\r\n color: '#fbe9e7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffccbc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffab91',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ff8a65',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ff7043',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ff5722',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#f4511e',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#e64a19',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#d84315',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#bf360c',\r\n text: textWhite\r\n }\r\n },\r\n brown: {\r\n 50: {\r\n color: '#efebe9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#d7ccc8',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#bcaaa4',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#a1887f',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#8d6e63',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#795548',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#6d4c41',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#5d4037',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#4e342e',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#3e2723',\r\n text: textWhite\r\n }\r\n },\r\n grey: {\r\n 50: {\r\n color: '#fafafa',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f5f5f5',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#eeeeee',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#e0e0e0',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#bdbdbd',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#9e9e9e',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#757575',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#616161',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#424242',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#212121',\r\n text: textWhite\r\n }\r\n },\r\n blueGrey: {\r\n 50: {\r\n color: '#eceff1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#cfd8dc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#b0bec5',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#90a4ae',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#78909c',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#607d8b',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#546e7a',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#455a64',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#37474f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#263238',\r\n text: textWhite\r\n }\r\n },\r\n black: {\r\n 500: {\r\n color: '#000000',\r\n text: textWhite\r\n }\r\n },\r\n white: {\r\n 500: {\r\n color: '#FFFFFF',\r\n text: textBlack\r\n }\r\n }\r\n};\r\nexport {\r\n palette,\r\n colors\r\n}\r\n","import {Component, EventEmitter, AfterViewInit, Output, ViewChild, Input} from '@angular/core';\r\nimport {palette, colors} from './color-picker.palette';\r\nimport {NgControl} from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'ui-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss']\r\n})\r\nexport class UiColorPickerComponent implements AfterViewInit {\r\n\r\n palette: any;\r\n colors: any;\r\n hues: any;\r\n colorSelected: any;\r\n ngModel: any;\r\n value: any;\r\n ngModelChange: EventEmitter<any>;\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n @ViewChild('hueColor') hueColor: any;\r\n\r\n constructor(private ngControl: NgControl) {\r\n this.palette = palette;\r\n this.colors = colors;\r\n this.hues = Array.from({length: 10}, (ngModel, index) => index * 100);\r\n this.hues[0] = 50;\r\n this.value = 500;\r\n this.colorSelected = {};\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setColorSelected(this.ngModel);\r\n this.hueColor.valueChange.subscribe(hue => {\r\n this.ngModel = this.getColor(this.colorSelected.name, hue);\r\n this.ngModelChange.emit(this.ngModel);\r\n });\r\n }\r\n\r\n getColor(color, hue = 500) {\r\n if (!color) {\r\n return;\r\n }\r\n return this.palette[color][hue].color;\r\n }\r\n\r\n getColorText(color, hue = 500) {\r\n if (!color) {\r\n return;\r\n }\r\n return this.palette[color][hue].text;\r\n }\r\n\r\n selectColor(colorSelected) {\r\n this.ngControl.control.markAsDirty();\r\n this.deselectColors();\r\n colorSelected.selected = true;\r\n this.colorSelected = colorSelected;\r\n this.ngModel = this.getColor(this.colorSelected.name, this.value);\r\n this.ngModelChange.emit(this.ngModel);\r\n }\r\n\r\n deselectColors() {\r\n this.ngControl.control.markAsDirty();\r\n this.ngModel = this.getColor(null);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.colorSelected = {};\r\n this.value = 500;\r\n this.colors.forEach(color => color.selected = false);\r\n }\r\n\r\n setColorSelected(color) {\r\n if (!color) {\r\n return;\r\n }\r\n\r\n Object.keys(this.palette).forEach(key => {\r\n Object.keys(this.palette[key]).forEach(hue => {\r\n if (this.palette[key][hue].color === color) {\r\n this.colors.forEach(item => {\r\n if (item.name === key) {\r\n setTimeout(() => {\r\n item.selected = true;\r\n this.value = hue;\r\n this.colorSelected = item;\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n","import {\r\n AfterViewInit, ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, EmbeddedViewRef, EventEmitter,\r\n Injector, Input, OnChanges, Output\r\n} from '@angular/core';\r\nimport {palette} from './color-picker.palette';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiColorPickerComponent} from './color-picker.component';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\n\r\n@Directive({\r\n selector: '[uiColorPicker]'\r\n})\r\nexport class UiColorPickerDirective implements AfterViewInit, OnChanges {\r\n\r\n @Input() ngModel;\r\n @Input('theme-class') themeClass;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n elementColor;\r\n palette;\r\n componentRef;\r\n wrapElement;\r\n componentElement;\r\n\r\n constructor(private element: ElementRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector) {\r\n this.palette = palette;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.generateElementColor();\r\n this.setColorElement(this.ngModel);\r\n\r\n this.element.nativeElement.classList.add('elevate');\r\n this.element.nativeElement.parentNode.appendChild(this.elementColor);\r\n\r\n this.addEvents();\r\n\r\n this.ngModelChange.subscribe(color => {\r\n this.setColorElement(color);\r\n });\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.ngModel && !changes.ngModel.firstChange) {\r\n this.ngModel = changes.ngModel.currentValue;\r\n this.setColorElement(this.ngModel);\r\n }\r\n }\r\n\r\n generateElementColor() {\r\n this.elementColor = document.createElement('div');\r\n this.elementColor.classList.add('ui-color');\r\n this.elementColor.setAttribute('tabindex', '1');\r\n }\r\n\r\n setColorElement(color) {\r\n let icon = this.elementColor.querySelector('i');\r\n\r\n if (color) {\r\n if (icon) {\r\n icon.remove();\r\n }\r\n this.elementColor.setAttribute('style', `background-color: ${color}`);\r\n } else if (!icon) {\r\n icon = document.createElement('i');\r\n icon.classList.add('material-icons', 'secondary-text');\r\n icon.innerText = 'block';\r\n this.elementColor.appendChild(icon);\r\n this.elementColor.setAttribute('style', '');\r\n }\r\n }\r\n\r\n addEvents() {\r\n UiElement.on(this.elementColor, 'click', e => {\r\n const position = UiElement.position(this.elementColor);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n\r\n if (!this.componentRef) {\r\n this.createComponent();\r\n this.setInstances(this, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.componentElement = this.getComponentAsElement();\r\n this.render(this.componentElement, coordinate);\r\n e.stopPropagation();\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.componentRef) {\r\n if ((!(UiElement.is(e.target, '.wrap-color-picker') || UiElement.closest(e.target, '.wrap-color-picker')) && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n private createComponent() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiColorPickerComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n }\r\n\r\n private getComponentAsElement(): HTMLElement {\r\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n private setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'ngModelChange'];\r\n\r\n keysComponent.forEach(key => {\r\n componentRef.instance[key] = component[key];\r\n });\r\n }\r\n\r\n private render(element, coordinate): void {\r\n this.createWrapElement();\r\n this.wrapElement.appendChild(element);\r\n\r\n document.body.appendChild(this.wrapElement);\r\n\r\n setTimeout(() => {\r\n if (this.themeClass) {\r\n this.wrapElement.classList.add(this.themeClass);\r\n }\r\n\r\n this.wrapElement.classList.add('open');\r\n\r\n this.setPosition(coordinate);\r\n });\r\n }\r\n\r\n private createWrapElement() {\r\n this.wrapElement = document.createElement('div');\r\n this.wrapElement.classList.add('wrap-color-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n\r\n this.wrapElement.appendChild(overlay);\r\n }\r\n\r\n private setPosition(coordinate) {\r\n const horizontalCoveringArea = coordinate.x + this.componentElement.clientWidth;\r\n const verticalCoveringArea = coordinate.y + this.componentElement.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = window.innerHeight + document.body.scrollTop;\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (this.componentElement.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = coordinate.y - this.componentElement.clientHeight;\r\n }\r\n\r\n this.componentElement.style.top = (coordinate.y) + 'px';\r\n this.componentElement.style.left = coordinate.x + 'px';\r\n }\r\n\r\n private close() {\r\n if (this.wrapElement) {\r\n this.wrapElement.classList.remove('open');\r\n setTimeout(() => {\r\n if (this.componentRef) {\r\n this.componentRef.instance.colors.forEach(color => color.selected = false);\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n this.componentRef = null;\r\n this.wrapElement.remove();\r\n }\r\n }, 280);\r\n }\r\n\r\n }\r\n}\r\n","import {ElementRef, HostListener, Directive, OnChanges, Input, AfterViewInit, DoCheck} from '@angular/core';\r\n\r\nconst MAX_LOOKUP_RETRIES = 3;\r\n\r\n@Directive({\r\n selector: '[autosize]'\r\n})\r\n\r\nexport class UiInputAutosizeDirective implements OnChanges, AfterViewInit, DoCheck {\r\n private retries = 0;\r\n private textAreaEl: any;\r\n @Input() ngModel;\r\n\r\n @HostListener('input', ['$event.target'])\r\n onInput(textArea: HTMLTextAreaElement): void {\r\n this.adjust();\r\n }\r\n\r\n @HostListener('change', ['$event.target'])\r\n onChange(textArea: HTMLTextAreaElement): void {\r\n this.adjust();\r\n }\r\n\r\n constructor(public element: ElementRef) {\r\n if (this.element.nativeElement.tagName !== 'TEXTAREA') {\r\n this._findNestedTextArea();\r\n } else {\r\n this.textAreaEl = this.element.nativeElement;\r\n }\r\n }\r\n\r\n // Faz com que o autosize execute quando a tela for carregada, para casos em que o campo iniciar preenchido\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.adjust();\r\n });\r\n }\r\n\r\n _findNestedTextArea() {\r\n this.textAreaEl = this.element.nativeElement.getElementsByTagName('textarea')[0];\r\n if (!this.textAreaEl) {\r\n if (this.retries >= MAX_LOOKUP_RETRIES) {\r\n console.error('textarea não encontrado');\r\n\r\n } else {\r\n this.retries++;\r\n setTimeout(() => {\r\n this._findNestedTextArea();\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n // this.adjust();\r\n }\r\n\r\n // setTimeout para aguardar a atualização da model do input\r\n ngOnChanges(changes) {\r\n setTimeout(() => {\r\n this.adjust();\r\n });\r\n }\r\n\r\n adjust(): void {\r\n if (!!this.textAreaEl) {\r\n this.textAreaEl.style.overflow = 'hidden';\r\n this.textAreaEl.style.height = '';\r\n this.textAreaEl.style.height = this.textAreaEl.scrollHeight + 'px';\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentFactoryResolver, ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {Subject} from 'rxjs/index';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {animate, style, transition, trigger} from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: 'ui-clock',\r\n templateUrl: './clock.component.html',\r\n styleUrls: ['./clock.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [trigger(\r\n 'explosion', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n transform: 'scale(1.3)'\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n transform: 'scale(1.3)'\r\n }))\r\n ])\r\n ],\r\n ), trigger(\r\n 'fade', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1,\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n )]\r\n})\r\nexport class UiClockComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() ngModel: any;\r\n @Input('hide-header') hideHeader: boolean;\r\n @Input('confirm-selection') confirmSelection: boolean;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() cancel: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n hours: number[];\r\n minutes: number[];\r\n hour: number;\r\n minute: number;\r\n focused: boolean;\r\n pointerRotation: number;\r\n activeSelection: string;\r\n\r\n constructor(private element: ElementRef) {\r\n const beforeMidday = Array.apply(null, {length: 12}).map(Number.call, Number);\r\n const afterMidday = Array.apply(null, {length: 12}).map(Number.call, Number).map(val => val + 12);\r\n beforeMidday[0] = 12;\r\n afterMidday[0] = 0;\r\n this.hours = [...afterMidday, ...beforeMidday];\r\n this.minutes = Array.apply(null, {length: 12}).map(Number.call, Number).map(val => val * 5);\r\n this.activeSelection = 'hours';\r\n this.pointerRotation = 0;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.formatModel();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.element.nativeElement.tabIndex = 1;\r\n setTimeout(() => {\r\n this.element.nativeElement.focus();\r\n });\r\n\r\n UiElement.on(document, 'keydown', e => {\r\n if (!this.focused) {\r\n return;\r\n }\r\n switch (e.keyCode) {\r\n case 13:\r\n if (this.activeSelection === 'hours') {\r\n this.selectHour(this.hour);\r\n } else {\r\n this.selectMinute(this.minute);\r\n }\r\n break;\r\n case 39:\r\n case 40:\r\n if (this.activeSelection === 'hours') {\r\n this.hour = this.hour + 1 > 23 ? 0 : this.hour + 1;\r\n } else {\r\n this.minute = this.minute + 1 > 59 ? 0 : this.minute + 1;\r\n }\r\n this.getPositionPointer();\r\n e.preventDefault();\r\n break;\r\n case 37:\r\n case 38:\r\n if (this.activeSelection === 'hours') {\r\n this.hour = this.hour - 1 < 0 ? 23 : this.hour - 1;\r\n } else {\r\n this.minute = this.minute - 1 < 0 ? 59 : this.minute - 1;\r\n }\r\n this.getPositionPointer();\r\n e.preventDefault();\r\n break;\r\n }\r\n\r\n });\r\n\r\n UiElement.on(document, 'click', e => {\r\n this.focused = (this.element.nativeElement === e.target || this.element.nativeElement === UiElement.closest(e.target, 'ui-clock')) && (UiElement.is(e.target, 'ui-clock') || UiElement.closest(e.target, 'ui-clock'));\r\n });\r\n }\r\n\r\n public ngOnChanges(value): void {\r\n if (value.ngModel && !value.ngModel.firstChange) {\r\n this.ngModel = value.ngModel.currentValue;\r\n this.formatModel();\r\n }\r\n if (value.confirmSelection) {\r\n this.confirmSelection = value.confirmSelection.currentValue;\r\n }\r\n }\r\n\r\n public formatModel() {\r\n if (this.ngModel) {\r\n const time = this.ngModel.split(':');\r\n this.hour = parseInt(time[0], 10);\r\n this.minute = parseInt(time [1], 10);\r\n this.getPositionPointer();\r\n }\r\n }\r\n\r\n public selectTime(close?: boolean) {\r\n if (this.hasHourAndMinute()) {\r\n this.ngModel = `${this.formatToLpad(this.hour)}:${this.formatToLpad(this.minute)}`;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.select.emit(this.ngModel);\r\n this.chosen.next({value: this.ngModel, close});\r\n }\r\n }\r\n\r\n public cancelTime() {\r\n this.activeSelection = 'hours';\r\n this.hour = null;\r\n this.minute = null;\r\n this.ngModel = null;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.cancel.emit();\r\n }\r\n\r\n public selectHour(hour): void {\r\n this.activeSelection = 'minutes';\r\n this.hour = hour;\r\n this.minute = this.minute || 0;\r\n this.getPositionPointer();\r\n\r\n if (!this.confirmSelection) {\r\n this.selectTime();\r\n }\r\n }\r\n\r\n public selectMinute(minute): void {\r\n this.activeSelection = 'hours';\r\n this.minute = minute;\r\n this.getPositionPointer();\r\n\r\n if (!this.confirmSelection) {\r\n this.selectTime(true);\r\n }\r\n }\r\n\r\n public isEmpty(): boolean {\r\n return !(typeof this.hour === 'number' && typeof this.minute === 'number');\r\n }\r\n\r\n public formatToLpad(value): string {\r\n if (typeof value === 'number' && value.toString().length < 2) {\r\n value = `0${value}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public getPositionPointer(): void {\r\n if (!this.hasHourAndMinute()) {\r\n return;\r\n }\r\n let oldRotation = this.pointerRotation;\r\n oldRotation = oldRotation >= 360 ? oldRotation - (Math.floor(oldRotation / 360) * 360) : (oldRotation <= -360 ? oldRotation + (Math.floor(Math.abs(oldRotation) / 360) * 360) : oldRotation);\r\n let amountRotate;\r\n const actualRotate = this.activeSelection === 'hours' ? (30 * (this.hour >= 12 ? this.hour - 12 : this.hour)) : 6 * this.minute;\r\n\r\n if (actualRotate - oldRotation < -180) {\r\n amountRotate = 360 - oldRotation + actualRotate;\r\n } else if (actualRotate - oldRotation > 180) {\r\n amountRotate = -(360 - actualRotate + oldRotation);\r\n } else {\r\n amountRotate = actualRotate - oldRotation;\r\n }\r\n\r\n if (Math.abs(amountRotate) === 180) {\r\n amountRotate = actualRotate > oldRotation ? Math.abs(amountRotate) : -amountRotate;\r\n }\r\n\r\n this.pointerRotation += amountRotate;\r\n\r\n }\r\n\r\n public getPositionTopPointer(): string {\r\n if (this.activeSelection === 'hours' && this.hour > 0 && this.hour < 13) {\r\n return '40px';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public hasHourAndMinute(): boolean {\r\n return typeof this.hour === 'number' && typeof this.minute === 'number';\r\n }\r\n\r\n public validate(): boolean {\r\n return (this.hour < 24 && this.minute < 60) || !this.hasHourAndMinute();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiTimePickerDirective} from './time-picker.directive';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Injectable()\r\nexport class UiTimePickerService {\r\n\r\n timePickers: any = {};\r\n\r\n constructor() {\r\n }\r\n\r\n add(name: string, component: UiTimePickerDirective): void {\r\n if (this.timePickers && this.timePickers[name]) {\r\n return;\r\n }\r\n\r\n this.timePickers[name] = component;\r\n }\r\n\r\n get(name: string): UiTimePickerDirective {\r\n return this.timePickers[name];\r\n }\r\n\r\n remove(name: string) {\r\n delete this.timePickers[name];\r\n }\r\n\r\n closeAll() {\r\n UiElement.trigger(window, 'click');\r\n }\r\n\r\n getAll(): UiTimePickerDirective {\r\n return this.timePickers;\r\n }\r\n\r\n updateModel(name, value) {\r\n this.timePickers[name].ngModel = value;\r\n this.timePickers[name].ngModelChange.emit(value);\r\n }\r\n\r\n}\r\n","import {\r\n Directive, EventEmitter, Input, Output, OnChanges, OnInit, OnDestroy, ElementRef,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport {UiTimePickerService} from './time-picker.service';\r\nimport {Subject} from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[uiTimePicker]'\r\n})\r\nexport class UiTimePickerDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() ngModel;\r\n @Input() confirmSelection: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input('uiTimePicker') timePicker: string;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public timePickerService: UiTimePickerService, public element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.timePickerService.add(this.timePicker, this);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute('time-picker-name', this.timePicker);\r\n }\r\n\r\n ngOnChanges(value) {\r\n this.chosen.next(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.timePickerService.remove(this.timePicker);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n EmbeddedViewRef,\r\n ElementRef,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport {UiTimePickerService} from './time-picker.service';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiClockComponent} from '../clock/clock.component';\r\n\r\n@Directive({\r\n selector: '[uiTimePickerCaller]'\r\n})\r\nexport class UiTimePickerCallerDirective implements AfterViewInit {\r\n timePicker;\r\n componentRef: any;\r\n componentElement: any;\r\n pickerOpen: boolean;\r\n wrapTimePicker: HTMLElement;\r\n inputElement: HTMLElement;\r\n @Input() pickerEvent: string;\r\n @Input('uiTimePickerCaller') timePickerCaller: string;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private timePickerService: UiTimePickerService,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.timePicker = this.timePickerService.get(this.timePickerCaller);\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.pickerEvent || 'click', (e) => {\r\n this.inputElement = <HTMLElement>document.querySelector(`[time-picker-name=\"${this.timePickerCaller}\"]`);\r\n\r\n this.timePickerService.closeAll();\r\n const position = UiElement.position(this.inputElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: this.inputElement.offsetHeight + position.top\r\n };\r\n\r\n if (!this.pickerOpen) {\r\n this.renderTimePicker(this.timePicker, coordinate);\r\n e.stopPropagation(); // Parando propagação do evento para os eventos do window\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.pickerOpen) {\r\n if ((!(UiElement.is(e.target, '.wrap-time-picker') || UiElement.closest(e.target, '.wrap-time-picker'))\r\n && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.closePicker();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getComponentAsElement(componentRef): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n public setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'confirmSelection', 'select'];\r\n keysComponent.map(key => componentRef.instance[key] = component[key]);\r\n componentRef.instance.focused = true;\r\n\r\n component.chosen.subscribe(value => componentRef.instance.ngOnChanges(value));\r\n componentRef.instance.cancel.subscribe(() => this.closePicker());\r\n\r\n componentRef.instance.chosen.subscribe(objectValue => {\r\n this.timePickerService.updateModel(this.timePickerCaller, objectValue.value);\r\n if (this.pickerOpen && objectValue.close) {\r\n this.inputElement.focus();\r\n this.closePicker();\r\n }\r\n });\r\n }\r\n\r\n public renderViewClock(element, coordinate, themeClass): void {\r\n this.wrapTimePicker = document.createElement('div');\r\n this.wrapTimePicker.classList.add('wrap-time-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n if (themeClass) {\r\n this.wrapTimePicker.classList.add(themeClass);\r\n }\r\n\r\n this.wrapTimePicker.style.transform = 'scale(0)';\r\n element.classList.add('portrait-only');\r\n this.wrapTimePicker.appendChild(overlay);\r\n this.wrapTimePicker.appendChild(element);\r\n document.body.appendChild(this.wrapTimePicker);\r\n\r\n setTimeout(() => {\r\n const pickerHorizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const pickerVerticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (pickerHorizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n if (pickerVerticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n this.wrapTimePicker.style.transform = '';\r\n element.style.position = 'absolute';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n this.wrapTimePicker.classList.add('open');\r\n if (document.body.clientWidth <= 600) {\r\n document.body.style.overflowY = 'hidden';\r\n }\r\n });\r\n }\r\n\r\n public renderTimePicker(component, coordinate): void {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiClockComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.componentElement = this.getComponentAsElement(this.componentRef);\r\n\r\n this.setInstances(component, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.renderViewClock(this.componentElement, coordinate, component.themeClass);\r\n this.pickerOpen = true;\r\n }\r\n\r\n public closePicker(): void {\r\n this.wrapTimePicker.classList.remove('open');\r\n setTimeout(() => {\r\n this.pickerOpen = false;\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n document.body.style.overflowY = '';\r\n try {\r\n document.body.removeChild(this.wrapTimePicker);\r\n } catch (e) {\r\n }\r\n }, 280);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiTime'\r\n})\r\nexport class UiTimePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + ':' + value.substring(2);\r\n }\r\n if (value.length > 5) {\r\n value = value.substring(0, 5);\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiTimePipe } from './time.pipe';\r\nimport { UiElement } from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskTime][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskTimeDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskTimeDirective),\r\n multi: true\r\n }, UiTimePipe]\r\n})\r\nexport class UiMaskTimeDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [2];\r\n @Input() ngModel: any;\r\n @Input() minTime: string;\r\n @Input() maxTime: string;\r\n @Input() customTime: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public timePipe: UiTimePipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (changes.minTime && !changes.minTime.firstChange) {\r\n this.minTime = changes.minTime.currentValue;\r\n }\r\n if (changes.maxTime && !changes.maxTime.firstChange) {\r\n this.maxTime = changes.maxTime.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.timePipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.timePipe.transform(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.timePipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 4);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 4) {\r\n return { parse: true };\r\n }\r\n\r\n if (control.value) {\r\n const time = control.value.split(':');\r\n\r\n if (!this.customTime && time[0] > 23) {\r\n return { hour: true };\r\n }\r\n\r\n if (!this.customTime && time[1] > 59) {\r\n return { minute: true };\r\n }\r\n\r\n if (this.minTime && this.format(this.minTime).length === 4 && this.format(control.value) < this.format(this.minTime)) {\r\n return { minTime: true };\r\n }\r\n\r\n if (this.maxTime && this.format(this.maxTime).length === 4 && this.format(control.value) > this.format(this.maxTime)) {\r\n return { maxTime: true };\r\n }\r\n\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input') onInput(): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\ninterface UiCurrencyPipeArgs {\r\n noNegative?: boolean;\r\n}\r\n\r\n@Pipe({\r\n name: 'uiCurrency'\r\n})\r\nexport class UiCurrencyPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: UiCurrencyPipeArgs): any {\r\n if (!value && typeof value !== 'number') {\r\n return '';\r\n }\r\n if (typeof value === 'number') {\r\n value = value.toFixed(2);\r\n }\r\n\r\n const isNegative = !(value.toString().match(/[+]/) || !value.toString().match(/[-]/));\r\n\r\n // Verifica se há valor no model (permite remover o '0,00')\r\n const noValue = value.length === 3 && value.replace(',', '').split('').every(n => n === '0');\r\n\r\n // Removendo o que não é dígito qualquer zero adicional no começo da string\r\n value = value.toString().replace(/[^0-9]+/g, '').replace(/^0+/g, '');\r\n\r\n // Adiciona os zeros necessários à esquerda devido a formatação de dinheiro, caso haja valor na model\r\n if (!noValue) {\r\n while (value.length < 3) {\r\n value = '0' + value.toString();\r\n }\r\n }\r\n\r\n\r\n let newCurrency = '';\r\n value = value.split('');\r\n for (let i = 0; i < value.length; i++) {\r\n const valueChar = value[value.length - 1 - i];\r\n if (i === 2) {\r\n newCurrency = ',' + newCurrency;\r\n } else if (i > 3 && !((i - 2) % 3)) {\r\n newCurrency = '.' + newCurrency;\r\n }\r\n newCurrency = valueChar + newCurrency;\r\n }\r\n\r\n // ADICIONANDO O SINAL NEGATIVO\r\n if (args && args.noNegative) {\r\n return newCurrency;\r\n }\r\n\r\n return isNegative ? '-' + newCurrency : newCurrency;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiCurrencyPipe } from './currency.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskCurrency][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCurrencyDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCurrencyDirective),\r\n multi: true\r\n }, UiCurrencyPipe]\r\n})\r\nexport class UiMaskCurrencyDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeViewValue;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() noNegative: boolean;\r\n\r\n constructor(public elementRef: ElementRef, public currencyPipe: UiCurrencyPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = this.currencyPipe.transform(value, { noNegative: this.noNegative });\r\n const removeGroupSep = new RegExp('[^\\\\d\\\\,-]+', 'g');\r\n value = value.toString().replace(removeGroupSep, '');\r\n value = parseFloat(value.replace(',', '.'));\r\n return typeof value === 'number' && !isNaN(value) ? value : null;\r\n }\r\n\r\n formatViewValue(value) {\r\n const isDeletingZero = this.beforeViewValue === ('0,00') && value.length < this.beforeViewValue.length;\r\n value = isDeletingZero ? '' : value;\r\n return this.currencyPipe.transform(value, { noNegative: this.noNegative });\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n // if (control.value && this.format(control.value).length < 11) {\r\n // return {parse: true};\r\n // }\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return { min: true };\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return { max: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n // const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.beforeViewValue = rawValue;\r\n this.renderViaInput(rawValue);\r\n // UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiDialogComponent} from './dialog.component';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\nlet viewRef;\r\n\r\n@Injectable()\r\nexport class UiDialog {\r\n\r\n public static show(dialog: UiDialogComponent, config?: any) {\r\n UiDialog.hide();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n viewRef.detectChanges();\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n UiDialog.open(rootNode, config);\r\n }\r\n });\r\n }\r\n\r\n private static open(element, config) {\r\n setTimeout(() => {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (config.darkClass) {\r\n element.classList.add(config.darkClass);\r\n }\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize) {\r\n element.querySelector('ui-card').style.maxWidth = config.cardSize + 'px';\r\n element.querySelector('ui-card').style.width = '100%';\r\n }\r\n\r\n if (!config.transparentOverlay && fabs.length) {\r\n fabs.classList.add('hide');\r\n }\r\n\r\n if (config.clickOverlayToClose) {\r\n element.querySelector('.overlay').addEventListener('click', () => {\r\n if (typeof config.onClose === 'function') {\r\n config.onClose();\r\n }\r\n UiDialog.hide();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n\r\n public static hide() {\r\n if (viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n viewRef.destroy();\r\n viewRef = null;\r\n }, 280);\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output,\r\n ViewContainerRef, ViewChild, TemplateRef, AfterViewInit, OnChanges\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\r\nimport {UiSelectFilterPipe} from './select-filter.pipe';\r\n\r\n@Component({\r\n selector: 'ui-select',\r\n templateUrl: 'select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: UiSelectComponent,\r\n multi: true,\r\n }],\r\n})\r\n\r\nexport class UiSelectComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input('dark-class') darkClass;\r\n @Input() input;\r\n @Input() disabled;\r\n @Input() chosen;\r\n @Output() ngModelChange = new EventEmitter();\r\n selected;\r\n viewRef;\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @ViewChild('selectNative', { static: true }) selectNative;\r\n selectedNative;\r\n search;\r\n @Input() value;\r\n @Input() label;\r\n @Input() options;\r\n @Input() ngModel;\r\n optionsExternal;\r\n @ViewChild(NgModel) model: NgModel;\r\n isMobile = UiElement.isMobile;\r\n\r\n constructor(public element: ElementRef, public viewContainerRef: ViewContainerRef) {\r\n this.options = [];\r\n this.optionsExternal = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.element.nativeElement.setAttribute('tabindex', 0);\r\n this.selectOption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngOnChanges(changes) {\r\n this.element.nativeElement.setAttribute('disabled', this.disabled);\r\n if (changes.options || changes.ngModel) {\r\n this.selectOption();\r\n }\r\n if (changes.ngModel && !changes.ngModel.firstChange) {\r\n this.ngModel = changes.ngModel.currentValue;\r\n\r\n if (changes.ngModel.currentValue) {\r\n this.selectOption();\r\n } else {\r\n this.onChangeSelect(changes.ngModel.currentValue);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n this.close();\r\n\r\n const closestFieldset = UiElement.closest(this.element.nativeElement, 'fieldset:disabled');\r\n\r\n if (!this.disabled && !closestFieldset) {\r\n if (this.isMobile()) {\r\n this.selectNative.nativeElement.focus();\r\n } else {\r\n setTimeout(() => {\r\n const position = UiElement.position(this.element.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n });\r\n }\r\n } else {\r\n this.element.nativeElement.blur();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur(event) {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.closest(event.relatedTarget, '.wrap-select'))) {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n const horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (window.scrollX || window.pageXOffset);\r\n const windowHeight = document.body.clientHeight + (window.scrollY || window.pageYOffset);\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.darkClass) {\r\n element.classList.add(this.darkClass);\r\n }\r\n\r\n element.style.transform = '';\r\n // element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.style.width = this.element.nativeElement.clientWidth + 'px';\r\n\r\n element.querySelector('.selected').addEventListener('blur', (event) => {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.input-select'))) {\r\n this.close();\r\n }\r\n });\r\n if (this.chosen) {\r\n element.querySelector('.input-select').addEventListener('blur', (event) => {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.selected'))) {\r\n this.close();\r\n }\r\n });\r\n element.querySelector('.input-select').click();\r\n element.scrollTo(0, 0);\r\n } else {\r\n element.querySelector('.selected').focus();\r\n }\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n\r\n onChangeSelect(select) {\r\n if (select) {\r\n this.model = select[this.value];\r\n this.selected = select[this.label];\r\n this.ngModelChange.emit(select[this.value]);\r\n } else {\r\n this.search = select;\r\n this.model = select;\r\n this.selected = select;\r\n this.ngModelChange.emit(select);\r\n }\r\n }\r\n\r\n selectOption() {\r\n this.options.forEach(option => {\r\n if (option[this.value] === this.ngModel) {\r\n this.onChangeSelect(option);\r\n }\r\n });\r\n }\r\n\r\n writeValue() {\r\n }\r\n\r\n registerOnChange() {\r\n }\r\n\r\n registerOnTouched() {\r\n }\r\n}\r\n\r\n","import {Component, ElementRef, HostListener, Inject, Input, OnInit} from '@angular/core';\r\nimport {UiSelectComponent} from '../select.component';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-select-option',\r\n templateUrl: 'option.component.html',\r\n styleUrls: ['./option.component.scss']\r\n})\r\n\r\nexport class UiSelectOptionComponent implements OnInit {\r\n @Input() value;\r\n @Input() label;\r\n @Input() internal;\r\n\r\n constructor(@Inject(UiSelectComponent) private selectComponent: UiSelectComponent, private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.element.nativeElement.setAttribute('tabindex', 0);\r\n if (!this.internal) {\r\n this.selectComponent.optionsExternal.push({\r\n value: this.value,\r\n title: this.label\r\n });\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.selectComponent.ngModelChange.next(this.value);\r\n this.selectComponent.model = this.value;\r\n this.selectComponent.selected = this.label;\r\n this.element.nativeElement.blur();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onEnter(e) {\r\n if (e.keyCode === 13) {\r\n this.element.nativeElement.click();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur(event) {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.selected') || UiElement.is(event.relatedTarget, '.input-select'))) {\r\n this.selectComponent.close();\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {unaccent} from '../utils/functions/unaccent';\r\n\r\n@Pipe({\r\n name: 'selectFilter',\r\n pure: false\r\n})\r\nexport class UiSelectFilterPipe implements PipeTransform {\r\n transform(value, filterBy, name) {\r\n filterBy = filterBy ? unaccent(filterBy.toLowerCase()) : null;\r\n return filterBy ? value.filter(item =>\r\n unaccent(item[name].toLowerCase()).indexOf(filterBy) !== -1) : value;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {unaccent} from '../functions/unaccent';\r\n\r\n@Pipe({\r\n name: 'uiFilter',\r\n pure: false\r\n})\r\nexport class UiFilterPipe implements PipeTransform {\r\n transform(value, filterBy, name) {\r\n filterBy = filterBy ? unaccent(filterBy.toLowerCase()) : null;\r\n return filterBy ? value.filter(item =>\r\n unaccent(item[name].toLowerCase()).indexOf(filterBy) !== -1) : value;\r\n }\r\n}\r\n","import {AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnInit} from '@angular/core';\r\nimport {UiColor} from '../utils/providers/color.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {animate, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'ui-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [trigger(\r\n 'image', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('2800ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n ), trigger(\r\n 'letter', [\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n )]\r\n})\r\nexport class UiAvatarComponent implements OnInit, AfterViewInit, OnChanges {\r\n newImage: string;\r\n showImage: boolean;\r\n grayscale: boolean;\r\n\r\n @Input() name: string;\r\n @Input() color: string;\r\n @Input() image: string;\r\n @Input() size: number;\r\n @Input() nameLength: number;\r\n @Input() initials: boolean;\r\n\r\n constructor(private element: ElementRef) {\r\n this.nameLength = 1;\r\n this.initials = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.newImage = this.image;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setSize();\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.name && !changes.name.firstChange) {\r\n this.name = changes.name.currentValue;\r\n }\r\n if (changes.color && !changes.color.firstChange) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.image && !changes.image.firstChange) {\r\n if (!changes.image.currentValue) {\r\n this.showImage = false;\r\n this.newImage = null;\r\n }\r\n this.image = changes.image.currentValue;\r\n }\r\n if (changes.size && !changes.size.firstChange) {\r\n this.size = changes.size.currentValue;\r\n this.setSize();\r\n }\r\n if (changes.nameLength && !changes.nameLength.firstChange) {\r\n this.nameLength = changes.nameLength.currentValue;\r\n }\r\n }\r\n\r\n isBright(color): boolean {\r\n return UiColor.isBright(color);\r\n }\r\n\r\n loadedImage(): void {\r\n this.showImage = true;\r\n this.animateImage();\r\n }\r\n\r\n animateImage(): void {\r\n this.grayscale = true;\r\n setTimeout(() => {\r\n this.grayscale = false;\r\n this.newImage = this.image;\r\n }, 1120);\r\n }\r\n\r\n setSize() {\r\n if (this.size) {\r\n const wrap = this.element.nativeElement.querySelector('.wrap');\r\n const empty = this.element.nativeElement.querySelector('.empty');\r\n if (empty) {\r\n UiElement.css(empty, 'font-size', `${Math.round(this.size / 100 * 36.36)}px`);\r\n }\r\n UiElement.css(wrap, 'width', `${this.size}px`);\r\n UiElement.css(wrap, 'height', `${this.size}px`);\r\n }\r\n }\r\n\r\n getFontSize() {\r\n return Math.round(this.size / 100 * 36.36);\r\n }\r\n\r\n getName(): string {\r\n if (this.name) {\r\n if (this.initials) {\r\n const ini = this.name.trim().split(' ').map((nome) => { return nome.charAt(0).toUpperCase(); });\r\n return ini[0] + ini[ini.length - 1];\r\n } else {\r\n return this.name.trim().substr(0, this.nameLength).toUpperCase();\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiFloat'\r\n})\r\nexport class UiFloatPipe implements PipeTransform {\r\n\r\n transform(value: any, decimal: number = null, noNegative?: boolean): any {\r\n if (!value && typeof value !== 'number') {\r\n return '';\r\n }\r\n\r\n if (!decimal || isNaN(decimal)) {\r\n const decimals = value.toString().split('.');\r\n decimal = decimals.length > 1 ? decimals[1].length : 0;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n value = value.toFixed(decimal);\r\n }\r\n\r\n const isNegative = !(value.toString().match(/[+]/) || !value.toString().match(/[-]/));\r\n\r\n // Verifica se há valor no model (permite remover o '0,00')\r\n const noValue = decimal && value.length === (decimal + 1) && value.replace(',', '').split('').every(n => n === '0');\r\n\r\n // Removendo o que não é dígito qualquer zero adicional no começo da string\r\n value = value.toString().replace(/[^0-9]+/g, '').replace(/^0+/g, '');\r\n\r\n // Adiciona os zeros necessários à esquerda, caso haja valor na model\r\n if (!noValue) {\r\n while (value.length < (decimal + 1)) {\r\n value = '0' + value.toString();\r\n }\r\n }\r\n\r\n let newValue = '';\r\n value = value.split('');\r\n for (let i = 0; i < value.length; i++) {\r\n const valueChar = value[value.length - 1 - i];\r\n if (decimal && i === decimal) {\r\n newValue = ',' + newValue;\r\n } else if (\r\n i > decimal &&\r\n !((i - decimal) % 3)\r\n ) {\r\n newValue = '.' + newValue;\r\n }\r\n newValue = valueChar + newValue;\r\n }\r\n\r\n // ADICIONANDO O SINAL NEGATIVO\r\n if (noNegative) {\r\n return newValue;\r\n }\r\n\r\n return isNegative ? '-' + newValue : newValue;\r\n }\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiFloatPipe } from './float.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskFloat][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskFloatDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskFloatDirective),\r\n multi: true\r\n }, UiFloatPipe]\r\n})\r\nexport class UiMaskFloatDirective implements ControlValueAccessor, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeViewValue;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() uiMaskFloat: number = 2;\r\n @Input() decimal: number;\r\n @Input() max: number;\r\n @Input() min: number;\r\n @Input() ngModel: any;\r\n @Input() noNegative: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public floatPipe: UiFloatPipe) {\r\n this.decimal = this.uiMaskFloat;\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.uiMaskFloat !== 'undefined') {\r\n this.uiMaskFloat = changes.uiMaskFloat.currentValue || 2;\r\n this.decimal = this.uiMaskFloat;\r\n }\r\n if (typeof changes.decimal !== 'undefined') {\r\n this.decimal = changes.decimal.currentValue || 2;\r\n this.uiMaskFloat = this.decimal;\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value =\r\n this.formatViewValue(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = this.floatPipe.transform(value, +this.decimal, this.noNegative);\r\n const removeGroupSep = new RegExp('[^\\\\d\\\\,-]+', 'g');\r\n value = value.toString().replace(removeGroupSep, '');\r\n value = parseFloat(value.replace(',', '.'));\r\n return typeof value === 'number' && !isNaN(value) ? value : null;\r\n }\r\n\r\n formatViewValue(value) {\r\n let standard = '0,';\r\n standard = standard.padEnd(+this.decimal + 2, '0');\r\n const isDeletingZero = this.beforeViewValue === (standard) && value.length < this.beforeViewValue.length;\r\n value = isDeletingZero ? '' : value;\r\n return this.floatPipe.transform(value, +this.decimal, this.noNegative);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return { min: true };\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return { max: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.beforeViewValue = rawValue;\r\n this.renderViaInput(rawValue);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\n\r\n/**\r\n * TODO: Persist tooltip.\r\n * */\r\n@Directive({\r\n selector: '[uiTooltip]'\r\n})\r\nexport class TooltipDirective implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() uiTooltip: string;\r\n @Input() top: boolean;\r\n @Input() left: boolean;\r\n @Input() right: boolean;\r\n @Input() bottom: boolean;\r\n\r\n onShow: Function;\r\n onHide: Function;\r\n wrap: HTMLElement;\r\n class: string;\r\n\r\n constructor(private element: ElementRef) {\r\n this.onShow = (event) => {\r\n this.show(event);\r\n };\r\n this.onHide = () => {\r\n this.hide();\r\n };\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.top && !this.left && !this.right) {\r\n this.bottom = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n UiElement.on(this.element.nativeElement, 'mouseenter', this.onShow);\r\n UiElement.on(this.element.nativeElement, 'mouseleave', this.onHide);\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(this.element.nativeElement, 'mouseenter', this.onShow);\r\n UiElement.off(this.element.nativeElement, 'mouseleave', this.onHide);\r\n this.hide();\r\n }\r\n\r\n setClass() {\r\n if (this.top) {\r\n this.class = 'top';\r\n }\r\n if (this.left) {\r\n this.class = 'left';\r\n }\r\n if (this.right) {\r\n this.class = 'right';\r\n }\r\n if (this.bottom) {\r\n this.class = 'bottom';\r\n }\r\n\r\n }\r\n\r\n show(event) {\r\n if (!this.uiTooltip) {\r\n return;\r\n }\r\n\r\n this.setClass();\r\n\r\n this.wrap = document.createElement('div');\r\n this.wrap.classList.add('wrap-tooltip', this.class);\r\n this.wrap.innerText = this.uiTooltip;\r\n\r\n document.body.appendChild(this.wrap);\r\n const elementPosition = UiElement.position(this.element.nativeElement);\r\n let positionLeft: number;\r\n let positionTop: number;\r\n\r\n if (this.top || this.bottom) {\r\n positionLeft = (elementPosition.left + this.element.nativeElement.clientWidth / 2) - (this.wrap.clientWidth / 2);\r\n\r\n positionLeft = positionLeft > 0 ? positionLeft : 0;\r\n positionTop = elementPosition.top;\r\n\r\n const checkHeight = window.innerHeight - 32 >= this.element.nativeElement.clientHeight + positionTop;\r\n\r\n if (this.bottom && checkHeight) {\r\n positionTop += this.element.nativeElement.clientHeight;\r\n } else {\r\n positionTop -= this.wrap.clientHeight;\r\n }\r\n }\r\n\r\n if (this.left || this.right) {\r\n positionTop = (elementPosition.top + this.element.nativeElement.clientHeight / 2) - (this.wrap.clientHeight / 2);\r\n positionLeft = elementPosition.left;\r\n\r\n if (this.left && positionLeft >= this.wrap.clientWidth) {\r\n positionLeft -= this.wrap.clientWidth;\r\n } else {\r\n positionLeft += this.element.nativeElement.clientWidth;\r\n }\r\n }\r\n\r\n UiElement.css(this.wrap, 'left', `${Math.round(positionLeft)}px`);\r\n UiElement.css(this.wrap, 'top', `${Math.round(positionTop)}px`);\r\n\r\n setTimeout(() => this.wrap && this.wrap.classList.add('show'));\r\n }\r\n\r\n hide() {\r\n if (!this.wrap) {\r\n return;\r\n }\r\n this.wrap.classList.add('hide');\r\n const tooltips = Array.from(document.querySelectorAll('.wrap-tooltip'));\r\n tooltips.forEach(\r\n tooltip => tooltip.remove()\r\n );\r\n }\r\n}\r\n","import {AfterViewInit, Component, forwardRef, Inject, Input, OnChanges, OnInit} from '@angular/core';\r\nimport {UiChosenComponent} from '../chosen.component';\r\n\r\n@Component({\r\n selector: 'ui-chosen-option',\r\n templateUrl: './chosen-option.component.html',\r\n styleUrls: ['./chosen-option.component.scss']\r\n})\r\nexport class UiChosenOptionComponent implements AfterViewInit, OnChanges {\r\n\r\n @Input() label;\r\n @Input() value;\r\n @Input() disabled;\r\n\r\n active: boolean;\r\n hidden: boolean;\r\n\r\n constructor(@Inject(forwardRef(() => UiChosenComponent)) private parent: any) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.parent.loadOption(this);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (this.active && changes.label && !changes.label.firstChange) {\r\n this.label = changes.label.currentValue;\r\n\r\n this.parent.updateOptionLabel(this.label);\r\n }\r\n }\r\n\r\n onSelect() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.parent.select(this);\r\n }\r\n\r\n setActive(active) {\r\n this.active = active;\r\n }\r\n}\r\n","import {Component, ContentChildren, Input, OnInit, QueryList} from '@angular/core';\r\nimport {UiChosenOptionComponent} from '../chosen-option/chosen-option.component';\r\n\r\n@Component({\r\n selector: 'ui-chosen-group',\r\n templateUrl: './chosen-group.component.html',\r\n styleUrls: ['./chosen-group.component.scss']\r\n})\r\nexport class UiChosenGroupComponent implements OnInit {\r\n\r\n @Input() label: string;\r\n\r\n @ContentChildren(UiChosenOptionComponent) options: QueryList<UiChosenOptionComponent>;\r\n\r\n hidden: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","// @ts-ignore\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { isNullOrUndefined } from 'util';\r\n\r\nimport { unaccent } from '../utils/functions/unaccent';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\nimport { UiChosenGroupComponent } from './chosen-group/chosen-group.component';\r\nimport { UiChosenOptionComponent } from './chosen-option/chosen-option.component';\r\n\r\n// TODO: Animation\r\n// TODO: Export render, open, close\r\n\r\n@Component({\r\n selector: 'ui-chosen',\r\n templateUrl: './chosen.component.html',\r\n styleUrls: ['./chosen.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: UiChosenComponent,\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiChosenComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class UiChosenComponent\r\n implements OnInit, AfterViewInit, OnChanges, AfterContentInit {\r\n viewRef: any;\r\n value: any;\r\n focused: boolean;\r\n searchText: string;\r\n isMobile: boolean;\r\n control: any;\r\n\r\n @Input() search: any;\r\n @Input() ngModel: any;\r\n @Input() required: boolean;\r\n @Input() disabled: boolean;\r\n @Input() placeholder: string;\r\n @Input() persistPlaceholder: string;\r\n\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('optionTemplate', { static: true }) optionTemplate: TemplateRef<any>;\r\n @ViewChild('inputSearch') inputSearch: ElementRef;\r\n @ViewChild('nativeSelect') nativeSelect: ElementRef;\r\n\r\n /**\r\n * O param 'descendants' fala para o @ContentChildren pegar todos components UiChosenOptionComponent\r\n * mesmo que eles estejam dentro de outros components(UiChosenGroupComponent)\r\n */\r\n @ContentChildren(UiChosenOptionComponent, { descendants: true })\r\n options: QueryList<UiChosenOptionComponent>;\r\n\r\n // Pegando os options que foram colocados sem o group\r\n @ContentChildren(UiChosenOptionComponent) onlyOptions: QueryList<\r\n UiChosenOptionComponent\r\n >;\r\n\r\n @ContentChildren(UiChosenGroupComponent, { descendants: true })\r\n optionsGroup: QueryList<UiChosenGroupComponent>;\r\n\r\n constructor(\r\n private element: ElementRef,\r\n private viewContainerRef: ViewContainerRef,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute(\r\n 'tabindex',\r\n this.element.nativeElement.getAttribute('tabindex') || '0'\r\n );\r\n\r\n UiElement.on(window, 'resize scroll', () => {\r\n this.close();\r\n });\r\n\r\n if (/Mobi|Android/.test(navigator.userAgent)) {\r\n this.isMobile = true;\r\n\r\n this.element.nativeElement.classList.add('mobile');\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (\r\n !isNullOrUndefined(changes.ngModel) &&\r\n !changes.ngModel.firstChange\r\n ) {\r\n this.setValue(changes.ngModel.currentValue);\r\n }\r\n\r\n if (changes.required && !changes.required.firstChange) {\r\n this.required = changes.required.currentValue;\r\n }\r\n\r\n if (changes.disabled) {\r\n this.disabled = changes.disabled.currentValue;\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (!isNullOrUndefined(this.ngModel)) {\r\n setTimeout(() => this.setValue(this.ngModel));\r\n }\r\n }\r\n writeValue() {}\r\n\r\n registerOnChange() {}\r\n\r\n registerOnTouched() {}\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (this.required && !control.value && control.value !== 0) {\r\n return { required: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n if (this.isMobile) {\r\n this.nativeSelect.nativeElement.focus();\r\n return;\r\n }\r\n\r\n if (this.focused) {\r\n return;\r\n }\r\n\r\n if (this.disabled) {\r\n this.element.nativeElement.blur();\r\n return;\r\n }\r\n\r\n this.clearFilter();\r\n\r\n if (this.search) {\r\n setTimeout(() => this.inputSearch.nativeElement.focus(), 100);\r\n }\r\n\r\n this.focused = true;\r\n\r\n const position = UiElement.position(this.element.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + this.element.nativeElement.clientHeight\r\n };\r\n\r\n this.render(coordinate);\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(\r\n this.optionTemplate\r\n );\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (\r\n rootNode.clientWidth &&\r\n !rootNode.classList.contains('wrap-chosen-overlay')\r\n ) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n element.style.top = 0;\r\n\r\n setTimeout(() => {\r\n const verticalCoveringArea =\r\n UiElement.position(this.element.nativeElement, true).top +\r\n element.clientHeight;\r\n const bodyHeight = document.body.clientHeight;\r\n\r\n if (verticalCoveringArea + this.element.nativeElement.clientHeight > bodyHeight) {\r\n coordinate.y -=\r\n verticalCoveringArea -\r\n bodyHeight +\r\n this.element.nativeElement.clientHeight;\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n const content = element.querySelector('ui-card > .content');\r\n const contentHeight = content.clientHeight;\r\n\r\n const search = element.querySelector('ui-card > .search');\r\n const searchHeight = search ? search.clientHeight : 0;\r\n\r\n content.style.maxHeight =\r\n (contentHeight > bodyHeight\r\n ? bodyHeight - searchHeight\r\n : contentHeight) + 'px';\r\n\r\n element.style.transform = '';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n const card = element.querySelector('ui-card');\r\n card.style.maxHeight = window.innerHeight + 'px';\r\n card.style.maxWidth = window.innerWidth - 16 + 'px';\r\n card.style.width = this.element.nativeElement.clientWidth + 'px';\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n this.focused = false;\r\n\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(\r\n () =>\r\n this.viewContainerRef.remove(\r\n this.viewContainerRef.indexOf(viewRef)\r\n ),\r\n 280\r\n );\r\n }\r\n }\r\n\r\n setValue(value) {\r\n let updated = false;\r\n\r\n this.options.map(option => {\r\n if (option.value != value) {\r\n // tslint:disable-line\r\n option.setActive(false);\r\n return;\r\n }\r\n\r\n updated = true;\r\n this.value = option.label;\r\n option.setActive(true);\r\n });\r\n\r\n if (!updated) {\r\n this.value = null;\r\n }\r\n\r\n this.element.nativeElement.value = this.value;\r\n }\r\n\r\n select(option) {\r\n this.control.markAsDirty();\r\n this.control.markAsTouched();\r\n this.ngModelChange.emit(option.value);\r\n this.close();\r\n }\r\n\r\n filterList() {\r\n this.options.map(option => {\r\n option.hidden = this.searchText\r\n ? !unaccent(option.label.toLowerCase()).includes(\r\n unaccent(this.searchText.toLowerCase())\r\n )\r\n : false;\r\n });\r\n\r\n this.optionsGroup.map(\r\n group =>\r\n (group.hidden =\r\n group.options.filter(option => !option.hidden).length === 0)\r\n );\r\n }\r\n\r\n clearFilter() {\r\n this.searchText = null;\r\n this.filterList();\r\n }\r\n\r\n changeNativeSelect() {\r\n setTimeout(() => {\r\n this.control.markAsDirty();\r\n this.control.markAsTouched();\r\n this.ngModelChange.emit(this.ngModel);\r\n });\r\n }\r\n\r\n trackByValue(index, option) {\r\n return option.value;\r\n }\r\n\r\n updateOptionLabel(label) {\r\n this.value = label;\r\n }\r\n\r\n loadOption(option: UiChosenOptionComponent) {\r\n if (!isNullOrUndefined(this.ngModel) && option.value === this.ngModel) {\r\n this.value = option.label;\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCreditCard'\r\n})\r\nexport class UiCreditCardPipe implements PipeTransform {\r\n\r\n transform(value: string, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if (value.length > 4) {\r\n value = `${value.substring(0, 4)} ${value.substring(4)}`;\r\n }\r\n\r\n if (value.length > 9) {\r\n value = `${value.substring(0, 9)} ${value.substring(9)}`;\r\n }\r\n\r\n if(value.length > 14) {\r\n value = `${value.substring(0, 14)} ${value.substring(14)}`;\r\n }\r\n\r\n if(value.length > 19) {\r\n value = value.substring(0, 19);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","import { Directive, forwardRef, OnChanges, AfterViewInit, Input, EventEmitter, Output, ElementRef, ChangeDetectorRef, HostListener } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, Validator, FormControl } from '@angular/forms';\r\nimport { UiCreditCardPipe, UiElement } from '../../../smn-ui.module';\r\n\r\n@Directive({\r\n selector: '[uiMaskCreditCard][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCreditCard),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCreditCard),\r\n multi: true\r\n }, UiCreditCardPipe]\r\n})\r\nexport class UiMaskCreditCard implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n loaded: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [4, 9, 14];\r\n @Input() ngModel: any;\r\n @Input() UiMaskCreditCard;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public creditCardPipe: UiCreditCardPipe, private changeDetector: ChangeDetectorRef) { }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loaded = true;\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n this.elementRef.nativeElement.value = this.creditCardPipe.transform(this.ngModel);\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.creditCardPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 16);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 16) {\r\n return { parse: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from \"@angular/animations\";\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ui-expansion-panel\",\r\n templateUrl: \"./expansion-panel.component.html\",\r\n styleUrls: [\"./expansion-panel.component.scss\"],\r\n animations: [\r\n trigger(\"expandAnimation\", [\r\n transition(\":enter\", [\r\n style({\r\n height: \"0\"\r\n }),\r\n animate(\r\n \"280ms cubic-bezier(0.0, 0.0, 0.2, 1)\",\r\n style({\r\n height: \"*\"\r\n })\r\n )\r\n ]),\r\n transition(\":leave\", [\r\n style({\r\n height: \"*\"\r\n }),\r\n animate(\r\n \"280ms cubic-bezier(0.0, 0.0, 0.2, 1)\",\r\n style({\r\n height: \"0\"\r\n })\r\n )\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class ExpansionPanelComponent implements OnInit {\r\n element: any;\r\n\r\n @Input() disabled: boolean;\r\n @Input() noArrow: boolean;\r\n @Input() label: string;\r\n @Input() description: string;\r\n @Input() color: string = 'primary';\r\n\r\n @Input() open: boolean;\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n toggle() {\r\n if (!this.disabled) {\r\n this.open = !this.open;\r\n this.openChange.emit(this.open);\r\n }\r\n }\r\n}\r\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiTabContent]'\r\n})\r\nexport class UiTabContentDirective {\r\n @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n\r\n constructor() { }\r\n}\r\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiTabLabel]'\r\n})\r\nexport class UiTabLabelDirective {\r\n @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {UiTabContentDirective} from './tab-content.directive';\r\nimport {UiTabLabelDirective} from './tab-label.directive';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ui-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss']\r\n})\r\nexport class UiTabComponent implements OnInit, OnDestroy {\r\n @ViewChild('tabContent', { static: true }) tabContent: TemplateRef<any>;\r\n @ContentChild(UiTabContentDirective) templateContent: UiTabContentDirective;\r\n @ContentChild(UiTabLabelDirective) templateLabel: UiTabLabelDirective;\r\n @Input() label: string;\r\n @Input() icon: string;\r\n @Input() disabled: string;\r\n private subscription: Subscription;\r\n isActive: boolean;\r\n index: number;\r\n indexActivatedTab: number;\r\n tabChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n loaded: boolean;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.tabChange.subscribe(value => {\r\n if (value) {\r\n this.loaded = true;\r\n }\r\n this.isActive = value;\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n}\r\n","import {AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnInit} from '@angular/core';\r\nimport {UiTabComponent} from '../tab.component';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tab-header',\r\n templateUrl: './tab-header.component.html',\r\n styleUrls: ['./tab-header.component.scss']\r\n})\r\nexport class UiTabHeaderComponent implements OnInit, AfterViewInit, AfterViewChecked {\r\n @Input() topIcon: boolean;\r\n\r\n tabsContainer: HTMLElement;\r\n inkBar: HTMLElement;\r\n showInkBar: boolean;\r\n increment: number;\r\n hasRightScroll: boolean;\r\n hasLeftScroll: boolean;\r\n\r\n constructor(private element: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.increment = 90;\r\n }\r\n\r\n ngOnInit() {\r\n this.tabsContainer = this.element.nativeElement.querySelector('.tabs-container');\r\n this.inkBar = this.element.nativeElement.querySelector('.ink-bar');\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.inkBar.addEventListener('transitionend', () => {\r\n this.showInkBar = false;\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.hasRightScroll = this.checkRightScroll();\r\n this.hasLeftScroll = this.checkLeftScroll();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Move o ink bar para a tab que está ativa\r\n **/\r\n moveInkBarTo(tabRef: HTMLElement) {\r\n this.showInkBar = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n setTimeout(() => {\r\n UiElement.css(this.inkBar, 'left', `${tabRef.offsetLeft}px`);\r\n UiElement.css(this.inkBar, 'width', `${tabRef.clientWidth}px`);\r\n });\r\n }\r\n\r\n /**\r\n * Retorna se o scroll left ja saiu da posição 0\r\n * */\r\n checkLeftScroll() {\r\n return this.tabsContainer.scrollLeft > 0;\r\n }\r\n\r\n /**\r\n * Retorna se deve exibir o control da direita\r\n * */\r\n checkRightScroll() {\r\n const widthWithScroll = this.tabsContainer.scrollLeft + this.tabsContainer.clientWidth;\r\n return widthWithScroll < this.tabsContainer.scrollWidth;\r\n }\r\n\r\n /**\r\n * Altera o valor do scroll\r\n **/\r\n updateScroll(value: number) {\r\n const scrollLeft = this.tabsContainer.scrollLeft;\r\n UiElement.animate(\r\n this.tabsContainer,\r\n 'borderSpacing',\r\n scrollLeft,\r\n scrollLeft + value,\r\n 280,\r\n null,\r\n (tick) => {\r\n this.tabsContainer.scrollLeft = tick;\r\n });\r\n }\r\n}\r\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\r\n\r\nconst timing = 280;\r\nexport const tabFakeAnimation: AnimationTriggerMetadata = trigger('tabFakeAnimation',\r\n [\r\n transition(':enter', animate(`${timing}ms cubic-bezier(0.0, 0.0, 0.2, 1)`)),\r\n transition(':leave', animate(`${timing}ms cubic-bezier(0.0, 0.0, 0.2, 1)`)),\r\n ]\r\n);\r\n\r\nexport const tabTransform: AnimationTriggerMetadata = trigger('tabTransform',\r\n [\r\n state('left', style({\r\n transform: 'translateX(-100%)',\r\n position: 'absolute'\r\n })),\r\n state('right', style({\r\n transform: 'translateX(100%)',\r\n position: 'absolute'\r\n })),\r\n state('active', style({\r\n transform: 'translateX(0)',\r\n position: 'relative'\r\n })),\r\n transition('left <=> right', animate(timing)),\r\n transition('active <=> right', animate(timing)),\r\n transition('left <=> active', animate(timing)),\r\n ]\r\n);\r\n","import {\r\n AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, QueryList, ViewChild\r\n} from '@angular/core';\r\nimport {UiTabComponent} from '../tab.component';\r\nimport {UiTabHeaderComponent} from '../header/tab-header.component';\r\nimport {AnimationEvent} from '@angular/animations';\r\nimport {tabFakeAnimation, tabTransform} from './tab-group.animation';\r\n\r\n@Component({\r\n selector: 'ui-tab-group',\r\n templateUrl: './tab-group.component.html',\r\n styleUrls: ['./tab-group.component.scss'],\r\n animations: [tabFakeAnimation, tabTransform]\r\n})\r\nexport class UiTabGroupComponent implements AfterViewInit {\r\n @ContentChildren(UiTabComponent) tabsQueryList: QueryList<UiTabComponent>;\r\n @ViewChild(UiTabHeaderComponent, { static: true }) tabHeader: UiTabHeaderComponent;\r\n @ViewChild('tabsContentElement', { static: true }) tabsContentElement: ElementRef;\r\n @Input() active: number;\r\n @Input() fillBackground: boolean;\r\n @Input() themeInkBar: boolean;\r\n @Input() accent: boolean;\r\n @Input() topIcon: boolean;\r\n @Input() lazyLoad: boolean;\r\n\r\n tabs: any[];\r\n activatedTab: UiTabComponent;\r\n animation: boolean;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Transformando a QueryList em um array de component(UiTabComponent)\r\n this.tabs = this.tabsQueryList.toArray();\r\n this.changeDetectorRef.detectChanges();\r\n this.generateIndexes();\r\n\r\n // Ativa uma tab através do index passado com Input ou a primeira tab\r\n const tab = this.getFirstTab(this.active);\r\n this.activateTab(tab, this.getTabRef(tab));\r\n this.animation = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.tabsQueryList.changes.subscribe(newTabs => {\r\n this.tabs = newTabs.toArray();\r\n this.generateIndexes();\r\n\r\n // Verificando se a tab selecionada foi removida da lista\r\n if (!this.tabs.includes(this.activatedTab)) {\r\n // Ativando a tab que ficou no mesmo index da última tab ativa\r\n // TODO: Procurar uma tab que não esteja desabilitada\r\n const newTab = this.tabs[this.activatedTab.index] || this.tabs[this.tabs.length - 1];\r\n this.activateTab(newTab, this.getTabRef(newTab));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Atribuí os index para as tabs\r\n **/\r\n generateIndexes() {\r\n this.tabs.map((tab, index) => tab.index = index);\r\n }\r\n\r\n /**\r\n * Retorna a primeira tab que não está desabilitada\r\n **/\r\n getFirstTab (tabIndex: number) {\r\n if (typeof tabIndex === 'number' && !this.tabs[tabIndex].disabled) {\r\n return this.tabs[tabIndex];\r\n }\r\n\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n const tab = this.tabs[i];\r\n if (!tab.disabled) {\r\n return tab;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Retorna a refencia da tab em HTML\r\n **/\r\n getTabRef (tab: UiTabComponent) {\r\n const tabsRef = this.element.nativeElement.querySelectorAll('.tab');\r\n return tabsRef ? tabsRef[tab.index] : null;\r\n }\r\n\r\n /**\r\n * Ativa uma tab\r\n * */\r\n activateTab(tab: UiTabComponent, tabRef: HTMLElement) {\r\n if (tab.disabled || tab === this.activatedTab) {\r\n return;\r\n }\r\n\r\n if (this.activatedTab) {\r\n this.activatedTab.tabChange.emit(false);\r\n }\r\n this.tabsContentElement.nativeElement.style.height = this.tabsContentElement.nativeElement.clientHeight + 'px';\r\n\r\n tab.tabChange.emit(true);\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.activatedTab = tab;\r\n\r\n this.tabHeader.moveInkBarTo(tabRef);\r\n this.updateActivatedTab();\r\n }\r\n\r\n /**\r\n * Altera em todos components(UiTabComponent) o index da nova tab ativada\r\n **/\r\n updateActivatedTab() {\r\n this.tabs.map(tab => tab.indexActivatedTab = this.activatedTab.index);\r\n }\r\n\r\n /**\r\n * Callback para quando a animação do conteúdo da tab iniciar\r\n * */\r\n startTranslateAnimation(event: AnimationEvent) {\r\n if (event.toState === 'active') {\r\n this.tabsContentElement.nativeElement.style.height = event.element.scrollHeight + 'px';\r\n }\r\n }\r\n\r\n /**\r\n * Callback para quando a animação do conteúdo da tab terminar\r\n * */\r\n doneTranslateAnimation(event: AnimationEvent) {\r\n this.tabsContentElement.nativeElement.style.height = '';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-label-content',\r\n templateUrl: './label-content.component.html',\r\n styleUrls: ['./label-content.component.scss']\r\n})\r\nexport class UiLabelContentComponent {\r\n @Input() label: string;\r\n @Input() content: string;\r\n}\r\n","import { EventEmitter, Input, Output, Directive } from '@angular/core';\r\nimport { UiSnackbar } from '../smn-ui.module';\r\n\r\n\r\n@Directive()\r\nexport abstract class Upload {\r\n\r\n @Input() accept: string;\r\n @Input() multiple: boolean;\r\n @Input() disabled: boolean;\r\n @Input() max: number;\r\n\r\n\r\n @Output() ngModelChange: EventEmitter<any>;\r\n @Output() remove: EventEmitter<any>;\r\n\r\n maxLength: number;\r\n ngModel: any;\r\n modelConfig: any;\r\n maxFileSize: string;\r\n\r\n\r\n readFile(file, base64) {\r\n if (!this.multiple) {\r\n this.max = 1;\r\n }\r\n\r\n if (this.max && this.ngModel.length === this.max) {\r\n return;\r\n }\r\n\r\n if (this.maxLength && file.name.length > this.maxLength) {\r\n UiSnackbar.show({\r\n text: `Arquivo \"${file.name}\" não pode ultrapassar ${this.maxLength} caracteres.`\r\n });\r\n return;\r\n }\r\n\r\n const modelFile: any = {};\r\n let isDuplicated: boolean = false;\r\n modelFile[this.modelConfig.name] = file.name;\r\n modelFile[this.modelConfig.base64] = base64;\r\n\r\n this.ngModel.forEach((file) => {\r\n if (modelFile.name === file.name) {\r\n isDuplicated = true;\r\n UiSnackbar.show({\r\n text: `Já existe o arquivo \"${file.name}\".`,\r\n duration: 4000\r\n });\r\n return;\r\n }\r\n });\r\n\r\n if (isDuplicated) {\r\n return;\r\n }\r\n\r\n\r\n this.ngModel.push(modelFile);\r\n this.ngModelChange.emit(this.ngModel);\r\n\r\n\r\n }\r\n\r\n errorFile(file, error) {\r\n if (error.type) {\r\n const accept = this.accept.toUpperCase().split(',');\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: 'Você pode selecionar apenas arquivo' + (accept.length == 1\r\n ? ` do tipo ${accept[0]}`\r\n : `s dos tipos ${accept.join(', ')}`) + '.'\r\n });\r\n }\r\n if (error.maxFileSize) {\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: `Use arquivos menores que ${this.maxFileSize}.`\r\n });\r\n }\r\n }\r\n\r\n removeFile(file, index) {\r\n this.ngModel.splice(index, 1);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.remove.emit({file, index});\r\n }\r\n\r\n filesChange(files) {\r\n if (this.max && (this.ngModel.length + files.length) > this.max) {\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: `Você pode selecionar apenas ${this.max} arquivo${this.max > 1 ? 's' : ''}.`\r\n });\r\n }\r\n }\r\n\r\n getFileName(file) {\r\n return file[this.modelConfig.name];\r\n }\r\n}\r\n","import {animate, style, transition, trigger} from '@angular/animations';\r\n\r\nexport const enterLeaveViewAnimation = trigger(\r\n 'enterLeaveViewAnimation',\r\n // Default é 280ms de transição.\r\n [\r\n transition(\r\n ':enter', [\r\n style({\r\n height: '0',\r\n transform: 'scale(0.8) translateY(-16px)',\r\n opacity: 0\r\n }),\r\n animate('550ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n height: '*',\r\n transform: 'scale(1) translateY(0)',\r\n opacity: 1\r\n }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({\r\n height: '*',\r\n transform: 'scale(1) translateY(0)',\r\n opacity: 1\r\n }),\r\n animate('550ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n height: '0',\r\n transform: 'scale(0.8) translateY(-16px)',\r\n opacity: 0\r\n }))\r\n ]\r\n )]\r\n);\r\n","import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n Input,\r\n forwardRef,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Upload } from './upload';\r\nimport { enterLeaveViewAnimation } from '../utils/animations/enter-leave-view.animations';\r\n\r\n\r\n@Component({\r\n selector: 'ui-upload',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiUploadComponent),\r\n multi: true\r\n }],\r\n animations: [enterLeaveViewAnimation]\r\n})\r\nexport class UiUploadComponent extends Upload implements OnInit, OnChanges {\r\n\r\n @ViewChild('inputFileRef') inputFileRef;\r\n\r\n @Input() ngModel: any;\r\n @Input() modelConfig: any;\r\n @Input() message: string;\r\n @Input() max: number;\r\n @Input() maxLength: number;\r\n @Input() maxSize: string;\r\n @Input() maxFileSize: string;\r\n @Input() multiple: boolean;\r\n @Input() disabled: boolean;\r\n\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() remove: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n model: any;\r\n isDragging: boolean;\r\n\r\n constructor() {\r\n super();\r\n this.readFile = this.readFile.bind(this);\r\n this.errorFile = this.errorFile.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.modelConfig = {\r\n name: 'name',\r\n base64: 'base64',\r\n ...this.modelConfig\r\n };\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.ngModel) {\r\n this.ngModel = changes.ngModel.currentValue && Array.isArray(changes.ngModel.currentValue) ? changes.ngModel.currentValue : [];\r\n }\r\n\r\n if (changes.modelConfig) {\r\n this.modelConfig = {\r\n name: 'name',\r\n base64: 'base64',\r\n ...changes.modelConfig.currentValue\r\n };\r\n }\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n @HostListener('dragenter', ['$event']) onDragEnter(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = true;\r\n }\r\n\r\n @HostListener('dragover', ['$event']) onDragOver(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = true;\r\n event.dataTransfer.dropEffect = 'copy';\r\n }\r\n\r\n @HostListener('dragleave', ['$event']) onDragLeave(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = false;\r\n }\r\n\r\n @HostListener('drop', ['$event']) onDrop(event) {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging = false;\r\n\r\n const {files} = event.dataTransfer;\r\n this.inputFileRef.readFiles(files);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport './button/button.service';\r\nimport { debounce } from './utils/functions/debounce';\r\nimport { unaccent } from './utils/functions/unaccent';\r\nimport { UiAddCalendarDirective } from './calendar/add-calendar.directive';\r\nimport { UiCalendarComponent } from './calendar/calendar.component';\r\nimport { UiCalendarContentComponent } from './calendar/calendar-content.component';\r\nimport { UiCapitalizePipe } from './utils/pipes/capitalize.pipe';\r\nimport { UiColor } from './utils/providers/color.provider';\r\nimport { UiCookie } from './utils/providers/cookie.provider';\r\nimport { UiDataTableOrderByDirective } from './data-table/order-by.directive';\r\nimport { UiDatePickerCallerDirective } from './date-picker/date-picker-caller.directive';\r\nimport { UiDatePickerDirective } from './date-picker/date-picker.directive';\r\nimport { UiDatetimeService } from './calendar/datetime.service';\r\nimport { UiDialogComponent } from './dialog/dialog.component';\r\nimport { UiDialogTriggerDirective } from './dialog/dialog-trigger.directive';\r\nimport { UiElement } from './utils/providers/element.provider';\r\nimport { UiElementRef } from './utils/providers/element-ref.provider';\r\nimport { UiInputContainerComponent } from './input/input-container.component';\r\nimport { UiInputDirective } from './input/input.directive';\r\nimport { UiMaxlengthDirective } from './utils/validators/maxlength.directive';\r\nimport { UiMenuComponent } from './menu/menu.component';\r\nimport { UiMenuTriggerDirective } from './menu/menu-trigger.directive';\r\nimport { UiNavDrawerComponent } from './nav-drawer/nav-drawer.component';\r\nimport { UiOptionComponent } from './selection-control/option/option.component';\r\nimport { UiProgressRadialComponent } from './progress/radial/progress-radial.component';\r\nimport { UiReferencesService } from './date-picker/references.service';\r\nimport { UiRippleDirective } from './ripple/ripple.directive';\r\nimport { UiSmartListComponent } from './smart-list/smart-list.component';\r\nimport { UiSmartListItemComponent } from './smart-list/item/item.component';\r\nimport { UiSnackbarComponent } from './snackbar/snackbar.component';\r\nimport { UiSnackbarContainerComponent } from './snackbar/snackbar-container.component';\r\nimport { UiSnackbar } from './snackbar/snackbar.provider';\r\nimport { UiSwitchComponent } from './selection-control/switch/switch.component';\r\nimport { UiToolbarComponent } from './toolbar/toolbar.component';\r\nimport { UiToolbarService } from './toolbar/toolbar.service';\r\nimport { UiWindowRef } from './utils/providers/window.provider';\r\nimport { UiMaskDateDirective } from './utils/masks/date/mask-date.directive';\r\nimport { UiTimeAgoPipe } from './utils/pipes/time-ago.pipe';\r\nimport { UiListItemDirective } from './list/list-item.directive';\r\nimport { UiMaskCpfDirective } from './utils/masks/cpf/mask-cpf.directive';\r\nimport { UiCpfPipe } from './utils/masks/cpf/cpf.pipe';\r\nimport { UiMaskCnpjDirective } from './utils/masks/cnpj/mask-cnpj.directive';\r\nimport { UiCnpjPipe } from './utils/masks/cnpj/cnpj.pipe';\r\nimport { UiMaskCepDirective } from './utils/masks/cep/mask-cep.directive';\r\nimport { UiCepPipe } from './utils/masks/cep/cep.pipe';\r\nimport { UiMaskCepNovoDirective } from './utils/masks/cep-novo/mask-cep-novo.directive';\r\nimport { UiCepNovoPipe } from './utils/masks/cep-novo/cep-novo.pipe';\r\nimport { UiPhonePipe } from './utils/masks/phone/phone.pipe';\r\nimport { UiMaskPhoneDirective } from './utils/masks/phone/mask-phone.directive';\r\nimport { UiListComponent } from './list/list.component';\r\nimport { UiListItemsComponent } from './list/items/items.component';\r\nimport { UiListItemComponent } from './list/item/item.component';\r\nimport { UiSliderComponent } from './slider/slider.component';\r\nimport { UiSliderMultiHandleComponent } from './slider/slider-multi-handle.component';\r\nimport { UiInfiniteLoadDirective } from './utils/infinite-load/infinite-load.directive';\r\nimport { UiInfiniteLoadService } from './utils/infinite-load/infinite-load.service';\r\nimport { UiAutocompleteDirective } from './autocomplete/autocomplete.directive';\r\nimport { UiAutocompleteComponent } from './autocomplete/autocomplete.component';\r\nimport { UiMaskIntegerDirective } from './utils/masks/integer/mask-integer.directive';\r\nimport { UiTabsComponent } from './old-tabs/tabs.component';\r\nimport { UiTabsPagesComponent } from './old-tabs/pages/tabs-pages.component';\r\nimport { UiLazyLoadDirective } from './lazy-load/lazy-load.directive';\r\nimport { UiDataTableComponent } from './data-table/data-table.component';\r\nimport { UiBottomSheetComponent } from './bottom-sheet/bottom-sheet.component';\r\nimport { UiBottomSheetTriggerDirective } from './bottom-sheet/bottom-sheet.directive';\r\nimport { UiInputFileDirective } from './input/input-file.directive';\r\nimport { UiEllipsisDirective } from './ellipsis/ellipsis.directive';\r\nimport { UiRequiredDirective } from './utils/validators/required.directive';\r\nimport { UiColorPickerComponent } from './color-picker/color-picker.component';\r\nimport { UiColorPickerDirective } from './color-picker/color-picker.directive';\r\nimport { UiInputAutosizeDirective } from './input/autosize.directive';\r\nimport { UiClockComponent } from './clock/clock.component';\r\nimport { UiTimePickerService } from './time-picker/time-picker.service';\r\nimport { UiTimePickerDirective } from './time-picker/time-picker.directive';\r\nimport { UiTimePickerCallerDirective } from './time-picker/time-picker-caller.directive';\r\nimport { UiTimePipe } from './utils/masks/time/time.pipe';\r\nimport { UiMaskTimeDirective } from './utils/masks/time/mask-time.directive';\r\nimport { UiMaskCurrencyDirective } from './utils/masks/currency/mask-currency.directive';\r\nimport { UiCurrencyPipe } from './utils/masks/currency/currency.pipe';\r\nimport { UiDialog } from './dialog/dialog.service';\r\nimport { UiSelectComponent } from './select/select.component';\r\nimport { UiSelectOptionComponent } from './select/option/option.component';\r\nimport { UiSelectFilterPipe } from './select/select-filter.pipe';\r\nimport { UiFilterPipe } from './utils/pipes/filter.pipe';\r\nimport { UiAvatarComponent } from './avatar/avatar.component';\r\nimport { UiMaskFloatDirective } from './utils/masks/float/mask-float.directive';\r\nimport { TooltipDirective } from './tooltip/tooltip.directive';\r\nimport { UiChosenComponent } from './chosen/chosen.component';\r\nimport { UiChosenOptionComponent } from './chosen/chosen-option/chosen-option.component';\r\nimport { UiChosenGroupComponent } from './chosen/chosen-group/chosen-group.component';\r\nimport { UiCreditCardPipe } from './utils/masks/credit-card/credit-card.pipe';\r\nimport { UiMaskCreditCard } from './utils/masks/credit-card/credit-card-mask.directive';\r\nimport { ExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\r\nimport { UiFloatPipe } from './utils/masks/float/float.pipe';\r\nimport { UiTabComponent } from './tab/tab.component';\r\nimport { UiTabGroupComponent } from './tab/group/tab-group.component';\r\nimport { UiTabContentDirective } from './tab/tab-content.directive';\r\nimport { UiTabLabelDirective } from './tab/tab-label.directive';\r\nimport { UiTabHeaderComponent } from './tab/header/tab-header.component';\r\nimport { UiLabelContentComponent } from './label-content/label-content.component';\r\nimport { UiUploadComponent } from './upload/upload.component';\r\n\r\nexport {\r\n debounce,\r\n unaccent,\r\n UiColor,\r\n UiCookie,\r\n UiElement,\r\n UiElementRef,\r\n UiSnackbar,\r\n UiToolbarService,\r\n UiWindowRef,\r\n UiCpfPipe,\r\n UiCnpjPipe,\r\n UiCepPipe,\r\n UiCepNovoPipe,\r\n UiPhonePipe,\r\n UiInfiniteLoadService,\r\n UiDatetimeService,\r\n UiTimePipe,\r\n UiCurrencyPipe,\r\n UiMaskPhoneDirective,\r\n UiDialog,\r\n UiFilterPipe,\r\n UiCreditCardPipe,\r\n UiMaskCreditCard,\r\n UiFloatPipe,\r\n}\r\n\r\nconst lib: any[] = [\r\n UiAddCalendarDirective,\r\n UiCalendarComponent,\r\n UiCalendarContentComponent,\r\n UiCapitalizePipe,\r\n UiDataTableOrderByDirective,\r\n UiDatePickerCallerDirective,\r\n UiDatePickerDirective,\r\n UiDialogComponent,\r\n UiDialogTriggerDirective,\r\n UiInputContainerComponent,\r\n UiInputDirective,\r\n UiMaxlengthDirective,\r\n UiMenuComponent,\r\n UiMenuTriggerDirective,\r\n UiNavDrawerComponent,\r\n UiOptionComponent,\r\n UiProgressRadialComponent,\r\n UiRippleDirective,\r\n UiSmartListComponent,\r\n UiSmartListItemComponent,\r\n UiSnackbarComponent,\r\n UiSnackbarComponent,\r\n UiSnackbarContainerComponent,\r\n UiSwitchComponent,\r\n UiToolbarComponent,\r\n UiMenuComponent,\r\n UiMenuTriggerDirective,\r\n UiProgressRadialComponent,\r\n UiMaskDateDirective,\r\n UiTimeAgoPipe,\r\n UiListItemDirective,\r\n UiMaskCpfDirective,\r\n UiCpfPipe,\r\n UiMaskCnpjDirective,\r\n UiCnpjPipe,\r\n UiMaskCepDirective,\r\n UiCepPipe,\r\n UiMaskCepNovoDirective,\r\n UiCepNovoPipe,\r\n UiMaskPhoneDirective,\r\n UiPhonePipe,\r\n UiListComponent,\r\n UiListItemsComponent,\r\n UiListItemComponent,\r\n UiPhonePipe,\r\n UiSliderComponent,\r\n UiSliderMultiHandleComponent,\r\n UiInfiniteLoadDirective,\r\n UiAutocompleteDirective,\r\n UiAutocompleteComponent,\r\n UiMaskIntegerDirective,\r\n UiTabsComponent,\r\n UiTabsPagesComponent,\r\n UiLazyLoadDirective,\r\n UiDataTableComponent,\r\n UiLazyLoadDirective,\r\n UiBottomSheetComponent,\r\n UiBottomSheetTriggerDirective,\r\n UiInputFileDirective,\r\n UiEllipsisDirective,\r\n UiRequiredDirective,\r\n UiColorPickerComponent,\r\n UiColorPickerDirective,\r\n UiInputAutosizeDirective,\r\n UiColorPickerDirective,\r\n UiClockComponent,\r\n UiTimePickerDirective,\r\n UiTimePickerCallerDirective,\r\n UiTimePipe,\r\n UiMaskTimeDirective,\r\n UiMaskCurrencyDirective,\r\n UiCurrencyPipe,\r\n UiSelectComponent,\r\n UiSelectOptionComponent,\r\n UiSelectFilterPipe,\r\n UiFilterPipe,\r\n UiAvatarComponent,\r\n UiMaskFloatDirective,\r\n TooltipDirective,\r\n UiChosenComponent,\r\n UiChosenOptionComponent,\r\n UiChosenGroupComponent,\r\n UiCreditCardPipe,\r\n UiMaskCreditCard,\r\n ExpansionPanelComponent,\r\n UiFloatPipe,\r\n UiTabComponent,\r\n UiTabGroupComponent,\r\n UiTabContentDirective,\r\n UiTabLabelDirective,\r\n UiTabHeaderComponent,\r\n UiLabelContentComponent,\r\n UiUploadComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [...lib],\r\n exports: [...lib],\r\n providers: [\r\n UiColor,\r\n UiDatetimeService,\r\n UiElement,\r\n UiReferencesService,\r\n UiSnackbar,\r\n UiWindowRef,\r\n UiInfiniteLoadService,\r\n UiTimePickerService,\r\n UiDialog,\r\n ],\r\n entryComponents: [\r\n UiCalendarComponent,\r\n UiCalendarContentComponent,\r\n UiAutocompleteComponent,\r\n UiColorPickerComponent,\r\n UiClockComponent\r\n ]\r\n})\r\nexport class SMNUIModule {\r\n}\r\n"],"names":["Injectable","ViewContainerRef","Directive","Subject","ElementRef","ChangeDetectorRef","Component","EventEmitter","isDate","ComponentFactoryResolver","Input","Output","ViewChild","ViewEncapsulation","Pipe","HostListener","ApplicationRef","Injector","TemplateRef","isNullOrUndefined","Renderer2","NG_VALIDATORS","forwardRef","KeyValueDiffers","Inject","DatePipe","NG_VALUE_ACCESSOR","AsyncPipe","of","repeatWhen","flatMap","timer","takeWhile","map","NgControl","trigger","transition","style","animate","NgModel","ChangeDetectionStrategy","ContentChildren","QueryList","ContentChild","state","NgModule","CommonModule","FormsModule","RouterModule","CUSTOM_ELEMENTS_SCHEMA"],"mappings":"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"}
1
+ {"version":3,"file":"ng-smn-ui.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://ng-smn-ui/lib/utils/providers/element.provider.ts","ng://ng-smn-ui/lib/button/button.service.ts","ng://ng-smn-ui/lib/utils/functions/debounce.ts","ng://ng-smn-ui/lib/utils/functions/unaccent.ts","ng://ng-smn-ui/lib/calendar/add-calendar.directive.ts","ng://ng-smn-ui/lib/calendar/datetime.service.ts","ng://ng-smn-ui/lib/utils/providers/color.provider.ts","ng://ng-smn-ui/lib/calendar/calendar-content.component.ts","ng://ng-smn-ui/lib/calendar/calendar.component.ts","ng://ng-smn-ui/lib/utils/pipes/capitalize.pipe.ts","ng://ng-smn-ui/lib/utils/providers/cookie.provider.ts","ng://ng-smn-ui/lib/data-table/order-by.directive.ts","ng://ng-smn-ui/lib/date-picker/references.service.ts","ng://ng-smn-ui/lib/date-picker/date-picker-caller.directive.ts","ng://ng-smn-ui/lib/date-picker/date-picker.directive.ts","ng://ng-smn-ui/lib/utils/providers/element-ref.provider.ts","ng://ng-smn-ui/lib/dialog/dialog.component.ts","ng://ng-smn-ui/lib/dialog/dialog-trigger.directive.ts","ng://ng-smn-ui/lib/input/input-container.component.ts","ng://ng-smn-ui/lib/input/input.directive.ts","ng://ng-smn-ui/lib/utils/validators/maxlength.directive.ts","ng://ng-smn-ui/lib/menu/menu.component.ts","ng://ng-smn-ui/lib/menu/menu-trigger.directive.ts","ng://ng-smn-ui/lib/nav-drawer/nav-drawer.component.ts","ng://ng-smn-ui/lib/selection-control/option/option.component.ts","ng://ng-smn-ui/lib/progress/radial/progress-radial.component.ts","ng://ng-smn-ui/lib/ripple/ripple.directive.ts","ng://ng-smn-ui/lib/smart-list/smart-list.component.ts","ng://ng-smn-ui/lib/smart-list/item/item.component.ts","ng://ng-smn-ui/lib/snackbar/snackbar.provider.ts","ng://ng-smn-ui/lib/snackbar/snackbar.component.ts","ng://ng-smn-ui/lib/snackbar/snackbar-container.component.ts","ng://ng-smn-ui/lib/selection-control/switch/switch.component.ts","ng://ng-smn-ui/lib/toolbar/toolbar.component.ts","ng://ng-smn-ui/lib/toolbar/toolbar.service.ts","ng://ng-smn-ui/lib/utils/providers/window.provider.ts","ng://ng-smn-ui/lib/utils/masks/date/check-date.ts","ng://ng-smn-ui/lib/utils/masks/date/mask-date.directive.ts","ng://ng-smn-ui/lib/utils/pipes/time-ago.pipe.ts","ng://ng-smn-ui/lib/list/list-item.directive.ts","ng://ng-smn-ui/lib/utils/masks/cpf/cpf.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cpf/mask-cpf.directive.ts","ng://ng-smn-ui/lib/utils/masks/cnpj/cnpj.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cnpj/mask-cnpj.directive.ts","ng://ng-smn-ui/lib/utils/masks/cnpj-novo/cnpj-novo.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cnpj-novo/mask-cnpj-novo.directive.ts","ng://ng-smn-ui/lib/utils/masks/cep/cep.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cep/mask-cep.directive.ts","ng://ng-smn-ui/lib/utils/masks/cep-novo/cep-novo.pipe.ts","ng://ng-smn-ui/lib/utils/masks/cep-novo/mask-cep-novo.directive.ts","ng://ng-smn-ui/lib/utils/masks/phone/phone.pipe.ts","ng://ng-smn-ui/lib/utils/masks/phone/mask-phone.directive.ts","ng://ng-smn-ui/lib/list/list.component.ts","ng://ng-smn-ui/lib/list/items/items.component.ts","ng://ng-smn-ui/lib/list/item/item.component.ts","ng://ng-smn-ui/lib/slider/slider.component.ts","ng://ng-smn-ui/lib/slider/slider-multi-handle.component.ts","ng://ng-smn-ui/lib/utils/infinite-load/infinite-load.service.ts","ng://ng-smn-ui/lib/utils/infinite-load/infinite-load.directive.ts","ng://ng-smn-ui/lib/autocomplete/autocomplete.component.ts","ng://ng-smn-ui/lib/autocomplete/autocomplete.directive.ts","ng://ng-smn-ui/lib/utils/masks/integer/mask-integer.directive.ts","ng://ng-smn-ui/lib/old-tabs/tabs.component.ts","ng://ng-smn-ui/lib/old-tabs/pages/tabs-pages.component.ts","ng://ng-smn-ui/lib/lazy-load/lazy-load.directive.ts","ng://ng-smn-ui/lib/data-table/data-table.component.ts","ng://ng-smn-ui/lib/bottom-sheet/bottom-sheet.component.ts","ng://ng-smn-ui/lib/bottom-sheet/bottom-sheet.directive.ts","ng://ng-smn-ui/lib/input/input-file.directive.ts","ng://ng-smn-ui/lib/ellipsis/ellipsis.directive.ts","ng://ng-smn-ui/lib/utils/validators/required.directive.ts","ng://ng-smn-ui/lib/color-picker/color-picker.palette.ts","ng://ng-smn-ui/lib/color-picker/color-picker.component.ts","ng://ng-smn-ui/lib/color-picker/color-picker.directive.ts","ng://ng-smn-ui/lib/input/autosize.directive.ts","ng://ng-smn-ui/lib/clock/clock.component.ts","ng://ng-smn-ui/lib/time-picker/time-picker.service.ts","ng://ng-smn-ui/lib/time-picker/time-picker.directive.ts","ng://ng-smn-ui/lib/time-picker/time-picker-caller.directive.ts","ng://ng-smn-ui/lib/utils/masks/time/time.pipe.ts","ng://ng-smn-ui/lib/utils/masks/time/mask-time.directive.ts","ng://ng-smn-ui/lib/utils/masks/currency/currency.pipe.ts","ng://ng-smn-ui/lib/utils/masks/currency/mask-currency.directive.ts","ng://ng-smn-ui/lib/dialog/dialog.service.ts","ng://ng-smn-ui/lib/select/select.component.ts","ng://ng-smn-ui/lib/select/option/option.component.ts","ng://ng-smn-ui/lib/select/select-filter.pipe.ts","ng://ng-smn-ui/lib/utils/pipes/filter.pipe.ts","ng://ng-smn-ui/lib/avatar/avatar.component.ts","ng://ng-smn-ui/lib/utils/masks/float/float.pipe.ts","ng://ng-smn-ui/lib/utils/masks/float/mask-float.directive.ts","ng://ng-smn-ui/lib/tooltip/tooltip.directive.ts","ng://ng-smn-ui/lib/chosen/chosen-option/chosen-option.component.ts","ng://ng-smn-ui/lib/chosen/chosen-group/chosen-group.component.ts","ng://ng-smn-ui/lib/chosen/chosen.component.ts","ng://ng-smn-ui/lib/utils/masks/credit-card/credit-card.pipe.ts","ng://ng-smn-ui/lib/utils/masks/credit-card/credit-card-mask.directive.ts","ng://ng-smn-ui/lib/expansion-panel/expansion-panel.component.ts","ng://ng-smn-ui/lib/tab/tab-content.directive.ts","ng://ng-smn-ui/lib/tab/tab-label.directive.ts","ng://ng-smn-ui/lib/tab/tab.component.ts","ng://ng-smn-ui/lib/tab/header/tab-header.component.ts","ng://ng-smn-ui/lib/tab/group/tab-group.animation.ts","ng://ng-smn-ui/lib/tab/group/tab-group.component.ts","ng://ng-smn-ui/lib/label-content/label-content.component.ts","ng://ng-smn-ui/lib/upload/upload.ts","ng://ng-smn-ui/lib/utils/animations/enter-leave-view.animations.ts","ng://ng-smn-ui/lib/upload/upload.component.ts","ng://ng-smn-ui/lib/smn-ui.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiElement {\r\n static caretPosition = {\r\n get: getCaretPosition,\r\n set: setCaretPosition\r\n };\r\n\r\n static classList = {\r\n remove: removeClass,\r\n add: addClass,\r\n contains: containsClass\r\n };\r\n\r\n static disableScroll(): any {\r\n if (window.addEventListener) { // older FF\r\n window.addEventListener('DOMMouseScroll', preventDefault, false);\r\n }\r\n\r\n window.onwheel = preventDefault; // modern standard\r\n // window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE\r\n window.ontouchmove = preventDefault; // mobile\r\n document.onkeydown = preventDefaultForScrollKeys;\r\n }\r\n\r\n static enableScroll(): any {\r\n if (window.removeEventListener) {\r\n window.removeEventListener('DOMMouseScroll', preventDefault, false);\r\n }\r\n // window.onmousewheel = document.onmousewheel = null;\r\n window.onwheel = null;\r\n window.ontouchmove = null;\r\n document.onkeydown = null;\r\n }\r\n\r\n static closest(el, selector): any {\r\n /* Source: http://stackoverflow.com/questions/18663941/finding-closest-element-without-jquery */\r\n\r\n let matchesFn = null;\r\n\r\n // find vendor prefix\r\n ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'].some(function (fn) {\r\n if (typeof document.body[fn] === 'function') {\r\n matchesFn = fn;\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n let parent;\r\n\r\n // traverse parents\r\n while (el) {\r\n parent = el.parentElement;\r\n if (parent && parent[matchesFn](selector)) {\r\n return parent;\r\n }\r\n el = parent;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n static index(el): any {\r\n const nodes = el.parentNode.childNodes;\r\n let node;\r\n let count;\r\n let i = count = 0;\r\n while ((node = nodes.item(i++)) && node !== el) {\r\n if (node.nodeType === 1) {\r\n count++;\r\n }\r\n }\r\n\r\n return count;\r\n }\r\n\r\n static trigger(el, eventToTrigger): any {\r\n const event = document.createEvent('HTMLEvents');\r\n event.initEvent(eventToTrigger, true, false);\r\n el.dispatchEvent(event);\r\n }\r\n\r\n static on(el, events, listener): any {\r\n let elements;\r\n if (el.constructor === NodeList) {\r\n elements = el;\r\n } else {\r\n elements = [el];\r\n }\r\n\r\n events = events.split(' ');\r\n\r\n Array.prototype.forEach.call(elements, el2 => {\r\n events.forEach(event => el2.addEventListener(event, listener, false));\r\n });\r\n }\r\n\r\n static off(el, events, listener): any {\r\n events = events.split(' ');\r\n const iLen = events.length;\r\n for (let i = 0; i < iLen; i++) {\r\n if (events[i]) {\r\n el.removeEventListener(events[i], listener, false);\r\n }\r\n }\r\n }\r\n\r\n static is(el, selector): any {\r\n const matches = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector;\r\n\r\n if (matches) {\r\n return (matches).call(el, selector);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static position(el, withoutScroll?): any {\r\n /* http://javascript.info/tutorial/coordinates */\r\n\r\n if (el.getBoundingClientRect) {\r\n return getOffsetRect(el);\r\n } else { // old browser\r\n return getOffsetSum(el);\r\n }\r\n\r\n function getOffsetSum(elem) {\r\n /* Source: http://javascript.info/tutorial/coordinates */\r\n\r\n let top = 0, left = 0;\r\n\r\n while (elem) {\r\n top = top + parseInt(elem.offsetTop, 10);\r\n left = left + parseInt(elem.offsetLeft, 10);\r\n elem = elem.offsetParent;\r\n }\r\n\r\n return {top: top, left: left};\r\n }\r\n\r\n function getOffsetRect(elem) {\r\n /* http://javascript.info/tutorial/coordinates */\r\n\r\n const box = elem.getBoundingClientRect();\r\n\r\n const body = document.body;\r\n const docElem = document.documentElement;\r\n\r\n let scrollTop = 0;\r\n let scrollLeft = 0;\r\n if (!withoutScroll) {\r\n scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;\r\n scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;\r\n }\r\n\r\n const clientTop = docElem.clientTop || body.clientTop || 0;\r\n const clientLeft = docElem.clientLeft || body.clientLeft || 0;\r\n\r\n const top = box.top + scrollTop - clientTop;\r\n const left = box.left + scrollLeft - clientLeft;\r\n\r\n return {top: Math.round(top), left: Math.round(left)};\r\n }\r\n }\r\n\r\n static offset(el): any {\r\n const top = el.offsetTop;\r\n const left = el.offsetLeft;\r\n\r\n return {top: Math.round(top), left: Math.round(left)};\r\n }\r\n\r\n static animate(object, property, start_value, end_value, time, end?, tick?): any {\r\n const propWithPx = ['width', 'height', 'left', 'top', 'border-radius', 'border-spacing', 'margin-left', 'margin-top'];\r\n\r\n const frame_rate = 0.06; // 60 FPS\r\n let frame = 0;\r\n const delta = (end_value - start_value) / time / frame_rate;\r\n const handle = setInterval(() => {\r\n frame++;\r\n const value = start_value + delta * frame;\r\n\r\n if (tick) {\r\n tick(value);\r\n }\r\n\r\n const hasPx = propWithPx.indexOf(property) > -1;\r\n\r\n object.style[property] = value + (hasPx ? 'px' : '');\r\n if ((start_value > end_value ? value.toFixed(2) <= end_value : value.toFixed(2) >= end_value)) {\r\n clearInterval(handle);\r\n\r\n if (end) {\r\n end();\r\n }\r\n }\r\n }, 1 / frame_rate);\r\n }\r\n\r\n static css(el, styleProp, newValue?) {\r\n if (typeof newValue !== 'undefined') {\r\n styleProp = styleProp.replace(/-([a-z])/g, function (g) {\r\n return g[1].toUpperCase();\r\n });\r\n\r\n el.style[styleProp] = newValue;\r\n } else {\r\n let value;\r\n const defaultView = (el.ownerDocument || document).defaultView;\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\r\n // sanitize property name to css notation\r\n // (hyphen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el.currentStyle) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/-(\\w)/g, function (str, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el.currentStyle[styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function (value2) {\r\n const oldLeft = el.style.left;\r\n const oldRsLeft = el.runtimeStyle.left;\r\n el.runtimeStyle.left = el.currentStyle.left;\r\n el.style.left = value2 || 0;\r\n value2 = el.style.pixelLeft + 'px';\r\n el.style.left = oldLeft;\r\n el.runtimeStyle.left = oldRsLeft;\r\n return value2;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n static isInViewport(el) {\r\n const rect = el.getBoundingClientRect();\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.left <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n }\r\n\r\n static focus(el) {\r\n el.focus();\r\n const headerSpace = document.querySelector('ui-toolbar header').clientHeight + 16;\r\n const elTop = UiElement.position(el, true).top;\r\n\r\n if (elTop < headerSpace) {\r\n window.scrollTo(0, UiElement.position(el).top - headerSpace);\r\n }\r\n\r\n return;\r\n }\r\n\r\n static isMobile() {\r\n let isMobile = false;\r\n\r\n (function (a) {\r\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) {\r\n isMobile = true;\r\n }\r\n })(navigator.userAgent || navigator.vendor || (<any>window).opera);\r\n\r\n return isMobile;\r\n }\r\n}\r\n\r\n// left: 37, up: 38, right: 39, down: 40,\r\n// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36\r\n// const keys = {37: 1, 38: 1, 39: 1, 40: 1};\r\nconst keys = {38: 1, 40: 1};\r\n\r\nfunction preventDefault(e) {\r\n e = e || window.event;\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n e.returnValue = false;\r\n}\r\n\r\nfunction preventDefaultForScrollKeys(e) {\r\n if (keys[e.keyCode]) {\r\n preventDefault(e);\r\n return false;\r\n }\r\n}\r\n\r\nexport function getCaretPosition(el): any {\r\n const documentt: any = {\r\n selection: undefined\r\n };\r\n Object.assign(documentt, document);\r\n\r\n let caretPos = 0;\r\n if (documentt.selection) { // IE Support\r\n el.focus();\r\n const select = documentt.selection.createRange();\r\n select.moveStart('character', -el.value.length);\r\n caretPos = select.text.length;\r\n } else if (el.selectionStart || el.selectionStart === '0') { // Firefox support\r\n caretPos = el.selectionStart;\r\n }\r\n\r\n return caretPos;\r\n}\r\n\r\nexport function setCaretPosition(el, beforeSelIndex, afterSelIndex, symbolsPositions?): any {\r\n // https://javascriptexamples.info/snippet/getset-cursor-in-html-textarea\r\n\r\n let futureSelIndex;\r\n symbolsPositions = symbolsPositions || [];\r\n if (el.selectionStart || el.selectionStart === '0') {\r\n\r\n futureSelIndex = afterSelIndex;\r\n\r\n for (let i = 0; i < symbolsPositions.length; i++) {\r\n if (beforeSelIndex === symbolsPositions[i] && afterSelIndex === symbolsPositions[i] + 1) {\r\n futureSelIndex = symbolsPositions[i] + 2;\r\n\r\n break;\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n setCaret();\r\n });\r\n }\r\n\r\n function setCaret() {\r\n if (el.setSelectionRange) {\r\n if (el.selectionStart) {\r\n el.focus();\r\n el.setSelectionRange(futureSelIndex, futureSelIndex);\r\n } else {\r\n el.focus();\r\n }\r\n } else if (el.createTextRange) {\r\n const range = el.createTextRange();\r\n range.collapse(true);\r\n range.move('character', futureSelIndex);\r\n range.moveEnd('character', futureSelIndex);\r\n range.moveStart('character', futureSelIndex);\r\n range.select();\r\n }\r\n }\r\n}\r\n\r\nexport function removeClass(el, className) {\r\n return el.classList.remove(className);\r\n}\r\n\r\nexport function addClass(el, className) {\r\n return el.classList.add(className);\r\n}\r\n\r\nexport function containsClass(el, className) {\r\n return el.classList.contains(className);\r\n}\r\n","import {UiElement} from '../utils/providers/element.provider';\r\n\r\nUiElement.on(window, 'scroll resize', (e) => {\r\n const fabContainers = document.querySelectorAll('.ui-fab-container');\r\n\r\n const len = fabContainers.length;\r\n\r\n if (len) {\r\n const scroll = (window.scrollY || window.pageYOffset);\r\n\r\n for (let i = 0; i < len; i++) {\r\n const fabContainer = fabContainers[i];\r\n\r\n if (scroll > 1) {\r\n fabContainer.classList.add('scrolled');\r\n } else {\r\n fabContainer.classList.remove('scrolled');\r\n }\r\n }\r\n }\r\n});\r\n","export function debounce(func, wait, immediate?) {\r\n let timeout;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n","/*\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n*/\r\nconst defaultDiacriticsRemovalMap = [\r\n {\r\n 'base': 'A',\r\n 'letters': '\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F'\r\n },\r\n {'base': 'AA', 'letters': '\\uA732'},\r\n {'base': 'AE', 'letters': '\\u00C6\\u01FC\\u01E2'},\r\n {'base': 'AO', 'letters': '\\uA734'},\r\n {'base': 'AU', 'letters': '\\uA736'},\r\n {'base': 'AV', 'letters': '\\uA738\\uA73A'},\r\n {'base': 'AY', 'letters': '\\uA73C'},\r\n {'base': 'B', 'letters': '\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181'},\r\n {'base': 'C', 'letters': '\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E'},\r\n {\r\n 'base': 'D',\r\n 'letters': '\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\\u00D0'\r\n },\r\n {'base': 'DZ', 'letters': '\\u01F1\\u01C4'},\r\n {'base': 'Dz', 'letters': '\\u01F2\\u01C5'},\r\n {\r\n 'base': 'E',\r\n 'letters': '\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E'\r\n },\r\n {'base': 'F', 'letters': '\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B'},\r\n {\r\n 'base': 'G',\r\n 'letters': '\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E'\r\n },\r\n {\r\n 'base': 'H',\r\n 'letters': '\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D'\r\n },\r\n {\r\n 'base': 'I',\r\n 'letters': '\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197'\r\n },\r\n {'base': 'J', 'letters': '\\u004A\\u24BF\\uFF2A\\u0134\\u0248'},\r\n {\r\n 'base': 'K',\r\n 'letters': '\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2'\r\n },\r\n {\r\n 'base': 'L',\r\n 'letters': '\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780'\r\n },\r\n {'base': 'LJ', 'letters': '\\u01C7'},\r\n {'base': 'Lj', 'letters': '\\u01C8'},\r\n {'base': 'M', 'letters': '\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C'},\r\n {\r\n 'base': 'N',\r\n 'letters': '\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4'\r\n },\r\n {'base': 'NJ', 'letters': '\\u01CA'},\r\n {'base': 'Nj', 'letters': '\\u01CB'},\r\n {\r\n 'base': 'O',\r\n 'letters': '\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C'\r\n },\r\n {'base': 'OI', 'letters': '\\u01A2'},\r\n {'base': 'OO', 'letters': '\\uA74E'},\r\n {'base': 'OU', 'letters': '\\u0222'},\r\n {'base': 'OE', 'letters': '\\u008C\\u0152'},\r\n {'base': 'oe', 'letters': '\\u009C\\u0153'},\r\n {'base': 'P', 'letters': '\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754'},\r\n {'base': 'Q', 'letters': '\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A'},\r\n {\r\n 'base': 'R',\r\n 'letters': '\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782'\r\n },\r\n {\r\n 'base': 'S',\r\n 'letters': '\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784'\r\n },\r\n {\r\n 'base': 'T',\r\n 'letters': '\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786'\r\n },\r\n {'base': 'TZ', 'letters': '\\uA728'},\r\n {\r\n 'base': 'U',\r\n 'letters': '\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244'\r\n },\r\n {'base': 'V', 'letters': '\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245'},\r\n {'base': 'VY', 'letters': '\\uA760'},\r\n {'base': 'W', 'letters': '\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72'},\r\n {'base': 'X', 'letters': '\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C'},\r\n {\r\n 'base': 'Y',\r\n 'letters': '\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE'\r\n },\r\n {\r\n 'base': 'Z',\r\n 'letters': '\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762'\r\n },\r\n {\r\n 'base': 'a',\r\n 'letters': '\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250'\r\n },\r\n {'base': 'aa', 'letters': '\\uA733'},\r\n {'base': 'ae', 'letters': '\\u00E6\\u01FD\\u01E3'},\r\n {'base': 'ao', 'letters': '\\uA735'},\r\n {'base': 'au', 'letters': '\\uA737'},\r\n {'base': 'av', 'letters': '\\uA739\\uA73B'},\r\n {'base': 'ay', 'letters': '\\uA73D'},\r\n {'base': 'b', 'letters': '\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253'},\r\n {'base': 'c', 'letters': '\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184'},\r\n {\r\n 'base': 'd',\r\n 'letters': '\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A'\r\n },\r\n {'base': 'dz', 'letters': '\\u01F3\\u01C6'},\r\n {\r\n 'base': 'e',\r\n 'letters': '\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD'\r\n },\r\n {'base': 'f', 'letters': '\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C'},\r\n {\r\n 'base': 'g',\r\n 'letters': '\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F'\r\n },\r\n {\r\n 'base': 'h',\r\n 'letters': '\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265'\r\n },\r\n {'base': 'hv', 'letters': '\\u0195'},\r\n {\r\n 'base': 'i',\r\n 'letters': '\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131'\r\n },\r\n {'base': 'j', 'letters': '\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249'},\r\n {\r\n 'base': 'k',\r\n 'letters': '\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3'\r\n },\r\n {\r\n 'base': 'l',\r\n 'letters': '\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747'\r\n },\r\n {'base': 'lj', 'letters': '\\u01C9'},\r\n {'base': 'm', 'letters': '\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F'},\r\n {\r\n 'base': 'n',\r\n 'letters': '\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5'\r\n },\r\n {'base': 'nj', 'letters': '\\u01CC'},\r\n {\r\n 'base': 'o',\r\n 'letters': '\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275'\r\n },\r\n {'base': 'oi', 'letters': '\\u01A3'},\r\n {'base': 'ou', 'letters': '\\u0223'},\r\n {'base': 'oo', 'letters': '\\uA74F'},\r\n {'base': 'p', 'letters': '\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755'},\r\n {'base': 'q', 'letters': '\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759'},\r\n {\r\n 'base': 'r',\r\n 'letters': '\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783'\r\n },\r\n {\r\n 'base': 's',\r\n 'letters': '\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B'\r\n },\r\n {\r\n 'base': 't',\r\n 'letters': '\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787'\r\n },\r\n {'base': 'tz', 'letters': '\\uA729'},\r\n {\r\n 'base': 'u',\r\n 'letters': '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289'\r\n },\r\n {'base': 'v', 'letters': '\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C'},\r\n {'base': 'vy', 'letters': '\\uA761'},\r\n {'base': 'w', 'letters': '\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73'},\r\n {'base': 'x', 'letters': '\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D'},\r\n {\r\n 'base': 'y',\r\n 'letters': '\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF'\r\n },\r\n {\r\n 'base': 'z',\r\n 'letters': '\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763'\r\n }\r\n];\r\n\r\nconst diacriticsMap = {};\r\nfor (let i = 0; i < defaultDiacriticsRemovalMap.length; i++) {\r\n const letters = defaultDiacriticsRemovalMap [i].letters;\r\n for (let j = 0; j < letters.length; j++) {\r\n diacriticsMap[letters[j]] = defaultDiacriticsRemovalMap [i].base;\r\n }\r\n}\r\n\r\n// \"what?\" version ... http://jsperf.com/diacritics/12\r\nexport function unaccent(str) {\r\n return str.replace(/[^\\u0000-\\u007E]/g, function (a) {\r\n return diacriticsMap[a] || a;\r\n });\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[addCalendar]'\r\n})\r\nexport class UiAddCalendarDirective {\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiDatetimeService {\r\n days: any;\r\n shortDays: any;\r\n months: any;\r\n shortMonths: any;\r\n\r\n constructor() {\r\n this.days = ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'];\r\n this.shortDays = ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'];\r\n this.months = ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'];\r\n this.shortMonths = ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'];\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiColor {\r\n static isBright(hex, minDarkPerc?): boolean {\r\n return _isBright(hex, minDarkPerc);\r\n }\r\n\r\n static hexToRgb(hex): {} {\r\n return _hexToRgb(hex);\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\nexport function _isBright(hex, minDarkPerc) {\r\n const color = _hexToRgb(hex);\r\n if (!color) {\r\n return false;\r\n }\r\n const luminosityPerc = 1 - (0.299 * color.r + 0.587 * color.g + 0.114 * color.b) / 255;\r\n return (luminosityPerc < (minDarkPerc || 0.3));\r\n}\r\n\r\nexport function _hexToRgb(hex) {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n}\r\n","import {AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input} from '@angular/core';\r\nimport {Subject} from 'rxjs';\r\nimport {UiDatetimeService} from './datetime.service';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiColor} from '../utils/providers/color.provider';\r\n\r\n@Component({\r\n selector: 'ui-calendar-content',\r\n templateUrl: './calendar-content.component.html',\r\n styleUrls: ['./calendar-content.component.scss'],\r\n})\r\nexport class UiCalendarContentComponent implements AfterViewInit {\r\n\r\n maxDate: Date;\r\n minDate: Date;\r\n calendar: any;\r\n ngModel: any;\r\n events: any[];\r\n chosenDate: any;\r\n days: any;\r\n months: any;\r\n confirmSelection: boolean;\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public datetimeService: UiDatetimeService, public elementRef: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.days = datetimeService.days;\r\n this.months = datetimeService.months;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.events && this.events.length) {\r\n this.verifyEventDates();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n this.elementRef.nativeElement.querySelectorAll('.days button').forEach(item => {\r\n item.addEventListener('keydown', e => {\r\n const target = UiElement.closest(e.target, '.day');\r\n const index = UiElement.index(target);\r\n\r\n let toFocus;\r\n let toFocusIndex = 0;\r\n let toFocusAlt;\r\n\r\n setTimeout(() => {\r\n switch (e.keyCode) {\r\n // Seta para esquerda\r\n case 37:\r\n toFocus = this.getSibling(index - 1);\r\n if (!toFocus.length) {\r\n toFocus = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])');\r\n toFocusIndex = toFocus.length - 1;\r\n }\r\n toFocus[toFocusIndex].focus();\r\n break;\r\n // Seta para cima\r\n case 38:\r\n toFocus = this.getSibling(index - 7);\r\n toFocusAlt = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])')[0];\r\n\r\n if (toFocus.length && index > UiElement.index(toFocus[0])) {\r\n toFocus[0].focus();\r\n } else {\r\n toFocusAlt.focus();\r\n }\r\n break;\r\n // Seta para direita\r\n case 39:\r\n toFocus = this.getSibling(index + 1);\r\n if (!toFocus.length) {\r\n this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])')[0].focus();\r\n } else {\r\n toFocus[0].focus();\r\n }\r\n break;\r\n // // Seta para baixo\r\n case 40:\r\n toFocus = this.getSibling(index + 7);\r\n toFocusAlt = this.elementRef.nativeElement.querySelectorAll('.days button:not([disabled])');\r\n toFocusAlt = toFocusAlt[toFocusAlt.length - 1];\r\n\r\n if (toFocus.length && index < UiElement.index(toFocus[0].parentNode)) {\r\n toFocus[0].focus();\r\n } else {\r\n toFocusAlt.focus();\r\n }\r\n break;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.elementRef.nativeElement.addEventListener('keydown', e => {\r\n if ([37, 38, 39, 40].indexOf(e.keyCode) > -1) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n getSibling(index): any[] {\r\n if (index < 0 || !this.elementRef.nativeElement.querySelectorAll('.day')[index]) {\r\n return [];\r\n }\r\n return this.elementRef.nativeElement.querySelectorAll('.day')[index].querySelectorAll('button:not([disabled])');\r\n }\r\n\r\n isDay(value) {\r\n const dateToCheck = this.chosenDate;\r\n if (!dateToCheck) {\r\n return;\r\n }\r\n\r\n return (\r\n dateToCheck.getDate() === value.getDate() &&\r\n dateToCheck.getMonth() === value.getMonth() &&\r\n dateToCheck.getFullYear() === value.getFullYear()\r\n );\r\n }\r\n\r\n chooseDate(value) {\r\n if (value) {\r\n this.chosenDate = value;\r\n if (!this.confirmSelection) {\r\n this.ngModel = value;\r\n }\r\n const newValue = {\r\n value,\r\n confirmSelection: this.confirmSelection\r\n };\r\n\r\n this.chosen.next(newValue);\r\n }\r\n }\r\n\r\n isDisabled(value) {\r\n const minDate = this.minDate ? new Date(this.minDate).getTime() : null;\r\n const maxDate = this.maxDate ? new Date(this.maxDate).getTime() : null;\r\n const date = value.getTime();\r\n\r\n return (typeof minDate === 'number' && !isNaN(minDate) && date < minDate) || (typeof maxDate === 'number' && !isNaN(maxDate) && date > maxDate);\r\n }\r\n\r\n verifyEventDates() {\r\n this.calendar.days.map(day => {\r\n this.events.map(event => {\r\n const date = new Date (event.date);\r\n\r\n if ((date.getTime() + (day.value.getTimezoneOffset() * 60000)) === day.value.getTime()) {\r\n day.hasEvent = true;\r\n day.eventColor = event.color;\r\n day.blocked = event.blocked;\r\n }\r\n });\r\n });\r\n }\r\n\r\n isBright(color) {\r\n return UiColor.isBright(color);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {UiCalendarContentComponent} from './calendar-content.component';\r\nimport {UiAddCalendarDirective} from './add-calendar.directive';\r\nimport {UiDatetimeService} from './datetime.service';\r\nimport {Subject} from 'rxjs';\r\nimport {isDate} from 'rxjs/internal/util/isDate';\r\n\r\n@Component({\r\n selector: 'ui-calendar',\r\n templateUrl: './calendar.component.html',\r\n styleUrls: ['./calendar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiCalendarComponent implements OnInit, OnChanges {\r\n @Input() ngModel: any;\r\n @Input() maxDate: Date;\r\n @Input() minDate: Date;\r\n @Input() hideHeader: boolean;\r\n @Input() initOnSelected: Date;\r\n @Input() confirmSelection: boolean;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() selectDateChange: EventEmitter<any> = new EventEmitter();\r\n @Output() cancel: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Output() updateMonth: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(UiAddCalendarDirective, { static: true }) addCalendar: UiAddCalendarDirective;\r\n chosen: Subject<any> = new Subject();\r\n\r\n calendar: any;\r\n days: any;\r\n shortDays: any;\r\n months: any;\r\n viewDate: Date;\r\n chosenDate: any;\r\n componentRef;\r\n\r\n constructor(public componentFactoryResolver: ComponentFactoryResolver, public datetimeService: UiDatetimeService) {\r\n this.days = datetimeService.days;\r\n this.shortDays = datetimeService.shortDays;\r\n this.months = datetimeService.months;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n this.chosenDate = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : null;\r\n this.ngModel = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : this.ngModel;\r\n this.viewDate = isDate(this.ngModel) ? this.ngModel : this.initOnSelected || new Date();\r\n this.renderCalendar(this.viewDate);\r\n\r\n }\r\n\r\n public ngOnChanges(value): void {\r\n if (value.ngModel && !value.ngModel.firstChange && !isNaN(value.ngModel.currentValue)) {\r\n const ngModel = value.ngModel.currentValue = value.ngModel.currentValue && isDate(new Date(value.ngModel.currentValue)) ? new Date(value.ngModel.currentValue) : value.ngModel.currentValue;\r\n this.ngModel = this.chosenDate = this.componentRef.instance.chosenDate = this.componentRef.instance.ngModel = ngModel;\r\n }\r\n if (value.maxDate && !value.maxDate.firstChange) {\r\n const maxDate = value.maxDate.currentValue = value.maxDate.currentValue && isDate(new Date(value.maxDate.currentValue)) ? new Date(value.maxDate.currentValue) : value.maxDate.currentValue;\r\n this.componentRef.instance.maxDate = this.maxDate = maxDate;\r\n }\r\n if (value.minDate && !value.minDate.firstChange) {\r\n const minDate = value.minDate.currentValue = value.minDate.currentValue && isDate(new Date(value.minDate.currentValue)) ? new Date(value.minDate.currentValue) : value.minDate.currentValue;\r\n this.componentRef.instance.minDate = this.minDate = minDate;\r\n }\r\n if (value.confirmSelection) {\r\n this.confirmSelection = value.confirmSelection.currentValue;\r\n }\r\n }\r\n\r\n public prevMonth(): void {\r\n this.viewDate.setMonth(this.viewDate.getMonth() - 1);\r\n this.updateMonth.emit();\r\n this.renderCalendar(this.viewDate);\r\n }\r\n\r\n public nextMonth(): void {\r\n this.viewDate.setMonth(this.viewDate.getMonth() + 1);\r\n this.updateMonth.emit();\r\n this.renderCalendar(this.viewDate);\r\n }\r\n\r\n public selectDate(value) {\r\n this.ngModel = this.componentRef.instance.ngModel = value;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.select.emit(this.ngModel);\r\n this.selectDateChange.emit(this.ngModel);\r\n this.chosen.next(this.ngModel);\r\n }\r\n\r\n public cancelDate() {\r\n this.ngModel = this.chosenDate = this.componentRef.instance.ngModel = this.componentRef.instance.chosenDate = null;\r\n this.cancel.emit();\r\n this.ngModelChange.emit(this.ngModel);\r\n }\r\n\r\n public renderCalendar(dateTarget: Date): void {\r\n let date: Date = dateTarget;\r\n\r\n date.setHours(0, 0, 0, 0);\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + 1);\r\n date.setDate(0);\r\n\r\n this.viewDate = date;\r\n\r\n const calendar: any = {\r\n year: date.getFullYear(),\r\n month: date.getMonth(),\r\n monthDays: date.getDate(),\r\n lastDayWeek: date.getDay(),\r\n lastDayWeekName: this.days[date.getDay()]\r\n };\r\n\r\n date.setDate(1);\r\n calendar.firstDayWeek = date.getDay();\r\n calendar.firstDayWeekName = this.days[date.getDay()];\r\n calendar.totalDays = calendar.monthDays + calendar.firstDayWeek + (6 - calendar.lastDayWeek);\r\n calendar.days = [];\r\n\r\n const firstDate = -calendar.firstDayWeek + 1;\r\n const lastDate = calendar.monthDays + (7 - calendar.lastDayWeek);\r\n\r\n for (let i = firstDate; i < lastDate; i++) {\r\n date = new Date(calendar.year, calendar.month, i);\r\n let today: any = new Date();\r\n today = date.getFullYear() === today.getFullYear() && date.getMonth() === today.getMonth() && date.getDate() === today.getDate();\r\n calendar.days.push({\r\n month: date.getMonth(),\r\n date: date.getDate(),\r\n value: date,\r\n time: date.getTime(),\r\n today: today\r\n });\r\n }\r\n\r\n this.calendar = calendar;\r\n\r\n const keysComponent = ['calendar', 'ngModel', 'minDate', 'maxDate', 'chosenDate', 'confirmSelection', 'events'];\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiCalendarContentComponent);\r\n const viewContainerRef = this.addCalendar.viewContainerRef;\r\n viewContainerRef.clear();\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n keysComponent.map(key => this.componentRef.instance[key] = this[key]);\r\n\r\n this.componentRef.instance.chosen.subscribe(newValue => {\r\n if (newValue) {\r\n this.chosenDate = newValue.value;\r\n if (!newValue.confirmSelection) {\r\n this.selectDate(newValue.value);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCapitalize'\r\n})\r\nexport class UiCapitalizePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n return value && value.length > 0 ? value[0].toUpperCase() + value.substr(1).toLowerCase() : value;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class UiCookie {\r\n static get(name: string) {\r\n const ca: Array<string> = document.cookie.split(';');\r\n const caLen: number = ca.length;\r\n const cookieName = `${name}=`;\r\n let c: string;\r\n\r\n for (let i = 0; i < caLen; i += 1) {\r\n c = ca[i].replace(/^\\s+/g, '');\r\n if (c.indexOf(cookieName) === 0) {\r\n return c.substring(cookieName.length, c.length);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n static has(name: string) {\r\n return !!this.get(name);\r\n }\r\n\r\n static delete(name: string, domain?: string) {\r\n this.set(name, '', -1, null, domain);\r\n }\r\n\r\n static set(name: string, value: string, expireDays: number = 365, path: string = '/', domain?: string) {\r\n const d: Date = new Date();\r\n d.setTime(d.getTime() + expireDays * 24 * 60 * 60 * 1000);\r\n const expires: string = 'expires=' + d.toUTCString();\r\n if (domain) domain = '; domain=' + domain\r\n document.cookie = name + '=' + value + '; ' + expires + '; path=' + path + domain;\r\n }\r\n}\r\n","import {Directive, ElementRef, AfterViewInit, HostListener, Input, OnChanges} from '@angular/core';\r\n\r\n@Directive({selector: 'th[uiDataTableOrderBy]'})\r\nexport class UiDataTableOrderByDirective implements AfterViewInit, OnChanges {\r\n @Input('withCondition') withCondition: boolean;\r\n @Input('uiDataTableOrderBy') uiDataTableOrderBy: 'ASC' | 'DESC' | null;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const icon: HTMLElement = document.createElement('i');\r\n icon.classList.add('material-icons');\r\n icon.innerHTML = 'arrow_downward';\r\n\r\n if (this.element.nativeElement.classList.contains('align-right')) {\r\n this.element.nativeElement.insertBefore(icon.cloneNode(true), this.element.nativeElement.firstChild);\r\n } else {\r\n this.element.nativeElement.appendChild(icon.cloneNode(true));\r\n }\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.uiDataTableOrderBy && !changes.uiDataTableOrderBy.firstChange) {\r\n this.uiDataTableOrderBy = changes.uiDataTableOrderBy.currentValue;\r\n this.orderByCondition();\r\n }\r\n }\r\n\r\n orderByClick() {\r\n if (this.element.nativeElement.classList.contains('order_desc')\r\n || this.element.nativeElement.classList.contains('order_asc')) {\r\n if (this.element.nativeElement.classList.contains('order_asc')) {\r\n this.element.nativeElement.classList.add('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n } else if (this.element.nativeElement.classList.contains('order_desc')) {\r\n this.element.nativeElement.classList.remove('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n }\r\n } else {\r\n this.element.nativeElement.classList.add('order_asc');\r\n }\r\n }\r\n\r\n orderByCondition() {\r\n switch (this.uiDataTableOrderBy) {\r\n case 'ASC':\r\n this.element.nativeElement.classList.add('order_asc');\r\n this.element.nativeElement.classList.remove('order_desc');\r\n break;\r\n case 'DESC':\r\n this.element.nativeElement.classList.add('order_desc');\r\n this.element.nativeElement.classList.remove('order_asc');\r\n break;\r\n default:\r\n this.element.nativeElement.classList.remove('order_asc', 'order_desc');\r\n break;\r\n }\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.withCondition) {\r\n return;\r\n }\r\n\r\n this.orderByClick();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiDatePickerDirective} from './date-picker.directive';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Injectable()\r\nexport class UiReferencesService {\r\n\r\n datePickers: any = {};\r\n\r\n constructor() {\r\n }\r\n\r\n add(name: string, component: UiDatePickerDirective): void {\r\n if (this.datePickers && this.datePickers[name]) {\r\n return;\r\n }\r\n\r\n this.datePickers[name] = component;\r\n }\r\n\r\n get(name: string): UiDatePickerDirective {\r\n return this.datePickers[name];\r\n }\r\n\r\n remove(name: string) {\r\n delete this.datePickers[name];\r\n }\r\n\r\n closeAll() {\r\n UiElement.trigger(window, 'click');\r\n }\r\n\r\n getAll(): UiDatePickerDirective {\r\n return this.datePickers;\r\n }\r\n\r\n updateModel(name, value) {\r\n this.datePickers[name].ngModel = value;\r\n this.datePickers[name].ngModelChange.emit(value);\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n EmbeddedViewRef,\r\n ElementRef,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport {UiReferencesService} from './references.service';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiCalendarComponent} from '../calendar/calendar.component';\r\n\r\n@Directive({\r\n selector: '[uiDatePickerCaller]'\r\n})\r\nexport class UiDatePickerCallerDirective implements AfterViewInit {\r\n datePicker;\r\n componentRef: any;\r\n componentElement: any;\r\n pickerOpen: boolean;\r\n wrapDatePicker: HTMLElement;\r\n inputElement: HTMLElement;\r\n @Input() pickerEvent: string;\r\n @Input('uiDatePickerCaller') datePickerCaller: string;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private referencesService: UiReferencesService,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.datePicker = this.referencesService.get(this.datePickerCaller);\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.pickerEvent || 'click', (e) => {\r\n this.inputElement = <HTMLElement>document.querySelector(`[date-picker-name=\"${this.datePickerCaller}\"]`);\r\n\r\n this.referencesService.closeAll();\r\n\r\n if (!this.pickerOpen) {\r\n this.renderDatePicker(this.datePicker);\r\n e.stopPropagation(); // Parando propagação do evento para os eventos do window\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.pickerOpen) {\r\n if ((!(UiElement.is(e.target, '.wrap-date-picker') || UiElement.closest(e.target, '.wrap-date-picker'))\r\n && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.closePicker();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getComponentAsElement(componentRef): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n public setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'maxDate', 'minDate', 'initOnSelected', 'confirmSelection', 'select', 'selectDateChange', 'events'];\r\n keysComponent.map(key => componentRef.instance[key] = component[key]);\r\n componentRef.instance.cancel.subscribe(() => this.closePicker());\r\n componentRef.instance.updateMonth.subscribe(() => this.setCoordinate(this.componentElement));\r\n component.chosen.subscribe(value => componentRef.instance.ngOnChanges(value));\r\n componentRef.instance.chosen.subscribe(value => {\r\n this.referencesService.updateModel(this.datePickerCaller, value);\r\n if (this.pickerOpen) {\r\n this.inputElement.focus();\r\n this.closePicker();\r\n }\r\n });\r\n }\r\n\r\n public renderViewCalendar(element, themeClass): void {\r\n this.wrapDatePicker = document.createElement('div');\r\n this.wrapDatePicker.classList.add('wrap-date-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n if (themeClass) {\r\n this.wrapDatePicker.classList.add(themeClass);\r\n }\r\n\r\n this.wrapDatePicker.style.transform = 'scale(0)';\r\n element.classList.add('portrait-only');\r\n this.wrapDatePicker.appendChild(overlay);\r\n this.wrapDatePicker.appendChild(element);\r\n document.body.appendChild(this.wrapDatePicker);\r\n\r\n this.setCoordinate(element);\r\n }\r\n\r\n public renderDatePicker(component): void {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiCalendarComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.componentElement = this.getComponentAsElement(this.componentRef);\r\n\r\n this.setInstances(component, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.renderViewCalendar(this.componentElement, component.themeClass);\r\n this.pickerOpen = true;\r\n }\r\n\r\n public closePicker(): void {\r\n this.wrapDatePicker.classList.remove('open');\r\n setTimeout(() => {\r\n this.pickerOpen = false;\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n document.body.style.overflowY = '';\r\n try {\r\n document.body.removeChild(this.wrapDatePicker);\r\n } catch (e) {\r\n }\r\n }, 280);\r\n }\r\n\r\n private setCoordinate(element) {\r\n const position = UiElement.position(this.inputElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: this.inputElement.offsetHeight + position.top\r\n };\r\n\r\n setTimeout(() => {\r\n const pickerHorizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const pickerVerticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (pickerHorizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n if (pickerVerticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n this.wrapDatePicker.style.transform = '';\r\n element.style.position = 'absolute';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n this.wrapDatePicker.classList.add('open');\r\n if (document.body.clientWidth <= 600) {\r\n document.body.style.overflowY = 'hidden';\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive, EventEmitter, Input, Output, OnChanges, OnInit, OnDestroy, ElementRef,\r\n AfterViewInit, ChangeDetectorRef\r\n} from '@angular/core';\r\nimport {UiReferencesService} from './references.service';\r\nimport {Subject} from 'rxjs';\r\nimport {isDate} from 'rxjs/internal/util/isDate';\r\n\r\n@Directive({\r\n selector: '[uiDatePicker]'\r\n})\r\nexport class UiDatePickerDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() ngModel;\r\n @Input() maxDate: Date;\r\n @Input() minDate: Date;\r\n @Input() events: any;\r\n @Input() initOnSelected: Date;\r\n @Input() confirmSelection: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input('uiDatePicker') datePicker: string;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() selectDateChange: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public referencesService: UiReferencesService, public element: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n }\r\n\r\n ngOnInit() {\r\n this.referencesService.add(this.datePicker, this);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute('date-picker-name', this.datePicker);\r\n }\r\n\r\n ngOnChanges(value) {\r\n this.chosen.next(value);\r\n if (value.ngModel && value.ngModel.currentValue === '') {\r\n this.ngModelChange.emit(null);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.referencesService.remove(this.datePicker);\r\n }\r\n}\r\n","import {UiElement} from './element.provider';\r\n\r\nexport class UiElementRef {\r\n nativeElement: any;\r\n length: number;\r\n classList: any;\r\n\r\n constructor(element: any) {\r\n this.nativeElement = element;\r\n\r\n if (element) {\r\n if (element.length) {\r\n this.length = element.length;\r\n if (element === window) {\r\n this[0] = new UiElementRef(element);\r\n } else {\r\n for (let i = 0; i < element.length; i++) {\r\n this[i] = new UiElementRef(element[i]);\r\n }\r\n }\r\n } else {\r\n this.length = 1;\r\n this[0] = element;\r\n }\r\n }\r\n\r\n this.classList = {\r\n remove: function removeClass(className) {\r\n return UiElement.classList.remove(element, className);\r\n },\r\n add: function addClass(className) {\r\n return UiElement.classList.add(element, className);\r\n },\r\n contains: function addClass(className) {\r\n return UiElement.classList.contains(element, className);\r\n }\r\n };\r\n }\r\n\r\n closest(selector): any {\r\n return new UiElementRef(UiElement.closest(this.nativeElement, selector));\r\n }\r\n\r\n index(): any {\r\n return UiElement.index(this.nativeElement);\r\n }\r\n\r\n trigger(eventToTrigger): any {\r\n return UiElement.trigger(this.nativeElement, eventToTrigger);\r\n }\r\n\r\n on(events, listener): any {\r\n return UiElement.on(this.nativeElement, events, listener);\r\n }\r\n\r\n off(events, listener): any {\r\n return UiElement.off(this.nativeElement, events, listener);\r\n }\r\n\r\n is(selector): any {\r\n return UiElement.is(this.nativeElement, selector);\r\n }\r\n\r\n position(withoutScroll?): any {\r\n return UiElement.position(this.nativeElement, withoutScroll);\r\n }\r\n\r\n offset(): any {\r\n return UiElement.offset(this.nativeElement);\r\n }\r\n\r\n animate(property, start_value, end_value, time, end?, tick?): any {\r\n return UiElement.animate(this.nativeElement, property, start_value, end_value, time, end, tick);\r\n }\r\n\r\n querySelector(selector): any {\r\n let selected = this.nativeElement.querySelectorAll(selector);\r\n\r\n if (selected.length) {\r\n selected = selected.length === 1 ? selected[0] : selected;\r\n return new UiElementRef(selected);\r\n }\r\n\r\n return new UiElementRef(null);\r\n }\r\n\r\n forEach(callback): any {\r\n return Array.prototype.forEach.call(this, callback);\r\n }\r\n\r\n filter(callback): any {\r\n return Array.prototype.filter.call(this, callback);\r\n }\r\n\r\n indexOf(element): any {\r\n return Array.prototype.indexOf.call(this, element);\r\n }\r\n\r\n css(styleProp, newValue?): any {\r\n return UiElement.css(this.nativeElement, styleProp, newValue);\r\n }\r\n\r\n isInViewport(): any {\r\n return UiElement.isInViewport(this.nativeElement);\r\n }\r\n\r\n attribute(name, value?): any {\r\n if (typeof value !== 'undefined') {\r\n return this.nativeElement.setAttribute(name, value);\r\n } else {\r\n return this.nativeElement.getAttribute(name);\r\n }\r\n }\r\n\r\n height(newHeight?) {\r\n if (typeof newHeight !== 'undefined') {\r\n UiElement.css(this.nativeElement, 'height', newHeight);\r\n }\r\n\r\n return this.nativeElement.clientHeight;\r\n }\r\n\r\n parent() {\r\n return new UiElementRef(this.nativeElement.parentNode);\r\n }\r\n\r\n focus() {\r\n if (this.nativeElement && this.nativeElement.focus) {\r\n this.nativeElement.focus();\r\n }\r\n }\r\n}\r\n","import {\r\n Component, ElementRef, Output, TemplateRef, ViewChild,\r\n ViewEncapsulation, EventEmitter, Input\r\n} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiDialogComponent {\r\n viewRef: any;\r\n opened: boolean;\r\n @Input('card-size') cardSize: number;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter();\r\n @ViewChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n this.closeChange.emit();\r\n\r\n if (this.viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n if (this.viewRef) {\r\n setTimeout(() => {\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n this.viewRef.destroy();\r\n this.viewRef = null;\r\n }, 280);\r\n }\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n show(config?: any) {\r\n if (!this.viewRef) {\r\n const dialog = this;\r\n\r\n this.close();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n this.viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, config);\r\n }\r\n });\r\n }\r\n }\r\n\r\n open(element, config) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (config.darkClass) {\r\n element.classList.add(config.darkClass);\r\n }\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize || this.cardSize) {\r\n element.querySelector('ui-card').style.maxWidth = (config.cardSize || this.cardSize) + 'px';\r\n element.querySelector('ui-card').style.width = '100%';\r\n }\r\n\r\n if (!config.transparentOverlay && fabs.length) {\r\n fabs.classList.add('hide');\r\n }\r\n\r\n if (config.clickOverlayToClose) {\r\n element.querySelector('.overlay').addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, ViewContainerRef } from '@angular/core';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiDialogTrigger]'\r\n})\r\nexport class UiDialogTriggerDirective implements AfterViewInit {\r\n viewRef: any;\r\n opened: boolean;\r\n @Input('trigger-events') triggerEvents: string;\r\n @Input('dark-class') darkClass: string;\r\n @Input('theme-class') themeClass: string;\r\n @Input('transparent-overlay') transparentOverlay: boolean;\r\n @Input('uiDialogTrigger') dialog;\r\n @Input('click-overlay-to-close') clickOverlayToClose;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dialog.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', () => {\r\n this.render();\r\n });\r\n\r\n this.clickOverlayToClose = this.clickOverlayToClose !== undefined ? this.clickOverlayToClose : true;\r\n }\r\n\r\n render() {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode);\r\n }\r\n });\r\n }\r\n\r\n open(element) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n const fabs = document.querySelectorAll('.ui-fab-container');\r\n\r\n if (this.darkClass) {\r\n element.classList.add(this.darkClass);\r\n }\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (this.dialog.cardSize) {\r\n element.querySelectorAll('ui-card')[0].style.maxWidth = this.dialog.cardSize + 'px';\r\n element.querySelectorAll('ui-card')[0].style.width = '100%';\r\n }\r\n\r\n if (!this.transparentOverlay && fabs.length) {\r\n Array.prototype.forEach.call(fabs, fab => {\r\n fab.classList.add('hide');\r\n });\r\n }\r\n\r\n if (this.clickOverlayToClose) {\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n const fabs = document.querySelectorAll('.ui-fab-container');\r\n if (fabs.length) {\r\n\r\n Array.prototype.forEach.call(fabs, fab => {\r\n fab.classList.remove('hide');\r\n });\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n}\r\n","import {AfterViewInit, Component, ViewEncapsulation, ElementRef, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-input-container',\r\n template: `\r\n <div class=\"ui-input-wrap\">\r\n <ng-content></ng-content>\r\n \r\n <div *ngIf=\"loading\" class=\"ui-progress input\">\r\n <div class=\"indeterminate\"></div>\r\n </div>\r\n </div>\r\n `,\r\n // styleUrls: ['input.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class UiInputContainerComponent implements AfterViewInit {\r\n\r\n @Input() loading;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const nativeElement = this.element.nativeElement;\r\n const inputWrap = nativeElement.getElementsByClassName('ui-input-wrap')[0];\r\n\r\n const icon = nativeElement.getElementsByClassName('icon')[0];\r\n const line = document.createElement('div');\r\n line.className = 'line';\r\n inputWrap.appendChild(line);\r\n\r\n if (icon) {\r\n const methodInsertIcon = icon === inputWrap.firstElementChild ? 'insertBefore' : 'appendChild';\r\n inputWrap.removeChild(icon);\r\n nativeElement[methodInsertIcon](icon, nativeElement.firstChild);\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, Output,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { isNullOrUndefined } from 'util';\r\n\r\n@Directive({\r\n selector: '[uiInput]'\r\n})\r\n\r\nexport class UiInputDirective implements AfterViewInit, OnChanges {\r\n placeholder: string;\r\n @Input() ngModel: any;\r\n @Input() persistPlaceholder: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private element: ElementRef, private renderer: Renderer2) {\r\n this.placeholder = element.nativeElement.placeholder;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderer.addClass(this.element.nativeElement, 'ui-control');\r\n this.setPlaceholder();\r\n }\r\n\r\n ngOnChanges() {\r\n this.isEmpty(this.ngModel);\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur() {\r\n this.isEmpty(this.ngModel);\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n this.isEmpty(this.ngModel);\r\n this.setPlaceholder(this.placeholder);\r\n }\r\n\r\n @HostListener('focusout')\r\n onFocusout() {\r\n this.setPlaceholder();\r\n }\r\n\r\n isEmpty(value: any): void {\r\n // TODO: Try model e view value\r\n const self = this;\r\n function isEmpty() {\r\n let action = isNullOrUndefined(value) && !self.element.nativeElement.value ? 'addClass' : 'removeClass';\r\n if (!isNullOrUndefined(self.ngModel) && self.ngModel.trim && !self.ngModel.trim()) {\r\n action = 'addClass';\r\n }\r\n self.renderer[action](self.element.nativeElement, 'ui-empty');\r\n }\r\n\r\n isEmpty();\r\n setTimeout(isEmpty);\r\n }\r\n\r\n setPlaceholder(value?: string) {\r\n value = this.persistPlaceholder ? this.placeholder : value || '';\r\n this.renderer.setProperty(this.element.nativeElement, 'placeholder', value);\r\n }\r\n}\r\n","import { Directive, Input, forwardRef} from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiMaxlength][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => UiMaxlengthDirective), multi: true }\r\n ]\r\n})\r\nexport class UiMaxlengthDirective implements Validator {\r\n @Input('uiMaxlength') maxLength: any;\r\n\r\n constructor() {}\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n\r\n const value = control.value ? control.value.toString() : control.value;\r\n\r\n if (value && value.length > this.maxLength) {\r\n return {\r\n uiMaxlength: true\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import {\r\n Component, ElementRef, EventEmitter, OnDestroy, Output, TemplateRef, ViewChild, ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-menu',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiMenuComponent implements OnDestroy {\r\n viewRef;\r\n menu;\r\n themeClass;\r\n menuAlign;\r\n persistentMenu;\r\n element;\r\n listenerExists;\r\n overlay;\r\n\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter(); // OLD VERSION\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.close();\r\n }\r\n\r\n show(event, config?) {\r\n if (config) {\r\n this.element = config.element || null;\r\n this.themeClass = config.class || null;\r\n this.menuAlign = config.align || null;\r\n this.persistentMenu = config.persistent || null;\r\n }\r\n\r\n this.createListener();\r\n\r\n let coordinate = {\r\n x: event.clientX,\r\n y: event.clientY + window.pageYOffset\r\n };\r\n if (this.element) {\r\n const position = UiElement.position(this.element);\r\n coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n }\r\n this.render(coordinate);\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n let horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = document.body.clientHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (this.menuAlign === 'right') {\r\n coordinate.x -= element.clientWidth - (this.element ? this.element.clientWidth : 0);\r\n horizontalCoveringArea = coordinate.x;\r\n }\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n element.classList.add('right');\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.menuAlign) {\r\n element.classList.add(this.menuAlign);\r\n }\r\n\r\n element.style.transform = '';\r\n element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n this.closeChange.emit(); // OLD VERSION\r\n\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n\r\n createListener() {\r\n if (!this.listenerExists) {\r\n this.listenerExists = true;\r\n UiElement.on(window, 'mouseup resize scroll touchend', (e) => {\r\n if (this.elementRef.nativeElement !== e.target) {\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, Input, ViewContainerRef, AfterViewChecked,\r\n HostListener\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMenuTrigger]'\r\n})\r\nexport class UiMenuTriggerDirective implements AfterViewInit {\r\n viewRef;\r\n @Input('trigger-events') triggerEvents;\r\n @Input('theme-class') themeClass;\r\n @Input() align;\r\n @Input('menu-align') menuAlign;\r\n @Input('uiMenuTrigger') menu;\r\n @Input() persistentMenu;\r\n @Input('click-overlay-to-close') clickOverlayToClose;\r\n @Input() contextmenu: boolean;\r\n @Input() overlay: boolean;\r\n @Input() fixed: boolean;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.menu.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', event => {\r\n this.menu.overlay = this.overlay;\r\n\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n\r\n if (this.contextmenu) {\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n });\r\n });\r\n\r\n UiElement.on(window, 'mouseup resize scroll touchend', (e) => {\r\n\r\n if (this.fixed && (e.type === 'scroll' || e.type === 'resize')) {\r\n return;\r\n }\r\n\r\n if (this.clickOverlayToClose) {\r\n switch (e.type) {\r\n case 'mouseup':\r\n case 'touchend':\r\n if (!UiElement.closest(e.target, '.wrap-menu')) {\r\n this.close();\r\n }\r\n return;\r\n default:\r\n this.close();\r\n return;\r\n }\r\n }\r\n\r\n if (this.elementRef.nativeElement !== e.target) {\r\n if (!this.persistentMenu) {\r\n this.close();\r\n }\r\n\r\n }\r\n });\r\n\r\n UiElement.on(window, 'mouseup touchend', e => {\r\n if (this.clickOverlayToClose && !UiElement.closest(e.target, '.wrap-menu')) {\r\n this.close();\r\n return;\r\n }\r\n });\r\n }\r\n\r\n @HostListener('contextmenu') onContextmenu() {\r\n if (!this.contextmenu) {\r\n return true;\r\n }\r\n\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n\r\n return false;\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.menu.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth && !rootNode.classList.contains('wrap-menu-overlay')) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n let horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = document.body.clientHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (this.align === 'right' || this.menuAlign === 'right') {\r\n coordinate.x -= element.clientWidth - this.elementRef.nativeElement.clientWidth;\r\n horizontalCoveringArea = coordinate.x;\r\n }\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.align || this.menuAlign) {\r\n element.classList.add(this.align || this.menuAlign);\r\n }\r\n\r\n element.style.transform = '';\r\n element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.querySelector('ui-card').style.maxWidth = (window.innerWidth - 16) + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n AfterViewInit,\r\n ViewEncapsulation,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n OnChanges,\r\n Input, OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { UiElement } from '../utils/providers/element.provider';\r\nimport { UiCookie } from '../utils/providers/cookie.provider';\r\n\r\n@Component({\r\n selector: 'ui-nav-drawer',\r\n templateUrl: './nav-drawer.component.html',\r\n styleUrls: ['./nav-drawer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiNavDrawerComponent implements AfterViewInit, OnChanges, OnDestroy {\r\n @Input() open: boolean;\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public openNav: Function;\r\n public closeNav: Function;\r\n onTouchStart: Function;\r\n onTouchMove: Function;\r\n onTouchEnd: Function;\r\n\r\n constructor(private element: ElementRef) {\r\n this.openNav = () => {\r\n if (document.body.clientWidth <= 375 || (!this.element.nativeElement.classList.contains('persistent') && (window.scrollY || window.pageYOffset) > 1)) {\r\n const fabContainer = document.querySelectorAll('.ui-fab-container')[0];\r\n if (fabContainer) {\r\n fabContainer.classList.add('hide');\r\n }\r\n }\r\n this.element.nativeElement.classList.add('open');\r\n if (!this.element.nativeElement.classList.contains('persistent')) {\r\n document.body.style.overflowY = 'hidden';\r\n } else {\r\n document.body.style.overflowY = '';\r\n }\r\n };\r\n\r\n this.closeNav = () => {\r\n const fabContainer = document.querySelectorAll('.ui-fab-container')[0];\r\n if (fabContainer) {\r\n fabContainer.classList.remove('hide');\r\n }\r\n this.element.nativeElement.classList.remove('open');\r\n document.body.style.overflowY = '';\r\n };\r\n }\r\n\r\n ngAfterViewInit() {\r\n const body = UiElement.closest(this.element.nativeElement, 'body');\r\n body.classList.add('notransition');\r\n\r\n setTimeout(() => {\r\n body.classList.remove('notransition');\r\n this.element.nativeElement.querySelectorAll('.ui-nav-drawer-overlay')[0].style.visibility = 'visible';\r\n }, 300);\r\n\r\n const isPersistent = this.element.nativeElement.classList.contains('persistent');\r\n const isOpen = this.element.nativeElement.classList.contains('open');\r\n if (isPersistent && isOpen) {\r\n if (document.body.clientWidth > 375) {\r\n body.classList.add('ui-nav-drawer-persistent');\r\n }\r\n } else {\r\n body.classList.remove('ui-nav-drawer-persistent');\r\n }\r\n\r\n this.element.nativeElement.addEventListener('click', (e) => {\r\n if (!(isPersistent && window.innerWidth > 763) && UiElement.is(e.srcElement, 'a')) {\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n }\r\n });\r\n\r\n if (this.open) {\r\n this.openNav();\r\n } else {\r\n this.closeNav();\r\n }\r\n\r\n const navDrawer = this.element.nativeElement.querySelector('nav');\r\n\r\n let navDrawerTouch;\r\n let mouseX;\r\n let mouseXMovement;\r\n\r\n this.onTouchStart = (e) => {\r\n if (this.element.nativeElement.classList.contains('.right')) {\r\n return;\r\n }\r\n \r\n mouseX = e.touches[0].pageX;\r\n navDrawerTouch = (mouseX > 0 && mouseX < 40) ? 'open' : navDrawerTouch;\r\n navDrawerTouch = (mouseX > 320 && mouseX < 360) ? 'close' : navDrawerTouch;\r\n };\r\n\r\n this.onTouchMove = (e) => {\r\n if (navDrawerTouch) {\r\n mouseXMovement = e.touches[0].pageX - mouseX;\r\n if (navDrawerTouch === 'open' && !this.open) {\r\n mouseXMovement = mouseXMovement > 320 ? 320 : mouseXMovement;\r\n UiElement.css(navDrawer, 'transform', 'translateX(' + (-320 + mouseXMovement) + 'px)');\r\n } else if (navDrawerTouch === 'close' && this.open) {\r\n mouseXMovement = mouseXMovement < -330 ? -330 : mouseXMovement;\r\n mouseXMovement = mouseXMovement > 0 ? 0 : mouseXMovement;\r\n UiElement.css(navDrawer, 'transform', 'translateX(' + (mouseXMovement) + 'px)');\r\n }\r\n }\r\n };\r\n\r\n this.onTouchEnd = (e) => {\r\n if (navDrawerTouch) {\r\n if (navDrawerTouch === 'open' && mouseXMovement > 20) {\r\n UiElement.css(navDrawer, 'transform', '');\r\n this.open = true;\r\n this.openChange.emit(this.open);\r\n this.openNav();\r\n } else if (navDrawerTouch === 'close' && mouseXMovement < -20) {\r\n UiElement.css(navDrawer, 'transform', '');\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n this.closeNav();\r\n } else {\r\n UiElement.css(navDrawer, 'transform', '');\r\n }\r\n }\r\n\r\n navDrawerTouch = undefined;\r\n };\r\n\r\n UiElement.on(window, 'touchstart', this.onTouchStart);\r\n UiElement.on(window, 'touchmove', this.onTouchMove);\r\n UiElement.on(window, 'touchend', this.onTouchEnd);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n const isNavDrawerPersistent = UiCookie.get('NavDrawerPersistent') === 'true';\r\n\r\n if (isNavDrawerPersistent) {\r\n this.open = true;\r\n this.openNav();\r\n }\r\n\r\n if (changes.open) {\r\n const isOpen = changes.open.currentValue;\r\n this.open = isOpen;\r\n\r\n if (isOpen) {\r\n this.openNav();\r\n } else {\r\n this.closeNav();\r\n }\r\n\r\n const isPersistent = this.element.nativeElement.classList.contains('persistent');\r\n const body = UiElement.closest(this.element.nativeElement, 'body');\r\n\r\n if (isPersistent && isOpen) {\r\n if (document.body.clientWidth > 375) {\r\n body.classList.add('ui-nav-drawer-persistent');\r\n UiCookie.set('NavDrawerPersistent', 'true');\r\n }\r\n } else {\r\n body.classList.remove('ui-nav-drawer-persistent');\r\n UiCookie.set('NavDrawerPersistent', 'false');\r\n }\r\n\r\n setTimeout(() => {\r\n UiElement.trigger(window, 'resize');\r\n }, 280);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(window, 'touchstart', this.onTouchStart);\r\n UiElement.off(window, 'touchmove', this.onTouchMove);\r\n UiElement.off(window, 'touchend', this.onTouchEnd);\r\n document.body.classList.add('notransition');\r\n document.body.classList.remove('ui-nav-drawer-persistent');\r\n setTimeout(() => {\r\n document.body.classList.remove('notransition');\r\n }, 1);\r\n }\r\n\r\n closeMenuOverlay() {\r\n if (this.open !== undefined) {\r\n this.open = false;\r\n this.openChange.emit(this.open);\r\n }\r\n }\r\n}\r\n","import {Component, AfterViewInit, ElementRef, ViewEncapsulation, Input, OnChanges} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-option',\r\n templateUrl: './option.component.html',\r\n styleUrls: ['./option.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiOptionComponent implements AfterViewInit, OnChanges {\r\n @Input() color: string;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelector('input');\r\n\r\n input.classList.add('ui-option');\r\n\r\n const optionShell = '<div class=\"ui-option-shell\"><div class=\"ui-option-fill\"></div><div class=\"ui-option-mark\"></div></div>';\r\n\r\n input.insertAdjacentHTML('afterend', optionShell);\r\n this.setColor();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.color && !changes.color.firstChange) {\r\n this.setColor();\r\n }\r\n }\r\n\r\n setColor() {\r\n const optionFill = this.element.nativeElement.querySelector('.ui-option-fill');\r\n optionFill.style.borderColor = this.color || '';\r\n }\r\n\r\n}\r\n","import {Component, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-progress-radial.indeterminate',\r\n templateUrl: 'progress-radial.component.html',\r\n styleUrls: ['./progress-radial.component.scss']\r\n})\r\n\r\nexport class UiProgressRadialComponent implements OnInit {\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\nconst maxRipples = 10;\r\nlet ripples = 0;\r\nimport {debounce} from '../utils/functions/debounce';\r\n\r\n@Directive({\r\n selector: '[uiRipple]'\r\n})\r\nexport class UiRippleDirective implements AfterViewInit {\r\n isIE: boolean;\r\n @Input('ripple-disable') rippleDisable;\r\n public elRippleContainerTemplate: HTMLElement;\r\n public elRippleTemplate: HTMLElement;\r\n public elRippleContainerTemplateClone: HTMLElement;\r\n\r\n constructor(public element: ElementRef) {\r\n this.isIE = navigator.userAgent.indexOf('Trident') > -1;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.elRippleContainerTemplate = document.createElement('div');\r\n this.elRippleContainerTemplate.classList.add('ui-ripple-container');\r\n this.elRippleTemplate = document.createElement('div');\r\n this.elRippleTemplate.classList.add('ui-ripple-wave');\r\n\r\n this.elRippleContainerTemplateClone = <HTMLElement>this.elRippleContainerTemplate.cloneNode(true);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onMousedown(e) {\r\n if (!this.isIE) {\r\n ripples = document.querySelectorAll('.ui-ripple-wave').length;\r\n\r\n if (!this.rippleDisable && !this.element.nativeElement.hasAttribute('disabled') && ripples < maxRipples) {\r\n const elementWidth = this.element.nativeElement.offsetWidth;\r\n const elementHeight = this.element.nativeElement.offsetHeight;\r\n\r\n const isIcon = this.element.nativeElement.classList.contains('icon');\r\n const isFab = this.element.nativeElement.classList.contains('fab');\r\n const isRounded = this.element.nativeElement.classList.contains('ripple-rounded');\r\n\r\n if (isIcon || isFab || isRounded) {\r\n this.elRippleContainerTemplateClone.style.borderRadius = '50%';\r\n }\r\n this.elRippleContainerTemplateClone.style.width = elementWidth + 'px';\r\n this.elRippleContainerTemplateClone.style.height = elementHeight + 'px';\r\n\r\n this.element.nativeElement.appendChild(this.elRippleContainerTemplateClone);\r\n\r\n const elRippleTemplateClone = <HTMLElement>this.elRippleTemplate.cloneNode(true);\r\n\r\n const isElementHorizontal = elementWidth > elementHeight;\r\n\r\n let finalWidth;\r\n let finalHeight;\r\n let finalTop;\r\n let finalLeft;\r\n\r\n if (isElementHorizontal) {\r\n finalWidth = elementWidth * 3;\r\n finalHeight = elementWidth * 3;\r\n } else {\r\n finalWidth = elementHeight * 3;\r\n finalHeight = elementHeight * 3;\r\n }\r\n\r\n finalTop = -(finalWidth / 2);\r\n finalLeft = -(finalWidth / 2);\r\n\r\n elRippleTemplateClone.style.width = finalWidth + 'px';\r\n elRippleTemplateClone.style.height = finalHeight + 'px';\r\n\r\n const mousePos = this.getMousePosition(e);\r\n const elementPos = UiElement.position(this.element.nativeElement);\r\n\r\n const pos = {\r\n y: mousePos.y - elementPos.top,\r\n x: mousePos.x - elementPos.left\r\n };\r\n\r\n if (isIcon || isFab || isRounded) {\r\n finalTop = finalTop + (elementWidth / 2);\r\n finalLeft = finalLeft + (elementWidth / 2);\r\n } else {\r\n finalTop = finalTop + pos.y;\r\n finalLeft = finalLeft + pos.x;\r\n }\r\n\r\n elRippleTemplateClone.style.top = finalTop + 'px';\r\n elRippleTemplateClone.style.left = finalLeft + 'px';\r\n\r\n this.elRippleContainerTemplateClone.insertBefore(elRippleTemplateClone, this.elRippleContainerTemplateClone.firstChild);\r\n\r\n this.elRippleContainerTemplateClone.classList.add('pressed');\r\n\r\n UiElement.animate(this.elRippleContainerTemplateClone, 'border-spacing', 0, 1, 800, null, (tick) => {\r\n elRippleTemplateClone.style.transform = `scale(${tick})`;\r\n });\r\n\r\n ripples++;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('mouseup')\r\n onMouseup() {\r\n if (!this.isIE) {\r\n debounce(() => {\r\n this.eraseRipples(this);\r\n }, 800, true)();\r\n }\r\n }\r\n\r\n @HostListener('mouseout')\r\n onMouseout() {\r\n if (!this.isIE) {\r\n debounce(() => {\r\n this.eraseRipples(this);\r\n }, 2000, true)();\r\n }\r\n }\r\n\r\n eraseRipples(thiss?) {\r\n thiss.elRippleContainerTemplateClone.classList.remove('pressed');\r\n\r\n const elRipples = thiss.elRippleContainerTemplateClone.children;\r\n\r\n const len = elRipples.length;\r\n\r\n ripples = len;\r\n\r\n for (let i = 0; i < len; i++) {\r\n const elRipple = <HTMLElement>elRipples[i];\r\n if (elRipple) {\r\n const elementOpacity = elRipple.style.opacity || '1';\r\n\r\n if (elementOpacity === '1') {\r\n UiElement.animate(elRipple, 'opacity', 1, 0, 800, () => {\r\n try {\r\n elRipple.parentNode.removeChild(elRipple);\r\n ripples--;\r\n } catch (e) {\r\n }\r\n if (!ripples) {\r\n try {\r\n thiss.elRippleContainerTemplateClone.parentNode.removeChild(thiss.elRippleContainerTemplateClone);\r\n } catch (e) {\r\n }\r\n }\r\n }, null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getMousePosition(e?) {\r\n const pos = {\r\n y: undefined,\r\n x: undefined\r\n };\r\n\r\n if (e.originalEvent && e.originalEvent.touches !== undefined) {\r\n pos.y = e.originalEvent.touches[0].pageY;\r\n pos.x = e.originalEvent.touches[0].pageX;\r\n } else if (e.pageX) {\r\n pos.y = e.pageY;\r\n pos.x = e.pageX;\r\n } else if (e && e.touches !== undefined) {\r\n pos.y = e.touches[0].pageY;\r\n pos.x = e.touches[0].pageX;\r\n }\r\n\r\n return pos;\r\n }\r\n}\r\n","import {\r\n Component, OnInit, Input, DoCheck, KeyValueDiffers, Output, EventEmitter, OnChanges,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-smart-list',\r\n templateUrl: 'smart-list.component.html',\r\n styleUrls: ['smart-list.component.scss']\r\n})\r\n\r\nexport class UiSmartListComponent implements OnInit, DoCheck, OnChanges {\r\n @Input() model: any;\r\n @Input('default-item') defaultItem: any;\r\n @Input('auto-delete-exception') autoDeleteException: any;\r\n @Output() modelChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n list: any[];\r\n differ: any;\r\n objDiffer: { string?: any };\r\n currentFocusedElementIndex: any;\r\n\r\n constructor(private differs: KeyValueDiffers, public element: ElementRef) {\r\n this.differ = differs.find([]).create();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.defaultItem) {\r\n this.defaultItem = {};\r\n }\r\n this.list = [Object.assign({}, this.defaultItem)];\r\n if (!this.model) {\r\n console.error('Você precisa declarar a model no seu componente');\r\n }\r\n this.objDiffer = {};\r\n this.list.forEach((elt, i) => {\r\n this.objDiffer[i] = this.differs.find(elt).create();\r\n });\r\n this.model.forEach((item) => {\r\n this.list.push(item);\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n let wasChanged = false;\r\n\r\n this.list.forEach((elt, i) => {\r\n let objDiffer = this.objDiffer[i];\r\n if (!objDiffer) {\r\n objDiffer = this.objDiffer[i] = this.differs.find(elt).create();\r\n }\r\n const objChanges = objDiffer.diff(elt);\r\n if (objChanges) {\r\n wasChanged = true;\r\n objChanges.forEachChangedItem((elt2) => {\r\n if (!elt2.currentValue && typeof elt2.currentValue !== 'number' && typeof elt2.currentValue !== 'boolean' && !elt[this.autoDeleteException]) {\r\n delete elt[elt2.key];\r\n }\r\n });\r\n\r\n if (elt && this.model.indexOf(elt) < 0 && (Object.keys(elt).length > Object.keys(this.defaultItem).length)) {\r\n this.model.push(elt);\r\n }\r\n\r\n if (elt && (Object.keys(elt).length === Object.keys(this.defaultItem).length) && equals(elt, this.defaultItem) && this.model.length && this.model.indexOf(elt) > -1 && !elt[this.autoDeleteException]) {\r\n this.model.splice(this.model.indexOf(elt), 1);\r\n }\r\n }\r\n });\r\n\r\n if (wasChanged) {\r\n this.newItem();\r\n }\r\n }\r\n\r\n newItem() {\r\n let found = 0;\r\n\r\n this.list.forEach((item) => {\r\n if (item && (Object.keys(item).length <= Object.keys(this.defaultItem).length) && equals(item, this.defaultItem)) {\r\n found++;\r\n const element = this.list[this.list.indexOf(item)];\r\n this.list.splice(this.list.indexOf(item), 1);\r\n this.list.splice(this.list.length, 0, element);\r\n }\r\n });\r\n\r\n if (!found) {\r\n this.list.push(Object.assign({}, this.defaultItem));\r\n } else {\r\n setTimeout(() => {\r\n this.list.splice(this.list.length - 1, 1);\r\n this.newItem();\r\n });\r\n }\r\n }\r\n\r\n remove(i) {\r\n Object.keys(this.list[i]).forEach((key) => {\r\n if (!Object.keys(this.defaultItem).includes(key)) {\r\n delete this.list[i][key];\r\n } else {\r\n this.list[i][key] = this.defaultItem[key];\r\n }\r\n });\r\n this.ngDoCheck();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.model && changes.model.currentValue) {\r\n if (changes.model.currentValue.length) {\r\n changes.model.currentValue.forEach((item) => {\r\n if (this.list && this.list.indexOf(item) === -1) {\r\n this.list.push(item);\r\n }\r\n });\r\n } else if (changes.model.currentValue && changes.model.previousValue) {\r\n this.list = [Object.assign({}, this.defaultItem)];\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction equals(x, y) {\r\n return JSON.stringify(x) === JSON.stringify(y);\r\n}\r\n","import {Component, ElementRef, Inject, AfterViewInit} from '@angular/core';\r\nimport {UiSmartListComponent} from '../smart-list.component';\r\nimport {UiElementRef} from '../../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-smart-list-item',\r\n templateUrl: '../smart-list.component.html'\r\n})\r\n\r\nexport class UiSmartListItemComponent implements AfterViewInit {\r\n constructor(@Inject(UiSmartListComponent) private parent: UiSmartListComponent, private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const self = this;\r\n const inputs = this.element.nativeElement.querySelectorAll('input');\r\n for (let i = 0; i < inputs.length; i++) {\r\n const el = inputs[i];\r\n el.addEventListener('focus', e => {\r\n this.onFocus(e, self);\r\n });\r\n\r\n el.addEventListener('blur', e => {\r\n this.onBlur(e, self);\r\n });\r\n }\r\n }\r\n\r\n onFocus(event, self) {\r\n const el = event.target;\r\n\r\n const elItem = new UiElementRef(el).closest('ui-smart-list-item');\r\n const newIndex = Array.prototype.indexOf.call(self.parent.element.nativeElement.children, elItem.nativeElement);\r\n self.parent.currentFocusedElementIndex = newIndex > -1 ? newIndex : self.parent.currentFocusedElementIndex;\r\n }\r\n\r\n onBlur(event, self) {\r\n setTimeout(() => {\r\n const target = new UiElementRef(event.target);\r\n if (!target.closest('body').nativeElement) {\r\n setTimeout(() => {\r\n self.parent.element.nativeElement.children[self.parent.currentFocusedElementIndex].querySelector('input').focus();\r\n }, 100);\r\n }\r\n });\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from '@angular/core';\r\n\r\nlet timeout: any;\r\nconst bars: any[] = [];\r\nconst defaults: {} = {\r\n duration: 5000,\r\n center: false,\r\n actionText: null\r\n};\r\n\r\n@Injectable()\r\nexport class UiSnackbar {\r\n static barsChange: EventEmitter<any> = new EventEmitter();\r\n\r\n static show(bar) {\r\n bar = Object.assign({}, defaults, bar);\r\n bars.push(bar);\r\n if (bars.length === 1) {\r\n this.timerBar(bar);\r\n }\r\n this.barsChange.emit(bars);\r\n }\r\n\r\n static hide() {\r\n if (bars.length) {\r\n const snackbar = document.querySelector('ui-snackbar-container > ui-snackbar');\r\n if (!snackbar) {\r\n return;\r\n }\r\n\r\n snackbar.classList.add('leave');\r\n setTimeout(() => {\r\n clearTimeout(timeout);\r\n this.finishTimeout();\r\n }, 280);\r\n }\r\n }\r\n\r\n private static timerBar(bar) {\r\n if (bars.length) {\r\n this.elevateFAB();\r\n\r\n if (bar.duration !== Infinity) {\r\n timeout = setTimeout(() => {\r\n const firstSnackbar = document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0];\r\n if (firstSnackbar) {\r\n document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0].classList.add('leave');\r\n }\r\n setTimeout(() => this.finishTimeout(), 280);\r\n }, bar.duration);\r\n }\r\n }\r\n };\r\n\r\n private static finishTimeout() {\r\n bars.shift();\r\n this.setTranslateFAB(0, false);\r\n if (bars.length) {\r\n this.timerBar(bars[0]);\r\n }\r\n this.barsChange.emit(bars);\r\n }\r\n\r\n public static elevateFAB() {\r\n setTimeout(() => {\r\n let snackHeight;\r\n if (window.innerWidth <= 764) {\r\n snackHeight = document.querySelectorAll('ui-snackbar-container > ui-snackbar')[0].clientHeight;\r\n } else {\r\n snackHeight = 0;\r\n }\r\n this.setTranslateFAB(snackHeight, true);\r\n });\r\n }\r\n\r\n private static setTranslateFAB(translate, addClass) {\r\n let fabs;\r\n if (window.innerWidth <= 764) {\r\n fabs = document.querySelectorAll('.ui-fab-container');\r\n } else {\r\n fabs = document.querySelectorAll('.ui-fab-container.scrolled');\r\n }\r\n\r\n [].forEach.call(document.querySelectorAll('.ui-fab-container'), (fab) => {\r\n fab.classList.remove('elevating-snack');\r\n fab.style.transform = '';\r\n });\r\n\r\n [].forEach.call(fabs, (fab) => {\r\n fab.classList[addClass ? 'add' : 'remove']('elevating-snack');\r\n if (translate) {\r\n fab.style.transform = `translateY(-${translate}px)`;\r\n } else {\r\n fab.style.transform = '';\r\n }\r\n });\r\n }\r\n\r\n constructor() {\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\nimport {UiSnackbar} from './snackbar.provider';\r\n\r\n@Component({\r\n selector: 'ui-snackbar',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss']\r\n})\r\nexport class UiSnackbarComponent {\r\n\r\n @Input() bar;\r\n\r\n constructor() {\r\n }\r\n\r\n hide() {\r\n UiSnackbar.hide();\r\n }\r\n}\r\n","import {AfterViewInit, Component} from '@angular/core';\r\nimport {UiSnackbar} from './snackbar.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-snackbar-container',\r\n templateUrl: './snackbar-container.component.html',\r\n styleUrls: ['./snackbar-container.component.scss']\r\n})\r\nexport class UiSnackbarContainerComponent implements AfterViewInit {\r\n\r\n bars: any[];\r\n\r\n constructor() {\r\n UiSnackbar.barsChange.subscribe((value) => {\r\n this.bars = value;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n UiElement.on(window, 'resize', () => {\r\n if (this.bars && this.bars.length) {\r\n UiSnackbar.elevateFAB();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {Component, AfterViewInit, ElementRef, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-switch',\r\n templateUrl: './switch.component.html',\r\n styleUrls: ['./switch.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiSwitchComponent implements AfterViewInit {\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelectorAll('input')[0];\r\n\r\n input.classList.add('ui-switch');\r\n\r\n const switchShell = '<div class=\"switch-cover\"><div class=\"track\"></div><div class=\"thumb-container\"><div class=\"thumb\"></div></div></div>';\r\n\r\n input.insertAdjacentHTML('afterend', switchShell);\r\n }\r\n\r\n}\r\n","import {Component, AfterViewInit, ViewEncapsulation, ElementRef} from '@angular/core';\r\n\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-toolbar',\r\n templateUrl: './toolbar.component.html',\r\n // styleUrls: ['./toolbar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiToolbarComponent implements AfterViewInit {\r\n\r\n constructor(private element: ElementRef) {\r\n UiElement.on(window, 'scroll resize', (e) => {\r\n if (this.element.nativeElement.classList.contains('elevate-on-scroll')) {\r\n const header = this.element.nativeElement.querySelectorAll('header')[0];\r\n const scroll = (window.scrollY || window.pageYOffset) * 3.6;\r\n\r\n if (this.element.nativeElement.classList.contains('size-2x')) {\r\n if (e.type === 'scroll' && scroll < 97) {\r\n this.element.nativeElement.classList.add('notransition');\r\n header.style.paddingBottom = (102 - scroll) + 'px';\r\n header.style.height = (162 - (scroll)) + 'px';\r\n setTimeout(() => {\r\n this.element.nativeElement.classList.remove('notransition');\r\n }, 500);\r\n } else {\r\n header.style.paddingBottom = '';\r\n header.style.height = '';\r\n }\r\n\r\n if (scroll > 97) {\r\n header.style.zIndex = 3;\r\n this.element.nativeElement.classList.add('scrolled');\r\n } else {\r\n header.style.zIndex = 2;\r\n this.element.nativeElement.classList.remove('scrolled');\r\n }\r\n } else {\r\n if ((window.scrollY || window.pageYOffset) > 1) {\r\n this.element.nativeElement.classList.add('scrolled');\r\n } else {\r\n this.element.nativeElement.classList.remove('scrolled');\r\n }\r\n }\r\n }\r\n });\r\n\r\n // let form: any = document.querySelectorAll('form');\r\n // if (form.length) {\r\n // form = <HTMLElement>form[0];\r\n // const input = form.querySelectorAll('input')[0];\r\n // input.addEventListener('focus', () => {\r\n // form.classList.add('open');\r\n // });\r\n // input.addEventListener('blur', () => {\r\n // form.classList.remove('open');\r\n // });\r\n // }\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n","import {Injectable, EventEmitter} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\nlet mainToolbar: HTMLElement;\r\nlet defaultBreakpoint: any;\r\nconst change: EventEmitter<any> = new EventEmitter();\r\n\r\nconst sizes: any[] = [480, 600, 840, 960, 1280, 1440, 1600];\r\n\r\n@Injectable()\r\nexport class UiToolbarService {\r\n sharedValue: String;\r\n change: EventEmitter<any>;\r\n\r\n constructor() {\r\n this.change = change;\r\n }\r\n\r\n public get() {\r\n return this.sharedValue;\r\n }\r\n\r\n public set(sharedValue: String) {\r\n this.sharedValue = sharedValue;\r\n\r\n this.change.emit(sharedValue);\r\n }\r\n\r\n public registerMainToolbar(element: any) {\r\n mainToolbar = <HTMLElement>element;\r\n defaultBreakpoint = [];\r\n sizes.forEach(size => {\r\n if (mainToolbar.classList.contains(`elevate-on-s${size}`)) {\r\n defaultBreakpoint.push(size);\r\n }\r\n });\r\n }\r\n\r\n public getMainToolbar(): HTMLElement {\r\n if (!mainToolbar) {\r\n console.error('Você não registrou um toolbar principal.');\r\n } else {\r\n return mainToolbar;\r\n }\r\n }\r\n\r\n public activateExtendedToolbar(breakpoint?: any) {\r\n if (!mainToolbar) {\r\n return;\r\n }\r\n\r\n if (breakpoint) {\r\n if (!sizes.includes(breakpoint)) {\r\n console.error(`O tamanho do \"breakpoint\" tem que ser um dos tamanhos suportados: ${sizes.join(', ')}`);\r\n } else {\r\n sizes.forEach(size => this.getMainToolbar().classList.remove(`elevate-on-s${size}`));\r\n this.getMainToolbar().classList.add(`elevate-on-s${breakpoint}`);\r\n }\r\n }\r\n\r\n this.getMainToolbar().classList.add('size-2x');\r\n\r\n const header = this.getMainToolbar().querySelectorAll('header')[0];\r\n header.style.transition = 'all 280ms';\r\n setTimeout(() => {\r\n header.style.transition = '';\r\n UiElement.trigger(window, 'scroll');\r\n }, 280);\r\n }\r\n\r\n public deactivateExtendedToolbar() {\r\n if (!mainToolbar) {\r\n return;\r\n }\r\n\r\n sizes.forEach(size => this.getMainToolbar().classList.remove(`elevate-on-s${size}`));\r\n defaultBreakpoint.forEach(size => this.getMainToolbar().classList.add(`elevate-on-s${size}`));\r\n\r\n this.getMainToolbar().classList.remove('size-2x');\r\n this.getMainToolbar().classList.remove('scrolled');\r\n\r\n const header = this.getMainToolbar().querySelectorAll('header')[0];\r\n header.style.transition = 'all 280ms';\r\n header.style.height = '';\r\n header.style.paddingBottom = '';\r\n setTimeout(() => {\r\n header.style.transition = '';\r\n }, 280);\r\n\r\n UiElement.trigger(window, 'scroll');\r\n }\r\n\r\n public activateTransparentToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.add('transparent');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.add(auxiliarClass);\r\n }\r\n }\r\n\r\n public deactivateTransparentToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.remove('transparent');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.remove(auxiliarClass);\r\n }\r\n }\r\n\r\n public activateElevatingToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.add('elevate-on-scroll');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.add(auxiliarClass);\r\n }\r\n }\r\n\r\n public deactivateElevatingToolbar(auxiliarClass?: string) {\r\n this.getMainToolbar().classList.remove('elevate-on-scroll');\r\n if (auxiliarClass) {\r\n this.getMainToolbar().classList.remove(auxiliarClass);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nexport function _window(): any {\r\n // return the global native browser window object\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class UiWindowRef {\r\n static nativeWindow(): any {\r\n return _window();\r\n }\r\n}\r\n","export function checkDate(value: any): any {\r\n value = value.replace(/[^\\w\\s!\\/]/gi, '');\r\n if (!/^[\\d, \\/]+$/.test(value)) {\r\n return false;\r\n }\r\n\r\n const splittedDate: string[] = value.split('/');\r\n\r\n if (splittedDate.length !== 3) {\r\n return false;\r\n }\r\n\r\n let dayIndex: any;\r\n let monthIndex: any;\r\n let yearIndex: any;\r\n let mask: any = 'd/M/yy';\r\n\r\n mask = mask.split('/');\r\n for (let i = 0; i < 3; i++) {\r\n if (mask[i].indexOf('d') > -1) {\r\n dayIndex = i;\r\n }\r\n if (mask[i].indexOf('M') > -1) {\r\n monthIndex = i;\r\n }\r\n if (mask[i].indexOf('y') > -1) {\r\n yearIndex = i;\r\n }\r\n }\r\n\r\n if (isNaN(dayIndex) || isNaN(monthIndex) || isNaN(yearIndex)) {\r\n return false;\r\n }\r\n\r\n const date: any = splittedDate[dayIndex];\r\n const month: any = splittedDate[monthIndex];\r\n const year: any = splittedDate[yearIndex];\r\n\r\n if (!date || !month || !year) {\r\n return false;\r\n }\r\n if (month < 1 || month > 12) {\r\n return false;\r\n }\r\n if (year.length < 4) {\r\n return false;\r\n }\r\n\r\n const dateCheck: number = new Date(year, month, 0).getDate();\r\n if (date > dateCheck || date < 1) {\r\n return false;\r\n }\r\n\r\n return new Date(year, month - 1, date);\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\n\r\nimport { isDate } from 'rxjs/internal/util/isDate';\r\n\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { checkDate } from './check-date';\r\n\r\n@Directive({\r\n selector: '[uiMaskDate][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskDateDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskDateDirective),\r\n multi: true\r\n }, DatePipe]\r\n})\r\nexport class UiMaskDateDirective implements ControlValueAccessor, Validator, OnChanges, AfterViewInit, OnInit {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: any;\r\n maxlength = 10;\r\n regex = /^\\d\\d\\/\\d\\d\\/\\d\\d\\d\\d$/g;\r\n regexiso = /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z|(((\\+|\\-)[0-1][0-9]):([0-5][0-9])))?$/g;\r\n symbolsPositions: number[] = [2, 5];\r\n dateFormatsList = [\r\n {\r\n format: 'dd/MM/yyyy',\r\n maxlength: 10,\r\n regex: /^(\\d{2}\\/){2}\\d{4}$/g,\r\n symbolsPositions: [2, 5]\r\n },\r\n {\r\n format: 'dd/MM',\r\n maxlength: 5,\r\n regex: /^(\\d{2})\\/(\\d{2})$/g,\r\n symbolsPositions: [2]\r\n },\r\n {\r\n format: 'MM/yyyy',\r\n maxlength: 7,\r\n regex: /^(\\d{2})\\/(\\d{4})$/g,\r\n symbolsPositions: [2]\r\n },\r\n {\r\n format: 'dd/MM/yy',\r\n maxlength: 8,\r\n regex: /^(\\d{2}\\/){2}\\d{2}$/g,\r\n symbolsPositions: [2, 5]\r\n },\r\n {\r\n format: 'MM/yy',\r\n maxlength: 5,\r\n regex: /^(\\d{2})\\/(\\d{2})$/g,\r\n symbolsPositions: [2]\r\n }\r\n ];\r\n\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n @Input() ngModel: any;\r\n @Input() dateFormat: string;\r\n @Input() day = '01'; // Dia padrão\r\n @Input() year: string = (new Date().getFullYear()).toString(); // Ano Padrão\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public datePipe: DatePipe) {\r\n }\r\n\r\n ngOnInit() {\r\n this.validaDateFormat();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.minDate = this.minDate && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.maxDate = this.maxDate && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n\r\n this.ngModel = this.ngModel && isDate(new Date(this.ngModel)) ? new Date(this.ngModel) : this.ngModel;\r\n\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input && rawValue) {\r\n this.elementRef.nativeElement.value = this.format(this.datePipe.transform(this.ngModel, this.dateFormat));\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = checkDate(this.getCorrectValue(this.format(rawValue))) || this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.format(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(date: string): string {\r\n if (!date) {\r\n return '';\r\n }\r\n\r\n date = date.toString().replace(/[^0-9]+/g, '');\r\n if (date.length > this.symbolsPositions[0]) {\r\n date = date.substring(0, this.symbolsPositions[0]) + '/' + date.substring(this.symbolsPositions[0]);\r\n }\r\n if (date.length > this.symbolsPositions[1]) {\r\n date = date.substring(0, this.symbolsPositions[1]) + '/' + date.substring(this.symbolsPositions[1], this.maxlength - 1);\r\n }\r\n return date.substring(0, this.maxlength);\r\n }\r\n\r\n /**\r\n * Verifica se o formato da data é válido\r\n */\r\n validaDateFormat() {\r\n if (!this.dateFormat) { // Caso não seja passado nenhum parametro, coloca o default\r\n this.dateFormat = 'dd/MM/yyyy';\r\n return;\r\n }\r\n\r\n let valid = false;\r\n\r\n this.dateFormatsList.forEach(item => {\r\n if (item.format === this.dateFormat) {\r\n this.maxlength = item.maxlength;\r\n this.regex = item.regex;\r\n this.symbolsPositions = item.symbolsPositions;\r\n valid = true;\r\n }\r\n });\r\n\r\n if (!valid) {\r\n console.error('Formato de data não suportado, tente algum destes: [\"dd/MM/yyyy\", \"dd/MM\", \"MM/yyyy\", \"dd/MM/yy\", \"MM/yy\"]');\r\n }\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (changes.minDate && !changes.minDate.firstChange) {\r\n this.minDate = changes.minDate.currentValue && isDate(new Date(this.minDate)) ? new Date(this.minDate) : this.minDate;\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n if (changes.maxDate && !changes.maxDate.firstChange) {\r\n this.maxDate = changes.maxDate.currentValue && isDate(new Date(this.maxDate)) ? new Date(this.maxDate) : this.maxDate;\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n if ((changes.minDate && !changes.minDate.firstChange) || (changes.maxDate && !changes.maxDate.firstChange)) {\r\n this.control.updateValueAndValidity(this.control);\r\n }\r\n }\r\n\r\n /**\r\n * Retorna o valor formatado corretamente p/ uma data válida\r\n * @param value { string } valor da view\r\n */\r\n getCorrectValue(value: string) {\r\n const test = this.regex.test(value);\r\n\r\n if (this.dateFormat === 'MM/yyyy' && test) {\r\n return `${this.day}/${value}`;\r\n }\r\n\r\n if (this.dateFormat === 'dd/MM' && test) {\r\n return `${value}/${this.year}`;\r\n }\r\n\r\n if (this.dateFormat === 'dd/MM/yy' && test) {\r\n const valueSplitted = value.split('/');\r\n return `${valueSplitted[0]}/${valueSplitted[1]}/20${valueSplitted[2]}`;\r\n }\r\n\r\n if (this.dateFormat === 'MM/yy' && test) {\r\n const valueSplitted = value.split('/');\r\n return `${this.day}/${valueSplitted[0]}/20${valueSplitted[1]}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n const value = this.ngModel && this.regexiso.test(this.ngModel) ? new Date(this.ngModel) : this.ngModel;\r\n const dateControl = isDate(control.value) ? control.value : new Date(control.value);\r\n\r\n if (value && (!isDate(value) || !checkDate(value.toLocaleDateString('pt-BR')))) {\r\n return { parse: true };\r\n }\r\n\r\n if (value && (isDate(value) || checkDate(value.toLocaleDateString('pt-BR')))) {\r\n dateControl.setHours(0, 0, 0, 0);\r\n\r\n if (this.minDate && isDate(this.minDate)) {\r\n this.minDate.setHours(0, 0, 0, 0);\r\n\r\n if (dateControl.getTime() < this.minDate.getTime()) {\r\n return { minDate: true };\r\n }\r\n }\r\n if (this.maxDate && isDate(this.maxDate)) {\r\n this.maxDate.setHours(0, 0, 0, 0);\r\n\r\n if (dateControl.getTime() > this.maxDate.getTime()) {\r\n return { maxDate: true };\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown')\r\n onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n}\r\n","import {OnDestroy, ChangeDetectorRef, Pipe, PipeTransform} from '@angular/core';\r\nimport {AsyncPipe} from '@angular/common';\r\nimport {Observable, of, timer} from 'rxjs/index';\r\nimport {repeatWhen, takeWhile, map, flatMap} from 'rxjs/internal/operators';\r\n\r\n@Pipe({\r\n name: 'uiTimeAgo',\r\n pure: false\r\n})\r\nexport class UiTimeAgoPipe implements PipeTransform, OnDestroy {\r\n private async: AsyncPipe;\r\n private isDestroyed = false;\r\n private value: Date;\r\n private timer: Observable<string>;\r\n\r\n private textBefore: string;\r\n private textAfter: string;\r\n private isMinified: boolean;\r\n private isHence: boolean;\r\n\r\n constructor(ref: ChangeDetectorRef) {\r\n this.async = new AsyncPipe(ref);\r\n }\r\n\r\n public transform(obj: any, textBefore: string = '', textAfter: string = '', isMinified: boolean, isHence: boolean): any {\r\n this.textBefore = textBefore;\r\n this.textAfter = textAfter;\r\n this.isMinified = isMinified;\r\n this.isHence = isHence;\r\n\r\n if (obj == null) {\r\n return '';\r\n }\r\n\r\n if (!(obj instanceof Date)) {\r\n try {\r\n obj = new Date(obj);\r\n } catch (e) {\r\n throw new Error('UiTimeAgo só funciona com datas');\r\n }\r\n }\r\n\r\n this.value = obj;\r\n\r\n if (!this.timer) {\r\n this.timer = this.getObservable();\r\n }\r\n\r\n return this.async.transform(this.timer);\r\n }\r\n\r\n public now(): Date {\r\n return new Date();\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.isDestroyed = true;\r\n }\r\n\r\n private getObservable() {\r\n return of(1).pipe(\r\n repeatWhen(notifications => {\r\n return notifications.pipe(\r\n flatMap((x, i) => {\r\n const sleep = i < 60 ? 1000 : 30000;\r\n return timer(sleep);\r\n })\r\n );\r\n }),\r\n takeWhile(_ => !this.isDestroyed),\r\n map((x, i) => this.elapsed())\r\n );\r\n }\r\n\r\n private elapsed(): string {\r\n const now = this.now().getTime();\r\n\r\n let delta = (now - this.value.getTime()) / 1000;\r\n\r\n if (this.isHence) {\r\n delta = delta * -1;\r\n }\r\n\r\n if (delta < 60) {\r\n const realDelta = Math.floor(delta);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}s`;\r\n } else {\r\n timeAgo = `${realDelta} segundo${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else if (delta < 3600) {\r\n const realDelta = Math.floor(delta / 60);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}m`;\r\n } else {\r\n timeAgo = `${realDelta} minuto${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else if (delta < 86400) {\r\n const realDelta = Math.floor(delta / 3600);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}h`;\r\n } else {\r\n timeAgo = `${realDelta} hora${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n } else {\r\n const realDelta = Math.floor(delta / 86400);\r\n let timeAgo;\r\n if (this.isMinified) {\r\n timeAgo = `${realDelta}d`;\r\n } else {\r\n timeAgo = `${realDelta} dia${(realDelta !== 1) ? 's' : ''}`;\r\n }\r\n return `${this.textBefore}${timeAgo}${this.textAfter}`;\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({selector: '[uiListItem]'})\r\nexport class UiListItemDirective implements AfterViewInit {\r\n @Input() uiListItem;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n const itemActive = this.uiListItem.querySelectorAll('.ui-list-item.active')[0];\r\n if (itemActive) {\r\n this.element.nativeElement.classList.toggle('expanded');\r\n this.uiListItem.classList.toggle('expanded');\r\n toggleExpand(this.uiListItem, this.element.nativeElement);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.element.nativeElement.classList.toggle('expanded');\r\n this.uiListItem.classList.toggle('expanded');\r\n toggleExpand(this.uiListItem, this.element.nativeElement);\r\n }\r\n}\r\n\r\nfunction toggleExpand(elementList, elementTrigger) {\r\n if (!elementList.style.height || elementList.style.height === '0px') {\r\n const height = getHeight(elementList);\r\n elementList.style.height = (elementList.style.maxHeight ? (height > elementList.style.maxHeight.replace('px', '') ? elementList.style.maxHeight : height + 'px') : height + 'px');\r\n let listItemGroup = UiElement.closest(elementList, '.ui-list-item-group');\r\n while (listItemGroup) {\r\n listItemGroup.style.height = getHeight(listItemGroup) + height + 'px';\r\n if (listItemGroup) {\r\n listItemGroup = UiElement.closest(listItemGroup, '.ui-list-item-group');\r\n }\r\n }\r\n } else {\r\n const backupHeight = parseInt(elementList.style.height.replace('px', ''), 10);\r\n elementList.style.height = '';\r\n\r\n let listItemGroup = UiElement.closest(elementList, '.ui-list-item-group');\r\n while (listItemGroup) {\r\n listItemGroup.style.height = getHeight(listItemGroup) - backupHeight + 'px';\r\n if (listItemGroup) {\r\n listItemGroup = UiElement.closest(listItemGroup, '.ui-list-item-group');\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const list = UiElement.closest(elementList, '.ui-list');\r\n if (list) {\r\n let overflow = list.parentNode;\r\n if (UiElement.is(overflow, 'ui-list')) {\r\n overflow = overflow.parentNode;\r\n }\r\n UiElement.animate(elementList, 'border-spacing', overflow.scrollTop, elementTrigger.offsetTop, 500, null, (tick) => {\r\n overflow.scrollTop = tick;\r\n });\r\n }\r\n }, 500);\r\n}\r\n\r\nfunction getHeight(element) {\r\n return Array.prototype.reduce.call(element.childNodes, (p, c) => p + (c.offsetHeight || 0), 0);\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCpf'\r\n})\r\nexport class UiCpfPipe implements PipeTransform {\r\n\r\n transform(value: any, mask?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if (!mask) {\r\n value = value.padStart(11, '0');\r\n }\r\n\r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + '.' + value.substring(3);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + '.' + value.substring(7);\r\n }\r\n if (value.length > 11) {\r\n value = value.substring(0, 11) + '-' + value.substring(11);\r\n }\r\n if (value.length > 14) {\r\n value = value.substring(0, 14);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges, Output } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiCpfPipe } from './cpf.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskCpf][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCpfDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCpfDirective),\r\n multi: true\r\n }, UiCpfPipe]\r\n})\r\nexport class UiMaskCpfDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n beforeSelIndex;\r\n control: FormControl;\r\n input: boolean;\r\n loaded: boolean;\r\n symbolsPositions: number[] = [3, 7, 11, 14];\r\n onChange: Function;\r\n onTouched: Function;\r\n @Input() ngModel: any;\r\n @Input() padOnPaste: boolean = true;\r\n @Input('uiMaskCpf') uiMaskCpf;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cpfPipe: UiCpfPipe) {}\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n if (!this.input) {\r\n this.ngModel = this.ngModel ? this.ngModel.toString().padStart(11, '0') : '';\r\n this.elementRef.nativeElement.value = this.cpfPipe.transform(this.ngModel, true);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cpfPipe.transform(this.elementRef.nativeElement.value, true);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 11);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (this.input) {\r\n if (control.value && this.format(control.value).length < 11) {\r\n return {parse: true};\r\n }\r\n }\r\n\r\n if (this.uiMaskCpf === true && control.value && !this.cpfIsValid(control.value)) {\r\n return {parse: true};\r\n }\r\n\r\n this.input = false;\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n cpfIsValid(cpf) {\r\n if (cpf && cpf.length === 11) {\r\n let sum;\r\n let rest;\r\n sum = 0;\r\n if (cpf === '00000000000') {\r\n return false;\r\n }\r\n for (let i = 1; i <= 9; i++) {\r\n sum = sum + parseInt(cpf.substring(i - 1, i), 10) * (11 - i);\r\n }\r\n rest = (sum * 10) % 11;\r\n if ((rest === 10) || (rest === 11)) {\r\n rest = 0;\r\n }\r\n if (rest !== parseInt(cpf.substring(9, 10), 10)) {\r\n return false;\r\n }\r\n sum = 0;\r\n for (let i = 1; i <= 10; i++) {\r\n sum = sum + parseInt(cpf.substring(i - 1, i), 20) * (12 - i);\r\n }\r\n rest = (sum * 10) % 11;\r\n if ((rest === 10) || (rest === 11)) {\r\n rest = 0;\r\n }\r\n return rest === parseInt(cpf.substring(10, 11), 10);\r\n }\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = this.format(rawValue) !== this.ngModel;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n padLeft(event: any): void {\r\n if (this.padOnPaste) {\r\n event.preventDefault();\r\n\r\n let data: any;\r\n\r\n if (window['clipboardData']) {\r\n data = window['clipboardData'];\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n data = event.clipboardData;\r\n }\r\n\r\n const text = data.getData('text').toString().replace(/[^0-9]+/g, '');\r\n this.renderViaInput(text.padStart(11, '0'));\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCnpj'\r\n})\r\nexport class UiCnpjPipe implements PipeTransform {\r\n\r\n transform(value: any, mask?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if(!mask) {\r\n value = value.padStart(14, '0');\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + '.' + value.substring(2);\r\n }\r\n if (value.length > 6) {\r\n value = value.substring(0, 6) + '.' + value.substring(6);\r\n }\r\n if (value.length > 10) {\r\n value = value.substring(0, 10) + '/' + value.substring(10);\r\n }\r\n if (value.length > 15) {\r\n value = value.substring(0, 15) + '-' + value.substring(15);\r\n }\r\n if (value.length > 18) {\r\n value = value.substring(0, 18);\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges,\r\n Output\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCnpjPipe} from './cnpj.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCnpj][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCnpjDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCnpjDirective),\r\n multi: true\r\n }, UiCnpjPipe]\r\n})\r\nexport class UiMaskCnpjDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [2, 6, 10, 15, 18];\r\n @Input() ngModel: any;\r\n @Input() padOnPaste: boolean = true;\r\n @Input('uiMaskCnpj') uiMaskCnpj;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cnpjPipe: UiCnpjPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.ngModel = this.ngModel ? this.ngModel.toString().padStart(14, '0') : '';\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.ngModel, true);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.elementRef.nativeElement.value, true);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 14);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (this.input) {\r\n if (control.value && this.format(control.value).length < 14) {\r\n return {parse: true};\r\n }\r\n }\r\n\r\n if (this.uiMaskCnpj === true && control.value && !this.cnpjIsValid(control.value)) {\r\n return {parse: true};\r\n }\r\n\r\n this.input = false;\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n cnpjIsValid(cnpj) {\r\n if (!(+cnpj) || cnpj.length !== 14) {\r\n return false;\r\n }\r\n let size = cnpj.length - 2;\r\n let numbers = cnpj.substring(0, size);\r\n const digits = cnpj.substring(size);\r\n let sum = 0;\r\n let pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += numbers.charAt(size - i) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n let result = sum % 11 < 2 ? 0 : 11 - sum % 11;\r\n if (result.toString() !== digits.charAt(0)) {\r\n return false;\r\n }\r\n\r\n size = size + 1;\r\n numbers = cnpj.substring(0, size);\r\n sum = 0;\r\n pos = size - 7;\r\n for (let i = size; i >= 1; i--) {\r\n sum += numbers.charAt(size - i) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\r\n\r\n return result.toString() === digits.charAt(1);\r\n }\r\n\r\n @HostListener('keydown')\r\n onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = this.format(rawValue) !== this.ngModel;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n padLeft(event: any): void {\r\n if (this.padOnPaste) {\r\n event.preventDefault();\r\n\r\n let data: any;\r\n\r\n if (window['clipboardData']) {\r\n data = window['clipboardData'];\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n data = event.clipboardData;\r\n }\r\n\r\n const text = data.getData('text').toString().replace(/[^0-9]+/g, '');\r\n this.renderViaInput(text.padStart(14, '0'));\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCnpjNovo'\r\n})\r\nexport class UiCnpjNovoPipe implements PipeTransform {\r\n\r\n transform(value: any, mask?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().toUpperCase().replace(/[^0-9A-Z]+/g, '');\r\n\r\n if (!mask) {\r\n const isNumericOnly = /^[0-9]*$/.test(value);\r\n if (isNumericOnly) {\r\n value = value.padStart(14, '0');\r\n }\r\n }\r\n\r\n value = value.toString().toUpperCase().replace(/[^0-9A-Z]+/g, '');\r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + '.' + value.substring(2);\r\n }\r\n if (value.length > 6) {\r\n value = value.substring(0, 6) + '.' + value.substring(6);\r\n }\r\n if (value.length > 10) {\r\n value = value.substring(0, 10) + '/' + value.substring(10);\r\n }\r\n if (value.length > 15) {\r\n value = value.substring(0, 15) + '-' + value.substring(15);\r\n }\r\n if (value.length > 18) {\r\n value = value.substring(0, 18);\r\n }\r\n return value;\r\n }\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiCnpjNovoPipe } from './cnpj-novo.pipe';\r\nimport { UiElement } from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCnpjNovo][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCnpjNovoDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCnpjNovoDirective),\r\n multi: true\r\n }, UiCnpjNovoPipe]\r\n})\r\nexport class UiMaskCnpjNovoDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [2, 6, 10, 15, 18];\r\n @Input() ngModel: any;\r\n @Input() padOnPaste: boolean = true;\r\n @Input('uiMaskCnpjNovo') uiMaskCnpjNovo;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cnpjPipe: UiCnpjNovoPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n if (this.ngModel) {\r\n const value = this.ngModel.toString().toUpperCase();\r\n const cleanValue = value.replace(/[^0-9A-Z]+/g, '');\r\n const isNumericOnly = /^[0-9]*$/.test(cleanValue);\r\n const paddedValue = isNumericOnly ? cleanValue.padStart(14, '0') : cleanValue;\r\n if (paddedValue !== cleanValue) {\r\n this.ngModel = paddedValue;\r\n setTimeout(() => this.ngModelChange.emit(this.ngModel));\r\n } else {\r\n this.ngModel = paddedValue;\r\n }\r\n } else {\r\n this.ngModel = '';\r\n }\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.ngModel, true);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cnpjPipe.transform(this.elementRef.nativeElement.value, true);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n // Aceita números e letras (A-Z), normaliza para maiúsculas\r\n value = value.toString().toUpperCase().replace(/[^0-9A-Z]+/g, '');\r\n return value.substring(0, 14);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (this.input) {\r\n if (control.value && this.format(control.value).length < 14) {\r\n return { parse: true };\r\n }\r\n }\r\n\r\n if (this.uiMaskCnpjNovo === true && control.value) {\r\n let value = control.value.toString().toUpperCase().replace(/[^0-9A-Z]+/g, '');\r\n const isNumericOnly = /^[0-9]*$/.test(value);\r\n if (isNumericOnly) {\r\n value = value.padStart(14, '0');\r\n }\r\n if (!this.cnpjIsValid(value)) {\r\n return { parse: true };\r\n }\r\n }\r\n\r\n this.input = false;\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n /**\r\n * Converte um caractere para seu valor numérico.\r\n * Usa código ASCII - 48 para todos os caracteres:\r\n * - Dígitos 0-9 retornam 0-9\r\n * - Letras A-Z retornam 17-42 (A=17, B=18, ..., Z=42)\r\n * Referência: https://www.gov.br/receitafederal/pt-br/centrais-de-conteudo/publicacoes/perguntas-e-respostas/cnpj/cnpj-alfanumerico.pdf\r\n */\r\n charToValue(char: string): number {\r\n return char.toUpperCase().charCodeAt(0) - 48;\r\n }\r\n\r\n /**\r\n * Valida CNPJ alfanumérico conforme especificação.\r\n * Suporta tanto CNPJs numéricos tradicionais quanto os novos alfanuméricos.\r\n * A conversão usa ASCII - 48 para todos os caracteres (A=17, B=18, ..., Z=42).\r\n */\r\n cnpjIsValid(cnpj: string): boolean {\r\n if (!cnpj || cnpj.length !== 14) {\r\n return false;\r\n }\r\n\r\n // Normaliza para maiúsculas\r\n cnpj = cnpj.toUpperCase();\r\n\r\n // Verifica se contém apenas caracteres válidos (0-9 e A-Z)\r\n if (!/^[0-9A-Z]{14}$/.test(cnpj)) {\r\n return false;\r\n }\r\n\r\n // Verifica CNPJs com todos os caracteres iguais\r\n if (/^(.)\\1{13}$/.test(cnpj)) {\r\n return false;\r\n }\r\n\r\n const base = cnpj.substring(0, 12);\r\n const digits = cnpj.substring(12);\r\n\r\n // Calcula o primeiro dígito verificador\r\n let sum = 0;\r\n let pos = 5;\r\n for (let i = 0; i < 12; i++) {\r\n sum += this.charToValue(base.charAt(i)) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n let result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n if (result !== this.charToValue(digits.charAt(0))) {\r\n return false;\r\n }\r\n\r\n // Calcula o segundo dígito verificador\r\n const baseWithFirstDigit = base + digits.charAt(0);\r\n sum = 0;\r\n pos = 6;\r\n for (let i = 0; i < 13; i++) {\r\n sum += this.charToValue(baseWithFirstDigit.charAt(i)) * pos--;\r\n if (pos < 2) {\r\n pos = 9;\r\n }\r\n }\r\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\r\n\r\n return result === this.charToValue(digits.charAt(1));\r\n }\r\n\r\n @HostListener('keydown')\r\n onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = this.format(rawValue) !== this.ngModel;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n padLeft(event: any): void {\r\n if (this.padOnPaste) {\r\n event.preventDefault();\r\n\r\n let data: any;\r\n\r\n if (window['clipboardData']) {\r\n data = window['clipboardData'];\r\n } else if (event.clipboardData && event.clipboardData.getData) {\r\n data = event.clipboardData;\r\n }\r\n\r\n // Aceita números e letras, normaliza para maiúsculas\r\n const text = data.getData('text').toString().toUpperCase().replace(/[^0-9A-Z]+/g, '');\r\n // Só faz padStart se for CNPJ numérico puro (retrocompatibilidade)\r\n const isNumericOnly = /^[0-9]*$/.test(text);\r\n this.renderViaInput(isNumericOnly ? text.padStart(14, '0') : text);\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCep'\r\n})\r\nexport class UiCepPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 5) {\r\n value = value.substring(0, 5) + '-' + value.substring(5);\r\n }\r\n if (value.length > 9) {\r\n value = value.substring(0, 9);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCepPipe} from './cep.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCep][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCepDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCepDirective),\r\n multi: true\r\n }, UiCepPipe]\r\n})\r\nexport class UiMaskCepDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [5, 9];\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cepPipe: UiCepPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 8);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 8) {\r\n return {parse: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCepNovo'\r\n})\r\nexport class UiCepNovoPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^a-zA-Z0-9]+/g, '');\r\n if (value.length > 5) {\r\n value = value.substring(0, 5) + '-' + value.substring(5);\r\n }\r\n if (value.length > 9) {\r\n value = value.substring(0, 9);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {UiCepNovoPipe} from './cep-novo.pipe';\r\nimport {UiElement} from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskCepNovo][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCepNovoDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCepNovoDirective),\r\n multi: true\r\n }, UiCepNovoPipe]\r\n})\r\nexport class UiMaskCepNovoDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [5, 9];\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public cepPipe: UiCepNovoPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.cepPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^a-zA-Z0-9]+/g, '');\r\n return value.substring(0, 8);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 8) {\r\n return {parse: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiPhone'\r\n})\r\nexport class UiPhonePipe implements PipeTransform {\r\n\r\n transform(value: any, type?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n \r\n\r\n if (type === 'ddi') { // MASK COM PADRAO DDI\r\n if (value.length > 0) {\r\n value = '+' + value;\r\n } \r\n if (value[1] === '1') { // US +1 (000) 000-000-0000\r\n \r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + ' (' + value.substring(2);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + ') ' + value.substring(7);\r\n }\r\n if (value.length > 12) {\r\n value = value.substring(0, 12) + '-' + value.substring(12);\r\n }\r\n if (value.length > 17) {\r\n value = value.substring(0, 17);\r\n }\r\n } else { // BR +55 (00) 00000-0000 \r\n \r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + ' (' + value.substring(3);\r\n }\r\n if (value.length > 7) {\r\n value = value.substring(0, 7) + ') ' + value.substring(7);\r\n }\r\n if (value.length > 12 && value.length < 18) {\r\n value = value.substring(0, 13) + '-' + value.substring(13);\r\n } else if (value.length > 17) {\r\n value = value.substring(0, 14) + '-' + value.substring(14);\r\n }\r\n if (value.length > 17) {\r\n value = value.substring(0, 19);\r\n }\r\n } \r\n } else { // MASK COM PADRÃO DEFAULT (00) 00000-0000 \r\n if (value.length > 0) {\r\n value = '(' + value;\r\n }\r\n if (value.length > 3) {\r\n value = value.substring(0, 3) + ') ' + value.substring(3);\r\n }\r\n if (value.length > 9 && value.length < 14) {\r\n value = value.substring(0, 9) + '-' + value.substring(9);\r\n } else if (value.length > 13) {\r\n value = value.substring(0, 10) + '-' + value.substring(10);\r\n }\r\n if (value.length > 15) {\r\n value = value.substring(0, 15);\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiPhonePipe } from './phone.pipe';\r\nimport { UiElement } from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskPhone][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskPhoneDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskPhoneDirective),\r\n multi: true\r\n }, UiPhonePipe]\r\n})\r\nexport class UiMaskPhoneDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges, OnInit {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[];\r\n maxLength: number;\r\n @Input() ngModel: any;\r\n @Input() uiMaskPhone: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public phonePipe: UiPhonePipe) {\r\n }\r\n\r\n ngOnInit() {\r\n switch (this.uiMaskPhone) {\r\n case 'ddi':\r\n this.symbolsPositions = [0, 12, 14, 17];\r\n break;\r\n default:\r\n this.maxLength = 11;\r\n this.symbolsPositions = [0, 9, 11, 14];\r\n }\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.uiMaskPhone === 'ddi' && rawValue) {\r\n const firstChar = rawValue.toString().substring(0, 1);\r\n this.maxLength = firstChar === '1' ? 11 : 13;\r\n }\r\n\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n this.elementRef.nativeElement.value = this.phonePipe.transform(this.ngModel, this.uiMaskPhone || '');\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.phonePipe.transform(this.elementRef.nativeElement.value, this.uiMaskPhone || '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, this.maxLength);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < this.maxLength - 1) {\r\n return { parse: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n let afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n\r\n if (this.uiMaskPhone === 'ddi') {\r\n if (this.ngModel && this.ngModel.substring(0, 1) === '1') {\r\n this.maxLength = 11;\r\n if (afterSelIndex === 3) {\r\n this.beforeSelIndex = 4;\r\n afterSelIndex = 5;\r\n }\r\n } else {\r\n this.maxLength = 13;\r\n if (afterSelIndex === 4) {\r\n this.beforeSelIndex = 5;\r\n afterSelIndex = 6;\r\n }\r\n }\r\n\r\n if (afterSelIndex === 8) {\r\n this.beforeSelIndex = 9;\r\n afterSelIndex = 10;\r\n }\r\n } else {\r\n if (afterSelIndex === 4) {\r\n this.beforeSelIndex = 5;\r\n afterSelIndex = 6;\r\n }\r\n }\r\n\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Component, Input, OnChanges, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list',\r\n templateUrl: 'list.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class UiListComponent implements OnChanges {\r\n @Input() list: any;\r\n @Input('item-model') itemModel: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges() {\r\n if (!this.list) {\r\n console.error('É obrigatório fornecer a model \"list\"');\r\n return false;\r\n }\r\n\r\n if (!this.itemModel) {\r\n this.itemModel = {\r\n id: 'id',\r\n parentId: 'parentId',\r\n name: 'name',\r\n url: 'url',\r\n icon: 'icon'\r\n };\r\n }\r\n\r\n this.list.forEach(item => {\r\n Object.keys(this.itemModel).forEach((key) => {\r\n const old_key = this.itemModel[key];\r\n renameObjectKey(item, old_key, key);\r\n });\r\n });\r\n\r\n this.list = iteratePristineMenu(this.list);\r\n }\r\n}\r\n\r\nfunction iteratePristineMenu(allItems) {\r\n const remainingList = [];\r\n const newMenu = allItems.filter(function (item) {\r\n if (item.parentId !== null) {\r\n remainingList.push(item);\r\n }\r\n return item.parentId === null;\r\n });\r\n return iterateOptionsMenu(newMenu, remainingList)[0];\r\n}\r\n\r\nfunction iterateOptionsMenu(list, fullList) {\r\n let remainingList;\r\n for (let i = 0; i < list.length; i++) {\r\n remainingList = [];\r\n const target = list[i];\r\n const subMenus = fullList.filter(item => {\r\n if (item.parentId !== target.id) {\r\n remainingList.push(item);\r\n }\r\n return item.parentId === target.id;\r\n });\r\n if (subMenus.length) {\r\n target.childs = subMenus;\r\n remainingList = iterateOptionsMenu(target.childs, remainingList)[1];\r\n }\r\n }\r\n return [list, remainingList];\r\n}\r\n\r\nfunction renameObjectKey(obj, oldName, newName) {\r\n if (!obj.hasOwnProperty(oldName) || oldName === newName) {\r\n return false;\r\n }\r\n\r\n obj[newName] = obj[oldName];\r\n delete obj[oldName];\r\n return true;\r\n}\r\n","import {Component, Input, OnInit, OnChanges, Output, EventEmitter} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list-items',\r\n templateUrl: 'items.component.html'\r\n})\r\n\r\nexport class UiListItemsComponent implements OnInit {\r\n @Input() items: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-list-item',\r\n templateUrl: 'item.component.html'\r\n})\r\n\r\nexport class UiListItemComponent implements OnInit {\r\n @Input() item: any;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-slider[value]',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss']\r\n})\r\nexport class UiSliderComponent implements OnInit, AfterViewInit, OnChanges {\r\n multiHandle: boolean;\r\n valueModel;\r\n mouseDown: boolean;\r\n percentageBlock: number;\r\n valueElement: HTMLElement;\r\n getPercentageLeft: Function;\r\n getPercentageRight: Function;\r\n\r\n @Input() hideBalloon: boolean;\r\n @Input() disabled: boolean;\r\n @Input() begin: number;\r\n @Input() end: number;\r\n @Input() direction: string;\r\n @Input() value: number;\r\n @Input() range: number[];\r\n @Input() color: string;\r\n @Input('text-color') textColor: string;\r\n @Output() valueChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @Input('view-format') viewFormat: Function;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n if (!this.viewFormat) {\r\n this.viewFormat = value => value;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.percentageBlock = 100 / (this.range.length - 1);\r\n this.value = this.value || this.range[0];\r\n this.valueModel = this.closestNumber(this.value).index || this.range[0];\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.value && !changes.value.firstChange && !this.mouseDown) {\r\n this.valueModel = this.closestNumber(changes.value.currentValue).index;\r\n }\r\n if (changes.color && !changes.color.firstChange && !this.mouseDown) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.textColor && !changes.textColor.firstChange && !this.mouseDown) {\r\n this.textColor = changes.textColor.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.valueElement = this.elementRef.nativeElement.querySelectorAll('.thumb-container')[0];\r\n this.registerEventsListeners();\r\n }\r\n\r\n registerEventsListeners() {\r\n UiElement.on(this.valueElement, 'mousedown touchstart', () => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.mouseDown = true;\r\n this.toggleTackOn(true);\r\n this.toggleBalloon(true, 0);\r\n\r\n this.valueElement.classList.add('active');\r\n });\r\n\r\n UiElement.on(document, 'mouseup touchend', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.valueElement.classList.remove('active');\r\n\r\n if (this.mouseDown && (e.pageX || e.originalEvent)) {\r\n this.change(e, true);\r\n }\r\n\r\n this.mouseDown = false;\r\n this.toggleBalloon();\r\n this.toggleTackOn();\r\n });\r\n\r\n UiElement.on(document, 'mousemove touchmove', e => {\r\n if (!this.mouseDown || this.disabled) {\r\n return;\r\n }\r\n\r\n this.change(e);\r\n });\r\n }\r\n\r\n change(event, mouseUp?) {\r\n const currentPosition = event.pageX || (event.touches ? event.touches[0].pageX : null) || (event.changedTouches ? event.changedTouches[0].pageX : null);\r\n let position = this.getPositionInIndex(currentPosition);\r\n const newValue = this.closestNumber(this.range[Math.round(position)]);\r\n\r\n if (mouseUp) {\r\n position = newValue.index;\r\n }\r\n\r\n this.value = newValue.value;\r\n this.valueModel = position;\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n toggleBalloon(active?, right?) {\r\n const balloon = this.elementRef.nativeElement.querySelectorAll('.balloon-wrap')[0];\r\n\r\n if (balloon) {\r\n if (active) {\r\n balloon.style.right = typeof right === 'number' ? right : '';\r\n balloon.classList.add('active');\r\n } else {\r\n balloon.classList.remove('active');\r\n }\r\n }\r\n }\r\n\r\n toggleTackOn(active?) {\r\n const trackOn = this.elementRef.nativeElement.querySelectorAll('.track.on')[0];\r\n const method = active ? 'add' : 'remove';\r\n trackOn.classList[method]('no-transition');\r\n }\r\n\r\n getPositionInIndex(position) {\r\n const trackOff = this.elementRef.nativeElement.querySelectorAll('.track.off')[0];\r\n position -= UiElement.position(trackOff).left;\r\n position = position / trackOff.clientWidth * 100;\r\n position = position > 100 ? 100 : position < 0 ? 0 : position;\r\n return ((this.range.length - 1) / 100) * position;\r\n }\r\n\r\n closestNumber(number) {\r\n let current = this.range[0];\r\n let difference = Math.abs(number - current);\r\n let itemIndex = 0;\r\n let newDifference;\r\n for (let i = 0; i < this.range.length; i++) {\r\n newDifference = Math.abs(number - this.range[i]);\r\n if (newDifference < difference) {\r\n difference = newDifference;\r\n current = this.range[i];\r\n itemIndex = i;\r\n }\r\n }\r\n\r\n return {index: itemIndex, value: current};\r\n }\r\n\r\n getPercentage() {\r\n return this.percentageBlock * this.valueModel;\r\n }\r\n\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-slider[begin][end]',\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss']\r\n})\r\nexport class UiSliderMultiHandleComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n multiHandle: boolean;\r\n beginModel;\r\n endModel;\r\n direction: string;\r\n mouseDown: boolean;\r\n percentageBlock: number;\r\n beginElement: HTMLElement;\r\n endElement: HTMLElement;\r\n thumbs: HTMLElement;\r\n bodyElement: HTMLElement;\r\n htmlElement: HTMLElement;\r\n getPercentage: Function;\r\n\r\n @Input() hideBalloon: boolean;\r\n @Input() disabled: boolean;\r\n @Input() begin: number;\r\n @Input() end: number;\r\n @Input() value;\r\n @Input() range: number[];\r\n @Input() color: string;\r\n @Input('text-color') textColor: string;\r\n @Output() beginChange: EventEmitter<number> = new EventEmitter();\r\n @Output() endChange: EventEmitter<number> = new EventEmitter();\r\n\r\n @Input('view-format') viewFormat: Function;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n if (!this.viewFormat) {\r\n this.viewFormat = value => value;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.bodyElement = document.body;\r\n this.htmlElement = <HTMLElement>document.documentElement;\r\n\r\n this.multiHandle = true;\r\n this.percentageBlock = 100 / (this.range.length - 1);\r\n this.begin = this.begin || this.range[0];\r\n this.end = this.end || this.range[0];\r\n this.beginModel = this.closestNumber(this.begin).index || this.range[0];\r\n this.endModel = this.closestNumber(this.end).index || this.range[0];\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.begin && !changes.begin.firstChange && !this.mouseDown) {\r\n this.beginModel = this.closestNumber(this.begin).index;\r\n }\r\n if (changes.end && !changes.end.firstChange && !this.mouseDown) {\r\n this.endModel = this.closestNumber(this.end).index;\r\n }\r\n if (changes.color && !changes.color.firstChange && !this.mouseDown) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.textColor && !changes.textColor.firstChange && !this.mouseDown) {\r\n this.textColor = changes.textColor.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.thumbs = this.elementRef.nativeElement.querySelectorAll('.thumb-container');\r\n this.beginElement = this.thumbs[0];\r\n this.endElement = this.thumbs[1];\r\n\r\n this.registerEventsListeners();\r\n }\r\n\r\n registerEventsListeners() {\r\n UiElement.on(this.beginElement, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.direction = 'begin';\r\n this.toggleBalloon(true);\r\n\r\n this.beginElement.classList.add('active');\r\n this.endElement.classList.remove('active');\r\n });\r\n\r\n UiElement.on(this.thumbs, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.mouseDown = true;\r\n this.toggleTackOn(true);\r\n UiElement.disableScroll();\r\n });\r\n\r\n UiElement.on(this.endElement, 'mousedown touchstart', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n e.stopImmediatePropagation();\r\n this.direction = 'end';\r\n this.toggleBalloon(true, 0);\r\n\r\n this.endElement.classList.add('active');\r\n this.beginElement.classList.remove('active');\r\n });\r\n\r\n UiElement.on(document, 'mouseup touchend', e => {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.beginElement.classList.remove('active');\r\n this.endElement.classList.remove('active');\r\n\r\n if (this.mouseDown && (e.pageX || e.originalEvent)) {\r\n this.change(e, true);\r\n }\r\n\r\n this.mouseDown = false;\r\n this.toggleBalloon();\r\n this.toggleTackOn();\r\n\r\n UiElement.enableScroll();\r\n\r\n });\r\n\r\n UiElement.on(document, 'mousemove touchmove', e => {\r\n if (!this.mouseDown || this.disabled) {\r\n return;\r\n }\r\n this.change(e);\r\n });\r\n }\r\n\r\n change(event, mouseUp?) {\r\n const currentPosition = event.pageX || (event.touches ? event.touches[0].pageX : null) || (event.changedTouches ? event.changedTouches[0].pageX : null);\r\n let position = this.getPositionInIndex(currentPosition);\r\n const newValue = this.closestNumber(this.range[Math.round(position)]);\r\n\r\n if (mouseUp) {\r\n position = newValue.index;\r\n }\r\n\r\n if (this.direction === 'begin' && this.beginModel >= this.endModel) {\r\n this[`${this.direction}Model`] = newValue.index;\r\n this.direction = 'end';\r\n UiElement.trigger(this.endElement, 'mousedown');\r\n this.endElement.focus();\r\n } else if (this.direction === 'end' && this.endModel < this.beginModel) {\r\n this[`${this.direction}Model`] = newValue.index;\r\n this.direction = 'begin';\r\n UiElement.trigger(this.beginElement, 'mousedown');\r\n this.beginElement.focus();\r\n }\r\n\r\n this[this.direction] = newValue.value;\r\n this[`${this.direction}Model`] = position;\r\n this[`${this.direction}Change`].emit(this[this.direction]);\r\n\r\n }\r\n\r\n toggleBalloon(active?, right?) {\r\n const balloon = this.elementRef.nativeElement.querySelectorAll('.balloon-wrap')[0];\r\n\r\n if (balloon) {\r\n if (active) {\r\n balloon.style.right = typeof right === 'number' ? right : '';\r\n balloon.classList.add('active');\r\n } else {\r\n balloon.classList.remove('active');\r\n }\r\n }\r\n }\r\n\r\n toggleTackOn(active?) {\r\n const trackOn = this.elementRef.nativeElement.querySelectorAll('.track.on')[0];\r\n const method = active ? 'add' : 'remove';\r\n trackOn.classList[method]('no-transition');\r\n }\r\n\r\n getPositionInIndex(position) {\r\n const trackOff = this.elementRef.nativeElement.querySelectorAll('.track.off')[0];\r\n position -= UiElement.position(trackOff).left;\r\n position = position / trackOff.clientWidth * 100;\r\n position = position > 100 ? 100 : position < 0 ? 0 : position;\r\n return ((this.range.length - 1) / 100) * position;\r\n }\r\n\r\n closestNumber(number) {\r\n let current = this.range[0];\r\n let difference = Math.abs(number - current);\r\n let itemIndex = 0;\r\n let newDifference;\r\n for (let i = 0; i < this.range.length; i++) {\r\n newDifference = Math.abs(number - this.range[i]);\r\n if (newDifference < difference) {\r\n difference = newDifference;\r\n current = this.range[i];\r\n itemIndex = i;\r\n }\r\n }\r\n\r\n return {index: itemIndex, value: current};\r\n }\r\n\r\n getPercentageLeft() {\r\n return this.percentageBlock * this.beginModel;\r\n }\r\n\r\n getPercentageRight() {\r\n return this.percentageBlock * Math.abs(this.endModel - (this.range.length - 1));\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UiInfiniteLoadService {\r\n readyToCheck: boolean;\r\n func;\r\n element;\r\n listener;\r\n\r\n constructor() {\r\n }\r\n\r\n register(element, func, orientation = 'vertical') {\r\n this.element = element;\r\n this.func = func;\r\n\r\n this.listener = () => {\r\n if (orientation === 'vertical') {\r\n const heightOffset = (this.element.scrollHeight || document.documentElement.scrollHeight) - (this.element.clientHeight || this.element.innerHeight);\r\n const scrollTop = this.element.scrollTop || this.element.scrollY;\r\n const safeZone = heightOffset * 0.1;\r\n\r\n if (scrollTop >= heightOffset - safeZone) {\r\n func();\r\n }\r\n } else {\r\n const widthOffset = (this.element.scrollWidth || document.documentElement.scrollWidth) - (this.element.clientWidth || this.element.innerWidth);\r\n const scrollLeft = this.element.scrollLeft || this.element.scrollX;\r\n const safeZone = widthOffset * 0.1;\r\n\r\n if (scrollLeft >= widthOffset - safeZone) {\r\n func();\r\n }\r\n }\r\n };\r\n\r\n this.element.addEventListener('scroll', this.listener);\r\n this.readyToCheck = true;\r\n }\r\n\r\n destroy() {\r\n this.element.removeEventListener('scroll', this.listener);\r\n this.readyToCheck = false;\r\n }\r\n}\r\n\r\n","import {AfterViewInit, Directive, ElementRef, Output, DoCheck, Input, EventEmitter} from '@angular/core';\r\nimport {UiInfiniteLoadService} from './infinite-load.service';\r\n\r\n@Directive({\r\n selector: '[uiInfiniteLoad]'\r\n})\r\nexport class UiInfiniteLoadDirective implements AfterViewInit, DoCheck {\r\n @Output() uiInfiniteLoad: EventEmitter<any> = new EventEmitter();\r\n @Input() orientation;\r\n\r\n constructor(private element: ElementRef, private infiniteLoad: UiInfiniteLoadService) {\r\n this.orientation = 'vertical';\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.infiniteLoad.register(this.element.nativeElement, () => {\r\n this.uiInfiniteLoad.emit();\r\n }, this.orientation);\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.infiniteLoad.listener) {\r\n this.infiniteLoad.listener();\r\n }\r\n }\r\n}\r\n","import {Component, EventEmitter} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-autocomplete',\r\n templateUrl: './autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss']\r\n})\r\nexport class UiAutocompleteComponent {\r\n ngModel: any;\r\n list: any[];\r\n loading: boolean;\r\n primary: string;\r\n secondary: string;\r\n accentClass: boolean;\r\n focusedIndex: number;\r\n hideNotFound: boolean;\r\n selectChange: EventEmitter<any>;\r\n loadMore: EventEmitter<any>;\r\n\r\n selectItem(item) {\r\n this.selectChange.emit(item);\r\n }\r\n\r\n loadMoreEmit() {\r\n setTimeout(() => this.loadMore.emit());\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n EventEmitter,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnChanges, OnInit,\r\n Output, forwardRef\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiAutocompleteComponent} from './autocomplete.component';\r\nimport {FormControl, NG_VALIDATORS} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiAutocomplete]',\r\n providers: [{\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiAutocompleteDirective),\r\n multi: true\r\n }]\r\n})\r\nexport class UiAutocompleteDirective implements AfterViewInit, OnInit, OnChanges {\r\n\r\n @Input() list: any[];\r\n @Input() ngModel: any;\r\n @Input() modelValue: any;\r\n @Input('model-property') modelProperty: any;\r\n @Input() select: Function;\r\n @Input() primary: string;\r\n @Input() secondary: string;\r\n @Input() loading: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input() hideNotFound: boolean;\r\n @Input() hidePanel: boolean;\r\n @Output() loadMore: EventEmitter<any> = new EventEmitter();\r\n @Output() loadMoreEmmiter: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Output() modelValueChange: EventEmitter<any> = new EventEmitter();\r\n @Output() selectChange: EventEmitter<any> = new EventEmitter();\r\n @Output() requiredChange: EventEmitter<any> = new EventEmitter();\r\n\r\n focusedIndex: number;\r\n accentClass: boolean;\r\n componentRef: any;\r\n componentElement: HTMLElement;\r\n wrapElement: HTMLElement;\r\n control: FormControl;\r\n onChange: Function;\r\n onTouched: Function;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngOnInit() {\r\n this.selectChange.subscribe(item => {\r\n this.ngModel = item[this.primary] || item;\r\n this.modelValue = this.modelProperty && item && typeof item === 'object' ? item[this.modelProperty] : item;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.modelValueChange.emit(this.modelValue);\r\n if (this.select) {\r\n this.select(item);\r\n }\r\n this.elementRef.nativeElement.blur();\r\n this.close();\r\n });\r\n\r\n }\r\n\r\n public ngAfterViewInit() {\r\n UiElement.on(window, 'click resize', e => {\r\n if (this.componentRef) {\r\n if (!(UiElement.is(e.target, '.wrap-autocomplete') || UiElement.closest(e.target, '.wrap-autocomplete') || UiElement.is(e.target, '.overlay') || e.target === this.elementRef.nativeElement)) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngOnChanges(changes) {\r\n if (changes.ngModel && !changes.ngModel.firstChange && this.componentRef) {\r\n this.componentRef.instance.ngModel = changes.ngModel.currentValue;\r\n }\r\n if (changes.list && !changes.list.firstChange && this.componentRef) {\r\n this.componentRef.instance.list = changes.list.currentValue;\r\n setTimeout(() => {\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + 1\r\n };\r\n this.setPosition(coordinate, this.componentElement);\r\n });\r\n }\r\n if (changes.loading && !changes.loading.firstChange && this.componentRef) {\r\n this.componentRef.instance.loading = changes.loading.currentValue;\r\n }\r\n }\r\n\r\n private createComponent() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiAutocompleteComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n }\r\n\r\n private getComponentAsElement(): HTMLElement {\r\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n private setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'list', 'primary', 'secondary', 'selectChange', 'loading', 'accentClass', 'loadMore', 'hideNotFound'];\r\n\r\n keysComponent.forEach(key => {\r\n componentRef.instance[key] = component[key];\r\n });\r\n }\r\n\r\n private render(element, coordinate): void {\r\n this.createWrapElement();\r\n this.wrapElement.appendChild(element);\r\n document.body.appendChild(this.wrapElement);\r\n\r\n\r\n setTimeout(() => {\r\n this.setPosition(coordinate, element);\r\n this.wrapElement.classList.add('open');\r\n });\r\n }\r\n\r\n private createWrapElement() {\r\n this.wrapElement = document.createElement('div');\r\n this.wrapElement.classList.add('wrap-autocomplete');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n\r\n if (this.themeClass) {\r\n this.wrapElement.classList.add(this.themeClass);\r\n }\r\n\r\n UiElement.css(this.wrapElement, 'top', 0);\r\n UiElement.css(this.wrapElement, 'left', 0);\r\n UiElement.css(this.wrapElement, 'visibility', 'hidden');\r\n UiElement.css(this.wrapElement, 'transition', 'none');\r\n this.wrapElement.appendChild(overlay);\r\n }\r\n\r\n private setFocusIndex(index) {\r\n this.componentRef.instance.focusedIndex = index;\r\n }\r\n\r\n private close() {\r\n if (this.wrapElement) {\r\n this.wrapElement.classList.remove('open');\r\n setTimeout(() => {\r\n if (this.componentRef) {\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n this.componentRef = null;\r\n this.wrapElement.remove();\r\n }\r\n }, 280);\r\n }\r\n }\r\n\r\n private initialize() {\r\n this.focusedIndex = undefined;\r\n\r\n this.accentClass = this.elementRef.nativeElement.classList.contains('accent');\r\n\r\n const position = UiElement.position(this.elementRef.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + 1\r\n };\r\n\r\n if (!this.componentRef) {\r\n this.createComponent();\r\n this.setInstances(this, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.componentElement = this.getComponentAsElement();\r\n this.render(this.componentElement, coordinate);\r\n }\r\n }\r\n\r\n private setPosition(coordinate, element) {\r\n const wrap = element.querySelector('.suggestions-wrap');\r\n const maxHeightWrap = !!this.secondary ? 370 : 240;\r\n const horizontalCoveringArea = coordinate.x + wrap.clientWidth;\r\n const verticalCoveringArea = coordinate.y + (wrap.clientHeight > maxHeightWrap ? maxHeightWrap : wrap.clientHeight);\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (wrap.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = coordinate.y - ((wrap.clientHeight > maxHeightWrap ? maxHeightWrap : wrap.clientHeight) + this.elementRef.nativeElement.clientHeight) - 14; // 14 = label focus\r\n }\r\n\r\n UiElement.css(this.wrapElement, 'top', `${coordinate.y + this.elementRef.nativeElement.clientHeight}px`);\r\n UiElement.css(this.wrapElement, 'left', `${coordinate.x}px`);\r\n UiElement.css(this.wrapElement, 'width', `${this.elementRef.nativeElement.clientWidth}px`);\r\n UiElement.css(this.wrapElement, 'visibility', '');\r\n UiElement.css(this.wrapElement, 'transition', '');\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (this.elementRef.nativeElement.hasAttribute('required') && !control.value) {\r\n return {required: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @HostListener('input') onInput() {\r\n if (!(this.ngModel && this.modelValue) || (this.ngModel !== this.modelValue)) {\r\n this.modelValue = null;\r\n this.modelValueChange.emit(this.modelValue);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @HostListener('focus') onFocus() {\r\n if (this.hidePanel) {\r\n return;\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n @HostListener('click') onClick() {\r\n if (this.hidePanel) {\r\n return;\r\n }\r\n\r\n this.initialize();\r\n }\r\n\r\n @HostListener('blur', ['$event']) onBlur(e) {\r\n if (!this.hidePanel && e.relatedTarget !== this.componentElement.querySelector('ui-card.suggestions')) {\r\n this.close();\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeydown(e) {\r\n if (!this.componentRef) {\r\n return;\r\n }\r\n if (typeof this.focusedIndex === 'undefined') {\r\n this.focusedIndex = -1;\r\n }\r\n switch (e.which) {\r\n case 8:\r\n case 37:\r\n this.elementRef.nativeElement.focus();\r\n break;\r\n case 38:\r\n this.focusedIndex = !this.list.length ? null : this.focusedIndex ? this.focusedIndex - 1 : this.list.length - 1;\r\n this.setFocusIndex(this.focusedIndex);\r\n break;\r\n case 40:\r\n this.focusedIndex = !this.list.length ? null : this.list.length - 1 === this.focusedIndex ? 0 : this.focusedIndex + 1;\r\n this.setFocusIndex(this.focusedIndex);\r\n break;\r\n case 13:\r\n if (this.list && typeof this.focusedIndex === 'number' && this.focusedIndex !== -1) {\r\n this.selectChange.emit(this.list[this.focusedIndex]);\r\n }\r\n event.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiMaskInteger][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskIntegerDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskIntegerDirective),\r\n multi: true\r\n }]\r\n})\r\nexport class UiMaskIntegerDirective implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit {\r\n loaded: boolean;\r\n input: boolean;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Input() uiMaskInteger: any;\r\n @Input() min: number;\r\n @Input() max: number;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n switch (this.uiMaskInteger) {\r\n case 'smallint':\r\n this.min = -32768;\r\n this.max = 32768;\r\n break;\r\n case 'bigint':\r\n this.min = -9223372036854775808;\r\n this.max = 9223372036854775807;\r\n break;\r\n case 'integer':\r\n this.min = -2147483648 ;\r\n this.max = 2147483647;\r\n break;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n const valueConverted = parseInt(this.ngModel, 10);\r\n this.elementRef.nativeElement.value = typeof this.ngModel === 'number' ? this.ngModel : !Number.isNaN(valueConverted) ? valueConverted : '';\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.ngModel || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n const newValue = value.toString().replace(/[^0-9]+/g, '');\r\n return newValue || undefined;\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return {min: true};\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return {max: true};\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput($event): void {\r\n const rawValue = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit\r\n} from '@angular/core';\r\n\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tabs',\r\n templateUrl: 'tabs.component.html',\r\n styleUrls: ['tabs.component.scss']\r\n})\r\n/**/\r\nexport class UiTabsComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges {\r\n showLeftArrow: boolean;\r\n showRightArrow: boolean;\r\n onScroll;\r\n internetExplorer: boolean;\r\n\r\n @Input('infinite-load') infiniteLoad;\r\n @Input() watch;\r\n @Input() disabled;\r\n\r\n constructor(private element: ElementRef) {\r\n this.onScroll = () => this.tabsScroll(0);\r\n this.disabled = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.internetExplorer = navigator.userAgent.includes('Trident');\r\n }\r\n\r\n ngAfterViewInit() {\r\n const tabs = this.element.nativeElement.querySelectorAll('.tab');\r\n const indicator = this.element.nativeElement.querySelector('.indicator');\r\n\r\n for (let i = 0; i < tabs.length; i++) {\r\n if (tabs[i].classList.contains('disabled')) {\r\n tabs[i].classList.remove('disabled');\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.disabled.length; i++) {\r\n tabs[this.disabled[i]].classList.add('disabled');\r\n }\r\n\r\n const self = this;\r\n\r\n let timeout;\r\n\r\n function scrollToTab(tab, withoutAnimation?) {\r\n for (let i = 0; i < tabs.length; i++) {\r\n const tab2 = tabs[i];\r\n if (tab2 !== tab && tab2.classList.contains('selected')) {\r\n UiElement.css(indicator, 'left', UiElement.offset(tab2).left + 'px');\r\n UiElement.css(indicator, 'width', tab2.offsetWidth + 'px');\r\n tab2.classList.remove('selected');\r\n }\r\n }\r\n\r\n UiElement.css(indicator, 'left', UiElement.offset(tab).left + 'px');\r\n UiElement.css(indicator, 'width', tab.offsetWidth + 'px');\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n tab.classList.add('selected');\r\n UiElement.css(indicator, 'width', '');\r\n UiElement.css(indicator, 'left', '');\r\n }, 280);\r\n\r\n const overflow = self.element.nativeElement.querySelector('.overflow');\r\n\r\n self.tabsScroll(UiElement.offset(tab).left - overflow.scrollLeft, withoutAnimation);\r\n }\r\n\r\n for (let i = 0; i < tabs.length; i++) {\r\n const tab = tabs[i];\r\n this.element.nativeElement.addEventListener('click', (e) => {\r\n if (e.target === tab && !e.target.classList.contains('disabled')) {\r\n scrollToTab(tab);\r\n }\r\n });\r\n }\r\n\r\n const tabSelected = this.element.nativeElement.querySelector('.tab.first-selected');\r\n if (tabSelected) {\r\n scrollToTab(tabSelected, true);\r\n // tabSelected.nativeElement.click();\r\n }\r\n\r\n UiElement.trigger(window, 'scroll');\r\n UiElement.on(window, 'scroll resize', this.onScroll);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n setTimeout(() => {\r\n this.ngAfterViewInit();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(window, 'scroll resize', this.onScroll);\r\n }\r\n\r\n tabsScroll(value?, withoutAnimation?) {\r\n const overflow = this.element.nativeElement.querySelector('.overflow');\r\n\r\n let scrollLeft = overflow.scrollLeft;\r\n\r\n const maxScrollLeft = overflow.scrollWidth - overflow.clientWidth;\r\n\r\n const animationTiming = withoutAnimation || this.internetExplorer ? 1 : 280\r\n\r\n if (typeof value !== 'undefined') {\r\n UiElement.animate(overflow, 'borderSpacing', scrollLeft, scrollLeft + value, animationTiming, null, (tick) => {\r\n overflow.scrollLeft = tick;\r\n\r\n scrollLeft = overflow.scrollLeft;\r\n\r\n this.showLeftArrow = (scrollLeft > 0);\r\n this.showRightArrow = (scrollLeft < maxScrollLeft);\r\n });\r\n } else {\r\n this.showLeftArrow = (scrollLeft > 0);\r\n this.showRightArrow = (scrollLeft < maxScrollLeft);\r\n }\r\n\r\n if (!this.showRightArrow) {\r\n if (this.infiniteLoad) {\r\n this.infiniteLoad();\r\n }\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\r\nimport {UiElementRef} from '../../utils/providers/element-ref.provider';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tabs-pages',\r\n templateUrl: 'tabs-pages.component.html',\r\n styleUrls: ['tabs-pages.component.scss']\r\n})\r\n\r\nexport class UiTabsPagesComponent implements AfterViewInit {\r\n @Input() tabs: any;\r\n firstLoad: boolean;\r\n currentPage: number;\r\n timeOutTurnBack: any;\r\n @Input('enable-overflow') enableOverflow: boolean;\r\n @Output('onchangepage') onChangePage: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(private element: ElementRef) {\r\n this.currentPage = 1;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.tabs) {\r\n const tabs = new UiElementRef(this.tabs.element.nativeElement).querySelector('.tab');\r\n\r\n let touchXMovement;\r\n let touchXStartPosition;\r\n let touchYMovement;\r\n let touchYStartPosition;\r\n let firstMovementCoord;\r\n let currentBannerIndex;\r\n let newPosition;\r\n\r\n const elBannerContainer = this.element.nativeElement.querySelector('.page-container');\r\n\r\n elBannerContainer.addEventListener('touchstart', (e) => {\r\n currentBannerIndex = tabs.indexOf(tabs.filter(tab => tab.is('.selected'))[0]);\r\n touchXStartPosition = e.touches[0].pageX;\r\n touchYStartPosition = e.touches[0].pageY;\r\n elBannerContainer.classList.add('no-transition');\r\n\r\n if (this.enableOverflow) {\r\n const pageContainer = new UiElementRef(this.element.nativeElement);\r\n\r\n const pages = pageContainer.querySelector('.page-container .page');\r\n for (let i = 0; i < pages.length; i++) {\r\n pages[i].css('height', '');\r\n }\r\n }\r\n });\r\n\r\n elBannerContainer.addEventListener('touchmove', (e) => {\r\n if (touchXStartPosition < 0 || touchXStartPosition > 40) {\r\n touchXMovement = touchXStartPosition - e.touches[0].pageX;\r\n touchYMovement = touchYStartPosition - e.touches[0].pageY;\r\n\r\n if (!firstMovementCoord) {\r\n if (touchXMovement > 20 || touchXMovement < -20) {\r\n firstMovementCoord = 'X';\r\n } else if (touchYMovement > 20 || touchYMovement < -20) {\r\n firstMovementCoord = 'Y';\r\n }\r\n }\r\n\r\n if (touchXMovement && firstMovementCoord === 'X') {\r\n UiElement.disableScroll();\r\n\r\n const i = currentBannerIndex;\r\n\r\n const isNegative = i > 0 ? -1 : 1;\r\n const currentPosition = (i * 100) * isNegative;\r\n\r\n const pages = this.element.nativeElement.querySelectorAll('.page-container .page');\r\n for (let i = 0; i < pages.length; i++) {\r\n const page = pages[i];\r\n newPosition = currentPosition - ((100 / page.clientWidth) * touchXMovement);\r\n page.style.transform = `translate(${newPosition}%)`;\r\n }\r\n }\r\n }\r\n });\r\n\r\n elBannerContainer.addEventListener('touchend', () => {\r\n elBannerContainer.classList.remove('no-transition');\r\n if (touchXMovement) {\r\n const newIndex = (Math.round(newPosition / 100) * -1);\r\n if (tabs[newIndex]) {\r\n tabs[newIndex].trigger('click');\r\n } else {\r\n this.pagesGoToPage();\r\n }\r\n }\r\n UiElement.enableScroll();\r\n firstMovementCoord = undefined;\r\n });\r\n }\r\n\r\n this.pagesGoToPage(1);\r\n }\r\n\r\n pagesGoToPage(nextPage?) {\r\n let tabs;\r\n if (this.tabs) {\r\n tabs = new UiElementRef(this.tabs.element.nativeElement).querySelector('.tab');\r\n } else {\r\n tabs = new UiElementRef(this.element.nativeElement).querySelector('.page');\r\n }\r\n\r\n if (tabs[nextPage - 1]) {\r\n const isNegative = (nextPage - 1) > 0 ? -1 : 1;\r\n const newPosition = (nextPage - 1) * 100 * isNegative;\r\n\r\n const pages = this.element.nativeElement.children[0].children;\r\n for (let i = 0; i < pages.length; i++) {\r\n const page = pages[i];\r\n page.style.transform = `translate(${newPosition}%)`;\r\n\r\n }\r\n } else {\r\n this.pagesGoToPage(tabs.indexOf(tabs.filter(tab => tab.is('.selected'))[0]) + 1);\r\n // TODO: Verificar se isso realmente funciona\r\n }\r\n\r\n const pageContainer = new UiElementRef(this.element.nativeElement);\r\n const elNextPage = new UiElementRef(this.element.nativeElement.children[0].children[nextPage - 1]);\r\n const pages = this.element.nativeElement.children[0].children;\r\n for (let i = 0; i < pages.length; i++) {\r\n if (nextPage - 1 === i) {\r\n const pageRef = new UiElementRef(pages[i]);\r\n pageRef.css('height', '');\r\n }\r\n }\r\n\r\n if (this.firstLoad) {\r\n const elCurrentPage = new UiElementRef(this.element.nativeElement.children[0].children[this.currentPage - 1]);\r\n pageContainer.css('height', elCurrentPage.nativeElement.clientHeight + 'px');\r\n } else {\r\n this.firstLoad = true;\r\n }\r\n if (elNextPage) {\r\n setTimeout(() => {\r\n pageContainer.css('height', elNextPage.nativeElement.clientHeight + 'px');\r\n\r\n clearTimeout(this.timeOutTurnBack);\r\n this.timeOutTurnBack = setTimeout(() => {\r\n pageContainer.css('height', '');\r\n\r\n for (let i = 0; i < pages.length; i++) {\r\n if (nextPage - 1 !== i) {\r\n const pageRef = new UiElementRef(pages[i]);\r\n pageRef.css('height', 0);\r\n }\r\n }\r\n }, 280);\r\n });\r\n }\r\n\r\n if (typeof nextPage !== 'undefined') {\r\n this.currentPage = nextPage;\r\n if (this.onChangePage) {\r\n setTimeout(() => {\r\n this.onChangePage.emit();\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import {Directive, DoCheck, ElementRef, Input} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Directive({selector: '[uiLazyLoad][lazy-src]'})\r\nexport class UiLazyLoadDirective implements DoCheck {\r\n elementRef: any;\r\n visible: boolean;\r\n @Input('lazy-src') lazySrc: any;\r\n\r\n constructor(private element: ElementRef) {\r\n this.elementRef = new UiElementRef(element.nativeElement);\r\n this.elementRef.on('load', () => {\r\n this.elementRef.classList.add('loaded');\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this.visible && this.elementRef.isInViewport()) {\r\n this.visible = true;\r\n this.elementRef.attribute('src', this.lazySrc);\r\n }\r\n }\r\n}\r\n","import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-data-table',\r\n templateUrl: 'data-table.component.html'\r\n})\r\n\r\nexport class UiDataTableComponent implements OnInit {\r\n @ViewChild('tableFooter', { static: true }) tableFooter: any;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n const self = new UiElementRef(this.element.nativeElement);\r\n const tfoot = self.querySelector('tfoot');\r\n\r\n if (tfoot) {\r\n this.tableFooter.nativeElement.appendChild(tfoot.nativeElement);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { UiElementRef } from '../utils/providers/element-ref.provider';\r\n\r\n@Component({\r\n selector: 'ui-bottom-sheet',\r\n templateUrl: './bottom-sheet.component.html',\r\n styleUrls: ['./bottom-sheet.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UiBottomSheetComponent {\r\n @Input('card-size') cardSize: number;\r\n @ViewChild(TemplateRef, { static: true }) templateRef: TemplateRef<any>;\r\n @Output() closeChange: EventEmitter<any> = new EventEmitter();\r\n\r\n viewRef;\r\n opened;\r\n\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n this.closeChange.emit();\r\n\r\n if (this.viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n if (this.viewRef) {\r\n setTimeout(() => {\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n this.viewRef.destroy();\r\n this.viewRef = null;\r\n }, 280);\r\n }\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n show(config?: any) {\r\n if (!this.viewRef) {\r\n const dialog = this;\r\n\r\n this.close();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n this.viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, config);\r\n }\r\n });\r\n }\r\n }\r\n\r\n open(element, config) {\r\n this.opened = true;\r\n setTimeout(() => {\r\n setTimeout(() => {\r\n const card = element.querySelector('ui-card');\r\n card.className += ` ${this.elementRef.nativeElement.className}`;\r\n\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize) {\r\n card.style.maxWidth = config.cardSize + 'px';\r\n }\r\n if (!config.transparentOverlay && config.fabs) {\r\n config.fabs.classList.add('hide');\r\n }\r\n\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n // UiElement.disableScroll();\r\n });\r\n });\r\n }\r\n}\r\n","import {AfterViewInit, Directive, ElementRef, Input, ViewContainerRef} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiBottomSheetTrigger]'\r\n})\r\nexport class UiBottomSheetTriggerDirective implements AfterViewInit {\r\n viewRef: any;\r\n fabs: HTMLElement;\r\n @Input('trigger-events') triggerEvents: string;\r\n @Input('theme-class') themeClass: string;\r\n @Input('transparent-overlay') transparentOverlay: boolean;\r\n @Input('uiBottomSheetTrigger') bottomSheet;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef, public elementRef: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.bottomSheet.closeChange.subscribe(() => {\r\n this.close();\r\n });\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.triggerEvents || 'click', () => {\r\n this.render();\r\n });\r\n }\r\n\r\n render() {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.bottomSheet.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode);\r\n }\r\n });\r\n }\r\n\r\n open(element) {\r\n setTimeout(() => {\r\n const card = element.querySelector('ui-card');\r\n card.className += ` ${this.bottomSheet.elementRef.nativeElement.className}`;\r\n\r\n if (this.themeClass) {\r\n element.classList.add(this.themeClass);\r\n }\r\n if (this.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (this.bottomSheet.cardSize) {\r\n card.style.maxWidth = this.bottomSheet.cardSize + 'px';\r\n }\r\n if (!this.transparentOverlay && this.fabs) {\r\n this.fabs.classList.add('hide');\r\n }\r\n\r\n element.querySelectorAll('.overlay')[0].addEventListener('click', () => {\r\n this.close();\r\n });\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n // UiElement.disableScroll();\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef;\r\n if (this.fabs) {\r\n this.fabs.classList.remove('hide');\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n // UiElement.enableScroll();\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output } from '@angular/core';\r\nimport { FormControl, NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[uiInputFile]',\r\n exportAs: 'uiInputFile'\r\n})\r\nexport class UiInputFileDirective {\r\n\r\n @Input() files: any;\r\n @Input() model: any;\r\n @Input() accept: string;\r\n @Input() read: Function;\r\n @Input() error: Function;\r\n @Input() fileChange: Function;\r\n @Input('max-size') maxSize: string;\r\n @Input('max-file-size') maxFileSize: string;\r\n @Output() filesChange: EventEmitter<any> = new EventEmitter();\r\n @Output() modelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n constructor(public element: ElementRef, public ngControl: NgControl) {\r\n }\r\n\r\n @HostListener('change', ['$event'])\r\n onChange(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n this.readFiles(e.target.files);\r\n }\r\n\r\n readFiles(files) {\r\n this.ngControl.control.markAsDirty();\r\n this.ngControl.control.setErrors(null);\r\n\r\n this.model = [];\r\n const accepts = this.accept ? this.accept.split(',') : [];\r\n const maxSize = this.maxSize ? this.toByte(this.maxSize) : null;\r\n const maxFileSize = this.maxFileSize ? this.toByte(this.maxFileSize) : null;\r\n\r\n let sum = 0;\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n sum += file.size;\r\n\r\n const validMaxFileSize = this.validateMaxSize(file.size, maxFileSize);\r\n const validMaxSize = this.validateMaxSize(sum, maxSize);\r\n const fileExtension = file.name.substring(file.name.lastIndexOf('.') + 1);\r\n const validType = this.validateType(file, fileExtension, accepts);\r\n\r\n if (validMaxFileSize) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {maxFileSize: true}));\r\n }\r\n\r\n if (!validType) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {accept: true}));\r\n }\r\n\r\n if (this.validateMaxSize(sum, maxSize)) {\r\n this.ngControl.control.setErrors(Object.assign(this.ngControl.errors || {}, {maxSize: true}));\r\n }\r\n\r\n if (validType && !validMaxFileSize && !validMaxSize) {\r\n this.model.push({});\r\n this.modelChange.emit(this.model);\r\n this.readFile(file, this.model[i], i);\r\n } else if (this.error) {\r\n this.error(file, {\r\n type: !validType,\r\n maxSize: validMaxSize,\r\n maxFileSize: validMaxFileSize\r\n }, i);\r\n }\r\n }\r\n\r\n this.files = files;\r\n this.filesChange.emit(this.files);\r\n\r\n if (this.fileChange) {\r\n this.fileChange(this.files, this.ngControl.control.invalid);\r\n }\r\n\r\n this.element.nativeElement.value = ''; // Resetando value para próximos arquivos\r\n }\r\n\r\n validateType(file, extension, accepts): boolean {\r\n if (!accepts.length) {\r\n return true;\r\n }\r\n\r\n for (let j = 0; j < accepts.length; j++) {\r\n const accept = accepts[j].trim();\r\n const regex = accept.match(/^[^\\*]*\\*$/) ? new RegExp('^' + accept) : new RegExp('^' + accept + '$');\r\n\r\n if (file.type.match(regex) || extension.match(regex)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n validateMaxSize(size, maxSize): boolean {\r\n return (maxSize && size > maxSize);\r\n }\r\n\r\n toByte(sizeString: string) {\r\n sizeString = sizeString.toString();\r\n const unitMatch = sizeString.match(/[a-zA-Z]+/g);\r\n const unit = unitMatch ? unitMatch[0] : null;\r\n const sizeMatch = sizeString.match(/\\d+/);\r\n const unitSize = sizeMatch ? parseInt(sizeMatch[0], 10) : null;\r\n let size = unitSize;\r\n\r\n switch (unit) {\r\n case 'KB':\r\n size = unitSize * 1024;\r\n break;\r\n case 'MB':\r\n size = unitSize * Math.pow(1024, 2);\r\n break;\r\n case 'GB':\r\n size = unitSize * Math.pow(1024, 3);\r\n break;\r\n case 'TB':\r\n size = unitSize * Math.pow(1024, 4);\r\n break;\r\n case 'PB':\r\n size = unitSize * Math.pow(1024, 5);\r\n break;\r\n case 'EB':\r\n size = unitSize * Math.pow(1024, 6);\r\n break;\r\n case 'ZB':\r\n size = unitSize * Math.pow(1024, 7);\r\n break;\r\n case 'YB':\r\n size = unitSize * Math.pow(1024, 8);\r\n break;\r\n }\r\n return size;\r\n }\r\n\r\n readFile(file, data, index) {\r\n if (typeof (data) !== 'object') return;\r\n\r\n const reader = new FileReader();\r\n\r\n data.resolved = 'false';\r\n\r\n reader.onload = (e: any) => {\r\n data.result = e.target.result;\r\n data.resolved = true;\r\n this.modelChange.emit(this.model);\r\n this.read(file, data.result, index);\r\n };\r\n\r\n reader.onerror = (e: any) => {\r\n data.error = e.target.error;\r\n this.modelChange.emit(this.model);\r\n };\r\n\r\n reader.onprogress = (e: any) => {\r\n data.progress = {\r\n loaded: e.loaded,\r\n total: e.total,\r\n percent: Math.round((e.loaded / e.total) * 100)\r\n };\r\n this.modelChange.emit(this.model);\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnInit, Output} from '@angular/core';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\n@Directive({selector: '[uiEllipsis]'})\r\nexport class UiEllipsisDirective implements OnInit {\r\n @Input() uiEllipsis: number;\r\n @Output() uiEllipsisChange: number;\r\n @Input('line-height') lineHeight: number;\r\n\r\n constructor(private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n const elementRef = new UiElementRef(this.element.nativeElement);\r\n\r\n this.uiEllipsis = this.uiEllipsis || 1;\r\n this.lineHeight = this.lineHeight || 17;\r\n\r\n elementRef.css('-webkit-line-clamp', this.uiEllipsis);\r\n elementRef.css('max-height', (this.lineHeight * this.uiEllipsis) + 'px');\r\n elementRef.css('line-height', this.lineHeight + 'px');\r\n\r\n elementRef.on('mousemove', () => {\r\n if (elementRef.nativeElement.scrollHeight > elementRef.nativeElement.clientHeight) {\r\n elementRef.nativeElement.setAttribute('title', elementRef.nativeElement.innerText);\r\n } else {\r\n elementRef.nativeElement.removeAttribute('title');\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, Input, forwardRef} from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[required][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => UiRequiredDirective), multi: true }\r\n ]\r\n})\r\nexport class UiRequiredDirective implements Validator {\r\n @Input('required') maxLength: any;\r\n\r\n constructor() {}\r\n\r\n validate(control: AbstractControl): { [key: string]: any } {\r\n\r\n const value = control.value;\r\n\r\n if (value && value.trim && !value.trim()) {\r\n return {\r\n required: true,\r\n uiMaxlength: false\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","const textBlack = 'rgba(0, 0, 0, .87)';\r\nconst textWhite = '#fff';\r\nconst colors: any[] = [{\r\n name: 'red'\r\n}, {\r\n name: 'pink'\r\n}, {\r\n name: 'purple'\r\n}, {\r\n name: 'deepPurple'\r\n}, {\r\n name: 'indigo'\r\n}, {\r\n name: 'blue'\r\n}, {\r\n name: 'lightBlue'\r\n}, {\r\n name: 'cyan'\r\n}, {\r\n name: 'teal'\r\n}, {\r\n name: 'green'\r\n}, {\r\n name: 'lightGreen'\r\n}, {\r\n name: 'lime'\r\n}, {\r\n name: 'yellow'\r\n}, {\r\n name: 'amber'\r\n}, {\r\n name: 'orange'\r\n}, {\r\n name: 'deepOrange'\r\n}, {\r\n name: 'brown'\r\n}, {\r\n name: 'grey'\r\n}, {\r\n name: 'blueGrey'\r\n}, {\r\n name: 'black',\r\n hideSlider: true\r\n}, {\r\n name: 'white',\r\n hideSlider: true,\r\n hasBorder: true\r\n}];\r\nconst palette: any = {\r\n red: {\r\n 50: {\r\n color: '#ffebee',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffcdd2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ef9a9a',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#e57373',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ef5350',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#f44336',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#e53935',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#d32f2f',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#c62828',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#b71c1c',\r\n text: textWhite\r\n }\r\n },\r\n pink: {\r\n 50: {\r\n color: '#fce4ec',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f8bbd0',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#f48fb1',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#f06292',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#ec407a',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#e91e63',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#d81b60',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#c2185b',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#ad1457',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#880e4f',\r\n text: textWhite\r\n }\r\n },\r\n purple: {\r\n 50: {\r\n color: '#f3e5f5',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#e1bee7',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ce93d8',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ba68c8',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#ab47bc',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#9c27b0',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#8e24aa',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#7b1fa2',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#6a1b9a',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#4a148c',\r\n text: textWhite\r\n }\r\n },\r\n deepPurple: {\r\n 50: {\r\n color: '#ede7f6',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#d1c4e9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#b39ddb',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#9575cd',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#7e57c2',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#673ab7',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#5e35b1',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#512da8',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#4527a0',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#311b92',\r\n text: textWhite\r\n }\r\n },\r\n indigo: {\r\n 50: {\r\n color: '#e8eaf6',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#c5cae9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#9fa8da',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#7986cb',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#5c6bc0',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#3f51b5',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#3949ab',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#303f9f',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#283593',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#1a237e',\r\n text: textWhite\r\n }\r\n },\r\n blue: {\r\n 50: {\r\n color: '#e3f2fd',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#bbdefb',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#90caf9',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#64b5f6',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#42a5f5',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#2196f3',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#1e88e5',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#1976d2',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#1565c0',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#0d47a1',\r\n text: textWhite\r\n }\r\n },\r\n lightBlue: {\r\n 50: {\r\n color: '#e1f5fe',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b3e5fc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#81d4fa',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4fc3f7',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#29b6f6',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#03a9f4',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#039be5',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#0288d1',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#0277bd',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#01579b',\r\n text: textWhite\r\n }\r\n },\r\n cyan: {\r\n 50: {\r\n color: '#e0f7fa',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b2ebf2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#80deea',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4dd0e1',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#26c6da',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#00bcd4',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#00acc1',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#0097a7',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#00838f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#006064',\r\n text: textWhite\r\n }\r\n },\r\n teal: {\r\n 50: {\r\n color: '#e0f2f1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#b2dfdb',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#80cbc4',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#4db6ac',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#26a69a',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#009688',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#00897b',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#00796b',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#00695c',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#004d40',\r\n text: textWhite\r\n }\r\n },\r\n green: {\r\n 50: {\r\n color: '#e8f5e9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#c8e6c9',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#a5d6a7',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#81c784',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#66bb6a',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#4caf50',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#43a047',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#388e3c',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#2e7d32',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#1b5e20',\r\n text: textWhite\r\n }\r\n },\r\n lightGreen: {\r\n 50: {\r\n color: '#f1f8e9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#dcedc8',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#c5e1a5',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#aed581',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#9ccc65',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#8bc34a',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#7cb342',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#689f38',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#558b2f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#33691e',\r\n text: textWhite\r\n }\r\n },\r\n lime: {\r\n 50: {\r\n color: '#f9fbe7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f0f4c3',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#e6ee9c',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#dce775',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#d4e157',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#cddc39',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#c0ca33',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#afb42b',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#9e9d24',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#827717',\r\n text: textWhite\r\n }\r\n },\r\n yellow: {\r\n 50: {\r\n color: '#fffde7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#fff9c4',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#fff59d',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#fff176',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffee58',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ffeb3b',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#fdd835',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#fbc02d',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#f9a825',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#f57f17',\r\n text: textBlack\r\n }\r\n },\r\n amber: {\r\n 50: {\r\n color: '#fff8e1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffecb3',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffe082',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ffd54f',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffca28',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ffc107',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#ffb300',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#ffa000',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#ff8f00',\r\n text: textBlack\r\n },\r\n 900: {\r\n color: '#ff6f00',\r\n text: textBlack\r\n }\r\n },\r\n orange: {\r\n 50: {\r\n color: '#fff3e0',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffe0b2',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffcc80',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ffb74d',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ffa726',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ff9800',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#fb8c00',\r\n text: textBlack\r\n },\r\n 700: {\r\n color: '#f57c00',\r\n text: textBlack\r\n },\r\n 800: {\r\n color: '#ef6c00',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#e65100',\r\n text: textWhite\r\n }\r\n },\r\n deepOrange: {\r\n 50: {\r\n color: '#fbe9e7',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#ffccbc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#ffab91',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#ff8a65',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#ff7043',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#ff5722',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#f4511e',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#e64a19',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#d84315',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#bf360c',\r\n text: textWhite\r\n }\r\n },\r\n brown: {\r\n 50: {\r\n color: '#efebe9',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#d7ccc8',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#bcaaa4',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#a1887f',\r\n text: textWhite\r\n },\r\n 400: {\r\n color: '#8d6e63',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#795548',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#6d4c41',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#5d4037',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#4e342e',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#3e2723',\r\n text: textWhite\r\n }\r\n },\r\n grey: {\r\n 50: {\r\n color: '#fafafa',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#f5f5f5',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#eeeeee',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#e0e0e0',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#bdbdbd',\r\n text: textBlack\r\n },\r\n 500: {\r\n color: '#9e9e9e',\r\n text: textBlack\r\n },\r\n 600: {\r\n color: '#757575',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#616161',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#424242',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#212121',\r\n text: textWhite\r\n }\r\n },\r\n blueGrey: {\r\n 50: {\r\n color: '#eceff1',\r\n text: textBlack\r\n },\r\n 100: {\r\n color: '#cfd8dc',\r\n text: textBlack\r\n },\r\n 200: {\r\n color: '#b0bec5',\r\n text: textBlack\r\n },\r\n 300: {\r\n color: '#90a4ae',\r\n text: textBlack\r\n },\r\n 400: {\r\n color: '#78909c',\r\n text: textWhite\r\n },\r\n 500: {\r\n color: '#607d8b',\r\n text: textWhite\r\n },\r\n 600: {\r\n color: '#546e7a',\r\n text: textWhite\r\n },\r\n 700: {\r\n color: '#455a64',\r\n text: textWhite\r\n },\r\n 800: {\r\n color: '#37474f',\r\n text: textWhite\r\n },\r\n 900: {\r\n color: '#263238',\r\n text: textWhite\r\n }\r\n },\r\n black: {\r\n 500: {\r\n color: '#000000',\r\n text: textWhite\r\n }\r\n },\r\n white: {\r\n 500: {\r\n color: '#FFFFFF',\r\n text: textBlack\r\n }\r\n }\r\n};\r\nexport {\r\n palette,\r\n colors\r\n}\r\n","import {Component, EventEmitter, AfterViewInit, Output, ViewChild, Input} from '@angular/core';\r\nimport {palette, colors} from './color-picker.palette';\r\nimport {NgControl} from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'ui-color-picker',\r\n templateUrl: './color-picker.component.html',\r\n styleUrls: ['./color-picker.component.scss']\r\n})\r\nexport class UiColorPickerComponent implements AfterViewInit {\r\n\r\n palette: any;\r\n colors: any;\r\n hues: any;\r\n colorSelected: any;\r\n ngModel: any;\r\n value: any;\r\n ngModelChange: EventEmitter<any>;\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n @ViewChild('hueColor') hueColor: any;\r\n\r\n constructor(private ngControl: NgControl) {\r\n this.palette = palette;\r\n this.colors = colors;\r\n this.hues = Array.from({length: 10}, (ngModel, index) => index * 100);\r\n this.hues[0] = 50;\r\n this.value = 500;\r\n this.colorSelected = {};\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setColorSelected(this.ngModel);\r\n this.hueColor.valueChange.subscribe(hue => {\r\n this.ngModel = this.getColor(this.colorSelected.name, hue);\r\n this.ngModelChange.emit(this.ngModel);\r\n });\r\n }\r\n\r\n getColor(color, hue = 500) {\r\n if (!color) {\r\n return;\r\n }\r\n return this.palette[color][hue].color;\r\n }\r\n\r\n getColorText(color, hue = 500) {\r\n if (!color) {\r\n return;\r\n }\r\n return this.palette[color][hue].text;\r\n }\r\n\r\n selectColor(colorSelected) {\r\n this.ngControl.control.markAsDirty();\r\n this.deselectColors();\r\n colorSelected.selected = true;\r\n this.colorSelected = colorSelected;\r\n this.ngModel = this.getColor(this.colorSelected.name, this.value);\r\n this.ngModelChange.emit(this.ngModel);\r\n }\r\n\r\n deselectColors() {\r\n this.ngControl.control.markAsDirty();\r\n this.ngModel = this.getColor(null);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.colorSelected = {};\r\n this.value = 500;\r\n this.colors.forEach(color => color.selected = false);\r\n }\r\n\r\n setColorSelected(color) {\r\n if (!color) {\r\n return;\r\n }\r\n\r\n Object.keys(this.palette).forEach(key => {\r\n Object.keys(this.palette[key]).forEach(hue => {\r\n if (this.palette[key][hue].color === color) {\r\n this.colors.forEach(item => {\r\n if (item.name === key) {\r\n setTimeout(() => {\r\n item.selected = true;\r\n this.value = hue;\r\n this.colorSelected = item;\r\n });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n","import {\r\n AfterViewInit, ApplicationRef, ComponentFactoryResolver, Directive, ElementRef, EmbeddedViewRef, EventEmitter,\r\n Injector, Input, OnChanges, Output\r\n} from '@angular/core';\r\nimport {palette} from './color-picker.palette';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiColorPickerComponent} from './color-picker.component';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\n\r\n@Directive({\r\n selector: '[uiColorPicker]'\r\n})\r\nexport class UiColorPickerDirective implements AfterViewInit, OnChanges {\r\n\r\n @Input() ngModel;\r\n @Input('theme-class') themeClass;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n elementColor;\r\n palette;\r\n componentRef;\r\n wrapElement;\r\n componentElement;\r\n\r\n constructor(private element: ElementRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector) {\r\n this.palette = palette;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.generateElementColor();\r\n this.setColorElement(this.ngModel);\r\n\r\n this.element.nativeElement.classList.add('elevate');\r\n this.element.nativeElement.parentNode.appendChild(this.elementColor);\r\n\r\n this.addEvents();\r\n\r\n this.ngModelChange.subscribe(color => {\r\n this.setColorElement(color);\r\n });\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.ngModel && !changes.ngModel.firstChange) {\r\n this.ngModel = changes.ngModel.currentValue;\r\n this.setColorElement(this.ngModel);\r\n }\r\n }\r\n\r\n generateElementColor() {\r\n this.elementColor = document.createElement('div');\r\n this.elementColor.classList.add('ui-color');\r\n this.elementColor.setAttribute('tabindex', '1');\r\n }\r\n\r\n setColorElement(color) {\r\n let icon = this.elementColor.querySelector('i');\r\n\r\n if (color) {\r\n if (icon) {\r\n icon.remove();\r\n }\r\n this.elementColor.setAttribute('style', `background-color: ${color}`);\r\n } else if (!icon) {\r\n icon = document.createElement('i');\r\n icon.classList.add('material-icons', 'secondary-text');\r\n icon.innerText = 'block';\r\n this.elementColor.appendChild(icon);\r\n this.elementColor.setAttribute('style', '');\r\n }\r\n }\r\n\r\n addEvents() {\r\n UiElement.on(this.elementColor, 'click', e => {\r\n const position = UiElement.position(this.elementColor);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n\r\n if (!this.componentRef) {\r\n this.createComponent();\r\n this.setInstances(this, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.componentElement = this.getComponentAsElement();\r\n this.render(this.componentElement, coordinate);\r\n e.stopPropagation();\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.componentRef) {\r\n if ((!(UiElement.is(e.target, '.wrap-color-picker') || UiElement.closest(e.target, '.wrap-color-picker')) && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.close();\r\n }\r\n }\r\n });\r\n }\r\n\r\n private createComponent() {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiColorPickerComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n }\r\n\r\n private getComponentAsElement(): HTMLElement {\r\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n private setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'ngModelChange'];\r\n\r\n keysComponent.forEach(key => {\r\n componentRef.instance[key] = component[key];\r\n });\r\n }\r\n\r\n private render(element, coordinate): void {\r\n this.createWrapElement();\r\n this.wrapElement.appendChild(element);\r\n\r\n document.body.appendChild(this.wrapElement);\r\n\r\n setTimeout(() => {\r\n if (this.themeClass) {\r\n this.wrapElement.classList.add(this.themeClass);\r\n }\r\n\r\n this.wrapElement.classList.add('open');\r\n\r\n this.setPosition(coordinate);\r\n });\r\n }\r\n\r\n private createWrapElement() {\r\n this.wrapElement = document.createElement('div');\r\n this.wrapElement.classList.add('wrap-color-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n\r\n this.wrapElement.appendChild(overlay);\r\n }\r\n\r\n private setPosition(coordinate) {\r\n const horizontalCoveringArea = coordinate.x + this.componentElement.clientWidth;\r\n const verticalCoveringArea = coordinate.y + this.componentElement.clientHeight;\r\n const windowWidth = window.innerWidth + document.body.scrollLeft;\r\n const windowHeight = window.innerHeight + document.body.scrollTop;\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (this.componentElement.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = coordinate.y - this.componentElement.clientHeight;\r\n }\r\n\r\n this.componentElement.style.top = (coordinate.y) + 'px';\r\n this.componentElement.style.left = coordinate.x + 'px';\r\n }\r\n\r\n private close() {\r\n if (this.wrapElement) {\r\n this.wrapElement.classList.remove('open');\r\n setTimeout(() => {\r\n if (this.componentRef) {\r\n this.componentRef.instance.colors.forEach(color => color.selected = false);\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n this.componentRef = null;\r\n this.wrapElement.remove();\r\n }\r\n }, 280);\r\n }\r\n\r\n }\r\n}\r\n","import {ElementRef, HostListener, Directive, OnChanges, Input, AfterViewInit, DoCheck} from '@angular/core';\r\n\r\nconst MAX_LOOKUP_RETRIES = 3;\r\n\r\n@Directive({\r\n selector: '[autosize]'\r\n})\r\n\r\nexport class UiInputAutosizeDirective implements OnChanges, AfterViewInit, DoCheck {\r\n private retries = 0;\r\n private textAreaEl: any;\r\n @Input() ngModel;\r\n\r\n @HostListener('input', ['$event.target'])\r\n onInput(textArea: HTMLTextAreaElement): void {\r\n this.adjust();\r\n }\r\n\r\n @HostListener('change', ['$event.target'])\r\n onChange(textArea: HTMLTextAreaElement): void {\r\n this.adjust();\r\n }\r\n\r\n constructor(public element: ElementRef) {\r\n if (this.element.nativeElement.tagName !== 'TEXTAREA') {\r\n this._findNestedTextArea();\r\n } else {\r\n this.textAreaEl = this.element.nativeElement;\r\n }\r\n }\r\n\r\n // Faz com que o autosize execute quando a tela for carregada, para casos em que o campo iniciar preenchido\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.adjust();\r\n });\r\n }\r\n\r\n _findNestedTextArea() {\r\n this.textAreaEl = this.element.nativeElement.getElementsByTagName('textarea')[0];\r\n if (!this.textAreaEl) {\r\n if (this.retries >= MAX_LOOKUP_RETRIES) {\r\n console.error('textarea não encontrado');\r\n\r\n } else {\r\n this.retries++;\r\n setTimeout(() => {\r\n this._findNestedTextArea();\r\n }, 100);\r\n }\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n // this.adjust();\r\n }\r\n\r\n // setTimeout para aguardar a atualização da model do input\r\n ngOnChanges(changes) {\r\n setTimeout(() => {\r\n this.adjust();\r\n });\r\n }\r\n\r\n adjust(): void {\r\n if (!!this.textAreaEl) {\r\n this.textAreaEl.style.overflow = 'hidden';\r\n this.textAreaEl.style.height = '';\r\n this.textAreaEl.style.height = this.textAreaEl.scrollHeight + 'px';\r\n }\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ComponentFactoryResolver, ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {Subject} from 'rxjs/index';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {animate, style, transition, trigger} from \"@angular/animations\";\r\n\r\n@Component({\r\n selector: 'ui-clock',\r\n templateUrl: './clock.component.html',\r\n styleUrls: ['./clock.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [trigger(\r\n 'explosion', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n transform: 'scale(1.3)'\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n transform: 'scale(1)'\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n transform: 'scale(1.3)'\r\n }))\r\n ])\r\n ],\r\n ), trigger(\r\n 'fade', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1,\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n )]\r\n})\r\nexport class UiClockComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() ngModel: any;\r\n @Input('hide-header') hideHeader: boolean;\r\n @Input('confirm-selection') confirmSelection: boolean;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() cancel: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n hours: number[];\r\n minutes: number[];\r\n hour: number;\r\n minute: number;\r\n focused: boolean;\r\n pointerRotation: number;\r\n activeSelection: string;\r\n\r\n constructor(private element: ElementRef) {\r\n const beforeMidday = Array.apply(null, {length: 12}).map(Number.call, Number);\r\n const afterMidday = Array.apply(null, {length: 12}).map(Number.call, Number).map(val => val + 12);\r\n beforeMidday[0] = 12;\r\n afterMidday[0] = 0;\r\n this.hours = [...afterMidday, ...beforeMidday];\r\n this.minutes = Array.apply(null, {length: 12}).map(Number.call, Number).map(val => val * 5);\r\n this.activeSelection = 'hours';\r\n this.pointerRotation = 0;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.formatModel();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.element.nativeElement.tabIndex = 1;\r\n setTimeout(() => {\r\n this.element.nativeElement.focus();\r\n });\r\n\r\n UiElement.on(document, 'keydown', e => {\r\n if (!this.focused) {\r\n return;\r\n }\r\n switch (e.keyCode) {\r\n case 13:\r\n if (this.activeSelection === 'hours') {\r\n this.selectHour(this.hour);\r\n } else {\r\n this.selectMinute(this.minute);\r\n }\r\n break;\r\n case 39:\r\n case 40:\r\n if (this.activeSelection === 'hours') {\r\n this.hour = this.hour + 1 > 23 ? 0 : this.hour + 1;\r\n } else {\r\n this.minute = this.minute + 1 > 59 ? 0 : this.minute + 1;\r\n }\r\n this.getPositionPointer();\r\n e.preventDefault();\r\n break;\r\n case 37:\r\n case 38:\r\n if (this.activeSelection === 'hours') {\r\n this.hour = this.hour - 1 < 0 ? 23 : this.hour - 1;\r\n } else {\r\n this.minute = this.minute - 1 < 0 ? 59 : this.minute - 1;\r\n }\r\n this.getPositionPointer();\r\n e.preventDefault();\r\n break;\r\n }\r\n\r\n });\r\n\r\n UiElement.on(document, 'click', e => {\r\n this.focused = (this.element.nativeElement === e.target || this.element.nativeElement === UiElement.closest(e.target, 'ui-clock')) && (UiElement.is(e.target, 'ui-clock') || UiElement.closest(e.target, 'ui-clock'));\r\n });\r\n }\r\n\r\n public ngOnChanges(value): void {\r\n if (value.ngModel && !value.ngModel.firstChange) {\r\n this.ngModel = value.ngModel.currentValue;\r\n this.formatModel();\r\n }\r\n if (value.confirmSelection) {\r\n this.confirmSelection = value.confirmSelection.currentValue;\r\n }\r\n }\r\n\r\n public formatModel() {\r\n if (this.ngModel) {\r\n const time = this.ngModel.split(':');\r\n this.hour = parseInt(time[0], 10);\r\n this.minute = parseInt(time [1], 10);\r\n this.getPositionPointer();\r\n }\r\n }\r\n\r\n public selectTime(close?: boolean) {\r\n if (this.hasHourAndMinute()) {\r\n this.ngModel = `${this.formatToLpad(this.hour)}:${this.formatToLpad(this.minute)}`;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.select.emit(this.ngModel);\r\n this.chosen.next({value: this.ngModel, close});\r\n }\r\n }\r\n\r\n public cancelTime() {\r\n this.activeSelection = 'hours';\r\n this.hour = null;\r\n this.minute = null;\r\n this.ngModel = null;\r\n this.ngModelChange.emit(this.ngModel);\r\n this.cancel.emit();\r\n }\r\n\r\n public selectHour(hour): void {\r\n this.activeSelection = 'minutes';\r\n this.hour = hour;\r\n this.minute = this.minute || 0;\r\n this.getPositionPointer();\r\n\r\n if (!this.confirmSelection) {\r\n this.selectTime();\r\n }\r\n }\r\n\r\n public selectMinute(minute): void {\r\n this.activeSelection = 'hours';\r\n this.minute = minute;\r\n this.getPositionPointer();\r\n\r\n if (!this.confirmSelection) {\r\n this.selectTime(true);\r\n }\r\n }\r\n\r\n public isEmpty(): boolean {\r\n return !(typeof this.hour === 'number' && typeof this.minute === 'number');\r\n }\r\n\r\n public formatToLpad(value): string {\r\n if (typeof value === 'number' && value.toString().length < 2) {\r\n value = `0${value}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public getPositionPointer(): void {\r\n if (!this.hasHourAndMinute()) {\r\n return;\r\n }\r\n let oldRotation = this.pointerRotation;\r\n oldRotation = oldRotation >= 360 ? oldRotation - (Math.floor(oldRotation / 360) * 360) : (oldRotation <= -360 ? oldRotation + (Math.floor(Math.abs(oldRotation) / 360) * 360) : oldRotation);\r\n let amountRotate;\r\n const actualRotate = this.activeSelection === 'hours' ? (30 * (this.hour >= 12 ? this.hour - 12 : this.hour)) : 6 * this.minute;\r\n\r\n if (actualRotate - oldRotation < -180) {\r\n amountRotate = 360 - oldRotation + actualRotate;\r\n } else if (actualRotate - oldRotation > 180) {\r\n amountRotate = -(360 - actualRotate + oldRotation);\r\n } else {\r\n amountRotate = actualRotate - oldRotation;\r\n }\r\n\r\n if (Math.abs(amountRotate) === 180) {\r\n amountRotate = actualRotate > oldRotation ? Math.abs(amountRotate) : -amountRotate;\r\n }\r\n\r\n this.pointerRotation += amountRotate;\r\n\r\n }\r\n\r\n public getPositionTopPointer(): string {\r\n if (this.activeSelection === 'hours' && this.hour > 0 && this.hour < 13) {\r\n return '40px';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public hasHourAndMinute(): boolean {\r\n return typeof this.hour === 'number' && typeof this.minute === 'number';\r\n }\r\n\r\n public validate(): boolean {\r\n return (this.hour < 24 && this.minute < 60) || !this.hasHourAndMinute();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiTimePickerDirective} from './time-picker.directive';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\n\r\n@Injectable()\r\nexport class UiTimePickerService {\r\n\r\n timePickers: any = {};\r\n\r\n constructor() {\r\n }\r\n\r\n add(name: string, component: UiTimePickerDirective): void {\r\n if (this.timePickers && this.timePickers[name]) {\r\n return;\r\n }\r\n\r\n this.timePickers[name] = component;\r\n }\r\n\r\n get(name: string): UiTimePickerDirective {\r\n return this.timePickers[name];\r\n }\r\n\r\n remove(name: string) {\r\n delete this.timePickers[name];\r\n }\r\n\r\n closeAll() {\r\n UiElement.trigger(window, 'click');\r\n }\r\n\r\n getAll(): UiTimePickerDirective {\r\n return this.timePickers;\r\n }\r\n\r\n updateModel(name, value) {\r\n this.timePickers[name].ngModel = value;\r\n this.timePickers[name].ngModelChange.emit(value);\r\n }\r\n\r\n}\r\n","import {\r\n Directive, EventEmitter, Input, Output, OnChanges, OnInit, OnDestroy, ElementRef,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport {UiTimePickerService} from './time-picker.service';\r\nimport {Subject} from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[uiTimePicker]'\r\n})\r\nexport class UiTimePickerDirective implements OnInit, AfterViewInit, OnChanges, OnDestroy {\r\n @Input() ngModel;\r\n @Input() confirmSelection: boolean;\r\n @Input('theme-class') themeClass: string;\r\n @Input('uiTimePicker') timePicker: string;\r\n @Output() select: EventEmitter<any> = new EventEmitter();\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n chosen: Subject<any> = new Subject();\r\n\r\n constructor(public timePickerService: UiTimePickerService, public element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.timePickerService.add(this.timePicker, this);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute('time-picker-name', this.timePicker);\r\n }\r\n\r\n ngOnChanges(value) {\r\n this.chosen.next(value);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.timePickerService.remove(this.timePicker);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Directive,\r\n EmbeddedViewRef,\r\n ElementRef,\r\n Injector,\r\n Input\r\n} from '@angular/core';\r\n\r\nimport {UiTimePickerService} from './time-picker.service';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {UiWindowRef} from '../utils/providers/window.provider';\r\nimport {UiClockComponent} from '../clock/clock.component';\r\n\r\n@Directive({\r\n selector: '[uiTimePickerCaller]'\r\n})\r\nexport class UiTimePickerCallerDirective implements AfterViewInit {\r\n timePicker;\r\n componentRef: any;\r\n componentElement: any;\r\n pickerOpen: boolean;\r\n wrapTimePicker: HTMLElement;\r\n inputElement: HTMLElement;\r\n @Input() pickerEvent: string;\r\n @Input('uiTimePickerCaller') timePickerCaller: string;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n private timePickerService: UiTimePickerService,\r\n private elementRef: ElementRef) {\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.timePicker = this.timePickerService.get(this.timePickerCaller);\r\n\r\n UiElement.on(this.elementRef.nativeElement, this.pickerEvent || 'click', (e) => {\r\n this.inputElement = <HTMLElement>document.querySelector(`[time-picker-name=\"${this.timePickerCaller}\"]`);\r\n\r\n this.timePickerService.closeAll();\r\n const position = UiElement.position(this.inputElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: this.inputElement.offsetHeight + position.top\r\n };\r\n\r\n if (!this.pickerOpen) {\r\n this.renderTimePicker(this.timePicker, coordinate);\r\n e.stopPropagation(); // Parando propagação do evento para os eventos do window\r\n }\r\n });\r\n\r\n UiElement.on(window, 'click resize scroll', (e) => {\r\n if (this.pickerOpen) {\r\n if ((!(UiElement.is(e.target, '.wrap-time-picker') || UiElement.closest(e.target, '.wrap-time-picker'))\r\n && !(document.body.clientWidth <= 600 && e.type === 'scroll')) || UiElement.is(e.target, '.overlay')) {\r\n this.closePicker();\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getComponentAsElement(componentRef): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n public setInstances(component, componentRef): void {\r\n const keysComponent = ['ngModel', 'confirmSelection', 'select'];\r\n keysComponent.map(key => componentRef.instance[key] = component[key]);\r\n componentRef.instance.focused = true;\r\n\r\n component.chosen.subscribe(value => componentRef.instance.ngOnChanges(value));\r\n componentRef.instance.cancel.subscribe(() => this.closePicker());\r\n\r\n componentRef.instance.chosen.subscribe(objectValue => {\r\n this.timePickerService.updateModel(this.timePickerCaller, objectValue.value);\r\n if (this.pickerOpen && objectValue.close) {\r\n this.inputElement.focus();\r\n this.closePicker();\r\n }\r\n });\r\n }\r\n\r\n public renderViewClock(element, coordinate, themeClass): void {\r\n this.wrapTimePicker = document.createElement('div');\r\n this.wrapTimePicker.classList.add('wrap-time-picker');\r\n const overlay = document.createElement('div');\r\n overlay.classList.add('overlay');\r\n if (themeClass) {\r\n this.wrapTimePicker.classList.add(themeClass);\r\n }\r\n\r\n this.wrapTimePicker.style.transform = 'scale(0)';\r\n element.classList.add('portrait-only');\r\n this.wrapTimePicker.appendChild(overlay);\r\n this.wrapTimePicker.appendChild(element);\r\n document.body.appendChild(this.wrapTimePicker);\r\n\r\n setTimeout(() => {\r\n const pickerHorizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const pickerVerticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (document.body.scrollLeft || window.scrollX || window.pageXOffset);\r\n const windowHeight = window.innerHeight + (document.body.scrollTop || window.scrollY || window.pageYOffset);\r\n\r\n if (pickerHorizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n if (pickerVerticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n this.wrapTimePicker.style.transform = '';\r\n element.style.position = 'absolute';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n this.wrapTimePicker.classList.add('open');\r\n if (document.body.clientWidth <= 600) {\r\n document.body.style.overflowY = 'hidden';\r\n }\r\n });\r\n }\r\n\r\n public renderTimePicker(component, coordinate): void {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(UiClockComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.componentElement = this.getComponentAsElement(this.componentRef);\r\n\r\n this.setInstances(component, this.componentRef);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.renderViewClock(this.componentElement, coordinate, component.themeClass);\r\n this.pickerOpen = true;\r\n }\r\n\r\n public closePicker(): void {\r\n this.wrapTimePicker.classList.remove('open');\r\n setTimeout(() => {\r\n this.pickerOpen = false;\r\n this.applicationRef.detachView(this.componentRef.hostView);\r\n document.body.style.overflowY = '';\r\n try {\r\n document.body.removeChild(this.wrapTimePicker);\r\n } catch (e) {\r\n }\r\n }, 280);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiTime'\r\n})\r\nexport class UiTimePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n if (value.length > 2) {\r\n value = value.substring(0, 2) + ':' + value.substring(2);\r\n }\r\n if (value.length > 5) {\r\n value = value.substring(0, 5);\r\n }\r\n return value;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, AfterViewInit, OnChanges } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiTimePipe } from './time.pipe';\r\nimport { UiElement } from '../../providers/element.provider';\r\n\r\n@Directive({\r\n selector: '[uiMaskTime][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskTimeDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskTimeDirective),\r\n multi: true\r\n }, UiTimePipe]\r\n})\r\nexport class UiMaskTimeDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [2];\r\n @Input() ngModel: any;\r\n @Input() minTime: string;\r\n @Input() maxTime: string;\r\n @Input() customTime: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public timePipe: UiTimePipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (changes.minTime && !changes.minTime.firstChange) {\r\n this.minTime = changes.minTime.currentValue;\r\n }\r\n if (changes.maxTime && !changes.maxTime.firstChange) {\r\n this.maxTime = changes.maxTime.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.timePipe.transform(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.timePipe.transform(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.timePipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 4);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 4) {\r\n return { parse: true };\r\n }\r\n\r\n if (control.value) {\r\n const time = control.value.split(':');\r\n\r\n if (!this.customTime && time[0] > 23) {\r\n return { hour: true };\r\n }\r\n\r\n if (!this.customTime && time[1] > 59) {\r\n return { minute: true };\r\n }\r\n\r\n if (this.minTime && this.format(this.minTime).length === 4 && this.format(control.value) < this.format(this.minTime)) {\r\n return { minTime: true };\r\n }\r\n\r\n if (this.maxTime && this.format(this.maxTime).length === 4 && this.format(control.value) > this.format(this.maxTime)) {\r\n return { maxTime: true };\r\n }\r\n\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input') onInput(): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\ninterface UiCurrencyPipeArgs {\r\n noNegative?: boolean;\r\n}\r\n\r\n@Pipe({\r\n name: 'uiCurrency'\r\n})\r\nexport class UiCurrencyPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: UiCurrencyPipeArgs): any {\r\n if (!value && typeof value !== 'number') {\r\n return '';\r\n }\r\n if (typeof value === 'number') {\r\n value = value.toFixed(2);\r\n }\r\n\r\n const isNegative = !(value.toString().match(/[+]/) || !value.toString().match(/[-]/));\r\n\r\n // Verifica se há valor no model (permite remover o '0,00')\r\n const noValue = value.length === 3 && value.replace(',', '').split('').every(n => n === '0');\r\n\r\n // Removendo o que não é dígito qualquer zero adicional no começo da string\r\n value = value.toString().replace(/[^0-9]+/g, '').replace(/^0+/g, '');\r\n\r\n // Adiciona os zeros necessários à esquerda devido a formatação de dinheiro, caso haja valor na model\r\n if (!noValue) {\r\n while (value.length < 3) {\r\n value = '0' + value.toString();\r\n }\r\n }\r\n\r\n\r\n let newCurrency = '';\r\n value = value.split('');\r\n for (let i = 0; i < value.length; i++) {\r\n const valueChar = value[value.length - 1 - i];\r\n if (i === 2) {\r\n newCurrency = ',' + newCurrency;\r\n } else if (i > 3 && !((i - 2) % 3)) {\r\n newCurrency = '.' + newCurrency;\r\n }\r\n newCurrency = valueChar + newCurrency;\r\n }\r\n\r\n // ADICIONANDO O SINAL NEGATIVO\r\n if (args && args.noNegative) {\r\n return newCurrency;\r\n }\r\n\r\n return isNegative ? '-' + newCurrency : newCurrency;\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnChanges,\r\n Output\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiCurrencyPipe } from './currency.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskCurrency][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCurrencyDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCurrencyDirective),\r\n multi: true\r\n }, UiCurrencyPipe]\r\n})\r\nexport class UiMaskCurrencyDirective implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeViewValue;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() ngModel: any;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() noNegative: boolean;\r\n\r\n constructor(public elementRef: ElementRef, public currencyPipe: UiCurrencyPipe) {\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = this.currencyPipe.transform(value, { noNegative: this.noNegative });\r\n const removeGroupSep = new RegExp('[^\\\\d\\\\,-]+', 'g');\r\n value = value.toString().replace(removeGroupSep, '');\r\n value = parseFloat(value.replace(',', '.'));\r\n return typeof value === 'number' && !isNaN(value) ? value : null;\r\n }\r\n\r\n formatViewValue(value) {\r\n const isDeletingZero = this.beforeViewValue === ('0,00') && value.length < this.beforeViewValue.length;\r\n value = isDeletingZero ? '' : value;\r\n return this.currencyPipe.transform(value, { noNegative: this.noNegative });\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n\r\n this.control = control;\r\n\r\n // if (control.value && this.format(control.value).length < 11) {\r\n // return {parse: true};\r\n // }\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return { min: true };\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return { max: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n // const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.beforeViewValue = rawValue;\r\n this.renderViaInput(rawValue);\r\n // UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {UiDialogComponent} from './dialog.component';\r\nimport {UiElementRef} from '../utils/providers/element-ref.provider';\r\n\r\nlet viewRef;\r\n\r\n@Injectable()\r\nexport class UiDialog {\r\n\r\n public static show(dialog: UiDialogComponent, config?: any) {\r\n UiDialog.hide();\r\n config = config || {};\r\n\r\n if (config.clickOverlayToClose === undefined) {\r\n config.clickOverlayToClose = true;\r\n } else if (config.clickOverlayToClose) {\r\n config.clickOverlayToClose = JSON.parse(config.clickOverlayToClose);\r\n }\r\n\r\n viewRef = dialog.templateRef.createEmbeddedView(dialog.templateRef);\r\n viewRef.detectChanges();\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n UiDialog.open(rootNode, config);\r\n }\r\n });\r\n }\r\n\r\n private static open(element, config) {\r\n setTimeout(() => {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (config.darkClass) {\r\n element.classList.add(config.darkClass);\r\n }\r\n if (config.themeClass) {\r\n element.classList.add(config.themeClass);\r\n }\r\n if (config.transparentOverlay) {\r\n element.classList.add('transparent-overlay');\r\n }\r\n if (config.cardSize) {\r\n element.querySelector('ui-card').style.maxWidth = config.cardSize + 'px';\r\n element.querySelector('ui-card').style.width = '100%';\r\n }\r\n\r\n if (!config.transparentOverlay && fabs.length) {\r\n fabs.classList.add('hide');\r\n }\r\n\r\n if (config.clickOverlayToClose) {\r\n element.querySelector('.overlay').addEventListener('click', () => {\r\n if (typeof config.onClose === 'function') {\r\n config.onClose();\r\n }\r\n UiDialog.hide();\r\n });\r\n }\r\n\r\n element.style.transform = '';\r\n\r\n element.classList.add('open');\r\n\r\n document.body.style.overflowY = 'hidden';\r\n });\r\n }\r\n\r\n public static hide() {\r\n if (viewRef) {\r\n const fabs = new UiElementRef(document).querySelector('.ui-fab-container');\r\n\r\n if (fabs.length) {\r\n fabs.classList.remove('hide');\r\n }\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.remove) {\r\n rootNode.remove();\r\n } else {\r\n rootNode.parentNode.removeChild(rootNode);\r\n }\r\n });\r\n viewRef.destroy();\r\n viewRef = null;\r\n }, 280);\r\n\r\n document.body.style.overflowY = '';\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output,\r\n ViewContainerRef, ViewChild, TemplateRef, AfterViewInit, OnChanges\r\n} from '@angular/core';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {NG_VALUE_ACCESSOR, NgModel} from '@angular/forms';\r\nimport {UiSelectFilterPipe} from './select-filter.pipe';\r\n\r\n@Component({\r\n selector: 'ui-select',\r\n templateUrl: 'select.component.html',\r\n styleUrls: ['./select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: UiSelectComponent,\r\n multi: true,\r\n }],\r\n})\r\n\r\nexport class UiSelectComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input('dark-class') darkClass;\r\n @Input() input;\r\n @Input() disabled;\r\n @Input() chosen;\r\n @Output() ngModelChange = new EventEmitter();\r\n selected;\r\n viewRef;\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @ViewChild('selectNative', { static: true }) selectNative;\r\n selectedNative;\r\n search;\r\n @Input() value;\r\n @Input() label;\r\n @Input() options;\r\n @Input() ngModel;\r\n optionsExternal;\r\n @ViewChild(NgModel) model: NgModel;\r\n isMobile = UiElement.isMobile;\r\n\r\n constructor(public element: ElementRef, public viewContainerRef: ViewContainerRef) {\r\n this.options = [];\r\n this.optionsExternal = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.element.nativeElement.setAttribute('tabindex', 0);\r\n this.selectOption();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngOnChanges(changes) {\r\n this.element.nativeElement.setAttribute('disabled', this.disabled);\r\n if (changes.options || changes.ngModel) {\r\n this.selectOption();\r\n }\r\n if (changes.ngModel && !changes.ngModel.firstChange) {\r\n this.ngModel = changes.ngModel.currentValue;\r\n\r\n if (changes.ngModel.currentValue) {\r\n this.selectOption();\r\n } else {\r\n this.onChangeSelect(changes.ngModel.currentValue);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n this.close();\r\n\r\n const closestFieldset = UiElement.closest(this.element.nativeElement, 'fieldset:disabled');\r\n\r\n if (!this.disabled && !closestFieldset) {\r\n if (this.isMobile()) {\r\n this.selectNative.nativeElement.focus();\r\n } else {\r\n setTimeout(() => {\r\n const position = UiElement.position(this.element.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top\r\n };\r\n this.render(coordinate);\r\n });\r\n }\r\n } else {\r\n this.element.nativeElement.blur();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur(event) {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.closest(event.relatedTarget, '.wrap-select'))) {\r\n this.close();\r\n }\r\n }\r\n\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef);\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (rootNode.clientWidth) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n setTimeout(() => {\r\n const horizontalCoveringArea = coordinate.x + element.clientWidth;\r\n const verticalCoveringArea = coordinate.y + element.clientHeight;\r\n const windowWidth = window.innerWidth + (window.scrollX || window.pageXOffset);\r\n const windowHeight = document.body.clientHeight + (window.scrollY || window.pageYOffset);\r\n\r\n if (horizontalCoveringArea > windowWidth) {\r\n coordinate.x = windowWidth - (element.clientWidth + 8);\r\n }\r\n\r\n if (coordinate.x <= 8) {\r\n coordinate.x = 8;\r\n }\r\n\r\n if (verticalCoveringArea > windowHeight) {\r\n coordinate.y = windowHeight - (element.clientHeight + 8);\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n if (this.darkClass) {\r\n element.classList.add(this.darkClass);\r\n }\r\n\r\n element.style.transform = '';\r\n // element.querySelector('ui-card').style.maxHeight = window.innerHeight + 'px';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n element.style.width = this.element.nativeElement.clientWidth + 'px';\r\n\r\n element.querySelector('.selected').addEventListener('blur', (event) => {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.input-select'))) {\r\n this.close();\r\n }\r\n });\r\n if (this.chosen) {\r\n element.querySelector('.input-select').addEventListener('blur', (event) => {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.selected'))) {\r\n this.close();\r\n }\r\n });\r\n element.querySelector('.input-select').click();\r\n element.scrollTo(0, 0);\r\n } else {\r\n element.querySelector('.selected').focus();\r\n }\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(() => this.viewContainerRef.remove(this.viewContainerRef.indexOf(viewRef)), 280);\r\n }\r\n }\r\n\r\n onChangeSelect(select) {\r\n if (select) {\r\n this.model = select[this.value];\r\n this.selected = select[this.label];\r\n this.ngModelChange.emit(select[this.value]);\r\n } else {\r\n this.search = select;\r\n this.model = select;\r\n this.selected = select;\r\n this.ngModelChange.emit(select);\r\n }\r\n }\r\n\r\n selectOption() {\r\n this.options.forEach(option => {\r\n if (option[this.value] === this.ngModel) {\r\n this.onChangeSelect(option);\r\n }\r\n });\r\n }\r\n\r\n writeValue() {\r\n }\r\n\r\n registerOnChange() {\r\n }\r\n\r\n registerOnTouched() {\r\n }\r\n}\r\n\r\n","import {Component, ElementRef, HostListener, Inject, Input, OnInit} from '@angular/core';\r\nimport {UiSelectComponent} from '../select.component';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-select-option',\r\n templateUrl: 'option.component.html',\r\n styleUrls: ['./option.component.scss']\r\n})\r\n\r\nexport class UiSelectOptionComponent implements OnInit {\r\n @Input() value;\r\n @Input() label;\r\n @Input() internal;\r\n\r\n constructor(@Inject(UiSelectComponent) private selectComponent: UiSelectComponent, private element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.element.nativeElement.setAttribute('tabindex', 0);\r\n if (!this.internal) {\r\n this.selectComponent.optionsExternal.push({\r\n value: this.value,\r\n title: this.label\r\n });\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.selectComponent.ngModelChange.next(this.value);\r\n this.selectComponent.model = this.value;\r\n this.selectComponent.selected = this.label;\r\n this.element.nativeElement.blur();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onEnter(e) {\r\n if (e.keyCode === 13) {\r\n this.element.nativeElement.click();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur(event) {\r\n if (!event.relatedTarget || !(UiElement.is(event.relatedTarget, 'ui-select-option') || UiElement.is(event.relatedTarget, '.selected') || UiElement.is(event.relatedTarget, '.input-select'))) {\r\n this.selectComponent.close();\r\n }\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {unaccent} from '../utils/functions/unaccent';\r\n\r\n@Pipe({\r\n name: 'selectFilter',\r\n pure: false\r\n})\r\nexport class UiSelectFilterPipe implements PipeTransform {\r\n transform(value, filterBy, name) {\r\n filterBy = filterBy ? unaccent(filterBy.toLowerCase()) : null;\r\n return filterBy ? value.filter(item =>\r\n unaccent(item[name].toLowerCase()).indexOf(filterBy) !== -1) : value;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {unaccent} from '../functions/unaccent';\r\n\r\n@Pipe({\r\n name: 'uiFilter',\r\n pure: false\r\n})\r\nexport class UiFilterPipe implements PipeTransform {\r\n transform(value, filterBy, name) {\r\n filterBy = filterBy ? unaccent(filterBy.toLowerCase()) : null;\r\n return filterBy ? value.filter(item =>\r\n unaccent(item[name].toLowerCase()).indexOf(filterBy) !== -1) : value;\r\n }\r\n}\r\n","import {AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnInit} from '@angular/core';\r\nimport {UiColor} from '../utils/providers/color.provider';\r\nimport {UiElement} from '../utils/providers/element.provider';\r\nimport {animate, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'ui-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [trigger(\r\n 'image', [\r\n transition(':enter', [\r\n style({\r\n opacity: 0,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 1\r\n }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('2800ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n ), trigger(\r\n 'letter', [\r\n transition(':leave', [\r\n style({\r\n opacity: 1,\r\n }),\r\n animate('280ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n opacity: 0,\r\n }))\r\n ])\r\n ],\r\n )]\r\n})\r\nexport class UiAvatarComponent implements OnInit, AfterViewInit, OnChanges {\r\n newImage: string;\r\n showImage: boolean;\r\n grayscale: boolean;\r\n\r\n @Input() name: string;\r\n @Input() color: string;\r\n @Input() image: string;\r\n @Input() size: number;\r\n @Input() nameLength: number;\r\n @Input() initials: boolean;\r\n\r\n constructor(private element: ElementRef) {\r\n this.nameLength = 1;\r\n this.initials = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.newImage = this.image;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setSize();\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.name && !changes.name.firstChange) {\r\n this.name = changes.name.currentValue;\r\n }\r\n if (changes.color && !changes.color.firstChange) {\r\n this.color = changes.color.currentValue;\r\n }\r\n if (changes.image && !changes.image.firstChange) {\r\n if (!changes.image.currentValue) {\r\n this.showImage = false;\r\n this.newImage = null;\r\n }\r\n this.image = changes.image.currentValue;\r\n }\r\n if (changes.size && !changes.size.firstChange) {\r\n this.size = changes.size.currentValue;\r\n this.setSize();\r\n }\r\n if (changes.nameLength && !changes.nameLength.firstChange) {\r\n this.nameLength = changes.nameLength.currentValue;\r\n }\r\n }\r\n\r\n isBright(color): boolean {\r\n return UiColor.isBright(color);\r\n }\r\n\r\n loadedImage(): void {\r\n this.showImage = true;\r\n this.animateImage();\r\n }\r\n\r\n animateImage(): void {\r\n this.grayscale = true;\r\n setTimeout(() => {\r\n this.grayscale = false;\r\n this.newImage = this.image;\r\n }, 1120);\r\n }\r\n\r\n setSize() {\r\n if (this.size) {\r\n const wrap = this.element.nativeElement.querySelector('.wrap');\r\n const empty = this.element.nativeElement.querySelector('.empty');\r\n if (empty) {\r\n UiElement.css(empty, 'font-size', `${Math.round(this.size / 100 * 36.36)}px`);\r\n }\r\n UiElement.css(wrap, 'width', `${this.size}px`);\r\n UiElement.css(wrap, 'height', `${this.size}px`);\r\n }\r\n }\r\n\r\n getFontSize() {\r\n return Math.round(this.size / 100 * 36.36);\r\n }\r\n\r\n getName(): string {\r\n if (this.name) {\r\n if (this.initials) {\r\n const ini = this.name.trim().split(' ').map((nome) => { return nome.charAt(0).toUpperCase(); });\r\n return ini[0] + ini[ini.length - 1];\r\n } else {\r\n return this.name.trim().substr(0, this.nameLength).toUpperCase();\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiFloat'\r\n})\r\nexport class UiFloatPipe implements PipeTransform {\r\n\r\n transform(value: any, decimal: number = null, noNegative?: boolean): any {\r\n if (!value && typeof value !== 'number') {\r\n return '';\r\n }\r\n\r\n if (!decimal || isNaN(decimal)) {\r\n const decimals = value.toString().split('.');\r\n decimal = decimals.length > 1 ? decimals[1].length : 0;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n value = value.toFixed(decimal);\r\n }\r\n\r\n const isNegative = !(value.toString().match(/[+]/) || !value.toString().match(/[-]/));\r\n\r\n // Verifica se há valor no model (permite remover o '0,00')\r\n const noValue = decimal && value.length === (decimal + 1) && value.replace(',', '').split('').every(n => n === '0');\r\n\r\n // Removendo o que não é dígito qualquer zero adicional no começo da string\r\n value = value.toString().replace(/[^0-9]+/g, '').replace(/^0+/g, '');\r\n\r\n // Adiciona os zeros necessários à esquerda, caso haja valor na model\r\n if (!noValue) {\r\n while (value.length < (decimal + 1)) {\r\n value = '0' + value.toString();\r\n }\r\n }\r\n\r\n let newValue = '';\r\n value = value.split('');\r\n for (let i = 0; i < value.length; i++) {\r\n const valueChar = value[value.length - 1 - i];\r\n if (decimal && i === decimal) {\r\n newValue = ',' + newValue;\r\n } else if (\r\n i > decimal &&\r\n !((i - decimal) % 3)\r\n ) {\r\n newValue = '.' + newValue;\r\n }\r\n newValue = valueChar + newValue;\r\n }\r\n\r\n // ADICIONANDO O SINAL NEGATIVO\r\n if (noNegative) {\r\n return newValue;\r\n }\r\n\r\n return isNegative ? '-' + newValue : newValue;\r\n }\r\n}\r\n","import {\r\n AfterViewInit, Directive, ElementRef, EventEmitter, forwardRef, HostListener, Input,\r\n Output, OnChanges, OnInit\r\n} from '@angular/core';\r\nimport {ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport { UiElement } from '../../providers/element.provider';\r\nimport { UiFloatPipe } from './float.pipe';\r\n\r\n@Directive({\r\n selector: '[uiMaskFloat][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskFloatDirective),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskFloatDirective),\r\n multi: true\r\n }, UiFloatPipe]\r\n})\r\nexport class UiMaskFloatDirective implements ControlValueAccessor, AfterViewInit, OnChanges {\r\n\r\n loaded: boolean;\r\n input: boolean;\r\n beforeViewValue;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n @Input() uiMaskFloat: number = 2;\r\n @Input() decimal: number;\r\n @Input() max: number;\r\n @Input() min: number;\r\n @Input() ngModel: any;\r\n @Input() noNegative: boolean;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public floatPipe: UiFloatPipe) {\r\n this.decimal = this.uiMaskFloat;\r\n }\r\n\r\n ngOnChanges(changes): void {\r\n if (changes.ngModel && !changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n if (typeof changes.uiMaskFloat !== 'undefined') {\r\n this.uiMaskFloat = changes.uiMaskFloat.currentValue || 2;\r\n this.decimal = this.uiMaskFloat;\r\n }\r\n if (typeof changes.decimal !== 'undefined') {\r\n this.decimal = changes.decimal.currentValue || 2;\r\n this.uiMaskFloat = this.decimal;\r\n }\r\n if (typeof changes.max !== 'undefined') {\r\n this.max = changes.max.currentValue;\r\n }\r\n if (typeof changes.min !== 'undefined') {\r\n this.min = changes.min.currentValue;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loaded = true;\r\n });\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n if (!this.input) {\r\n this.elementRef.nativeElement.value = this.formatViewValue(this.ngModel);\r\n }\r\n this.input = false;\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value =\r\n this.formatViewValue(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = this.floatPipe.transform(value, +this.decimal, this.noNegative);\r\n const removeGroupSep = new RegExp('[^\\\\d\\\\,-]+', 'g');\r\n value = value.toString().replace(removeGroupSep, '');\r\n value = parseFloat(value.replace(',', '.'));\r\n return typeof value === 'number' && !isNaN(value) ? value : null;\r\n }\r\n\r\n formatViewValue(value) {\r\n let standard = '0,';\r\n standard = standard.padEnd(+this.decimal + 2, '0');\r\n const isDeletingZero = this.beforeViewValue === (standard) && value.length < this.beforeViewValue.length;\r\n value = isDeletingZero ? '' : value;\r\n return this.floatPipe.transform(value, +this.decimal, this.noNegative);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (typeof this.min !== 'undefined' && control.value && this.format(control.value) < this.min) {\r\n return { min: true };\r\n }\r\n\r\n if (typeof this.max !== 'undefined' && control.value && this.format(control.value) > this.max) {\r\n return { max: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.input = true;\r\n this.beforeViewValue = rawValue;\r\n this.renderViaInput(rawValue);\r\n }\r\n\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\n\r\n/**\r\n * TODO: Persist tooltip.\r\n * */\r\n@Directive({\r\n selector: '[uiTooltip]'\r\n})\r\nexport class TooltipDirective implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() uiTooltip: string;\r\n @Input() top: boolean;\r\n @Input() left: boolean;\r\n @Input() right: boolean;\r\n @Input() bottom: boolean;\r\n\r\n onShow: Function;\r\n onHide: Function;\r\n wrap: HTMLElement;\r\n class: string;\r\n\r\n constructor(private element: ElementRef) {\r\n this.onShow = (event) => {\r\n this.show(event);\r\n };\r\n this.onHide = () => {\r\n this.hide();\r\n };\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.top && !this.left && !this.right) {\r\n this.bottom = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n UiElement.on(this.element.nativeElement, 'mouseenter', this.onShow);\r\n UiElement.on(this.element.nativeElement, 'mouseleave', this.onHide);\r\n }\r\n\r\n ngOnDestroy() {\r\n UiElement.off(this.element.nativeElement, 'mouseenter', this.onShow);\r\n UiElement.off(this.element.nativeElement, 'mouseleave', this.onHide);\r\n this.hide();\r\n }\r\n\r\n setClass() {\r\n if (this.top) {\r\n this.class = 'top';\r\n }\r\n if (this.left) {\r\n this.class = 'left';\r\n }\r\n if (this.right) {\r\n this.class = 'right';\r\n }\r\n if (this.bottom) {\r\n this.class = 'bottom';\r\n }\r\n\r\n }\r\n\r\n show(event) {\r\n if (!this.uiTooltip) {\r\n return;\r\n }\r\n\r\n this.setClass();\r\n\r\n this.wrap = document.createElement('div');\r\n this.wrap.classList.add('wrap-tooltip', this.class);\r\n this.wrap.innerText = this.uiTooltip;\r\n\r\n document.body.appendChild(this.wrap);\r\n const elementPosition = UiElement.position(this.element.nativeElement);\r\n let positionLeft: number;\r\n let positionTop: number;\r\n\r\n if (this.top || this.bottom) {\r\n positionLeft = (elementPosition.left + this.element.nativeElement.clientWidth / 2) - (this.wrap.clientWidth / 2);\r\n\r\n positionLeft = positionLeft > 0 ? positionLeft : 0;\r\n positionTop = elementPosition.top;\r\n\r\n const checkHeight = window.innerHeight - 32 >= this.element.nativeElement.clientHeight + positionTop;\r\n\r\n if (this.bottom && checkHeight) {\r\n positionTop += this.element.nativeElement.clientHeight;\r\n } else {\r\n positionTop -= this.wrap.clientHeight;\r\n }\r\n }\r\n\r\n if (this.left || this.right) {\r\n positionTop = (elementPosition.top + this.element.nativeElement.clientHeight / 2) - (this.wrap.clientHeight / 2);\r\n positionLeft = elementPosition.left;\r\n\r\n if (this.left && positionLeft >= this.wrap.clientWidth) {\r\n positionLeft -= this.wrap.clientWidth;\r\n } else {\r\n positionLeft += this.element.nativeElement.clientWidth;\r\n }\r\n }\r\n\r\n UiElement.css(this.wrap, 'left', `${Math.round(positionLeft)}px`);\r\n UiElement.css(this.wrap, 'top', `${Math.round(positionTop)}px`);\r\n\r\n setTimeout(() => this.wrap && this.wrap.classList.add('show'));\r\n }\r\n\r\n hide() {\r\n if (!this.wrap) {\r\n return;\r\n }\r\n this.wrap.classList.add('hide');\r\n const tooltips = Array.from(document.querySelectorAll('.wrap-tooltip'));\r\n tooltips.forEach(\r\n tooltip => tooltip.remove()\r\n );\r\n }\r\n}\r\n","import {AfterViewInit, Component, forwardRef, Inject, Input, OnChanges, OnInit} from '@angular/core';\r\nimport {UiChosenComponent} from '../chosen.component';\r\n\r\n@Component({\r\n selector: 'ui-chosen-option',\r\n templateUrl: './chosen-option.component.html',\r\n styleUrls: ['./chosen-option.component.scss']\r\n})\r\nexport class UiChosenOptionComponent implements AfterViewInit, OnChanges {\r\n\r\n @Input() label;\r\n @Input() value;\r\n @Input() disabled;\r\n\r\n active: boolean;\r\n hidden: boolean;\r\n\r\n constructor(@Inject(forwardRef(() => UiChosenComponent)) private parent: any) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.parent.loadOption(this);\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (this.active && changes.label && !changes.label.firstChange) {\r\n this.label = changes.label.currentValue;\r\n\r\n this.parent.updateOptionLabel(this.label);\r\n }\r\n }\r\n\r\n onSelect() {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.parent.select(this);\r\n }\r\n\r\n setActive(active) {\r\n this.active = active;\r\n }\r\n}\r\n","import {Component, ContentChildren, Input, OnInit, QueryList} from '@angular/core';\r\nimport {UiChosenOptionComponent} from '../chosen-option/chosen-option.component';\r\n\r\n@Component({\r\n selector: 'ui-chosen-group',\r\n templateUrl: './chosen-group.component.html',\r\n styleUrls: ['./chosen-group.component.scss']\r\n})\r\nexport class UiChosenGroupComponent implements OnInit {\r\n\r\n @Input() label: string;\r\n\r\n @ContentChildren(UiChosenOptionComponent) options: QueryList<UiChosenOptionComponent>;\r\n\r\n hidden: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","// @ts-ignore\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { isNullOrUndefined } from 'util';\r\n\r\nimport { unaccent } from '../utils/functions/unaccent';\r\nimport { UiElement } from '../utils/providers/element.provider';\r\nimport { UiChosenGroupComponent } from './chosen-group/chosen-group.component';\r\nimport { UiChosenOptionComponent } from './chosen-option/chosen-option.component';\r\n\r\n// TODO: Animation\r\n// TODO: Export render, open, close\r\n\r\n@Component({\r\n selector: 'ui-chosen',\r\n templateUrl: './chosen.component.html',\r\n styleUrls: ['./chosen.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: UiChosenComponent,\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiChosenComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class UiChosenComponent\r\n implements OnInit, AfterViewInit, OnChanges, AfterContentInit {\r\n viewRef: any;\r\n value: any;\r\n focused: boolean;\r\n searchText: string;\r\n isMobile: boolean;\r\n control: any;\r\n\r\n @Input() search: any;\r\n @Input() ngModel: any;\r\n @Input() required: boolean;\r\n @Input() disabled: boolean;\r\n @Input() placeholder: string;\r\n @Input() persistPlaceholder: string;\r\n\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('optionTemplate', { static: true }) optionTemplate: TemplateRef<any>;\r\n @ViewChild('inputSearch') inputSearch: ElementRef;\r\n @ViewChild('nativeSelect') nativeSelect: ElementRef;\r\n\r\n /**\r\n * O param 'descendants' fala para o @ContentChildren pegar todos components UiChosenOptionComponent\r\n * mesmo que eles estejam dentro de outros components(UiChosenGroupComponent)\r\n */\r\n @ContentChildren(UiChosenOptionComponent, { descendants: true })\r\n options: QueryList<UiChosenOptionComponent>;\r\n\r\n // Pegando os options que foram colocados sem o group\r\n @ContentChildren(UiChosenOptionComponent) onlyOptions: QueryList<\r\n UiChosenOptionComponent\r\n >;\r\n\r\n @ContentChildren(UiChosenGroupComponent, { descendants: true })\r\n optionsGroup: QueryList<UiChosenGroupComponent>;\r\n\r\n constructor(\r\n private element: ElementRef,\r\n private viewContainerRef: ViewContainerRef,\r\n private changeDetectorRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n ngAfterViewInit() {\r\n this.element.nativeElement.setAttribute(\r\n 'tabindex',\r\n this.element.nativeElement.getAttribute('tabindex') || '0'\r\n );\r\n\r\n UiElement.on(window, 'resize scroll', () => {\r\n this.close();\r\n });\r\n\r\n if (/Mobi|Android/.test(navigator.userAgent)) {\r\n this.isMobile = true;\r\n\r\n this.element.nativeElement.classList.add('mobile');\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (\r\n !isNullOrUndefined(changes.ngModel) &&\r\n !changes.ngModel.firstChange\r\n ) {\r\n this.setValue(changes.ngModel.currentValue);\r\n }\r\n\r\n if (changes.required && !changes.required.firstChange) {\r\n this.required = changes.required.currentValue;\r\n }\r\n\r\n if (changes.disabled) {\r\n this.disabled = changes.disabled.currentValue;\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n if (!isNullOrUndefined(this.ngModel)) {\r\n setTimeout(() => this.setValue(this.ngModel));\r\n }\r\n }\r\n writeValue() {}\r\n\r\n registerOnChange() {}\r\n\r\n registerOnTouched() {}\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (this.required && !control.value && control.value !== 0) {\r\n return { required: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n if (this.isMobile) {\r\n this.nativeSelect.nativeElement.focus();\r\n return;\r\n }\r\n\r\n if (this.focused) {\r\n return;\r\n }\r\n\r\n if (this.disabled) {\r\n this.element.nativeElement.blur();\r\n return;\r\n }\r\n\r\n this.clearFilter();\r\n\r\n if (this.search) {\r\n setTimeout(() => this.inputSearch.nativeElement.focus(), 100);\r\n }\r\n\r\n this.focused = true;\r\n\r\n const position = UiElement.position(this.element.nativeElement);\r\n const coordinate = {\r\n x: position.left,\r\n y: position.top + this.element.nativeElement.clientHeight\r\n };\r\n\r\n this.render(coordinate);\r\n }\r\n\r\n render(coordinate) {\r\n this.viewRef = this.viewContainerRef.createEmbeddedView(\r\n this.optionTemplate\r\n );\r\n this.viewRef.detectChanges();\r\n\r\n this.viewRef.rootNodes.forEach(rootNode => {\r\n document.body.appendChild(rootNode);\r\n\r\n if (\r\n rootNode.clientWidth &&\r\n !rootNode.classList.contains('wrap-chosen-overlay')\r\n ) {\r\n this.open(rootNode, coordinate);\r\n }\r\n });\r\n }\r\n\r\n open(element, coordinate) {\r\n element.style.top = 0;\r\n\r\n setTimeout(() => {\r\n const verticalCoveringArea =\r\n UiElement.position(this.element.nativeElement, true).top +\r\n element.clientHeight;\r\n const bodyHeight = document.body.clientHeight;\r\n\r\n if (verticalCoveringArea + this.element.nativeElement.clientHeight > bodyHeight) {\r\n coordinate.y -=\r\n verticalCoveringArea -\r\n bodyHeight +\r\n this.element.nativeElement.clientHeight;\r\n }\r\n\r\n if (coordinate.y <= 0) {\r\n coordinate.y = 0;\r\n }\r\n\r\n const content = element.querySelector('ui-card > .content');\r\n const contentHeight = content.clientHeight;\r\n\r\n const search = element.querySelector('ui-card > .search');\r\n const searchHeight = search ? search.clientHeight : 0;\r\n\r\n content.style.maxHeight =\r\n (contentHeight > bodyHeight\r\n ? bodyHeight - searchHeight\r\n : contentHeight) + 'px';\r\n\r\n element.style.transform = '';\r\n element.style.top = coordinate.y + 'px';\r\n element.style.left = coordinate.x + 'px';\r\n\r\n const card = element.querySelector('ui-card');\r\n card.style.maxHeight = window.innerHeight + 'px';\r\n card.style.maxWidth = window.innerWidth - 16 + 'px';\r\n card.style.width = this.element.nativeElement.clientWidth + 'px';\r\n\r\n element.classList.add('open');\r\n });\r\n }\r\n\r\n close() {\r\n this.focused = false;\r\n\r\n if (this.viewContainerRef.length) {\r\n const viewRef = this.viewRef; // Salvando a referência para achar o index deste componente\r\n\r\n viewRef.rootNodes.forEach(rootNode => {\r\n if (rootNode.classList) {\r\n rootNode.classList.remove('open');\r\n }\r\n });\r\n\r\n setTimeout(\r\n () =>\r\n this.viewContainerRef.remove(\r\n this.viewContainerRef.indexOf(viewRef)\r\n ),\r\n 280\r\n );\r\n }\r\n }\r\n\r\n setValue(value) {\r\n let updated = false;\r\n\r\n this.options.map(option => {\r\n if (option.value != value) {\r\n // tslint:disable-line\r\n option.setActive(false);\r\n return;\r\n }\r\n\r\n updated = true;\r\n this.value = option.label;\r\n option.setActive(true);\r\n });\r\n\r\n if (!updated) {\r\n this.value = null;\r\n }\r\n\r\n this.element.nativeElement.value = this.value;\r\n }\r\n\r\n select(option) {\r\n this.control.markAsDirty();\r\n this.control.markAsTouched();\r\n this.ngModelChange.emit(option.value);\r\n this.close();\r\n }\r\n\r\n filterList() {\r\n this.options.map(option => {\r\n option.hidden = this.searchText\r\n ? !unaccent(option.label.toLowerCase()).includes(\r\n unaccent(this.searchText.toLowerCase())\r\n )\r\n : false;\r\n });\r\n\r\n this.optionsGroup.map(\r\n group =>\r\n (group.hidden =\r\n group.options.filter(option => !option.hidden).length === 0)\r\n );\r\n }\r\n\r\n clearFilter() {\r\n this.searchText = null;\r\n this.filterList();\r\n }\r\n\r\n changeNativeSelect() {\r\n setTimeout(() => {\r\n this.control.markAsDirty();\r\n this.control.markAsTouched();\r\n this.ngModelChange.emit(this.ngModel);\r\n });\r\n }\r\n\r\n trackByValue(index, option) {\r\n return option.value;\r\n }\r\n\r\n updateOptionLabel(label) {\r\n this.value = label;\r\n }\r\n\r\n loadOption(option: UiChosenOptionComponent) {\r\n if (!isNullOrUndefined(this.ngModel) && option.value === this.ngModel) {\r\n this.value = option.label;\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'uiCreditCard'\r\n})\r\nexport class UiCreditCardPipe implements PipeTransform {\r\n\r\n transform(value: string, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n\r\n if (value.length > 4) {\r\n value = `${value.substring(0, 4)} ${value.substring(4)}`;\r\n }\r\n\r\n if (value.length > 9) {\r\n value = `${value.substring(0, 9)} ${value.substring(9)}`;\r\n }\r\n\r\n if(value.length > 14) {\r\n value = `${value.substring(0, 14)} ${value.substring(14)}`;\r\n }\r\n\r\n if(value.length > 19) {\r\n value = value.substring(0, 19);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n","import { Directive, forwardRef, OnChanges, AfterViewInit, Input, EventEmitter, Output, ElementRef, ChangeDetectorRef, HostListener } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, Validator, FormControl } from '@angular/forms';\r\nimport { UiCreditCardPipe, UiElement } from '../../../smn-ui.module';\r\n\r\n@Directive({\r\n selector: '[uiMaskCreditCard][ngModel]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiMaskCreditCard),\r\n multi: true\r\n }, {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => UiMaskCreditCard),\r\n multi: true\r\n }, UiCreditCardPipe]\r\n})\r\nexport class UiMaskCreditCard implements ControlValueAccessor, Validator, AfterViewInit, OnChanges {\r\n loaded: boolean;\r\n beforeSelIndex;\r\n onChange: Function;\r\n onTouched: Function;\r\n control: FormControl;\r\n symbolsPositions: number[] = [4, 9, 14];\r\n @Input() ngModel: any;\r\n @Input() UiMaskCreditCard;\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(public elementRef: ElementRef, public creditCardPipe: UiCreditCardPipe, private changeDetector: ChangeDetectorRef) { }\r\n\r\n ngOnChanges(changes): void {\r\n if (!changes.ngModel.firstChange && (changes.ngModel.currentValue === null || changes.ngModel.currentValue === undefined)) {\r\n this.elementRef.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.loaded = true;\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n if (this.control && this.loaded && rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n\r\n this.elementRef.nativeElement.value = this.creditCardPipe.transform(this.ngModel);\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n if (rawValue) {\r\n this.control.markAsDirty();\r\n }\r\n this.ngModel = this.format(rawValue);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.elementRef.nativeElement.value = this.creditCardPipe.transform(this.elementRef.nativeElement.value);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n format(value) {\r\n value = value.toString().replace(/[^0-9]+/g, '');\r\n return value.substring(0, 16);\r\n }\r\n\r\n validate(control: FormControl): { [key: string]: any } {\r\n this.control = control;\r\n\r\n if (control.value && this.format(control.value).length < 16) {\r\n return { parse: true };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n const method = isDisabled ? 'setAttribute' : 'removeAttribute';\r\n this.elementRef.nativeElement[method]('disabled', 'disabled');\r\n }\r\n\r\n @HostListener('keydown') onKeydown() {\r\n this.beforeSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n }\r\n\r\n @HostListener('input', ['$event']) onInput($event): void {\r\n const afterSelIndex = UiElement.caretPosition.get(this.elementRef.nativeElement);\r\n const rawValue: string = this.elementRef.nativeElement.value;\r\n this.renderViaInput(rawValue);\r\n UiElement.caretPosition.set(this.elementRef.nativeElement, this.beforeSelIndex, afterSelIndex, this.symbolsPositions);\r\n }\r\n}\r\n","import { animate, style, transition, trigger } from \"@angular/animations\";\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ui-expansion-panel\",\r\n templateUrl: \"./expansion-panel.component.html\",\r\n styleUrls: [\"./expansion-panel.component.scss\"],\r\n animations: [\r\n trigger(\"expandAnimation\", [\r\n transition(\":enter\", [\r\n style({\r\n height: \"0\"\r\n }),\r\n animate(\r\n \"280ms cubic-bezier(0.0, 0.0, 0.2, 1)\",\r\n style({\r\n height: \"*\"\r\n })\r\n )\r\n ]),\r\n transition(\":leave\", [\r\n style({\r\n height: \"*\"\r\n }),\r\n animate(\r\n \"280ms cubic-bezier(0.0, 0.0, 0.2, 1)\",\r\n style({\r\n height: \"0\"\r\n })\r\n )\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class ExpansionPanelComponent implements OnInit {\r\n element: any;\r\n\r\n @Input() disabled: boolean;\r\n @Input() noArrow: boolean;\r\n @Input() label: string;\r\n @Input() description: string;\r\n @Input() color: string = 'primary';\r\n\r\n @Input() open: boolean;\r\n @Output() openChange: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n toggle() {\r\n if (!this.disabled) {\r\n this.open = !this.open;\r\n this.openChange.emit(this.open);\r\n }\r\n }\r\n}\r\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiTabContent]'\r\n})\r\nexport class UiTabContentDirective {\r\n @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n\r\n constructor() { }\r\n}\r\n","import {ContentChild, Directive, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[uiTabLabel]'\r\n})\r\nexport class UiTabLabelDirective {\r\n @ContentChild(TemplateRef) template: TemplateRef<any>;\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {UiTabContentDirective} from './tab-content.directive';\r\nimport {UiTabLabelDirective} from './tab-label.directive';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ui-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss']\r\n})\r\nexport class UiTabComponent implements OnInit, OnDestroy {\r\n @ViewChild('tabContent', { static: true }) tabContent: TemplateRef<any>;\r\n @ContentChild(UiTabContentDirective) templateContent: UiTabContentDirective;\r\n @ContentChild(UiTabLabelDirective) templateLabel: UiTabLabelDirective;\r\n @Input() label: string;\r\n @Input() icon: string;\r\n @Input() disabled: string;\r\n private subscription: Subscription;\r\n isActive: boolean;\r\n index: number;\r\n indexActivatedTab: number;\r\n tabChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n loaded: boolean;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.tabChange.subscribe(value => {\r\n if (value) {\r\n this.loaded = true;\r\n }\r\n this.isActive = value;\r\n this.changeDetectorRef.detectChanges();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n}\r\n","import {AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, OnInit} from '@angular/core';\r\nimport {UiTabComponent} from '../tab.component';\r\nimport {UiElement} from '../../utils/providers/element.provider';\r\n\r\n@Component({\r\n selector: 'ui-tab-header',\r\n templateUrl: './tab-header.component.html',\r\n styleUrls: ['./tab-header.component.scss']\r\n})\r\nexport class UiTabHeaderComponent implements OnInit, AfterViewInit, AfterViewChecked {\r\n @Input() topIcon: boolean;\r\n\r\n tabsContainer: HTMLElement;\r\n inkBar: HTMLElement;\r\n showInkBar: boolean;\r\n increment: number;\r\n hasRightScroll: boolean;\r\n hasLeftScroll: boolean;\r\n\r\n constructor(private element: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.increment = 90;\r\n }\r\n\r\n ngOnInit() {\r\n this.tabsContainer = this.element.nativeElement.querySelector('.tabs-container');\r\n this.inkBar = this.element.nativeElement.querySelector('.ink-bar');\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.inkBar.addEventListener('transitionend', () => {\r\n this.showInkBar = false;\r\n });\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.hasRightScroll = this.checkRightScroll();\r\n this.hasLeftScroll = this.checkLeftScroll();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n /**\r\n * Move o ink bar para a tab que está ativa\r\n **/\r\n moveInkBarTo(tabRef: HTMLElement) {\r\n this.showInkBar = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n setTimeout(() => {\r\n UiElement.css(this.inkBar, 'left', `${tabRef.offsetLeft}px`);\r\n UiElement.css(this.inkBar, 'width', `${tabRef.clientWidth}px`);\r\n });\r\n }\r\n\r\n /**\r\n * Retorna se o scroll left ja saiu da posição 0\r\n * */\r\n checkLeftScroll() {\r\n return this.tabsContainer.scrollLeft > 0;\r\n }\r\n\r\n /**\r\n * Retorna se deve exibir o control da direita\r\n * */\r\n checkRightScroll() {\r\n const widthWithScroll = this.tabsContainer.scrollLeft + this.tabsContainer.clientWidth;\r\n return widthWithScroll < this.tabsContainer.scrollWidth;\r\n }\r\n\r\n /**\r\n * Altera o valor do scroll\r\n **/\r\n updateScroll(value: number) {\r\n const scrollLeft = this.tabsContainer.scrollLeft;\r\n UiElement.animate(\r\n this.tabsContainer,\r\n 'borderSpacing',\r\n scrollLeft,\r\n scrollLeft + value,\r\n 280,\r\n null,\r\n (tick) => {\r\n this.tabsContainer.scrollLeft = tick;\r\n });\r\n }\r\n}\r\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\r\n\r\nconst timing = 280;\r\nexport const tabFakeAnimation: AnimationTriggerMetadata = trigger('tabFakeAnimation',\r\n [\r\n transition(':enter', animate(`${timing}ms cubic-bezier(0.0, 0.0, 0.2, 1)`)),\r\n transition(':leave', animate(`${timing}ms cubic-bezier(0.0, 0.0, 0.2, 1)`)),\r\n ]\r\n);\r\n\r\nexport const tabTransform: AnimationTriggerMetadata = trigger('tabTransform',\r\n [\r\n state('left', style({\r\n transform: 'translateX(-100%)',\r\n position: 'absolute'\r\n })),\r\n state('right', style({\r\n transform: 'translateX(100%)',\r\n position: 'absolute'\r\n })),\r\n state('active', style({\r\n transform: 'translateX(0)',\r\n position: 'relative'\r\n })),\r\n transition('left <=> right', animate(timing)),\r\n transition('active <=> right', animate(timing)),\r\n transition('left <=> active', animate(timing)),\r\n ]\r\n);\r\n","import {\r\n AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, QueryList, ViewChild\r\n} from '@angular/core';\r\nimport {UiTabComponent} from '../tab.component';\r\nimport {UiTabHeaderComponent} from '../header/tab-header.component';\r\nimport {AnimationEvent} from '@angular/animations';\r\nimport {tabFakeAnimation, tabTransform} from './tab-group.animation';\r\n\r\n@Component({\r\n selector: 'ui-tab-group',\r\n templateUrl: './tab-group.component.html',\r\n styleUrls: ['./tab-group.component.scss'],\r\n animations: [tabFakeAnimation, tabTransform]\r\n})\r\nexport class UiTabGroupComponent implements AfterViewInit {\r\n @ContentChildren(UiTabComponent) tabsQueryList: QueryList<UiTabComponent>;\r\n @ViewChild(UiTabHeaderComponent, { static: true }) tabHeader: UiTabHeaderComponent;\r\n @ViewChild('tabsContentElement', { static: true }) tabsContentElement: ElementRef;\r\n @Input() active: number;\r\n @Input() fillBackground: boolean;\r\n @Input() themeInkBar: boolean;\r\n @Input() accent: boolean;\r\n @Input() topIcon: boolean;\r\n @Input() lazyLoad: boolean;\r\n\r\n tabs: any[];\r\n activatedTab: UiTabComponent;\r\n animation: boolean;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef, private element: ElementRef) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Transformando a QueryList em um array de component(UiTabComponent)\r\n this.tabs = this.tabsQueryList.toArray();\r\n this.changeDetectorRef.detectChanges();\r\n this.generateIndexes();\r\n\r\n // Ativa uma tab através do index passado com Input ou a primeira tab\r\n const tab = this.getFirstTab(this.active);\r\n this.activateTab(tab, this.getTabRef(tab));\r\n this.animation = true;\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.tabsQueryList.changes.subscribe(newTabs => {\r\n this.tabs = newTabs.toArray();\r\n this.generateIndexes();\r\n\r\n // Verificando se a tab selecionada foi removida da lista\r\n if (!this.tabs.includes(this.activatedTab)) {\r\n // Ativando a tab que ficou no mesmo index da última tab ativa\r\n // TODO: Procurar uma tab que não esteja desabilitada\r\n const newTab = this.tabs[this.activatedTab.index] || this.tabs[this.tabs.length - 1];\r\n this.activateTab(newTab, this.getTabRef(newTab));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Atribuí os index para as tabs\r\n **/\r\n generateIndexes() {\r\n this.tabs.map((tab, index) => tab.index = index);\r\n }\r\n\r\n /**\r\n * Retorna a primeira tab que não está desabilitada\r\n **/\r\n getFirstTab (tabIndex: number) {\r\n if (typeof tabIndex === 'number' && !this.tabs[tabIndex].disabled) {\r\n return this.tabs[tabIndex];\r\n }\r\n\r\n for (let i = 0; i < this.tabs.length; i++) {\r\n const tab = this.tabs[i];\r\n if (!tab.disabled) {\r\n return tab;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Retorna a refencia da tab em HTML\r\n **/\r\n getTabRef (tab: UiTabComponent) {\r\n const tabsRef = this.element.nativeElement.querySelectorAll('.tab');\r\n return tabsRef ? tabsRef[tab.index] : null;\r\n }\r\n\r\n /**\r\n * Ativa uma tab\r\n * */\r\n activateTab(tab: UiTabComponent, tabRef: HTMLElement) {\r\n if (tab.disabled || tab === this.activatedTab) {\r\n return;\r\n }\r\n\r\n if (this.activatedTab) {\r\n this.activatedTab.tabChange.emit(false);\r\n }\r\n this.tabsContentElement.nativeElement.style.height = this.tabsContentElement.nativeElement.clientHeight + 'px';\r\n\r\n tab.tabChange.emit(true);\r\n this.changeDetectorRef.detectChanges();\r\n\r\n this.activatedTab = tab;\r\n\r\n this.tabHeader.moveInkBarTo(tabRef);\r\n this.updateActivatedTab();\r\n }\r\n\r\n /**\r\n * Altera em todos components(UiTabComponent) o index da nova tab ativada\r\n **/\r\n updateActivatedTab() {\r\n this.tabs.map(tab => tab.indexActivatedTab = this.activatedTab.index);\r\n }\r\n\r\n /**\r\n * Callback para quando a animação do conteúdo da tab iniciar\r\n * */\r\n startTranslateAnimation(event: AnimationEvent) {\r\n if (event.toState === 'active') {\r\n this.tabsContentElement.nativeElement.style.height = event.element.scrollHeight + 'px';\r\n }\r\n }\r\n\r\n /**\r\n * Callback para quando a animação do conteúdo da tab terminar\r\n * */\r\n doneTranslateAnimation(event: AnimationEvent) {\r\n this.tabsContentElement.nativeElement.style.height = '';\r\n }\r\n}\r\n","import {Component, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ui-label-content',\r\n templateUrl: './label-content.component.html',\r\n styleUrls: ['./label-content.component.scss']\r\n})\r\nexport class UiLabelContentComponent {\r\n @Input() label: string;\r\n @Input() content: string;\r\n}\r\n","import { EventEmitter, Input, Output, Directive } from '@angular/core';\r\nimport { UiSnackbar } from '../smn-ui.module';\r\n\r\n\r\n@Directive()\r\nexport abstract class Upload {\r\n\r\n @Input() accept: string;\r\n @Input() multiple: boolean;\r\n @Input() disabled: boolean;\r\n @Input() max: number;\r\n\r\n\r\n @Output() ngModelChange: EventEmitter<any>;\r\n @Output() remove: EventEmitter<any>;\r\n\r\n maxLength: number;\r\n ngModel: any;\r\n modelConfig: any;\r\n maxFileSize: string;\r\n\r\n\r\n readFile(file, base64) {\r\n if (!this.multiple) {\r\n this.max = 1;\r\n }\r\n\r\n if (this.max && this.ngModel.length === this.max) {\r\n return;\r\n }\r\n\r\n if (this.maxLength && file.name.length > this.maxLength) {\r\n UiSnackbar.show({\r\n text: `Arquivo \"${file.name}\" não pode ultrapassar ${this.maxLength} caracteres.`\r\n });\r\n return;\r\n }\r\n\r\n const modelFile: any = {};\r\n let isDuplicated: boolean = false;\r\n modelFile[this.modelConfig.name] = file.name;\r\n modelFile[this.modelConfig.base64] = base64;\r\n\r\n this.ngModel.forEach((file) => {\r\n if (modelFile.name === file.name) {\r\n isDuplicated = true;\r\n UiSnackbar.show({\r\n text: `Já existe o arquivo \"${file.name}\".`,\r\n duration: 4000\r\n });\r\n return;\r\n }\r\n });\r\n\r\n if (isDuplicated) {\r\n return;\r\n }\r\n\r\n\r\n this.ngModel.push(modelFile);\r\n this.ngModelChange.emit(this.ngModel);\r\n\r\n\r\n }\r\n\r\n errorFile(file, error) {\r\n if (error.type) {\r\n const accept = this.accept.toUpperCase().split(',');\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: 'Você pode selecionar apenas arquivo' + (accept.length == 1\r\n ? ` do tipo ${accept[0]}`\r\n : `s dos tipos ${accept.join(', ')}`) + '.'\r\n });\r\n }\r\n if (error.maxFileSize) {\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: `Use arquivos menores que ${this.maxFileSize}.`\r\n });\r\n }\r\n }\r\n\r\n removeFile(file, index) {\r\n this.ngModel.splice(index, 1);\r\n this.ngModelChange.emit(this.ngModel);\r\n this.remove.emit({file, index});\r\n }\r\n\r\n filesChange(files) {\r\n if (this.max && (this.ngModel.length + files.length) > this.max) {\r\n UiSnackbar.hide();\r\n UiSnackbar.show({\r\n text: `Você pode selecionar apenas ${this.max} arquivo${this.max > 1 ? 's' : ''}.`\r\n });\r\n }\r\n }\r\n\r\n getFileName(file) {\r\n return file[this.modelConfig.name];\r\n }\r\n}\r\n","import {animate, style, transition, trigger} from '@angular/animations';\r\n\r\nexport const enterLeaveViewAnimation = trigger(\r\n 'enterLeaveViewAnimation',\r\n // Default é 280ms de transição.\r\n [\r\n transition(\r\n ':enter', [\r\n style({\r\n height: '0',\r\n transform: 'scale(0.8) translateY(-16px)',\r\n opacity: 0\r\n }),\r\n animate('550ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n height: '*',\r\n transform: 'scale(1) translateY(0)',\r\n opacity: 1\r\n }))\r\n ]\r\n ),\r\n transition(\r\n ':leave', [\r\n style({\r\n height: '*',\r\n transform: 'scale(1) translateY(0)',\r\n opacity: 1\r\n }),\r\n animate('550ms cubic-bezier(0.0, 0.0, 0.2, 1)', style({\r\n height: '0',\r\n transform: 'scale(0.8) translateY(-16px)',\r\n opacity: 0\r\n }))\r\n ]\r\n )]\r\n);\r\n","import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n Input,\r\n forwardRef,\r\n Output,\r\n EventEmitter,\r\n HostListener,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Upload } from './upload';\r\nimport { enterLeaveViewAnimation } from '../utils/animations/enter-leave-view.animations';\r\n\r\n\r\n@Component({\r\n selector: 'ui-upload',\r\n templateUrl: './upload.component.html',\r\n styleUrls: ['./upload.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => UiUploadComponent),\r\n multi: true\r\n }],\r\n animations: [enterLeaveViewAnimation]\r\n})\r\nexport class UiUploadComponent extends Upload implements OnInit, OnChanges {\r\n\r\n @ViewChild('inputFileRef') inputFileRef;\r\n\r\n @Input() ngModel: any;\r\n @Input() modelConfig: any;\r\n @Input() message: string;\r\n @Input() max: number;\r\n @Input() maxLength: number;\r\n @Input() maxSize: string;\r\n @Input() maxFileSize: string;\r\n @Input() multiple: boolean;\r\n @Input() disabled: boolean;\r\n\r\n @Output() ngModelChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() remove: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n model: any;\r\n isDragging: boolean;\r\n\r\n constructor() {\r\n super();\r\n this.readFile = this.readFile.bind(this);\r\n this.errorFile = this.errorFile.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.modelConfig = {\r\n name: 'name',\r\n base64: 'base64',\r\n ...this.modelConfig\r\n };\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (changes.ngModel) {\r\n this.ngModel = changes.ngModel.currentValue && Array.isArray(changes.ngModel.currentValue) ? changes.ngModel.currentValue : [];\r\n }\r\n\r\n if (changes.modelConfig) {\r\n this.modelConfig = {\r\n name: 'name',\r\n base64: 'base64',\r\n ...changes.modelConfig.currentValue\r\n };\r\n }\r\n }\r\n\r\n writeValue(rawValue: any): void {\r\n }\r\n\r\n renderViaInput(rawValue: any): void {\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n @HostListener('dragenter', ['$event']) onDragEnter(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = true;\r\n }\r\n\r\n @HostListener('dragover', ['$event']) onDragOver(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = true;\r\n event.dataTransfer.dropEffect = 'copy';\r\n }\r\n\r\n @HostListener('dragleave', ['$event']) onDragLeave(event) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.isDragging = false;\r\n }\r\n\r\n @HostListener('drop', ['$event']) onDrop(event) {\r\n if (this.disabled) {\r\n event.preventDefault();\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.isDragging = false;\r\n\r\n const {files} = event.dataTransfer;\r\n this.inputFileRef.readFiles(files);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport './button/button.service';\r\nimport { debounce } from './utils/functions/debounce';\r\nimport { unaccent } from './utils/functions/unaccent';\r\nimport { UiAddCalendarDirective } from './calendar/add-calendar.directive';\r\nimport { UiCalendarComponent } from './calendar/calendar.component';\r\nimport { UiCalendarContentComponent } from './calendar/calendar-content.component';\r\nimport { UiCapitalizePipe } from './utils/pipes/capitalize.pipe';\r\nimport { UiColor } from './utils/providers/color.provider';\r\nimport { UiCookie } from './utils/providers/cookie.provider';\r\nimport { UiDataTableOrderByDirective } from './data-table/order-by.directive';\r\nimport { UiDatePickerCallerDirective } from './date-picker/date-picker-caller.directive';\r\nimport { UiDatePickerDirective } from './date-picker/date-picker.directive';\r\nimport { UiDatetimeService } from './calendar/datetime.service';\r\nimport { UiDialogComponent } from './dialog/dialog.component';\r\nimport { UiDialogTriggerDirective } from './dialog/dialog-trigger.directive';\r\nimport { UiElement } from './utils/providers/element.provider';\r\nimport { UiElementRef } from './utils/providers/element-ref.provider';\r\nimport { UiInputContainerComponent } from './input/input-container.component';\r\nimport { UiInputDirective } from './input/input.directive';\r\nimport { UiMaxlengthDirective } from './utils/validators/maxlength.directive';\r\nimport { UiMenuComponent } from './menu/menu.component';\r\nimport { UiMenuTriggerDirective } from './menu/menu-trigger.directive';\r\nimport { UiNavDrawerComponent } from './nav-drawer/nav-drawer.component';\r\nimport { UiOptionComponent } from './selection-control/option/option.component';\r\nimport { UiProgressRadialComponent } from './progress/radial/progress-radial.component';\r\nimport { UiReferencesService } from './date-picker/references.service';\r\nimport { UiRippleDirective } from './ripple/ripple.directive';\r\nimport { UiSmartListComponent } from './smart-list/smart-list.component';\r\nimport { UiSmartListItemComponent } from './smart-list/item/item.component';\r\nimport { UiSnackbarComponent } from './snackbar/snackbar.component';\r\nimport { UiSnackbarContainerComponent } from './snackbar/snackbar-container.component';\r\nimport { UiSnackbar } from './snackbar/snackbar.provider';\r\nimport { UiSwitchComponent } from './selection-control/switch/switch.component';\r\nimport { UiToolbarComponent } from './toolbar/toolbar.component';\r\nimport { UiToolbarService } from './toolbar/toolbar.service';\r\nimport { UiWindowRef } from './utils/providers/window.provider';\r\nimport { UiMaskDateDirective } from './utils/masks/date/mask-date.directive';\r\nimport { UiTimeAgoPipe } from './utils/pipes/time-ago.pipe';\r\nimport { UiListItemDirective } from './list/list-item.directive';\r\nimport { UiMaskCpfDirective } from './utils/masks/cpf/mask-cpf.directive';\r\nimport { UiCpfPipe } from './utils/masks/cpf/cpf.pipe';\r\nimport { UiMaskCnpjDirective } from './utils/masks/cnpj/mask-cnpj.directive';\r\nimport { UiCnpjPipe } from './utils/masks/cnpj/cnpj.pipe';\r\nimport { UiMaskCnpjNovoDirective } from './utils/masks/cnpj-novo/mask-cnpj-novo.directive';\r\nimport { UiCnpjNovoPipe } from './utils/masks/cnpj-novo/cnpj-novo.pipe';\r\nimport { UiMaskCepDirective } from './utils/masks/cep/mask-cep.directive';\r\nimport { UiCepPipe } from './utils/masks/cep/cep.pipe';\r\nimport { UiMaskCepNovoDirective } from './utils/masks/cep-novo/mask-cep-novo.directive';\r\nimport { UiCepNovoPipe } from './utils/masks/cep-novo/cep-novo.pipe';\r\nimport { UiPhonePipe } from './utils/masks/phone/phone.pipe';\r\nimport { UiMaskPhoneDirective } from './utils/masks/phone/mask-phone.directive';\r\nimport { UiListComponent } from './list/list.component';\r\nimport { UiListItemsComponent } from './list/items/items.component';\r\nimport { UiListItemComponent } from './list/item/item.component';\r\nimport { UiSliderComponent } from './slider/slider.component';\r\nimport { UiSliderMultiHandleComponent } from './slider/slider-multi-handle.component';\r\nimport { UiInfiniteLoadDirective } from './utils/infinite-load/infinite-load.directive';\r\nimport { UiInfiniteLoadService } from './utils/infinite-load/infinite-load.service';\r\nimport { UiAutocompleteDirective } from './autocomplete/autocomplete.directive';\r\nimport { UiAutocompleteComponent } from './autocomplete/autocomplete.component';\r\nimport { UiMaskIntegerDirective } from './utils/masks/integer/mask-integer.directive';\r\nimport { UiTabsComponent } from './old-tabs/tabs.component';\r\nimport { UiTabsPagesComponent } from './old-tabs/pages/tabs-pages.component';\r\nimport { UiLazyLoadDirective } from './lazy-load/lazy-load.directive';\r\nimport { UiDataTableComponent } from './data-table/data-table.component';\r\nimport { UiBottomSheetComponent } from './bottom-sheet/bottom-sheet.component';\r\nimport { UiBottomSheetTriggerDirective } from './bottom-sheet/bottom-sheet.directive';\r\nimport { UiInputFileDirective } from './input/input-file.directive';\r\nimport { UiEllipsisDirective } from './ellipsis/ellipsis.directive';\r\nimport { UiRequiredDirective } from './utils/validators/required.directive';\r\nimport { UiColorPickerComponent } from './color-picker/color-picker.component';\r\nimport { UiColorPickerDirective } from './color-picker/color-picker.directive';\r\nimport { UiInputAutosizeDirective } from './input/autosize.directive';\r\nimport { UiClockComponent } from './clock/clock.component';\r\nimport { UiTimePickerService } from './time-picker/time-picker.service';\r\nimport { UiTimePickerDirective } from './time-picker/time-picker.directive';\r\nimport { UiTimePickerCallerDirective } from './time-picker/time-picker-caller.directive';\r\nimport { UiTimePipe } from './utils/masks/time/time.pipe';\r\nimport { UiMaskTimeDirective } from './utils/masks/time/mask-time.directive';\r\nimport { UiMaskCurrencyDirective } from './utils/masks/currency/mask-currency.directive';\r\nimport { UiCurrencyPipe } from './utils/masks/currency/currency.pipe';\r\nimport { UiDialog } from './dialog/dialog.service';\r\nimport { UiSelectComponent } from './select/select.component';\r\nimport { UiSelectOptionComponent } from './select/option/option.component';\r\nimport { UiSelectFilterPipe } from './select/select-filter.pipe';\r\nimport { UiFilterPipe } from './utils/pipes/filter.pipe';\r\nimport { UiAvatarComponent } from './avatar/avatar.component';\r\nimport { UiMaskFloatDirective } from './utils/masks/float/mask-float.directive';\r\nimport { TooltipDirective } from './tooltip/tooltip.directive';\r\nimport { UiChosenComponent } from './chosen/chosen.component';\r\nimport { UiChosenOptionComponent } from './chosen/chosen-option/chosen-option.component';\r\nimport { UiChosenGroupComponent } from './chosen/chosen-group/chosen-group.component';\r\nimport { UiCreditCardPipe } from './utils/masks/credit-card/credit-card.pipe';\r\nimport { UiMaskCreditCard } from './utils/masks/credit-card/credit-card-mask.directive';\r\nimport { ExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\r\nimport { UiFloatPipe } from './utils/masks/float/float.pipe';\r\nimport { UiTabComponent } from './tab/tab.component';\r\nimport { UiTabGroupComponent } from './tab/group/tab-group.component';\r\nimport { UiTabContentDirective } from './tab/tab-content.directive';\r\nimport { UiTabLabelDirective } from './tab/tab-label.directive';\r\nimport { UiTabHeaderComponent } from './tab/header/tab-header.component';\r\nimport { UiLabelContentComponent } from './label-content/label-content.component';\r\nimport { UiUploadComponent } from './upload/upload.component';\r\n\r\nexport {\r\n debounce,\r\n unaccent,\r\n UiColor,\r\n UiCookie,\r\n UiElement,\r\n UiElementRef,\r\n UiSnackbar,\r\n UiToolbarService,\r\n UiWindowRef,\r\n UiCpfPipe,\r\n UiCnpjPipe,\r\n UiCnpjNovoPipe,\r\n UiCepPipe,\r\n UiCepNovoPipe,\r\n UiPhonePipe,\r\n UiInfiniteLoadService,\r\n UiDatetimeService,\r\n UiTimePipe,\r\n UiCurrencyPipe,\r\n UiMaskPhoneDirective,\r\n UiDialog,\r\n UiFilterPipe,\r\n UiCreditCardPipe,\r\n UiMaskCreditCard,\r\n UiFloatPipe,\r\n}\r\n\r\nconst lib: any[] = [\r\n UiAddCalendarDirective,\r\n UiCalendarComponent,\r\n UiCalendarContentComponent,\r\n UiCapitalizePipe,\r\n UiDataTableOrderByDirective,\r\n UiDatePickerCallerDirective,\r\n UiDatePickerDirective,\r\n UiDialogComponent,\r\n UiDialogTriggerDirective,\r\n UiInputContainerComponent,\r\n UiInputDirective,\r\n UiMaxlengthDirective,\r\n UiMenuComponent,\r\n UiMenuTriggerDirective,\r\n UiNavDrawerComponent,\r\n UiOptionComponent,\r\n UiProgressRadialComponent,\r\n UiRippleDirective,\r\n UiSmartListComponent,\r\n UiSmartListItemComponent,\r\n UiSnackbarComponent,\r\n UiSnackbarComponent,\r\n UiSnackbarContainerComponent,\r\n UiSwitchComponent,\r\n UiToolbarComponent,\r\n UiMenuComponent,\r\n UiMenuTriggerDirective,\r\n UiProgressRadialComponent,\r\n UiMaskDateDirective,\r\n UiTimeAgoPipe,\r\n UiListItemDirective,\r\n UiMaskCpfDirective,\r\n UiCpfPipe,\r\n UiMaskCnpjDirective,\r\n UiCnpjPipe,\r\n UiMaskCnpjNovoDirective,\r\n UiCnpjNovoPipe,\r\n UiMaskCepDirective,\r\n UiCepPipe,\r\n UiMaskCepNovoDirective,\r\n UiCepNovoPipe,\r\n UiMaskPhoneDirective,\r\n UiPhonePipe,\r\n UiListComponent,\r\n UiListItemsComponent,\r\n UiListItemComponent,\r\n UiPhonePipe,\r\n UiSliderComponent,\r\n UiSliderMultiHandleComponent,\r\n UiInfiniteLoadDirective,\r\n UiAutocompleteDirective,\r\n UiAutocompleteComponent,\r\n UiMaskIntegerDirective,\r\n UiTabsComponent,\r\n UiTabsPagesComponent,\r\n UiLazyLoadDirective,\r\n UiDataTableComponent,\r\n UiLazyLoadDirective,\r\n UiBottomSheetComponent,\r\n UiBottomSheetTriggerDirective,\r\n UiInputFileDirective,\r\n UiEllipsisDirective,\r\n UiRequiredDirective,\r\n UiColorPickerComponent,\r\n UiColorPickerDirective,\r\n UiInputAutosizeDirective,\r\n UiColorPickerDirective,\r\n UiClockComponent,\r\n UiTimePickerDirective,\r\n UiTimePickerCallerDirective,\r\n UiTimePipe,\r\n UiMaskTimeDirective,\r\n UiMaskCurrencyDirective,\r\n UiCurrencyPipe,\r\n UiSelectComponent,\r\n UiSelectOptionComponent,\r\n UiSelectFilterPipe,\r\n UiFilterPipe,\r\n UiAvatarComponent,\r\n UiMaskFloatDirective,\r\n TooltipDirective,\r\n UiChosenComponent,\r\n UiChosenOptionComponent,\r\n UiChosenGroupComponent,\r\n UiCreditCardPipe,\r\n UiMaskCreditCard,\r\n ExpansionPanelComponent,\r\n UiFloatPipe,\r\n UiTabComponent,\r\n UiTabGroupComponent,\r\n UiTabContentDirective,\r\n UiTabLabelDirective,\r\n UiTabHeaderComponent,\r\n UiLabelContentComponent,\r\n UiUploadComponent\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n declarations: [...lib],\r\n exports: [...lib],\r\n providers: [\r\n UiColor,\r\n UiDatetimeService,\r\n UiElement,\r\n UiReferencesService,\r\n UiSnackbar,\r\n UiWindowRef,\r\n UiInfiniteLoadService,\r\n UiTimePickerService,\r\n UiDialog,\r\n ],\r\n entryComponents: [\r\n UiCalendarComponent,\r\n UiCalendarContentComponent,\r\n UiAutocompleteComponent,\r\n UiColorPickerComponent,\r\n UiClockComponent\r\n ]\r\n})\r\nexport class SMNUIModule {\r\n}\r\n"],"names":["Injectable","ViewContainerRef","Directive","Subject","ElementRef","ChangeDetectorRef","Component","EventEmitter","isDate","ComponentFactoryResolver","Input","Output","ViewChild","ViewEncapsulation","Pipe","HostListener","ApplicationRef","Injector","TemplateRef","isNullOrUndefined","Renderer2","NG_VALIDATORS","forwardRef","KeyValueDiffers","Inject","DatePipe","NG_VALUE_ACCESSOR","AsyncPipe","of","repeatWhen","flatMap","timer","takeWhile","map","NgControl","trigger","transition","style","animate","NgModel","ChangeDetectionStrategy","ContentChildren","QueryList","ContentChild","state","NgModule","CommonModule","FormsModule","RouterModule","CUSTOM_ELEMENTS_SCHEMA"],"mappings":"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"}