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.
- package/bundles/ng-smn-ui.umd.js +324 -50
- package/bundles/ng-smn-ui.umd.js.map +1 -1
- package/bundles/ng-smn-ui.umd.min.js +1 -1
- package/bundles/ng-smn-ui.umd.min.js.map +1 -1
- package/esm2015/lib/smn-ui.module.js +6 -2
- package/esm2015/lib/utils/masks/cnpj-novo/cnpj-novo.pipe.js +40 -0
- package/esm2015/lib/utils/masks/cnpj-novo/mask-cnpj-novo.directive.js +232 -0
- package/esm2015/ng-smn-ui.js +51 -50
- package/esm5/lib/smn-ui.module.js +6 -2
- package/esm5/lib/utils/masks/cnpj-novo/cnpj-novo.pipe.js +43 -0
- package/esm5/lib/utils/masks/cnpj-novo/mask-cnpj-novo.directive.js +236 -0
- package/esm5/ng-smn-ui.js +51 -50
- package/fesm2015/ng-smn-ui.js +266 -1
- package/fesm2015/ng-smn-ui.js.map +1 -1
- package/fesm5/ng-smn-ui.js +273 -1
- package/fesm5/ng-smn-ui.js.map +1 -1
- package/lib/smn-ui.module.d.ts +2 -1
- package/lib/utils/masks/cnpj-novo/cnpj-novo.pipe.d.ts +4 -0
- package/lib/utils/masks/cnpj-novo/mask-cnpj-novo.directive.d.ts +47 -0
- package/ng-smn-ui.d.ts +50 -49
- package/ng-smn-ui.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-smn-ui.js","sources":["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","ng://ng-smn-ui/public_api.ts","ng://ng-smn-ui/ng-smn-ui.ts"],"sourcesContent":["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","/*\r\n * Public API Surface of smn-ui\r\n */\r\n\r\nexport * from './lib/smn-ui.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {UiAutocompleteComponent as ɵbq} from './lib/autocomplete/autocomplete.component';\nexport {UiAutocompleteDirective as ɵbp} from './lib/autocomplete/autocomplete.directive';\nexport {UiAvatarComponent as ɵcn} from './lib/avatar/avatar.component';\nexport {UiBottomSheetComponent as ɵbw} from './lib/bottom-sheet/bottom-sheet.component';\nexport {UiBottomSheetTriggerDirective as ɵbx} from './lib/bottom-sheet/bottom-sheet.directive';\nexport {UiAddCalendarDirective as ɵd} from './lib/calendar/add-calendar.directive';\nexport {UiCalendarContentComponent as ɵf} from './lib/calendar/calendar-content.component';\nexport {UiCalendarComponent as ɵe} from './lib/calendar/calendar.component';\nexport {UiChosenGroupComponent as ɵcs} from './lib/chosen/chosen-group/chosen-group.component';\nexport {UiChosenOptionComponent as ɵcr} from './lib/chosen/chosen-option/chosen-option.component';\nexport {UiChosenComponent as ɵcq} from './lib/chosen/chosen.component';\nexport {UiClockComponent as ɵce} from './lib/clock/clock.component';\nexport {UiColorPickerComponent as ɵcb} from './lib/color-picker/color-picker.component';\nexport {UiColorPickerDirective as ɵcc} from './lib/color-picker/color-picker.directive';\nexport {UiDataTableComponent as ɵbv} from './lib/data-table/data-table.component';\nexport {UiDataTableOrderByDirective as ɵh} from './lib/data-table/order-by.directive';\nexport {UiDatePickerCallerDirective as ɵi} from './lib/date-picker/date-picker-caller.directive';\nexport {UiDatePickerDirective as ɵk} from './lib/date-picker/date-picker.directive';\nexport {UiReferencesService as ɵj} from './lib/date-picker/references.service';\nexport {UiDialogTriggerDirective as ɵm} from './lib/dialog/dialog-trigger.directive';\nexport {UiDialogComponent as ɵl} from './lib/dialog/dialog.component';\nexport {UiEllipsisDirective as ɵbz} from './lib/ellipsis/ellipsis.directive';\nexport {ExpansionPanelComponent as ɵct} from './lib/expansion-panel/expansion-panel.component';\nexport {UiInputAutosizeDirective as ɵcd} from './lib/input/autosize.directive';\nexport {UiInputContainerComponent as ɵn} from './lib/input/input-container.component';\nexport {UiInputFileDirective as ɵby} from './lib/input/input-file.directive';\nexport {UiInputDirective as ɵo} from './lib/input/input.directive';\nexport {UiLabelContentComponent as ɵdb} from './lib/label-content/label-content.component';\nexport {UiLazyLoadDirective as ɵbu} from './lib/lazy-load/lazy-load.directive';\nexport {UiListItemComponent as ɵbl} from './lib/list/item/item.component';\nexport {UiListItemsComponent as ɵbk} from './lib/list/items/items.component';\nexport {UiListItemDirective as ɵbe} from './lib/list/list-item.directive';\nexport {UiListComponent as ɵbj} from './lib/list/list.component';\nexport {UiMenuTriggerDirective as ɵr} from './lib/menu/menu-trigger.directive';\nexport {UiMenuComponent as ɵq} from './lib/menu/menu.component';\nexport {UiNavDrawerComponent as ɵs} from './lib/nav-drawer/nav-drawer.component';\nexport {UiTabsPagesComponent as ɵbt} from './lib/old-tabs/pages/tabs-pages.component';\nexport {UiTabsComponent as ɵbs} from './lib/old-tabs/tabs.component';\nexport {UiProgressRadialComponent as ɵu} from './lib/progress/radial/progress-radial.component';\nexport {UiRippleDirective as ɵv} from './lib/ripple/ripple.directive';\nexport {UiSelectOptionComponent as ɵcl} from './lib/select/option/option.component';\nexport {UiSelectFilterPipe as ɵcm} from './lib/select/select-filter.pipe';\nexport {UiSelectComponent as ɵck} from './lib/select/select.component';\nexport {UiOptionComponent as ɵt} from './lib/selection-control/option/option.component';\nexport {UiSwitchComponent as ɵba} from './lib/selection-control/switch/switch.component';\nexport {UiSliderMultiHandleComponent as ɵbn} from './lib/slider/slider-multi-handle.component';\nexport {UiSliderComponent as ɵbm} from './lib/slider/slider.component';\nexport {UiSmartListItemComponent as ɵx} from './lib/smart-list/item/item.component';\nexport {UiSmartListComponent as ɵw} from './lib/smart-list/smart-list.component';\nexport {UiSnackbarContainerComponent as ɵz} from './lib/snackbar/snackbar-container.component';\nexport {UiSnackbarComponent as ɵy} from './lib/snackbar/snackbar.component';\nexport {tabFakeAnimation as ɵcy,tabTransform as ɵcz} from './lib/tab/group/tab-group.animation';\nexport {UiTabGroupComponent as ɵcx} from './lib/tab/group/tab-group.component';\nexport {UiTabHeaderComponent as ɵda} from './lib/tab/header/tab-header.component';\nexport {UiTabContentDirective as ɵcv} from './lib/tab/tab-content.directive';\nexport {UiTabLabelDirective as ɵcw} from './lib/tab/tab-label.directive';\nexport {UiTabComponent as ɵcu} from './lib/tab/tab.component';\nexport {UiTimePickerCallerDirective as ɵch} from './lib/time-picker/time-picker-caller.directive';\nexport {UiTimePickerDirective as ɵcf} from './lib/time-picker/time-picker.directive';\nexport {UiTimePickerService as ɵcg} from './lib/time-picker/time-picker.service';\nexport {UiToolbarComponent as ɵbb} from './lib/toolbar/toolbar.component';\nexport {TooltipDirective as ɵcp} from './lib/tooltip/tooltip.directive';\nexport {Upload as ɵdd} from './lib/upload/upload';\nexport {UiUploadComponent as ɵdc} from './lib/upload/upload.component';\nexport {enterLeaveViewAnimation as ɵde} from './lib/utils/animations/enter-leave-view.animations';\nexport {UiInfiniteLoadDirective as ɵbo} from './lib/utils/infinite-load/infinite-load.directive';\nexport {UiMaskCepNovoDirective as ɵbi} from './lib/utils/masks/cep-novo/mask-cep-novo.directive';\nexport {UiMaskCepDirective as ɵbh} from './lib/utils/masks/cep/mask-cep.directive';\nexport {UiMaskCnpjDirective as ɵbg} from './lib/utils/masks/cnpj/mask-cnpj.directive';\nexport {UiMaskCpfDirective as ɵbf} from './lib/utils/masks/cpf/mask-cpf.directive';\nexport {UiMaskCurrencyDirective as ɵcj} from './lib/utils/masks/currency/mask-currency.directive';\nexport {UiMaskDateDirective as ɵbc} from './lib/utils/masks/date/mask-date.directive';\nexport {UiMaskFloatDirective as ɵco} from './lib/utils/masks/float/mask-float.directive';\nexport {UiMaskIntegerDirective as ɵbr} from './lib/utils/masks/integer/mask-integer.directive';\nexport {UiMaskTimeDirective as ɵci} from './lib/utils/masks/time/mask-time.directive';\nexport {UiCapitalizePipe as ɵg} from './lib/utils/pipes/capitalize.pipe';\nexport {UiTimeAgoPipe as ɵbd} from './lib/utils/pipes/time-ago.pipe';\nexport {_hexToRgb as ɵb,_isBright as ɵa} from './lib/utils/providers/color.provider';\nexport {_window as ɵc} from './lib/utils/providers/window.provider';\nexport {UiMaxlengthDirective as ɵp} from './lib/utils/validators/maxlength.directive';\nexport {UiRequiredDirective as ɵca} from './lib/utils/validators/required.directive';"],"names":["Subject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-smn-ui.js","sources":["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","ng://ng-smn-ui/public_api.ts","ng://ng-smn-ui/ng-smn-ui.ts"],"sourcesContent":["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","/*\r\n * Public API Surface of smn-ui\r\n */\r\n\r\nexport * from './lib/smn-ui.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {UiAutocompleteComponent as ɵbr} from './lib/autocomplete/autocomplete.component';\nexport {UiAutocompleteDirective as ɵbq} from './lib/autocomplete/autocomplete.directive';\nexport {UiAvatarComponent as ɵco} from './lib/avatar/avatar.component';\nexport {UiBottomSheetComponent as ɵbx} from './lib/bottom-sheet/bottom-sheet.component';\nexport {UiBottomSheetTriggerDirective as ɵby} from './lib/bottom-sheet/bottom-sheet.directive';\nexport {UiAddCalendarDirective as ɵd} from './lib/calendar/add-calendar.directive';\nexport {UiCalendarContentComponent as ɵf} from './lib/calendar/calendar-content.component';\nexport {UiCalendarComponent as ɵe} from './lib/calendar/calendar.component';\nexport {UiChosenGroupComponent as ɵct} from './lib/chosen/chosen-group/chosen-group.component';\nexport {UiChosenOptionComponent as ɵcs} from './lib/chosen/chosen-option/chosen-option.component';\nexport {UiChosenComponent as ɵcr} from './lib/chosen/chosen.component';\nexport {UiClockComponent as ɵcf} from './lib/clock/clock.component';\nexport {UiColorPickerComponent as ɵcc} from './lib/color-picker/color-picker.component';\nexport {UiColorPickerDirective as ɵcd} from './lib/color-picker/color-picker.directive';\nexport {UiDataTableComponent as ɵbw} from './lib/data-table/data-table.component';\nexport {UiDataTableOrderByDirective as ɵh} from './lib/data-table/order-by.directive';\nexport {UiDatePickerCallerDirective as ɵi} from './lib/date-picker/date-picker-caller.directive';\nexport {UiDatePickerDirective as ɵk} from './lib/date-picker/date-picker.directive';\nexport {UiReferencesService as ɵj} from './lib/date-picker/references.service';\nexport {UiDialogTriggerDirective as ɵm} from './lib/dialog/dialog-trigger.directive';\nexport {UiDialogComponent as ɵl} from './lib/dialog/dialog.component';\nexport {UiEllipsisDirective as ɵca} from './lib/ellipsis/ellipsis.directive';\nexport {ExpansionPanelComponent as ɵcu} from './lib/expansion-panel/expansion-panel.component';\nexport {UiInputAutosizeDirective as ɵce} from './lib/input/autosize.directive';\nexport {UiInputContainerComponent as ɵn} from './lib/input/input-container.component';\nexport {UiInputFileDirective as ɵbz} from './lib/input/input-file.directive';\nexport {UiInputDirective as ɵo} from './lib/input/input.directive';\nexport {UiLabelContentComponent as ɵdc} from './lib/label-content/label-content.component';\nexport {UiLazyLoadDirective as ɵbv} from './lib/lazy-load/lazy-load.directive';\nexport {UiListItemComponent as ɵbm} from './lib/list/item/item.component';\nexport {UiListItemsComponent as ɵbl} from './lib/list/items/items.component';\nexport {UiListItemDirective as ɵbe} from './lib/list/list-item.directive';\nexport {UiListComponent as ɵbk} from './lib/list/list.component';\nexport {UiMenuTriggerDirective as ɵr} from './lib/menu/menu-trigger.directive';\nexport {UiMenuComponent as ɵq} from './lib/menu/menu.component';\nexport {UiNavDrawerComponent as ɵs} from './lib/nav-drawer/nav-drawer.component';\nexport {UiTabsPagesComponent as ɵbu} from './lib/old-tabs/pages/tabs-pages.component';\nexport {UiTabsComponent as ɵbt} from './lib/old-tabs/tabs.component';\nexport {UiProgressRadialComponent as ɵu} from './lib/progress/radial/progress-radial.component';\nexport {UiRippleDirective as ɵv} from './lib/ripple/ripple.directive';\nexport {UiSelectOptionComponent as ɵcm} from './lib/select/option/option.component';\nexport {UiSelectFilterPipe as ɵcn} from './lib/select/select-filter.pipe';\nexport {UiSelectComponent as ɵcl} from './lib/select/select.component';\nexport {UiOptionComponent as ɵt} from './lib/selection-control/option/option.component';\nexport {UiSwitchComponent as ɵba} from './lib/selection-control/switch/switch.component';\nexport {UiSliderMultiHandleComponent as ɵbo} from './lib/slider/slider-multi-handle.component';\nexport {UiSliderComponent as ɵbn} from './lib/slider/slider.component';\nexport {UiSmartListItemComponent as ɵx} from './lib/smart-list/item/item.component';\nexport {UiSmartListComponent as ɵw} from './lib/smart-list/smart-list.component';\nexport {UiSnackbarContainerComponent as ɵz} from './lib/snackbar/snackbar-container.component';\nexport {UiSnackbarComponent as ɵy} from './lib/snackbar/snackbar.component';\nexport {tabFakeAnimation as ɵcz,tabTransform as ɵda} from './lib/tab/group/tab-group.animation';\nexport {UiTabGroupComponent as ɵcy} from './lib/tab/group/tab-group.component';\nexport {UiTabHeaderComponent as ɵdb} from './lib/tab/header/tab-header.component';\nexport {UiTabContentDirective as ɵcw} from './lib/tab/tab-content.directive';\nexport {UiTabLabelDirective as ɵcx} from './lib/tab/tab-label.directive';\nexport {UiTabComponent as ɵcv} from './lib/tab/tab.component';\nexport {UiTimePickerCallerDirective as ɵci} from './lib/time-picker/time-picker-caller.directive';\nexport {UiTimePickerDirective as ɵcg} from './lib/time-picker/time-picker.directive';\nexport {UiTimePickerService as ɵch} from './lib/time-picker/time-picker.service';\nexport {UiToolbarComponent as ɵbb} from './lib/toolbar/toolbar.component';\nexport {TooltipDirective as ɵcq} from './lib/tooltip/tooltip.directive';\nexport {Upload as ɵde} from './lib/upload/upload';\nexport {UiUploadComponent as ɵdd} from './lib/upload/upload.component';\nexport {enterLeaveViewAnimation as ɵdf} from './lib/utils/animations/enter-leave-view.animations';\nexport {UiInfiniteLoadDirective as ɵbp} from './lib/utils/infinite-load/infinite-load.directive';\nexport {UiMaskCepNovoDirective as ɵbj} from './lib/utils/masks/cep-novo/mask-cep-novo.directive';\nexport {UiMaskCepDirective as ɵbi} from './lib/utils/masks/cep/mask-cep.directive';\nexport {UiMaskCnpjNovoDirective as ɵbh} from './lib/utils/masks/cnpj-novo/mask-cnpj-novo.directive';\nexport {UiMaskCnpjDirective as ɵbg} from './lib/utils/masks/cnpj/mask-cnpj.directive';\nexport {UiMaskCpfDirective as ɵbf} from './lib/utils/masks/cpf/mask-cpf.directive';\nexport {UiMaskCurrencyDirective as ɵck} from './lib/utils/masks/currency/mask-currency.directive';\nexport {UiMaskDateDirective as ɵbc} from './lib/utils/masks/date/mask-date.directive';\nexport {UiMaskFloatDirective as ɵcp} from './lib/utils/masks/float/mask-float.directive';\nexport {UiMaskIntegerDirective as ɵbs} from './lib/utils/masks/integer/mask-integer.directive';\nexport {UiMaskTimeDirective as ɵcj} from './lib/utils/masks/time/mask-time.directive';\nexport {UiCapitalizePipe as ɵg} from './lib/utils/pipes/capitalize.pipe';\nexport {UiTimeAgoPipe as ɵbd} from './lib/utils/pipes/time-ago.pipe';\nexport {_hexToRgb as ɵb,_isBright as ɵa} from './lib/utils/providers/color.provider';\nexport {_window as ɵc} from './lib/utils/providers/window.provider';\nexport {UiMaxlengthDirective as ɵp} from './lib/utils/validators/maxlength.directive';\nexport {UiRequiredDirective as ɵcb} from './lib/utils/validators/required.directive';"],"names":["Subject"],"mappings":"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"}
|