diff --git a/dist/vue-good-table.cjs.css b/dist/vue-good-table.cjs.css index b4d45cc5..3888bf41 100644 --- a/dist/vue-good-table.cjs.css +++ b/dist/vue-good-table.cjs.css @@ -3,5 +3,4 @@ - -.vgt-table.striped tbody tr:nth-of-type(odd){background-color:rgba(51,68,109,.03)}.vgt-right-align{text-align:right}.vgt-left-align{text-align:left}.vgt-center-align{text-align:center}.vgt-pull-left{float:left!important}.vgt-pull-right{float:right!important}.vgt-clearfix::after{display:block;content:"";clear:both}.vgt-responsive{width:100%;overflow-x:auto;position:relative}.vgt-text-disabled{color:#909399}.vgt-wrap{position:relative}.vgt-fixed-header{position:absolute;z-index:10;width:100%;overflow-x:auto}table.vgt-table{font-size:16px;border-collapse:collapse;background-color:#fff;width:100%;max-width:100%;table-layout:auto;border:1px solid #dcdfe6}table.vgt-table td{padding:.75em .75em .75em .75em;vertical-align:top;border-bottom:1px solid #dcdfe6;color:#606266}table.vgt-table tr.clickable{cursor:pointer}table.vgt-table tr.clickable:hover{background-color:#f1f5fd}.vgt-table th{padding:.75em 1.5em .75em .75em;vertical-align:middle;position:relative}.vgt-table th.sortable{cursor:pointer}.vgt-table th.sortable:after{content:"";position:absolute;height:0;width:0;right:6px;top:50%;margin-top:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #cfd3e0}.vgt-table th.sortable:before{content:"";position:absolute;height:0;width:0;right:6px;top:50%;margin-bottom:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #cfd3e0}.vgt-table th.line-numbers,.vgt-table th.vgt-checkbox-col{padding:0 .75em 0 .75em;color:#606266;border-right:1px solid #dcdfe6;word-wrap:break-word;width:25px;text-align:center;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-table th.filter-th{padding:.75em .75em .75em .75em}.vgt-table th.vgt-row-header{border-bottom:2px solid #dcdfe6;border-top:2px solid #dcdfe6;background-color:#fafafb}.vgt-table th.vgt-row-header .triangle{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-table th.vgt-row-header .triangle:after{content:"";position:absolute;display:block;left:50%;top:50%;margin-top:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #606266;margin-left:-3px;transition:.3s ease transform}.vgt-table th.vgt-row-header .triangle.expand:after{transform:rotate(90deg)}.vgt-table thead th{color:#606266;vertical-align:bottom;border-bottom:1px solid #dcdfe6;padding-right:1.5em;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-table thead th.vgt-checkbox-col{vertical-align:middle}.vgt-table thead th.sorting-asc:after{border-bottom:5px solid #409eff}.vgt-table thead th.sorting-desc:before{border-top:5px solid #409eff}.vgt-input,.vgt-select{width:100%;height:32px;line-height:1;display:block;font-size:14px;font-weight:400;padding:6px 12px;color:#606266;border-radius:4px;box-sizing:border-box;background-image:none;background-color:#fff;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.vgt-input::placeholder,.vgt-select::placeholder{color:#606266;opacity:.3}.vgt-input:focus,.vgt-select:focus{outline:0;border-color:#409eff}.vgt-loading{position:absolute;width:100%;z-index:10;margin-top:117px}.vgt-loading__content{background-color:#c0dfff;color:#409eff;padding:7px 30px;border-radius:3px}.vgt-inner-wrap.is-loading{opacity:.5;pointer-events:none}.vgt-table.bordered td,.vgt-table.bordered th{border:1px solid #dcdfe6}.vgt-table.bordered th.vgt-row-header{border-bottom:3px solid #dcdfe6}.vgt-wrap.rtl{direction:rtl}.vgt-wrap.rtl .vgt-table thead th,.vgt-wrap.rtl .vgt-table.condensed thead th{padding-left:1.5em;padding-right:.75em}.vgt-wrap.rtl .vgt-table th.sorting-asc:after,.vgt-wrap.rtl .vgt-table th.sorting:after{margin-right:5px;margin-left:0}.vgt-wrap.rtl .vgt-table th.sortable:after,.vgt-wrap.rtl .vgt-table th.sortable:before{right:inherit;left:6px}.vgt-table.condensed td,.vgt-table.condensed th.vgt-row-header{padding:.4em .4em .4em .4em}@media (max-width:576px){.vgt-compact *{box-sizing:border-box}.vgt-compact tbody,.vgt-compact td,.vgt-compact tr{display:block;width:100%}.vgt-compact thead{display:none}.vgt-compact tr{margin-bottom:15px}.vgt-compact td{text-align:right;position:relative}.vgt-compact td:before{content:attr(data-label);position:relative;float:left;left:0;width:40%;padding-left:10px;font-weight:700;text-align:left}.vgt-compact th.line-numbers{width:100%!important;display:block;padding:.3em 1em!important}}.vgt-global-search{padding:5px 0;display:flex;flex-wrap:nowrap;align-items:stretch;border:1px solid #dcdfe6;border-bottom:0;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-global-search__input{position:relative;padding-left:40px;flex-grow:1}.vgt-global-search__input .input__icon{position:absolute;left:0;max-width:32px}.vgt-global-search__input .input__icon .magnifying-glass{margin-top:3px;margin-left:8px;display:block;width:16px;height:16px;border:2px solid #d6dae2;position:relative;border-radius:50%}.vgt-global-search__input .input__icon .magnifying-glass:before{content:"";display:block;position:absolute;right:-7px;bottom:-5px;background:#d6dae2;width:8px;height:4px;border-radius:2px;transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.vgt-global-search__actions{margin-left:10px}.vgt-selection-info-row{background:#fdf9e8;padding:5px 16px;font-size:13px;border-top:1px solid #dcdfe6;border-left:1px solid #dcdfe6;border-right:1px solid #dcdfe6;color:#d3aa3b;font-weight:700}.vgt-selection-info-row a{font-weight:700;display:inline-block;margin-left:10px}.vgt-wrap__actions-footer{border:1px solid #dcdfe6}.vgt-wrap__footer{color:#606266;padding:1em;border:1px solid #dcdfe6;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-wrap__footer .footer__row-count__label,.vgt-wrap__footer .footer__row-count__select{display:inline-block;vertical-align:middle}.vgt-wrap__footer .footer__row-count__label{font-size:14px;color:#909399}.vgt-wrap__footer .footer__row-count__select{background-color:transparent;width:auto;padding:0;border:0;border-radius:0;height:auto;font-size:14px;margin-left:8px;color:#606266;font-weight:700}.vgt-wrap__footer .footer__row-count__select:focus{outline:0;border-color:#409eff}.vgt-wrap__footer .footer__navigation{font-size:14px}.vgt-wrap__footer .footer__navigation__info,.vgt-wrap__footer .footer__navigation__page-btn,.vgt-wrap__footer .footer__navigation__page-info{display:inline-block;vertical-align:middle}.vgt-wrap__footer .footer__navigation__page-btn{text-decoration:none;color:#606266;font-weight:700;white-space:nowrap}.vgt-wrap__footer .footer__navigation__page-btn:focus{outline:0;border:0}.vgt-wrap__footer .footer__navigation__page-btn.disabled,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover{opacity:.5;cursor:not-allowed}.vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#606266}.vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#606266}.vgt-wrap__footer .footer__navigation__page-btn .chevron{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-wrap__footer .footer__navigation__page-btn .chevron:after{content:"";position:absolute;display:block;left:50%;top:50%;margin-top:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent}.vgt-wrap__footer .footer__navigation__page-btn .chevron.left::after{border-right:6px solid #409eff;margin-left:-3px}.vgt-wrap__footer .footer__navigation__page-btn .chevron.right::after{border-left:6px solid #409eff;margin-left:-3px}.vgt-wrap__footer .footer__navigation__info,.vgt-wrap__footer .footer__navigation__page-info{display:inline-block;color:#909399;margin:0 16px}.vgt-wrap__footer .footer__navigation__page-info__current-entry{width:30px;text-align:center;display:inline-block;margin:0 10px;font-weight:700}@media only screen and (max-width:750px){.vgt-wrap__footer .footer__navigation__info{display:none}.vgt-wrap__footer .footer__navigation__page-btn{margin-left:16px}}.vgt-table.nocturnal{border:1px solid #435169;background-color:#324057}.vgt-table.nocturnal tr.clickable:hover{background-color:#445168}.vgt-table.nocturnal td{border-bottom:1px solid #435169;color:#c7ced8}.vgt-table.nocturnal th.line-numbers,.vgt-table.nocturnal th.vgt-checkbox-col{color:#c7ced8;border-right:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-table.nocturnal thead th{color:#c7ced8;border-bottom:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-table.nocturnal thead th.sortable:before{border-top-color:#3e5170}.vgt-table.nocturnal thead th.sortable:after{border-bottom-color:#3e5170}.vgt-table.nocturnal thead th.sortable.sorting-asc{color:#fff}.vgt-table.nocturnal thead th.sortable.sorting-asc:after{border-bottom-color:#409eff}.vgt-table.nocturnal thead th.sortable.sorting-desc{color:#fff}.vgt-table.nocturnal thead th.sortable.sorting-desc:before{border-top-color:#409eff}.vgt-table.nocturnal.bordered td,.vgt-table.nocturnal.bordered th{border:1px solid #435169}.vgt-table.nocturnal .vgt-input,.vgt-table.nocturnal .vgt-select{color:#c7ced8;background-color:#232d3f;border:1px solid #435169}.vgt-table.nocturnal .vgt-input::placeholder,.vgt-table.nocturnal .vgt-select::placeholder{color:#c7ced8;opacity:.3}.vgt-wrap.nocturnal .vgt-wrap__footer{color:#c7ced8;border:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__label{color:#8290a7}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__select{color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__select:focus{border-color:#409eff}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn{color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__info,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-info{color:#8290a7}.vgt-wrap.nocturnal .vgt-global-search{border:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-wrap.nocturnal .vgt-global-search__input .input__icon .magnifying-glass{border:2px solid #3f4c63}.vgt-wrap.nocturnal .vgt-global-search__input .input__icon .magnifying-glass:before{background:#3f4c63}.vgt-wrap.nocturnal .vgt-global-search__input .vgt-input,.vgt-wrap.nocturnal .vgt-global-search__input .vgt-select{color:#c7ced8;background-color:#232d3f;border:1px solid #435169}.vgt-wrap.nocturnal .vgt-global-search__input .vgt-input::placeholder,.vgt-wrap.nocturnal .vgt-global-search__input .vgt-select::placeholder{color:#c7ced8;opacity:.3}.vgt-table.black-rhino{border:1px solid #435169;background-color:#dfe5ee}.vgt-table.black-rhino tr.clickable:hover{background-color:#fff}.vgt-table.black-rhino td{border-bottom:1px solid #bbc5d6;color:#49515e}.vgt-table.black-rhino th.line-numbers,.vgt-table.black-rhino th.vgt-checkbox-col{color:#dae2f0;border-right:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-table.black-rhino thead th{color:#dae2f0;text-shadow:1px 1px #3e5170;border-bottom:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-table.black-rhino thead th.sortable:before{border-top-color:#607498}.vgt-table.black-rhino thead th.sortable:after{border-bottom-color:#607498}.vgt-table.black-rhino thead th.sortable.sorting-asc{color:#fff}.vgt-table.black-rhino thead th.sortable.sorting-asc:after{border-bottom-color:#409eff}.vgt-table.black-rhino thead th.sortable.sorting-desc:before{border-top-color:#409eff}.vgt-table.black-rhino.bordered td{border:1px solid #bbc5d6}.vgt-table.black-rhino.bordered th{border:1px solid #435169}.vgt-table.black-rhino .vgt-input,.vgt-table.black-rhino .vgt-select{color:#dae2f0;background-color:#34445f;border:1px solid transparent}.vgt-table.black-rhino .vgt-input::placeholder,.vgt-table.black-rhino .vgt-select::placeholder{color:#dae2f0;opacity:.3}.vgt-wrap.black-rhino .vgt-wrap__footer{color:#dae2f0;border:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count{position:relative;padding-right:3px}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__label{color:#98a5b9}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select{color:#49515e;background:#dfe5ee;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:15px;padding-left:5px;border-radius:3px}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select::-ms-expand{display:none}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select:focus{border-color:#409eff}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count::after{content:"";display:block;position:absolute;height:0;width:0;right:6px;top:50%;margin-top:-1px;border-top:6px solid #49515e;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:none;pointer-events:none}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn{color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__info,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-info{color:#dae2f0}.vgt-wrap.black-rhino .vgt-global-search{border:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-wrap.black-rhino .vgt-global-search__input .input__icon .magnifying-glass{border:2px solid #3f4c63}.vgt-wrap.black-rhino .vgt-global-search__input .input__icon .magnifying-glass:before{background:#3f4c63}.vgt-wrap.black-rhino .vgt-global-search__input .vgt-input,.vgt-wrap.black-rhino .vgt-global-search__input .vgt-select{color:#dae2f0;background-color:#44516c;border:1px solid transparent}.vgt-wrap.black-rhino .vgt-global-search__input .vgt-input::placeholder,.vgt-wrap.black-rhino .vgt-global-search__input .vgt-select::placeholder{color:#dae2f0;opacity:.3} \ No newline at end of file +.vgt-table.striped tbody tr:nth-of-type(odd){background-color:rgba(51,68,109,.03)}.vgt-right-align{text-align:right}.vgt-left-align{text-align:left}.vgt-center-align{text-align:center}.vgt-pull-left{float:left!important}.vgt-pull-right{float:right!important}.vgt-clearfix::after{display:block;content:"";clear:both}.vgt-responsive{width:100%;overflow-x:auto;position:relative}.vgt-text-disabled{color:#909399}.vgt-wrap{position:relative}.vgt-fixed-header{position:absolute;z-index:10;overflow-x:auto}table.vgt-table{font-size:16px;border-collapse:collapse;background-color:#fff;width:100%;max-width:100%;table-layout:auto;border:1px solid #dcdfe6}table.vgt-table td{padding:.75em .75em .75em .75em;vertical-align:top;border-bottom:1px solid #dcdfe6;color:#606266}table.vgt-table tr.clickable{cursor:pointer}table.vgt-table tr.clickable:hover{background-color:#f1f5fd}.vgt-table th{padding:.75em 1.5em .75em .75em;vertical-align:middle;position:relative}.vgt-table th.sortable{cursor:pointer}.vgt-table th.sortable:after{content:"";position:absolute;height:0;width:0;right:6px;top:50%;margin-top:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #cfd3e0}.vgt-table th.sortable:before{content:"";position:absolute;height:0;width:0;right:6px;top:50%;margin-bottom:-7px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #cfd3e0}.vgt-table th.line-numbers,.vgt-table th.vgt-checkbox-col{padding:0 .75em 0 .75em;color:#606266;border-right:1px solid #dcdfe6;word-wrap:break-word;width:25px;text-align:center;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-table th.filter-th{padding:.75em .75em .75em .75em}.vgt-table th.vgt-row-header{border-bottom:2px solid #dcdfe6;border-top:2px solid #dcdfe6;background-color:#fafafb}.vgt-table th.vgt-row-header .triangle{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-table th.vgt-row-header .triangle:after{content:"";position:absolute;display:block;left:50%;top:50%;margin-top:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #606266;margin-left:-3px;transition:.3s ease transform}.vgt-table th.vgt-row-header .triangle.expand:after{transform:rotate(90deg)}.vgt-table thead th{color:#606266;vertical-align:bottom;border-bottom:1px solid #dcdfe6;padding-right:1.5em;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-table thead th.vgt-checkbox-col{vertical-align:middle}.vgt-table thead th.sorting-asc:after{border-bottom:5px solid #409eff}.vgt-table thead th.sorting-desc:before{border-top:5px solid #409eff}.vgt-input,.vgt-select{width:100%;height:32px;line-height:1;display:block;font-size:14px;font-weight:400;padding:6px 12px;color:#606266;border-radius:4px;box-sizing:border-box;background-image:none;background-color:#fff;border:1px solid #dcdfe6;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.vgt-input::placeholder,.vgt-select::placeholder{color:#606266;opacity:.3}.vgt-input:focus,.vgt-select:focus{outline:0;border-color:#409eff}.vgt-loading{position:absolute;width:100%;z-index:10;margin-top:117px}.vgt-loading__content{background-color:#c0dfff;color:#409eff;padding:7px 30px;border-radius:3px}.vgt-inner-wrap.is-loading{opacity:.5;pointer-events:none}.vgt-table.bordered td,.vgt-table.bordered th{border:1px solid #dcdfe6}.vgt-table.bordered th.vgt-row-header{border-bottom:3px solid #dcdfe6}.vgt-wrap.rtl{direction:rtl}.vgt-wrap.rtl .vgt-table thead th,.vgt-wrap.rtl .vgt-table.condensed thead th{padding-left:1.5em;padding-right:.75em}.vgt-wrap.rtl .vgt-table th.sorting-asc:after,.vgt-wrap.rtl .vgt-table th.sorting:after{margin-right:5px;margin-left:0}.vgt-wrap.rtl .vgt-table th.sortable:after,.vgt-wrap.rtl .vgt-table th.sortable:before{right:inherit;left:6px}.vgt-table.condensed td,.vgt-table.condensed th.vgt-row-header{padding:.4em .4em .4em .4em}@media (max-width:576px){.vgt-compact *{box-sizing:border-box}.vgt-compact tbody,.vgt-compact td,.vgt-compact tr{display:block;width:100%}.vgt-compact thead{display:none}.vgt-compact tr{margin-bottom:15px}.vgt-compact td{text-align:right;position:relative}.vgt-compact td:before{content:attr(data-label);position:relative;float:left;left:0;width:40%;padding-left:10px;font-weight:700;text-align:left}.vgt-compact th.line-numbers{width:100%!important;display:block;padding:.3em 1em!important}}.vgt-global-search{padding:5px 0;display:flex;flex-wrap:nowrap;align-items:stretch;border:1px solid #dcdfe6;border-bottom:0;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-global-search__input{position:relative;padding-left:40px;flex-grow:1}.vgt-global-search__input .input__icon{position:absolute;left:0;max-width:32px}.vgt-global-search__input .input__icon .magnifying-glass{margin-top:3px;margin-left:8px;display:block;width:16px;height:16px;border:2px solid #d6dae2;position:relative;border-radius:50%}.vgt-global-search__input .input__icon .magnifying-glass:before{content:"";display:block;position:absolute;right:-7px;bottom:-5px;background:#d6dae2;width:8px;height:4px;border-radius:2px;transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}.vgt-global-search__actions{margin-left:10px}.vgt-selection-info-row{background:#fdf9e8;padding:5px 16px;font-size:13px;border-top:1px solid #dcdfe6;border-left:1px solid #dcdfe6;border-right:1px solid #dcdfe6;color:#d3aa3b;font-weight:700}.vgt-selection-info-row a{font-weight:700;display:inline-block;margin-left:10px}.vgt-wrap__actions-footer{border:1px solid #dcdfe6}.vgt-wrap__footer{color:#606266;padding:1em;border:1px solid #dcdfe6;background:linear-gradient(#f4f5f8,#f1f3f6)}.vgt-wrap__footer .footer__row-count__label,.vgt-wrap__footer .footer__row-count__select{display:inline-block;vertical-align:middle}.vgt-wrap__footer .footer__row-count__label{font-size:14px;color:#909399}.vgt-wrap__footer .footer__row-count__select{background-color:transparent;width:auto;padding:0;border:0;border-radius:0;height:auto;font-size:14px;margin-left:8px;color:#606266;font-weight:700}.vgt-wrap__footer .footer__row-count__select:focus{outline:0;border-color:#409eff}.vgt-wrap__footer .footer__navigation{font-size:14px}.vgt-wrap__footer .footer__navigation__info,.vgt-wrap__footer .footer__navigation__page-btn,.vgt-wrap__footer .footer__navigation__page-info{display:inline-block;vertical-align:middle}.vgt-wrap__footer .footer__navigation__page-btn{text-decoration:none;color:#606266;font-weight:700;white-space:nowrap}.vgt-wrap__footer .footer__navigation__page-btn:focus{outline:0;border:0}.vgt-wrap__footer .footer__navigation__page-btn.disabled,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover{opacity:.5;cursor:not-allowed}.vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#606266}.vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#606266}.vgt-wrap__footer .footer__navigation__page-btn .chevron{width:24px;height:24px;border-radius:15%;position:relative;margin:0 8px}.vgt-wrap__footer .footer__navigation__page-btn .chevron:after{content:"";position:absolute;display:block;left:50%;top:50%;margin-top:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent}.vgt-wrap__footer .footer__navigation__page-btn .chevron.left::after{border-right:6px solid #409eff;margin-left:-3px}.vgt-wrap__footer .footer__navigation__page-btn .chevron.right::after{border-left:6px solid #409eff;margin-left:-3px}.vgt-wrap__footer .footer__navigation__info,.vgt-wrap__footer .footer__navigation__page-info{display:inline-block;color:#909399;margin:0 16px}.vgt-wrap__footer .footer__navigation__page-info__current-entry{width:30px;text-align:center;display:inline-block;margin:0 10px;font-weight:700}@media only screen and (max-width:750px){.vgt-wrap__footer .footer__navigation__info{display:none}.vgt-wrap__footer .footer__navigation__page-btn{margin-left:16px}}.vgt-table.nocturnal{border:1px solid #435169;background-color:#324057}.vgt-table.nocturnal tr.clickable:hover{background-color:#445168}.vgt-table.nocturnal td{border-bottom:1px solid #435169;color:#c7ced8}.vgt-table.nocturnal th.line-numbers,.vgt-table.nocturnal th.vgt-checkbox-col{color:#c7ced8;border-right:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-table.nocturnal thead th{color:#c7ced8;border-bottom:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-table.nocturnal thead th.sortable:before{border-top-color:#3e5170}.vgt-table.nocturnal thead th.sortable:after{border-bottom-color:#3e5170}.vgt-table.nocturnal thead th.sortable.sorting-asc{color:#fff}.vgt-table.nocturnal thead th.sortable.sorting-asc:after{border-bottom-color:#409eff}.vgt-table.nocturnal thead th.sortable.sorting-desc{color:#fff}.vgt-table.nocturnal thead th.sortable.sorting-desc:before{border-top-color:#409eff}.vgt-table.nocturnal.bordered td,.vgt-table.nocturnal.bordered th{border:1px solid #435169}.vgt-table.nocturnal .vgt-input,.vgt-table.nocturnal .vgt-select{color:#c7ced8;background-color:#232d3f;border:1px solid #435169}.vgt-table.nocturnal .vgt-input::placeholder,.vgt-table.nocturnal .vgt-select::placeholder{color:#c7ced8;opacity:.3}.vgt-wrap.nocturnal .vgt-wrap__footer{color:#c7ced8;border:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__label{color:#8290a7}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__select{color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__row-count__select:focus{border-color:#409eff}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn{color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#c7ced8}.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__info,.vgt-wrap.nocturnal .vgt-wrap__footer .footer__navigation__page-info{color:#8290a7}.vgt-wrap.nocturnal .vgt-global-search{border:1px solid #435169;background:linear-gradient(#2c394f,#2c394f)}.vgt-wrap.nocturnal .vgt-global-search__input .input__icon .magnifying-glass{border:2px solid #3f4c63}.vgt-wrap.nocturnal .vgt-global-search__input .input__icon .magnifying-glass:before{background:#3f4c63}.vgt-wrap.nocturnal .vgt-global-search__input .vgt-input,.vgt-wrap.nocturnal .vgt-global-search__input .vgt-select{color:#c7ced8;background-color:#232d3f;border:1px solid #435169}.vgt-wrap.nocturnal .vgt-global-search__input .vgt-input::placeholder,.vgt-wrap.nocturnal .vgt-global-search__input .vgt-select::placeholder{color:#c7ced8;opacity:.3}.vgt-table.black-rhino{border:1px solid #435169;background-color:#dfe5ee}.vgt-table.black-rhino tr.clickable:hover{background-color:#fff}.vgt-table.black-rhino td{border-bottom:1px solid #bbc5d6;color:#49515e}.vgt-table.black-rhino th.line-numbers,.vgt-table.black-rhino th.vgt-checkbox-col{color:#dae2f0;border-right:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-table.black-rhino thead th{color:#dae2f0;text-shadow:1px 1px #3e5170;border-bottom:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-table.black-rhino thead th.sortable:before{border-top-color:#607498}.vgt-table.black-rhino thead th.sortable:after{border-bottom-color:#607498}.vgt-table.black-rhino thead th.sortable.sorting-asc{color:#fff}.vgt-table.black-rhino thead th.sortable.sorting-asc:after{border-bottom-color:#409eff}.vgt-table.black-rhino thead th.sortable.sorting-desc:before{border-top-color:#409eff}.vgt-table.black-rhino.bordered td{border:1px solid #bbc5d6}.vgt-table.black-rhino.bordered th{border:1px solid #435169}.vgt-table.black-rhino .vgt-input,.vgt-table.black-rhino .vgt-select{color:#dae2f0;background-color:#34445f;border:1px solid transparent}.vgt-table.black-rhino .vgt-input::placeholder,.vgt-table.black-rhino .vgt-select::placeholder{color:#dae2f0;opacity:.3}.vgt-wrap.black-rhino .vgt-wrap__footer{color:#dae2f0;border:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count{position:relative;padding-right:3px}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__label{color:#98a5b9}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select{color:#49515e;background:#dfe5ee;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:15px;padding-left:5px;border-radius:3px}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select::-ms-expand{display:none}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count__select:focus{border-color:#409eff}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__row-count::after{content:"";display:block;position:absolute;height:0;width:0;right:6px;top:50%;margin-top:-1px;border-top:6px solid #49515e;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:none;pointer-events:none}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn{color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.left:after,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.left:after{border-right-color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled .chevron.right:after,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-btn.disabled:hover .chevron.right:after{border-left-color:#dae2f0}.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__info,.vgt-wrap.black-rhino .vgt-wrap__footer .footer__navigation__page-info{color:#dae2f0}.vgt-wrap.black-rhino .vgt-global-search{border:1px solid #435169;background:linear-gradient(#4c5c79,#4e5d7c)}.vgt-wrap.black-rhino .vgt-global-search__input .input__icon .magnifying-glass{border:2px solid #3f4c63}.vgt-wrap.black-rhino .vgt-global-search__input .input__icon .magnifying-glass:before{background:#3f4c63}.vgt-wrap.black-rhino .vgt-global-search__input .vgt-input,.vgt-wrap.black-rhino .vgt-global-search__input .vgt-select{color:#dae2f0;background-color:#44516c;border:1px solid transparent}.vgt-wrap.black-rhino .vgt-global-search__input .vgt-input::placeholder,.vgt-wrap.black-rhino .vgt-global-search__input .vgt-select::placeholder{color:#dae2f0;opacity:.3} \ No newline at end of file diff --git a/dist/vue-good-table.cjs.js b/dist/vue-good-table.cjs.js index 2fbb5a55..640d73e1 100644 --- a/dist/vue-good-table.cjs.js +++ b/dist/vue-good-table.cjs.js @@ -1,5 +1,5 @@ /** - * vue-good-table v2.21.0 + * vue-good-table v2.21.1 * (c) 2018-present xaksis * https://github.com/xaksis/vue-good-table * Released under the MIT License. @@ -7262,120 +7262,120 @@ function stubFalse() { module.exports = isEqual; }); -// all diacritics -var diacritics = - { - 'a' : ['a','à','á','â','ã','ä','å','æ','ā','ă','ą','ǎ','ǟ','ǡ','ǻ','ȁ','ȃ','ȧ','ɐ','ɑ','ɒ','ͣ','а','ӑ','ӓ','ᵃ','ᵄ','ᶏ','ḁ','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','ậ','ắ','ằ','ẳ','ẵ','ặ','ₐ','ⱥ','a'], - 'A' : ['A','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','Ǎ','Ǟ','Ǡ','Ǻ','Ȁ','Ȃ','Ȧ','Ⱥ','А','Ӑ','Ӓ','ᴀ','ᴬ','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'], - - 'b' : ['b','ƀ','ƃ','ɓ','ᖯ','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'], - 'B' : ['B','Ɓ','Ƃ','Ƀ','ʙ','ᛒ','ᴃ','ᴮ','ᴯ','Ḃ','Ḅ','Ḇ','B'], - - 'c' : ['c','ç','ć','ĉ','ċ','č','ƈ','ȼ','ɕ','ͨ','ᴄ','ᶜ','ḉ','ↄ','c'], - 'C' : ['C','Ç','Ć','Ĉ','Ċ','Č','Ƈ','Ȼ','ʗ','Ḉ','C'], - - 'd' : ['d','ď','đ','Ƌ','ƌ','ȡ','ɖ','ɗ','ͩ','ᵈ','ᵭ','ᶁ','ᶑ','ḋ','ḍ','ḏ','ḑ','ḓ','d'], - 'D' : ['D','Ď','Đ','Ɖ','Ɗ','ᴰ','Ḋ','Ḍ','Ḏ','Ḑ','Ḓ','D'], - - 'e' : ['e','è','é','ê','ë','ē','ĕ','ė','ę','ě','ǝ','ȅ','ȇ','ȩ','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','ḝ','ẹ','ẻ','ẽ','ế','ề','ể','ễ','ệ','ₑ','e'], - 'E' : ['E','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','Œ','Ǝ','Ɛ','Ȅ','Ȇ','Ȩ','Ɇ','ɛ','ɜ','ɶ','Є','Э','э','є','Ӭ','ӭ','ᴇ','ᴈ','ᴱ','ᴲ','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','E','𐐁','𐐩'], - - 'f' : ['f','ƒ','ᵮ','ᶂ','ᶠ','ḟ','f'], - 'F' : ['F','Ƒ','Ḟ','ⅎ','F'], - - 'g' : ['g','ĝ','ğ','ġ','ģ','ǥ','ǧ','ǵ','ɠ','ɡ','ᵍ','ᵷ','ᵹ','ᶃ','ᶢ','ḡ','g'], - 'G' : ['G','Ĝ','Ğ','Ġ','Ģ','Ɠ','Ǥ','Ǧ','Ǵ','ɢ','ʛ','ᴳ','Ḡ','G'], - - 'h' : ['h','ĥ','ħ','ƕ','ȟ','ɥ','ɦ','ʮ','ʯ','ʰ','ʱ','ͪ','Һ','һ','ᑋ','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'], - 'H' : ['H','Ĥ','Ħ','Ȟ','ʜ','ᕼ','ᚺ','ᚻ','ᴴ','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'], - - 'i' : ['i','ì','í','î','ï','ĩ','ī','ĭ','į','ǐ','ȉ','ȋ','ɨ','ͥ','ᴉ','ᵎ','ᵢ','ᶖ','ᶤ','ḭ','ḯ','ỉ','ị','i'], - 'I' : ['I','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','Ǐ','Ȉ','Ȋ','ɪ','І','ᴵ','ᵻ','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'], - - 'j' : ['j','ĵ','ǰ','ɉ','ʝ','ʲ','ᶡ','ᶨ','j'], - 'J' : ['J','Ĵ','ᴊ','ᴶ','J'], - - 'k' : ['k','ķ','ƙ','ǩ','ʞ','ᵏ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'], - 'K' : ['K','Ķ','Ƙ','Ǩ','ᴷ','Ḱ','Ḳ','Ḵ','Ⱪ','K'], - - 'l' : ['l','ĺ','ļ','ľ','ŀ','ł','ƚ','ȴ','ɫ','ɬ','ɭ','ˡ','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','ℓ','ⱡ'], - 'L' : ['L','Ĺ','Ļ','Ľ','Ŀ','Ł','Ƚ','ʟ','ᴌ','ᴸ','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','Ⱡ','Ɫ'], - - 'm' : ['m','ɯ','ɰ','ɱ','ͫ','ᴟ','ᵐ','ᵚ','ᵯ','ᶆ','ᶬ','ᶭ','ḿ','ṁ','ṃ','㎡','㎥','m'], - 'M' : ['M','Ɯ','ᴍ','ᴹ','Ḿ','Ṁ','Ṃ','M'], - - 'n' : ['n','ñ','ń','ņ','ň','ʼn','ƞ','ǹ','ȵ','ɲ','ɳ','ᵰ','ᶇ','ᶮ','ᶯ','ṅ','ṇ','ṉ','ṋ','ⁿ','n'], - 'N' : ['N','Ñ','Ń','Ņ','Ň','Ɲ','Ǹ','Ƞ','ɴ','ᴎ','ᴺ','ᴻ','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','N'], - - 'o' : ['o','ò','ó','ô','õ','ö','ø','ō','ŏ','ő','ơ','ǒ','ǫ','ǭ','ǿ','ȍ','ȏ','ȫ','ȭ','ȯ','ȱ','ɵ','ͦ','о','ӧ','ө','ᴏ','ᴑ','ᴓ','ᴼ','ᵒ','ᶱ','ṍ','ṏ','ṑ','ṓ','ọ','ỏ','ố','ồ','ổ','ỗ','ộ','ớ','ờ','ở','ỡ','ợ','ₒ','o','𐐬'], - 'O' : ['O','Ò','Ó','Ô','Õ','Ö','Ø','Ō','Ŏ','Ő','Ɵ','Ơ','Ǒ','Ǫ','Ǭ','Ǿ','Ȍ','Ȏ','Ȫ','Ȭ','Ȯ','Ȱ','О','Ӧ','Ө','Ṍ','Ṏ','Ṑ','Ṓ','Ọ','Ỏ','Ố','Ồ','Ổ','Ỗ','Ộ','Ớ','Ờ','Ở','Ỡ','Ợ','O','𐐄'], - - 'p' : ['p','ᵖ','ᵱ','ᵽ','ᶈ','ṕ','ṗ','p'], - 'P' : ['P','Ƥ','ᴘ','ᴾ','Ṕ','Ṗ','Ᵽ','P'], - - 'q' : ['q','ɋ','ʠ','ᛩ','q'], - 'Q' : ['Q','Ɋ','Q'], - - 'r' : ['r','ŕ','ŗ','ř','ȑ','ȓ','ɍ','ɹ','ɻ','ʳ','ʴ','ʵ','ͬ','ᵣ','ᵲ','ᶉ','ṙ','ṛ','ṝ','ṟ'], - 'R' : ['R','Ŕ','Ŗ','Ř','Ʀ','Ȑ','Ȓ','Ɍ','ʀ','ʁ','ʶ','ᚱ','ᴙ','ᴚ','ᴿ','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'], - - 's' : ['s','ś','ŝ','ş','š','ș','ʂ','ᔆ','ᶊ','ṡ','ṣ','ṥ','ṧ','ṩ','s'], - 'S' : ['S','Ś','Ŝ','Ş','Š','Ș','ȿ','ˢ','ᵴ','Ṡ','Ṣ','Ṥ','Ṧ','Ṩ','S'], - - 't' : ['t','ţ','ť','ŧ','ƫ','ƭ','ț','ʇ','ͭ','ᵀ','ᵗ','ᵵ','ᶵ','ṫ','ṭ','ṯ','ṱ','ẗ','t'], - 'T' : ['T','Ţ','Ť','Ƭ','Ʈ','Ț','Ⱦ','ᴛ','ᵀ','Ṫ','Ṭ','Ṯ','Ṱ','T'], - - 'u' : ['u','ù','ú','û','ü','ũ','ū','ŭ','ů','ű','ų','ư','ǔ','ǖ','ǘ','ǚ','ǜ','ȕ','ȗ','ͧ','ߎ','ᵘ','ᵤ','ṳ','ṵ','ṷ','ṹ','ṻ','ụ','ủ','ứ','ừ','ử','ữ','ự','u'], - 'U' : ['U','Ù','Ú','Û','Ü','Ũ','Ū','Ŭ','Ů','Ű','Ų','Ư','Ǔ','Ǖ','Ǘ','Ǚ','Ǜ','Ȕ','Ȗ','Ʉ','ᴜ','ᵁ','ᵾ','Ṳ','Ṵ','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','Ữ','Ự','U'], - - 'v' : ['v','ʋ','ͮ','ᵛ','ᵥ','ᶹ','ṽ','ṿ','ⱱ','v','ⱴ'], - 'V' : ['V','Ʋ','Ʌ','ʌ','ᴠ','ᶌ','Ṽ','Ṿ','V'], - - 'w' : ['w','ŵ','ʷ','ᵂ','ẁ','ẃ','ẅ','ẇ','ẉ','ẘ','ⱳ','w'], - 'W' : ['W','Ŵ','ʍ','ᴡ','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','Ⱳ','W'], - - 'x' : ['x','̽','͓','ᶍ','ͯ','ẋ','ẍ','ₓ','x'], - 'X' : ['X','ˣ','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'], - - 'y' : ['y','ý','ÿ','ŷ','ȳ','ɏ','ʸ','ẏ','ỳ','ỵ','ỷ','ỹ','y'], - 'Y' : ['Y','Ý','Ŷ','Ÿ','Ƴ','ƴ','Ȳ','Ɏ','ʎ','ʏ','Ẏ','Ỳ','Ỵ','Ỷ','Ỹ','Y'], - - 'z' : ['z','ź','ż','ž','ƶ','ȥ','ɀ','ʐ','ʑ','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'], - 'Z' : ['Z','Ź','Ż','Ž','Ƶ','Ȥ','ᴢ','ᵶ','Ẑ','Ẓ','Ẕ','Ⱬ','Z'] - }; - -/* - * Main function of the module which removes all diacritics from the received text - */ -var diacriticless = function (text) { - var result = []; - - // iterate over all the characters of the received text - for(var i=0; i * https://github.com/xaksis/vue-good-table * Released under the MIT License. @@ -7258,120 +7258,120 @@ function stubFalse() { module.exports = isEqual; }); -// all diacritics -var diacritics = - { - 'a' : ['a','à','á','â','ã','ä','å','æ','ā','ă','ą','ǎ','ǟ','ǡ','ǻ','ȁ','ȃ','ȧ','ɐ','ɑ','ɒ','ͣ','а','ӑ','ӓ','ᵃ','ᵄ','ᶏ','ḁ','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','ậ','ắ','ằ','ẳ','ẵ','ặ','ₐ','ⱥ','a'], - 'A' : ['A','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','Ǎ','Ǟ','Ǡ','Ǻ','Ȁ','Ȃ','Ȧ','Ⱥ','А','Ӑ','Ӓ','ᴀ','ᴬ','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'], - - 'b' : ['b','ƀ','ƃ','ɓ','ᖯ','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'], - 'B' : ['B','Ɓ','Ƃ','Ƀ','ʙ','ᛒ','ᴃ','ᴮ','ᴯ','Ḃ','Ḅ','Ḇ','B'], - - 'c' : ['c','ç','ć','ĉ','ċ','č','ƈ','ȼ','ɕ','ͨ','ᴄ','ᶜ','ḉ','ↄ','c'], - 'C' : ['C','Ç','Ć','Ĉ','Ċ','Č','Ƈ','Ȼ','ʗ','Ḉ','C'], - - 'd' : ['d','ď','đ','Ƌ','ƌ','ȡ','ɖ','ɗ','ͩ','ᵈ','ᵭ','ᶁ','ᶑ','ḋ','ḍ','ḏ','ḑ','ḓ','d'], - 'D' : ['D','Ď','Đ','Ɖ','Ɗ','ᴰ','Ḋ','Ḍ','Ḏ','Ḑ','Ḓ','D'], - - 'e' : ['e','è','é','ê','ë','ē','ĕ','ė','ę','ě','ǝ','ȅ','ȇ','ȩ','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','ḝ','ẹ','ẻ','ẽ','ế','ề','ể','ễ','ệ','ₑ','e'], - 'E' : ['E','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','Œ','Ǝ','Ɛ','Ȅ','Ȇ','Ȩ','Ɇ','ɛ','ɜ','ɶ','Є','Э','э','є','Ӭ','ӭ','ᴇ','ᴈ','ᴱ','ᴲ','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','E','𐐁','𐐩'], - - 'f' : ['f','ƒ','ᵮ','ᶂ','ᶠ','ḟ','f'], - 'F' : ['F','Ƒ','Ḟ','ⅎ','F'], - - 'g' : ['g','ĝ','ğ','ġ','ģ','ǥ','ǧ','ǵ','ɠ','ɡ','ᵍ','ᵷ','ᵹ','ᶃ','ᶢ','ḡ','g'], - 'G' : ['G','Ĝ','Ğ','Ġ','Ģ','Ɠ','Ǥ','Ǧ','Ǵ','ɢ','ʛ','ᴳ','Ḡ','G'], - - 'h' : ['h','ĥ','ħ','ƕ','ȟ','ɥ','ɦ','ʮ','ʯ','ʰ','ʱ','ͪ','Һ','һ','ᑋ','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'], - 'H' : ['H','Ĥ','Ħ','Ȟ','ʜ','ᕼ','ᚺ','ᚻ','ᴴ','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'], - - 'i' : ['i','ì','í','î','ï','ĩ','ī','ĭ','į','ǐ','ȉ','ȋ','ɨ','ͥ','ᴉ','ᵎ','ᵢ','ᶖ','ᶤ','ḭ','ḯ','ỉ','ị','i'], - 'I' : ['I','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','Ǐ','Ȉ','Ȋ','ɪ','І','ᴵ','ᵻ','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'], - - 'j' : ['j','ĵ','ǰ','ɉ','ʝ','ʲ','ᶡ','ᶨ','j'], - 'J' : ['J','Ĵ','ᴊ','ᴶ','J'], - - 'k' : ['k','ķ','ƙ','ǩ','ʞ','ᵏ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'], - 'K' : ['K','Ķ','Ƙ','Ǩ','ᴷ','Ḱ','Ḳ','Ḵ','Ⱪ','K'], - - 'l' : ['l','ĺ','ļ','ľ','ŀ','ł','ƚ','ȴ','ɫ','ɬ','ɭ','ˡ','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','ℓ','ⱡ'], - 'L' : ['L','Ĺ','Ļ','Ľ','Ŀ','Ł','Ƚ','ʟ','ᴌ','ᴸ','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','Ⱡ','Ɫ'], - - 'm' : ['m','ɯ','ɰ','ɱ','ͫ','ᴟ','ᵐ','ᵚ','ᵯ','ᶆ','ᶬ','ᶭ','ḿ','ṁ','ṃ','㎡','㎥','m'], - 'M' : ['M','Ɯ','ᴍ','ᴹ','Ḿ','Ṁ','Ṃ','M'], - - 'n' : ['n','ñ','ń','ņ','ň','ʼn','ƞ','ǹ','ȵ','ɲ','ɳ','ᵰ','ᶇ','ᶮ','ᶯ','ṅ','ṇ','ṉ','ṋ','ⁿ','n'], - 'N' : ['N','Ñ','Ń','Ņ','Ň','Ɲ','Ǹ','Ƞ','ɴ','ᴎ','ᴺ','ᴻ','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','N'], - - 'o' : ['o','ò','ó','ô','õ','ö','ø','ō','ŏ','ő','ơ','ǒ','ǫ','ǭ','ǿ','ȍ','ȏ','ȫ','ȭ','ȯ','ȱ','ɵ','ͦ','о','ӧ','ө','ᴏ','ᴑ','ᴓ','ᴼ','ᵒ','ᶱ','ṍ','ṏ','ṑ','ṓ','ọ','ỏ','ố','ồ','ổ','ỗ','ộ','ớ','ờ','ở','ỡ','ợ','ₒ','o','𐐬'], - 'O' : ['O','Ò','Ó','Ô','Õ','Ö','Ø','Ō','Ŏ','Ő','Ɵ','Ơ','Ǒ','Ǫ','Ǭ','Ǿ','Ȍ','Ȏ','Ȫ','Ȭ','Ȯ','Ȱ','О','Ӧ','Ө','Ṍ','Ṏ','Ṑ','Ṓ','Ọ','Ỏ','Ố','Ồ','Ổ','Ỗ','Ộ','Ớ','Ờ','Ở','Ỡ','Ợ','O','𐐄'], - - 'p' : ['p','ᵖ','ᵱ','ᵽ','ᶈ','ṕ','ṗ','p'], - 'P' : ['P','Ƥ','ᴘ','ᴾ','Ṕ','Ṗ','Ᵽ','P'], - - 'q' : ['q','ɋ','ʠ','ᛩ','q'], - 'Q' : ['Q','Ɋ','Q'], - - 'r' : ['r','ŕ','ŗ','ř','ȑ','ȓ','ɍ','ɹ','ɻ','ʳ','ʴ','ʵ','ͬ','ᵣ','ᵲ','ᶉ','ṙ','ṛ','ṝ','ṟ'], - 'R' : ['R','Ŕ','Ŗ','Ř','Ʀ','Ȑ','Ȓ','Ɍ','ʀ','ʁ','ʶ','ᚱ','ᴙ','ᴚ','ᴿ','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'], - - 's' : ['s','ś','ŝ','ş','š','ș','ʂ','ᔆ','ᶊ','ṡ','ṣ','ṥ','ṧ','ṩ','s'], - 'S' : ['S','Ś','Ŝ','Ş','Š','Ș','ȿ','ˢ','ᵴ','Ṡ','Ṣ','Ṥ','Ṧ','Ṩ','S'], - - 't' : ['t','ţ','ť','ŧ','ƫ','ƭ','ț','ʇ','ͭ','ᵀ','ᵗ','ᵵ','ᶵ','ṫ','ṭ','ṯ','ṱ','ẗ','t'], - 'T' : ['T','Ţ','Ť','Ƭ','Ʈ','Ț','Ⱦ','ᴛ','ᵀ','Ṫ','Ṭ','Ṯ','Ṱ','T'], - - 'u' : ['u','ù','ú','û','ü','ũ','ū','ŭ','ů','ű','ų','ư','ǔ','ǖ','ǘ','ǚ','ǜ','ȕ','ȗ','ͧ','ߎ','ᵘ','ᵤ','ṳ','ṵ','ṷ','ṹ','ṻ','ụ','ủ','ứ','ừ','ử','ữ','ự','u'], - 'U' : ['U','Ù','Ú','Û','Ü','Ũ','Ū','Ŭ','Ů','Ű','Ų','Ư','Ǔ','Ǖ','Ǘ','Ǚ','Ǜ','Ȕ','Ȗ','Ʉ','ᴜ','ᵁ','ᵾ','Ṳ','Ṵ','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','Ữ','Ự','U'], - - 'v' : ['v','ʋ','ͮ','ᵛ','ᵥ','ᶹ','ṽ','ṿ','ⱱ','v','ⱴ'], - 'V' : ['V','Ʋ','Ʌ','ʌ','ᴠ','ᶌ','Ṽ','Ṿ','V'], - - 'w' : ['w','ŵ','ʷ','ᵂ','ẁ','ẃ','ẅ','ẇ','ẉ','ẘ','ⱳ','w'], - 'W' : ['W','Ŵ','ʍ','ᴡ','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','Ⱳ','W'], - - 'x' : ['x','̽','͓','ᶍ','ͯ','ẋ','ẍ','ₓ','x'], - 'X' : ['X','ˣ','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'], - - 'y' : ['y','ý','ÿ','ŷ','ȳ','ɏ','ʸ','ẏ','ỳ','ỵ','ỷ','ỹ','y'], - 'Y' : ['Y','Ý','Ŷ','Ÿ','Ƴ','ƴ','Ȳ','Ɏ','ʎ','ʏ','Ẏ','Ỳ','Ỵ','Ỷ','Ỹ','Y'], - - 'z' : ['z','ź','ż','ž','ƶ','ȥ','ɀ','ʐ','ʑ','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'], - 'Z' : ['Z','Ź','Ż','Ž','Ƶ','Ȥ','ᴢ','ᵶ','Ẑ','Ẓ','Ẕ','Ⱬ','Z'] - }; - -/* - * Main function of the module which removes all diacritics from the received text - */ -var diacriticless = function (text) { - var result = []; - - // iterate over all the characters of the received text - for(var i=0; i * https://github.com/xaksis/vue-good-table * Released under the MIT License. @@ -7264,120 +7264,120 @@ module.exports = isEqual; }); - // all diacritics - var diacritics = - { - 'a' : ['a','à','á','â','ã','ä','å','æ','ā','ă','ą','ǎ','ǟ','ǡ','ǻ','ȁ','ȃ','ȧ','ɐ','ɑ','ɒ','ͣ','а','ӑ','ӓ','ᵃ','ᵄ','ᶏ','ḁ','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','ậ','ắ','ằ','ẳ','ẵ','ặ','ₐ','ⱥ','a'], - 'A' : ['A','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','Ǎ','Ǟ','Ǡ','Ǻ','Ȁ','Ȃ','Ȧ','Ⱥ','А','Ӑ','Ӓ','ᴀ','ᴬ','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'], - - 'b' : ['b','ƀ','ƃ','ɓ','ᖯ','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'], - 'B' : ['B','Ɓ','Ƃ','Ƀ','ʙ','ᛒ','ᴃ','ᴮ','ᴯ','Ḃ','Ḅ','Ḇ','B'], - - 'c' : ['c','ç','ć','ĉ','ċ','č','ƈ','ȼ','ɕ','ͨ','ᴄ','ᶜ','ḉ','ↄ','c'], - 'C' : ['C','Ç','Ć','Ĉ','Ċ','Č','Ƈ','Ȼ','ʗ','Ḉ','C'], - - 'd' : ['d','ď','đ','Ƌ','ƌ','ȡ','ɖ','ɗ','ͩ','ᵈ','ᵭ','ᶁ','ᶑ','ḋ','ḍ','ḏ','ḑ','ḓ','d'], - 'D' : ['D','Ď','Đ','Ɖ','Ɗ','ᴰ','Ḋ','Ḍ','Ḏ','Ḑ','Ḓ','D'], - - 'e' : ['e','è','é','ê','ë','ē','ĕ','ė','ę','ě','ǝ','ȅ','ȇ','ȩ','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','ḝ','ẹ','ẻ','ẽ','ế','ề','ể','ễ','ệ','ₑ','e'], - 'E' : ['E','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','Œ','Ǝ','Ɛ','Ȅ','Ȇ','Ȩ','Ɇ','ɛ','ɜ','ɶ','Є','Э','э','є','Ӭ','ӭ','ᴇ','ᴈ','ᴱ','ᴲ','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','E','𐐁','𐐩'], - - 'f' : ['f','ƒ','ᵮ','ᶂ','ᶠ','ḟ','f'], - 'F' : ['F','Ƒ','Ḟ','ⅎ','F'], - - 'g' : ['g','ĝ','ğ','ġ','ģ','ǥ','ǧ','ǵ','ɠ','ɡ','ᵍ','ᵷ','ᵹ','ᶃ','ᶢ','ḡ','g'], - 'G' : ['G','Ĝ','Ğ','Ġ','Ģ','Ɠ','Ǥ','Ǧ','Ǵ','ɢ','ʛ','ᴳ','Ḡ','G'], - - 'h' : ['h','ĥ','ħ','ƕ','ȟ','ɥ','ɦ','ʮ','ʯ','ʰ','ʱ','ͪ','Һ','һ','ᑋ','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'], - 'H' : ['H','Ĥ','Ħ','Ȟ','ʜ','ᕼ','ᚺ','ᚻ','ᴴ','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'], - - 'i' : ['i','ì','í','î','ï','ĩ','ī','ĭ','į','ǐ','ȉ','ȋ','ɨ','ͥ','ᴉ','ᵎ','ᵢ','ᶖ','ᶤ','ḭ','ḯ','ỉ','ị','i'], - 'I' : ['I','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','Ǐ','Ȉ','Ȋ','ɪ','І','ᴵ','ᵻ','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'], - - 'j' : ['j','ĵ','ǰ','ɉ','ʝ','ʲ','ᶡ','ᶨ','j'], - 'J' : ['J','Ĵ','ᴊ','ᴶ','J'], - - 'k' : ['k','ķ','ƙ','ǩ','ʞ','ᵏ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'], - 'K' : ['K','Ķ','Ƙ','Ǩ','ᴷ','Ḱ','Ḳ','Ḵ','Ⱪ','K'], - - 'l' : ['l','ĺ','ļ','ľ','ŀ','ł','ƚ','ȴ','ɫ','ɬ','ɭ','ˡ','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','ℓ','ⱡ'], - 'L' : ['L','Ĺ','Ļ','Ľ','Ŀ','Ł','Ƚ','ʟ','ᴌ','ᴸ','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','Ⱡ','Ɫ'], - - 'm' : ['m','ɯ','ɰ','ɱ','ͫ','ᴟ','ᵐ','ᵚ','ᵯ','ᶆ','ᶬ','ᶭ','ḿ','ṁ','ṃ','㎡','㎥','m'], - 'M' : ['M','Ɯ','ᴍ','ᴹ','Ḿ','Ṁ','Ṃ','M'], - - 'n' : ['n','ñ','ń','ņ','ň','ʼn','ƞ','ǹ','ȵ','ɲ','ɳ','ᵰ','ᶇ','ᶮ','ᶯ','ṅ','ṇ','ṉ','ṋ','ⁿ','n'], - 'N' : ['N','Ñ','Ń','Ņ','Ň','Ɲ','Ǹ','Ƞ','ɴ','ᴎ','ᴺ','ᴻ','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','N'], - - 'o' : ['o','ò','ó','ô','õ','ö','ø','ō','ŏ','ő','ơ','ǒ','ǫ','ǭ','ǿ','ȍ','ȏ','ȫ','ȭ','ȯ','ȱ','ɵ','ͦ','о','ӧ','ө','ᴏ','ᴑ','ᴓ','ᴼ','ᵒ','ᶱ','ṍ','ṏ','ṑ','ṓ','ọ','ỏ','ố','ồ','ổ','ỗ','ộ','ớ','ờ','ở','ỡ','ợ','ₒ','o','𐐬'], - 'O' : ['O','Ò','Ó','Ô','Õ','Ö','Ø','Ō','Ŏ','Ő','Ɵ','Ơ','Ǒ','Ǫ','Ǭ','Ǿ','Ȍ','Ȏ','Ȫ','Ȭ','Ȯ','Ȱ','О','Ӧ','Ө','Ṍ','Ṏ','Ṑ','Ṓ','Ọ','Ỏ','Ố','Ồ','Ổ','Ỗ','Ộ','Ớ','Ờ','Ở','Ỡ','Ợ','O','𐐄'], - - 'p' : ['p','ᵖ','ᵱ','ᵽ','ᶈ','ṕ','ṗ','p'], - 'P' : ['P','Ƥ','ᴘ','ᴾ','Ṕ','Ṗ','Ᵽ','P'], - - 'q' : ['q','ɋ','ʠ','ᛩ','q'], - 'Q' : ['Q','Ɋ','Q'], - - 'r' : ['r','ŕ','ŗ','ř','ȑ','ȓ','ɍ','ɹ','ɻ','ʳ','ʴ','ʵ','ͬ','ᵣ','ᵲ','ᶉ','ṙ','ṛ','ṝ','ṟ'], - 'R' : ['R','Ŕ','Ŗ','Ř','Ʀ','Ȑ','Ȓ','Ɍ','ʀ','ʁ','ʶ','ᚱ','ᴙ','ᴚ','ᴿ','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'], - - 's' : ['s','ś','ŝ','ş','š','ș','ʂ','ᔆ','ᶊ','ṡ','ṣ','ṥ','ṧ','ṩ','s'], - 'S' : ['S','Ś','Ŝ','Ş','Š','Ș','ȿ','ˢ','ᵴ','Ṡ','Ṣ','Ṥ','Ṧ','Ṩ','S'], - - 't' : ['t','ţ','ť','ŧ','ƫ','ƭ','ț','ʇ','ͭ','ᵀ','ᵗ','ᵵ','ᶵ','ṫ','ṭ','ṯ','ṱ','ẗ','t'], - 'T' : ['T','Ţ','Ť','Ƭ','Ʈ','Ț','Ⱦ','ᴛ','ᵀ','Ṫ','Ṭ','Ṯ','Ṱ','T'], - - 'u' : ['u','ù','ú','û','ü','ũ','ū','ŭ','ů','ű','ų','ư','ǔ','ǖ','ǘ','ǚ','ǜ','ȕ','ȗ','ͧ','ߎ','ᵘ','ᵤ','ṳ','ṵ','ṷ','ṹ','ṻ','ụ','ủ','ứ','ừ','ử','ữ','ự','u'], - 'U' : ['U','Ù','Ú','Û','Ü','Ũ','Ū','Ŭ','Ů','Ű','Ų','Ư','Ǔ','Ǖ','Ǘ','Ǚ','Ǜ','Ȕ','Ȗ','Ʉ','ᴜ','ᵁ','ᵾ','Ṳ','Ṵ','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','Ữ','Ự','U'], - - 'v' : ['v','ʋ','ͮ','ᵛ','ᵥ','ᶹ','ṽ','ṿ','ⱱ','v','ⱴ'], - 'V' : ['V','Ʋ','Ʌ','ʌ','ᴠ','ᶌ','Ṽ','Ṿ','V'], - - 'w' : ['w','ŵ','ʷ','ᵂ','ẁ','ẃ','ẅ','ẇ','ẉ','ẘ','ⱳ','w'], - 'W' : ['W','Ŵ','ʍ','ᴡ','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','Ⱳ','W'], - - 'x' : ['x','̽','͓','ᶍ','ͯ','ẋ','ẍ','ₓ','x'], - 'X' : ['X','ˣ','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'], - - 'y' : ['y','ý','ÿ','ŷ','ȳ','ɏ','ʸ','ẏ','ỳ','ỵ','ỷ','ỹ','y'], - 'Y' : ['Y','Ý','Ŷ','Ÿ','Ƴ','ƴ','Ȳ','Ɏ','ʎ','ʏ','Ẏ','Ỳ','Ỵ','Ỷ','Ỹ','Y'], - - 'z' : ['z','ź','ż','ž','ƶ','ȥ','ɀ','ʐ','ʑ','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'], - 'Z' : ['Z','Ź','Ż','Ž','Ƶ','Ȥ','ᴢ','ᵶ','Ẑ','Ẓ','Ẕ','Ⱬ','Z'] - }; - - /* - * Main function of the module which removes all diacritics from the received text - */ - var diacriticless = function (text) { - var result = []; - - // iterate over all the characters of the received text - for(var i=0; i * https://github.com/xaksis/vue-good-table * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self)["vue-good-table"]={})}(this,function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=t[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){a=!0,o=t}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function r(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e-1&&t%1==0&&t-1&&t%1==0&&t<=a}(t.length)&&!function(t){var e=function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}(t)?p.call(t):"";return e==i||e==s}(t)}function S(t){return P(t)?m(t):T(t)}function k(t){return t}var O=function(t,e){return(C(t)?l:b)(t,"function"==typeof e?e:k)},j=9007199254740991,R="[object Arguments]",D="[object Function]",E="[object GeneratorFunction]",F=/^(?:0|[1-9]\d*)$/;var M=Object.prototype,A=M.hasOwnProperty,U=M.toString,I=M.propertyIsEnumerable,$=function(t,e){return function(n){return t(e(n))}}(Object.keys,Object),N=Math.max,q=!I.call({valueOf:1},"valueOf");function B(t,e){var n=W(t)||function(t){return function(t){return function(t){return!!t&&"object"==typeof t}(t)&&Q(t)}(t)&&A.call(t,"callee")&&(!I.call(t,"callee")||U.call(t)==R)}(t)?function(t,e){for(var n=-1,r=Array(t);++n-1&&t%1==0&&t-1&&t%1==0&&t<=j}(t.length)&&!function(t){var e=G(t)?U.call(t):"";return e==D||e==E}(t)}function G(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var X=function(t){return e=function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,i=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,i&&function(t,e,n){if(!G(n))return!1;var r=typeof e;return!!("number"==r?Q(n)&&H(e,n.length):"string"==r&&e in n)&&z(n[e],t)}(n[0],n[1],i)&&(o=a<3?void 0:o,a=1),e=Object(e);++r-1},St.prototype.set=function(t,e){var n=this.__data__,r=Dt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},kt.prototype.clear=function(){this.__data__={hash:new Pt,map:new(ht||St),string:new Pt}},kt.prototype.delete=function(t){return Ut(this,t).delete(t)},kt.prototype.get=function(t){return Ut(this,t).get(t)},kt.prototype.has=function(t){return Ut(this,t).has(t)},kt.prototype.set=function(t,e){return Ut(this,t).set(t,e),this},Ot.prototype.clear=function(){this.__data__=new St},Ot.prototype.delete=function(t){return this.__data__.delete(t)},Ot.prototype.get=function(t){return this.__data__.get(t)},Ot.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.set=function(t,e){var r=this.__data__;if(r instanceof St){var a=r.__data__;if(!ht||a.length-1&&t%1==0&&t-1&&t%1==0&&t<=a}(t.length)&&!Qt(t)}var Wt=ct||function(){return!1};function Qt(t){var e=Gt(t)?tt.call(t):"";return e==u||e==l}function Gt(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Xt(t){return zt(t)?jt(t):function(t){if(!Bt(t))return dt(t);var e=[];for(var n in Object(t))Z.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}t.exports=function(t){return Et(t,!0,!0)}}),Z=V(function(t,e){var n=200,r="Expected a function",a="__lodash_hash_undefined__",o=1,i=2,s=1/0,u=9007199254740991,l="[object Arguments]",c="[object Array]",d="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",g="[object GeneratorFunction]",v="[object Map]",m="[object Number]",w="[object Object]",y="[object RegExp]",b="[object Set]",_="[object String]",T="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",P=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,S=/^\w*$/,k=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,j=/\\(\\)?/g,R=/^\[object .+?Constructor\]$/,D=/^(?:0|[1-9]\d*)$/,E={};E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E[l]=E[c]=E[x]=E[d]=E[C]=E[f]=E[h]=E[p]=E[v]=E[m]=E[w]=E[y]=E[b]=E[_]=E["[object WeakMap]"]=!1;var F="object"==typeof K&&K&&K.Object===Object&&K,M="object"==typeof self&&self&&self.Object===Object&&self,A=F||M||Function("return this")(),U=e&&!e.nodeType&&e,I=U&&t&&!t.nodeType&&t,$=I&&I.exports===U&&F.process,N=function(){try{return $&&$.binding("util")}catch(t){}}(),q=N&&N.isTypedArray;function B(t,e){for(var n=-1,r=t?t.length:0,a=0,o=[];++n-1},Pt.prototype.set=function(t,e){var n=this.__data__,r=Rt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},St.prototype.clear=function(){this.__data__={hash:new Ct,map:new(dt||Pt),string:new Ct}},St.prototype.delete=function(t){return Yt(this,t).delete(t)},St.prototype.get=function(t){return Yt(this,t).get(t)},St.prototype.has=function(t){return Yt(this,t).has(t)},St.prototype.set=function(t,e){return Yt(this,t).set(t,e),this},kt.prototype.add=kt.prototype.push=function(t){return this.__data__.set(t,a),this},kt.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.clear=function(){this.__data__=new Pt},Ot.prototype.delete=function(t){return this.__data__.delete(t)},Ot.prototype.get=function(t){return this.__data__.get(t)},Ot.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Pt){var a=r.__data__;if(!dt||a.lengthl))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var f=-1,h=!0,p=a&o?new kt:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=u}function se(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ue(t){return!!t&&"object"==typeof t}function le(t){return"symbol"==typeof t||ue(t)&&rt.call(t)==T}var ce=q?function(t){return function(e){return t(e)}}(q):function(t){return ue(t)&&ie(t.length)&&!!E[rt.call(t)]};function de(t){return ae(t)?jt(t):Bt(t)}function fe(t){return t}t.exports=function(t,e){return(re(t)?B:Mt)(t,qt(e))}}),tt=V(function(t,e){var n=200,r="__lodash_hash_undefined__",a=1,o=2,i=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object AsyncFunction]",c="[object Boolean]",d="[object Date]",f="[object Error]",h="[object Function]",p="[object GeneratorFunction]",g="[object Map]",v="[object Number]",m="[object Null]",w="[object Object]",y="[object Proxy]",b="[object RegExp]",_="[object Set]",T="[object String]",x="[object Symbol]",C="[object Undefined]",P="[object ArrayBuffer]",S="[object DataView]",k=/^\[object .+?Constructor\]$/,O=/^(?:0|[1-9]\d*)$/,j={};j["[object Float32Array]"]=j["[object Float64Array]"]=j["[object Int8Array]"]=j["[object Int16Array]"]=j["[object Int32Array]"]=j["[object Uint8Array]"]=j["[object Uint8ClampedArray]"]=j["[object Uint16Array]"]=j["[object Uint32Array]"]=!0,j[s]=j[u]=j[P]=j[c]=j[S]=j[d]=j[f]=j[h]=j[g]=j[v]=j[w]=j[b]=j[_]=j[T]=j["[object WeakMap]"]=!1;var R="object"==typeof K&&K&&K.Object===Object&&K,D="object"==typeof self&&self&&self.Object===Object&&self,E=R||D||Function("return this")(),F=e&&!e.nodeType&&e,M=F&&t&&!t.nodeType&&t,A=M&&M.exports===F,U=A&&R.process,I=function(){try{return U&&U.binding&&U.binding("util")}catch(t){}}(),$=I&&I.isTypedArray;function N(t,e){for(var n=-1,r=null==t?0:t.length;++nl))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var f=-1,h=!0,p=n&o?new St:void 0;for(s.set(t,e),s.set(e,t);++f-1},Ct.prototype.set=function(t,e){var n=this.__data__,r=jt(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Pt.prototype.clear=function(){this.size=0,this.__data__={hash:new xt,map:new(dt||Ct),string:new xt}},Pt.prototype.delete=function(t){var e=It(this,t).delete(t);return this.size-=e?1:0,e},Pt.prototype.get=function(t){return It(this,t).get(t)},Pt.prototype.has=function(t){return It(this,t).has(t)},Pt.prototype.set=function(t,e){var n=It(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},St.prototype.add=St.prototype.push=function(t){return this.__data__.set(t,r),this},St.prototype.has=function(t){return this.__data__.has(t)},kt.prototype.clear=function(){this.__data__=new Ct,this.size=0},kt.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},kt.prototype.get=function(t){return this.__data__.get(t)},kt.prototype.has=function(t){return this.__data__.has(t)},kt.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Ct){var a=r.__data__;if(!dt||a.length-1&&t%1==0&&t-1&&t%1==0&&t<=i}function Xt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Kt(t){return null!=t&&"object"==typeof t}var Vt=$?function(t){return function(e){return t(e)}}($):function(t){return Kt(t)&&Gt(t.length)&&!!j[Rt(t)]};function Jt(t){return null!=(e=t)&&Gt(e.length)&&!Qt(e)?Ot(t):Mt(t);var e}t.exports=function(t,e){return Et(t,e)}}),et={a:["a","à","á","â","ã","ä","å","æ","ā","ă","ą","ǎ","ǟ","ǡ","ǻ","ȁ","ȃ","ȧ","ɐ","ɑ","ɒ","ͣ","а","ӑ","ӓ","ᵃ","ᵄ","ᶏ","ḁ","ẚ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ₐ","ⱥ","a"],A:["A","À","Á","Â","Ã","Ä","Å","Ā","Ă","Ą","Ǎ","Ǟ","Ǡ","Ǻ","Ȁ","Ȃ","Ȧ","Ⱥ","А","Ӑ","Ӓ","ᴀ","ᴬ","Ḁ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","A"],b:["b","ƀ","ƃ","ɓ","ᖯ","ᵇ","ᵬ","ᶀ","ḃ","ḅ","ḇ","b"],B:["B","Ɓ","Ƃ","Ƀ","ʙ","ᛒ","ᴃ","ᴮ","ᴯ","Ḃ","Ḅ","Ḇ","B"],c:["c","ç","ć","ĉ","ċ","č","ƈ","ȼ","ɕ","ͨ","ᴄ","ᶜ","ḉ","ↄ","c"],C:["C","Ç","Ć","Ĉ","Ċ","Č","Ƈ","Ȼ","ʗ","Ḉ","C"],d:["d","ď","đ","Ƌ","ƌ","ȡ","ɖ","ɗ","ͩ","ᵈ","ᵭ","ᶁ","ᶑ","ḋ","ḍ","ḏ","ḑ","ḓ","d"],D:["D","Ď","Đ","Ɖ","Ɗ","ᴰ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","D"],e:["e","è","é","ê","ë","ē","ĕ","ė","ę","ě","ǝ","ȅ","ȇ","ȩ","ɇ","ɘ","ͤ","ᵉ","ᶒ","ḕ","ḗ","ḙ","ḛ","ḝ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ₑ","e"],E:["E","È","É","Ê","Ë","Ē","Ĕ","Ė","Ę","Ě","Œ","Ǝ","Ɛ","Ȅ","Ȇ","Ȩ","Ɇ","ɛ","ɜ","ɶ","Є","Э","э","є","Ӭ","ӭ","ᴇ","ᴈ","ᴱ","ᴲ","ᵋ","ᵌ","ᶓ","ᶔ","ᶟ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","E","𐐁","𐐩"],f:["f","ƒ","ᵮ","ᶂ","ᶠ","ḟ","f"],F:["F","Ƒ","Ḟ","ⅎ","F"],g:["g","ĝ","ğ","ġ","ģ","ǥ","ǧ","ǵ","ɠ","ɡ","ᵍ","ᵷ","ᵹ","ᶃ","ᶢ","ḡ","g"],G:["G","Ĝ","Ğ","Ġ","Ģ","Ɠ","Ǥ","Ǧ","Ǵ","ɢ","ʛ","ᴳ","Ḡ","G"],h:["h","ĥ","ħ","ƕ","ȟ","ɥ","ɦ","ʮ","ʯ","ʰ","ʱ","ͪ","Һ","һ","ᑋ","ᶣ","ḣ","ḥ","ḧ","ḩ","ḫ","ⱨ","h"],H:["H","Ĥ","Ħ","Ȟ","ʜ","ᕼ","ᚺ","ᚻ","ᴴ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ⱨ","H"],i:["i","ì","í","î","ï","ĩ","ī","ĭ","į","ǐ","ȉ","ȋ","ɨ","ͥ","ᴉ","ᵎ","ᵢ","ᶖ","ᶤ","ḭ","ḯ","ỉ","ị","i"],I:["I","Ì","Í","Î","Ï","Ĩ","Ī","Ĭ","Į","İ","Ǐ","Ȉ","Ȋ","ɪ","І","ᴵ","ᵻ","ᶦ","ᶧ","Ḭ","Ḯ","Ỉ","Ị","I"],j:["j","ĵ","ǰ","ɉ","ʝ","ʲ","ᶡ","ᶨ","j"],J:["J","Ĵ","ᴊ","ᴶ","J"],k:["k","ķ","ƙ","ǩ","ʞ","ᵏ","ᶄ","ḱ","ḳ","ḵ","ⱪ","k"],K:["K","Ķ","Ƙ","Ǩ","ᴷ","Ḱ","Ḳ","Ḵ","Ⱪ","K"],l:["l","ĺ","ļ","ľ","ŀ","ł","ƚ","ȴ","ɫ","ɬ","ɭ","ˡ","ᶅ","ᶩ","ᶪ","ḷ","ḹ","ḻ","ḽ","ℓ","ⱡ"],L:["L","Ĺ","Ļ","Ľ","Ŀ","Ł","Ƚ","ʟ","ᴌ","ᴸ","ᶫ","Ḷ","Ḹ","Ḻ","Ḽ","Ⱡ","Ɫ"],m:["m","ɯ","ɰ","ɱ","ͫ","ᴟ","ᵐ","ᵚ","ᵯ","ᶆ","ᶬ","ᶭ","ḿ","ṁ","ṃ","㎡","㎥","m"],M:["M","Ɯ","ᴍ","ᴹ","Ḿ","Ṁ","Ṃ","M"],n:["n","ñ","ń","ņ","ň","ʼn","ƞ","ǹ","ȵ","ɲ","ɳ","ᵰ","ᶇ","ᶮ","ᶯ","ṅ","ṇ","ṉ","ṋ","ⁿ","n"],N:["N","Ñ","Ń","Ņ","Ň","Ɲ","Ǹ","Ƞ","ɴ","ᴎ","ᴺ","ᴻ","ᶰ","Ṅ","Ṇ","Ṉ","Ṋ","N"],o:["o","ò","ó","ô","õ","ö","ø","ō","ŏ","ő","ơ","ǒ","ǫ","ǭ","ǿ","ȍ","ȏ","ȫ","ȭ","ȯ","ȱ","ɵ","ͦ","о","ӧ","ө","ᴏ","ᴑ","ᴓ","ᴼ","ᵒ","ᶱ","ṍ","ṏ","ṑ","ṓ","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ₒ","o","𐐬"],O:["O","Ò","Ó","Ô","Õ","Ö","Ø","Ō","Ŏ","Ő","Ɵ","Ơ","Ǒ","Ǫ","Ǭ","Ǿ","Ȍ","Ȏ","Ȫ","Ȭ","Ȯ","Ȱ","О","Ӧ","Ө","Ṍ","Ṏ","Ṑ","Ṓ","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","O","𐐄"],p:["p","ᵖ","ᵱ","ᵽ","ᶈ","ṕ","ṗ","p"],P:["P","Ƥ","ᴘ","ᴾ","Ṕ","Ṗ","Ᵽ","P"],q:["q","ɋ","ʠ","ᛩ","q"],Q:["Q","Ɋ","Q"],r:["r","ŕ","ŗ","ř","ȑ","ȓ","ɍ","ɹ","ɻ","ʳ","ʴ","ʵ","ͬ","ᵣ","ᵲ","ᶉ","ṙ","ṛ","ṝ","ṟ"],R:["R","Ŕ","Ŗ","Ř","Ʀ","Ȑ","Ȓ","Ɍ","ʀ","ʁ","ʶ","ᚱ","ᴙ","ᴚ","ᴿ","Ṙ","Ṛ","Ṝ","Ṟ","Ɽ"],s:["s","ś","ŝ","ş","š","ș","ʂ","ᔆ","ᶊ","ṡ","ṣ","ṥ","ṧ","ṩ","s"],S:["S","Ś","Ŝ","Ş","Š","Ș","ȿ","ˢ","ᵴ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","S"],t:["t","ţ","ť","ŧ","ƫ","ƭ","ț","ʇ","ͭ","ᵀ","ᵗ","ᵵ","ᶵ","ṫ","ṭ","ṯ","ṱ","ẗ","t"],T:["T","Ţ","Ť","Ƭ","Ʈ","Ț","Ⱦ","ᴛ","ᵀ","Ṫ","Ṭ","Ṯ","Ṱ","T"],u:["u","ù","ú","û","ü","ũ","ū","ŭ","ů","ű","ų","ư","ǔ","ǖ","ǘ","ǚ","ǜ","ȕ","ȗ","ͧ","ߎ","ᵘ","ᵤ","ṳ","ṵ","ṷ","ṹ","ṻ","ụ","ủ","ứ","ừ","ử","ữ","ự","u"],U:["U","Ù","Ú","Û","Ü","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ư","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ȕ","Ȗ","Ʉ","ᴜ","ᵁ","ᵾ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","U"],v:["v","ʋ","ͮ","ᵛ","ᵥ","ᶹ","ṽ","ṿ","ⱱ","v","ⱴ"],V:["V","Ʋ","Ʌ","ʌ","ᴠ","ᶌ","Ṽ","Ṿ","V"],w:["w","ŵ","ʷ","ᵂ","ẁ","ẃ","ẅ","ẇ","ẉ","ẘ","ⱳ","w"],W:["W","Ŵ","ʍ","ᴡ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ⱳ","W"],x:["x","̽","͓","ᶍ","ͯ","ẋ","ẍ","ₓ","x"],X:["X","ˣ","ͯ","Ẋ","Ẍ","☒","✕","✖","✗","✘","X"],y:["y","ý","ÿ","ŷ","ȳ","ɏ","ʸ","ẏ","ỳ","ỵ","ỷ","ỹ","y"],Y:["Y","Ý","Ŷ","Ÿ","Ƴ","ƴ","Ȳ","Ɏ","ʎ","ʏ","Ẏ","Ỳ","Ỵ","Ỷ","Ỹ","Y"],z:["z","ź","ż","ž","ƶ","ȥ","ɀ","ʐ","ʑ","ᙆ","ᙇ","ᶻ","ᶼ","ᶽ","ẑ","ẓ","ẕ","ⱬ","z"],Z:["Z","Ź","Ż","Ž","Ƶ","Ȥ","ᴢ","ᵶ","Ẑ","Ẓ","Ẕ","Ⱬ","Z"]},nt=function(t){for(var e=[],n=0;n2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(null==t)return!1;var a=n?String(t).toLowerCase():nt(rt(String(t)).toLowerCase()),o=n?e.toLowerCase():nt(rt(e).toLowerCase());return r?a===o:a.indexOf(o)>-1},compare:function(t,e){function n(t){return null==t?"":nt(t.toLowerCase())}return(t=n(t))<(e=n(e))?-1:t>e?1:0}},ot={name:"VgtPaginationPageInfo",props:{currentPage:{default:1},lastPage:{default:1},totalRecords:{default:0},ofText:{default:"of",type:String},pageText:{default:"page",type:String}},data:function(){return{}},computed:{pageInfo:function(){return"".concat(this.ofText," ").concat(this.lastPage)}},methods:{changePage:function(t){var e=parseInt(t.target.value,10);if(Number.isNaN(e)||e>this.lastPage||e<1)return t.target.value=this.currentPage,!1;t.target.value=e,this.$emit("page-changed",e)}},mounted:function(){},components:{}};function it(t,e,n,r,a,o,i,s,u,l){"boolean"!=typeof i&&(u=s,s=i,i=!1);const c="function"==typeof n?n.options:n;let d;if(t&&t.render&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0,a&&(c.functional=!0)),r&&(c._scopeId=r),o?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,u(t)),t&&t._registeredComponents&&t._registeredComponents.add(o)},c._ssrRegister=d):e&&(d=i?function(t){e.call(this,l(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),d)if(c.functional){const t=c.render;c.render=function(e,n){return d.call(n),t(e,n)}}else{const t=c.beforeCreate;c.beforeCreate=t?[].concat(t,d):[d]}return n}var st=[10,20,30,40,50],ut=it({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vgt-wrap__footer vgt-clearfix"},[n("div",{staticClass:"footer__row-count vgt-pull-left"},[n("span",{staticClass:"footer__row-count__label"},[t._v(t._s(t.rowsPerPageText))]),t._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:t.currentPerPage,expression:"currentPerPage"}],staticClass:"footer__row-count__select",attrs:{autocomplete:"off",name:"perPageSelect"},on:{change:[function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});t.currentPerPage=e.target.multiple?n:n[0]},t.perPageChanged]}},[t._l(t.rowsPerPageOptions,function(e,r){return n("option",{key:"rows-dropdown-option-"+r,domProps:{value:e}},[t._v("\n "+t._s(e)+"\n ")])}),t._v(" "),t.paginateDropdownAllowAll?n("option",{domProps:{value:t.total}},[t._v(t._s(t.allText))]):t._e()],2)]),t._v(" "),n("div",{staticClass:"footer__navigation vgt-pull-right"},[n("a",{staticClass:"footer__navigation__page-btn",class:{disabled:!t.prevIsPossible},attrs:{href:"javascript:undefined",tabindex:"0"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.previousPage(e)}}},[n("span",{staticClass:"chevron",class:{left:!t.rtl,right:t.rtl}}),t._v(" "),n("span",[t._v(t._s(t.prevText))])]),t._v(" "),"pages"===t.mode?n("pagination-page-info",{attrs:{totalRecords:t.total,lastPage:t.pagesCount,currentPage:t.currentPage,ofText:t.ofText,pageText:t.pageText},on:{"page-changed":t.changePage}}):n("div",{staticClass:"footer__navigation__info"},[t._v(t._s(t.paginatedInfo))]),t._v(" "),n("a",{staticClass:"footer__navigation__page-btn",class:{disabled:!t.nextIsPossible},attrs:{href:"javascript:undefined",tabindex:"0"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.nextPage(e)}}},[n("span",[t._v(t._s(t.nextText))]),t._v(" "),n("span",{staticClass:"chevron",class:{right:!t.rtl,left:t.rtl}})])],1)])},staticRenderFns:[]},void 0,{name:"VgtPagination",props:{styleClass:{default:"table table-bordered"},total:{default:null},perPage:{},rtl:{default:!1},customRowsPerPageDropdown:{default:function(){return[]}},paginateDropdownAllowAll:{default:!0},mode:{default:"records"},nextText:{default:"Next"},prevText:{default:"Prev"},rowsPerPageText:{default:"Rows per page:"},ofText:{default:"of"},pageText:{default:"page"},allText:{default:"All"}},data:function(){return{currentPage:1,prevPage:0,currentPerPage:10,rowsPerPageOptions:[]}},watch:{perPage:{handler:function(t,e){this.handlePerPage(),this.perPageChanged(e)},immediate:!0},customRowsPerPageDropdown:function(){this.handlePerPage()},total:{handler:function(t,e){-1===this.rowsPerPageOptions.indexOf(this.currentPerPage)&&(this.currentPerPage=t)}}},computed:{pagesCount:function(){var t=Math.floor(this.total/this.currentPerPage);return 0===this.total%this.currentPerPage?t:t+1},paginatedInfo:function(){var t=(this.currentPage-1)*this.currentPerPage+1,e=Math.min(this.total,this.currentPage*this.currentPerPage);return 0===e&&(t=0),"".concat(t," - ").concat(e," ").concat(this.ofText," ").concat(this.total)},nextIsPossible:function(){return this.currentPage1}},methods:{changePage:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t>0&&this.total>this.currentPerPage*(t-1)&&(this.prevPage=this.currentPage,this.currentPage=t,e&&this.pageChanged())},nextPage:function(){this.nextIsPossible&&(this.prevPage=this.currentPage,++this.currentPage,this.pageChanged())},previousPage:function(){this.prevIsPossible&&(this.prevPage=this.currentPage,--this.currentPage,this.pageChanged())},pageChanged:function(){this.$emit("page-changed",{currentPage:this.currentPage,prevPage:this.prevPage})},perPageChanged:function(t){t&&this.$emit("per-page-changed",{currentPerPage:this.currentPerPage}),this.changePage(1,!1)},handlePerPage:function(){if(null!==this.customRowsPerPageDropdown&&Array.isArray(this.customRowsPerPageDropdown)&&0!==this.customRowsPerPageDropdown.length?this.rowsPerPageOptions=J(this.customRowsPerPageDropdown):this.rowsPerPageOptions=J(st),this.perPage){this.currentPerPage=this.perPage;for(var t=!1,e=0;e0&&void 0!==arguments[0]&&arguments[0];this.columnFilters={},t&&this.$emit("filter-changed",this.columnFilters)},isFilterable:function(t){return t.filterOptions&&t.filterOptions.enabled},isDropdown:function(t){return this.isFilterable(t)&&t.filterOptions.filterDropdownItems&&t.filterOptions.filterDropdownItems.length},isDropdownObjects:function(t){return this.isDropdown(t)&&"object"===e(t.filterOptions.filterDropdownItems[0])},isDropdownArray:function(t){return this.isDropdown(t)&&"object"!==e(t.filterOptions.filterDropdownItems[0])},getPlaceholder:function(t){return this.isFilterable(t)&&t.filterOptions.placeholder||"Filter ".concat(t.label)},updateFiltersOnEnter:function(t,e){this.timer&&clearTimeout(this.timer),this.updateFiltersImmediately(t.field,e)},updateFiltersOnKeyup:function(t,e){"enter"!==t.filterOptions.trigger&&this.updateFilters(t,e)},updateSlotFilter:function(t,e){var n=t.filterOptions.slotFilterField||t.field;"function"==typeof t.filterOptions.formatValue&&(e=t.filterOptions.formatValue(e)),this.updateFiltersImmediately(n,e)},updateFilters:function(t,e){var n=this;this.timer&&clearTimeout(this.timer),this.timer=setTimeout(function(){n.updateFiltersImmediately(t.field,e)},400)},updateFiltersImmediately:function(t,e){this.$set(this.columnFilters,t,e),this.$emit("filter-changed",this.columnFilters)},populateInitialFilters:function(){for(var t=0;t0?"in "+r:r+" ago":r},formatLong:Tt,formatRelative:function(t,e,n,r){return xt[t]},localize:{ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ct({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ct({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return Number(t)-1}}),month:Ct({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ct({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ct({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(St={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t,e){var n=String(t),r=e||{},a=n.match(St.matchPattern);if(!a)return null;var o=a[0],i=n.match(St.parsePattern);if(!i)return null;var s=St.valueCallback?St.valueCallback(i[0]):i[0];return{value:s=r.valueCallback?r.valueCallback(s):s,rest:n.slice(o.length)}}),era:Pt({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Pt({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Pt({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Pt({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Pt({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ot(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");return function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=gt(t).getTime(),r=vt(e);return new Date(n+r)}(t,-vt(e))}function jt(t,e){for(var n=t<0?"-":"",r=Math.abs(t).toString();r.length0?n:1-n;return jt("yy"===e?r%100:r,e.length)},Dt=function(t,e){var n=t.getUTCMonth();return"M"===e?String(n+1):jt(n+1,2)},Et=function(t,e){return jt(t.getUTCDate(),e.length)},Ft=function(t,e){return jt(t.getUTCHours()%12||12,e.length)},Mt=function(t,e){return jt(t.getUTCHours(),e.length)},At=function(t,e){return jt(t.getUTCMinutes(),e.length)},Ut=function(t,e){return jt(t.getUTCSeconds(),e.length)},It=function(t,e){var n=e.length,r=t.getUTCMilliseconds();return jt(Math.floor(r*Math.pow(10,n-3)),e.length)},$t=864e5;function Nt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getUTCDay(),r=(n<1?7:0)+n-1;return e.setUTCDate(e.getUTCDate()-r),e.setUTCHours(0,0,0,0),e}function qt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=Nt(r),o=new Date(0);o.setUTCFullYear(n,0,4),o.setUTCHours(0,0,0,0);var i=Nt(o);return e.getTime()>=a.getTime()?n+1:e.getTime()>=i.getTime()?n:n-1}var Bt=6048e5;function Lt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=Nt(e).getTime()-function(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=qt(t),n=new Date(0);return n.setUTCFullYear(e,0,4),n.setUTCHours(0,0,0,0),Nt(n)}(e).getTime();return Math.round(n/Bt)+1}function Ht(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=e||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:vt(a),i=null==n.weekStartsOn?o:vt(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var s=gt(t),u=s.getUTCDay(),l=(u=1&&u<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=new Date(0);l.setUTCFullYear(r+1,0,u),l.setUTCHours(0,0,0,0);var c=Ht(l,e),d=new Date(0);d.setUTCFullYear(r,0,u),d.setUTCHours(0,0,0,0);var f=Ht(d,e);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}var zt=6048e5;function Wt(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=gt(t),r=Ht(n,e).getTime()-function(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=e||{},r=n.locale,a=r&&r.options&&r.options.firstWeekContainsDate,o=null==a?1:vt(a),i=null==n.firstWeekContainsDate?o:vt(n.firstWeekContainsDate),s=Yt(t,e),u=new Date(0);return u.setUTCFullYear(s,0,i),u.setUTCHours(0,0,0,0),Ht(u,e)}(n,e).getTime();return Math.round(r/zt)+1}var Qt="midnight",Gt="noon",Xt="morning",Kt="afternoon",Vt="evening",Jt="night",Zt={G:function(t,e,n){var r=t.getUTCFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Rt(t,e)},Y:function(t,e,n,r){var a=Yt(t,r),o=a>0?a:1-a;return"YY"===e?jt(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):jt(o,e.length)},R:function(t,e){return jt(qt(t),e.length)},u:function(t,e){return jt(t.getUTCFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return jt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return jt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getUTCMonth();switch(e){case"M":case"MM":return Dt(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getUTCMonth();switch(e){case"L":return String(r+1);case"LL":return jt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var a=Wt(t,r);return"wo"===e?n.ordinalNumber(a,{unit:"week"}):jt(a,e.length)},I:function(t,e,n){var r=Lt(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):jt(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):Et(t,e)},D:function(t,e,n){var r=function(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var r=n-e.getTime();return Math.floor(r/$t)+1}(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):jt(r,e.length)},E:function(t,e,n){var r=t.getUTCDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var a=t.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return jt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var a=t.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return jt(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getUTCDay(),a=0===r?7:r;switch(e){case"i":return String(a);case"ii":return jt(a,e.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getUTCHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,a=t.getUTCHours();switch(r=12===a?Gt:0===a?Qt:a/12>=1?"pm":"am",e){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,a=t.getUTCHours();switch(r=a>=17?Vt:a>=12?Kt:a>=4?Xt:Jt,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ft(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):Mt(t,e)},K:function(t,e,n){var r=t.getUTCHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):jt(r,e.length)},k:function(t,e,n){var r=t.getUTCHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):jt(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):At(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):Ut(t,e)},S:function(t,e){return It(t,e)},X:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();if(0===a)return"Z";switch(e){case"X":return ee(a);case"XXXX":case"XX":return ne(a);case"XXXXX":case"XXX":default:return ne(a,":")}},x:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"x":return ee(a);case"xxxx":case"xx":return ne(a);case"xxxxx":case"xxx":default:return ne(a,":")}},O:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+te(a,":");case"OOOO":default:return"GMT"+ne(a,":")}},z:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+te(a,":");case"zzzz":default:return"GMT"+ne(a,":")}},t:function(t,e,n,r){var a=r._originalDate||t;return jt(Math.floor(a.getTime()/1e3),e.length)},T:function(t,e,n,r){return jt((r._originalDate||t).getTime(),e.length)}};function te(t,e){var n=t>0?"-":"+",r=Math.abs(t),a=Math.floor(r/60),o=r%60;if(0===o)return n+String(a);var i=e||"";return n+String(a)+i+jt(o,2)}function ee(t,e){return t%60==0?(t>0?"-":"+")+jt(Math.abs(t)/60,2):ne(t,e)}function ne(t,e){var n=e||"",r=t>0?"-":"+",a=Math.abs(t);return r+jt(Math.floor(a/60),2)+n+jt(a%60,2)}function re(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}}function ae(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}}var oe={p:ae,P:function(t,e){var n,r=t.match(/(P+)(p+)?/),a=r[1],o=r[2];if(!o)return re(t,e);switch(a){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;case"PPPP":default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",re(a,e)).replace("{{time}}",ae(o,e))}},ie=["D","DD"],se=["YY","YYYY"];function ue(t){return-1!==ie.indexOf(t)}function le(t){return-1!==se.indexOf(t)}function ce(t){if("YYYY"===t)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===t)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===t)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===t)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}var de=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,fe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,he=/^'(.*?)'?$/,pe=/''/g,ge=/[a-zA-Z]/;function ve(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=String(e),a=n||{},o=a.locale||kt,i=o.options&&o.options.firstWeekContainsDate,s=null==i?1:vt(i),u=null==a.firstWeekContainsDate?s:vt(a.firstWeekContainsDate);if(!(u>=1&&u<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=o.options&&o.options.weekStartsOn,c=null==l?0:vt(l),d=null==a.weekStartsOn?c:vt(a.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!o.localize)throw new RangeError("locale must contain localize property");if(!o.formatLong)throw new RangeError("locale must contain formatLong property");var f=gt(t);if(!yt(f))throw new RangeError("Invalid time value");var h=Ot(f,wt(f)),p={firstWeekContainsDate:u,weekStartsOn:d,locale:o,_originalDate:f};return r.match(fe).map(function(t){var e=t[0];return"p"===e||"P"===e?(0,oe[e])(t,o.formatLong,p):t}).join("").match(de).map(function(t){if("''"===t)return"'";var e=t[0];if("'"===e)return t.match(he)[1].replace(pe,"'");var n=Zt[e];if(n)return!a.useAdditionalWeekYearTokens&&le(t)&&ce(t),!a.useAdditionalDayOfYearTokens&&ue(t)&&ce(t),n(h,t,o.localize,p);if(e.match(ge))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return t}).join("")}function me(t,e){if(null==t)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in e=e||{})e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function we(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=n||{},a=r.locale,o=a&&a.options&&a.options.weekStartsOn,i=null==o?0:vt(o),s=null==r.weekStartsOn?i:vt(r.weekStartsOn);if(!(s>=0&&s<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var u=gt(t),l=vt(e),c=((l%7+7)%70,a=r?e:1-e;if(a<=50)n=t||100;else{var o=a+50;n=t+100*Math.floor(o/100)-(t>=o%100?100:0)}return r?n:1-n}var Ae=[31,28,31,30,31,30,31,31,30,31,30,31],Ue=[31,29,31,30,31,30,31,31,30,31,30,31];function Ie(t){return t%400==0||t%4==0&&t%100!=0}var $e={G:{priority:140,parse:function(t,e,n,r){switch(e){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"});case"GGGGG":return n.era(t,{width:"narrow"});case"GGGG":default:return n.era(t,{width:"wide"})||n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"})}},set:function(t,e,n,r){return e.era=n,t.setUTCFullYear(n,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["R","u","t","T"]},y:{priority:130,parse:function(t,e,n,r){var a=function(t){return{year:t,isTwoDigitYear:"yy"===e}};switch(e){case"y":return De(4,t,a);case"yo":return n.ordinalNumber(t,{unit:"year",valueCallback:a});default:return De(e.length,t,a)}},validate:function(t,e,n){return e.isTwoDigitYear||e.year>0},set:function(t,e,n,r){var a=t.getUTCFullYear();if(n.isTwoDigitYear){var o=Me(n.year,a);return t.setUTCFullYear(o,0,1),t.setUTCHours(0,0,0,0),t}var i="era"in e&&1!==e.era?1-n.year:n.year;return t.setUTCFullYear(i,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","u","w","I","i","e","c","t","T"]},Y:{priority:130,parse:function(t,e,n,r){var a=function(t){return{year:t,isTwoDigitYear:"YY"===e}};switch(e){case"Y":return De(4,t,a);case"Yo":return n.ordinalNumber(t,{unit:"year",valueCallback:a});default:return De(e.length,t,a)}},validate:function(t,e,n){return e.isTwoDigitYear||e.year>0},set:function(t,e,n,r){var a=Yt(t,r);if(n.isTwoDigitYear){var o=Me(n.year,a);return t.setUTCFullYear(o,0,r.firstWeekContainsDate),t.setUTCHours(0,0,0,0),Ht(t,r)}var i="era"in e&&1!==e.era?1-n.year:n.year;return t.setUTCFullYear(i,0,r.firstWeekContainsDate),t.setUTCHours(0,0,0,0),Ht(t,r)},incompatibleTokens:["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:{priority:130,parse:function(t,e,n,r){return Ee("R"===e?4:e.length,t)},set:function(t,e,n,r){var a=new Date(0);return a.setUTCFullYear(n,0,4),a.setUTCHours(0,0,0,0),Nt(a)},incompatibleTokens:["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:{priority:130,parse:function(t,e,n,r){return Ee("u"===e?4:e.length,t)},set:function(t,e,n,r){return t.setUTCFullYear(n,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["G","y","Y","R","w","I","i","e","c","t","T"]},Q:{priority:120,parse:function(t,e,n,r){switch(e){case"Q":case"QQ":return De(e.length,t);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(t,{width:"wide",context:"formatting"})||n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=1&&e<=4},set:function(t,e,n,r){return t.setUTCMonth(3*(n-1),1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:{priority:120,parse:function(t,e,n,r){switch(e){case"q":case"qq":return De(e.length,t);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(t,{width:"wide",context:"standalone"})||n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=1&&e<=4},set:function(t,e,n,r){return t.setUTCMonth(3*(n-1),1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:{priority:110,parse:function(t,e,n,r){var a=function(t){return t-1};switch(e){case"M":return Oe(Te.month,t,a);case"MM":return De(2,t,a);case"Mo":return n.ordinalNumber(t,{unit:"month",valueCallback:a});case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.setUTCMonth(n,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]},L:{priority:110,parse:function(t,e,n,r){var a=function(t){return t-1};switch(e){case"L":return Oe(Te.month,t,a);case"LL":return De(2,t,a);case"Lo":return n.ordinalNumber(t,{unit:"month",valueCallback:a});case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(t,{width:"wide",context:"standalone"})||n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.setUTCMonth(n,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:{priority:100,parse:function(t,e,n,r){switch(e){case"w":return Oe(Te.week,t);case"wo":return n.ordinalNumber(t,{unit:"week"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=53},set:function(t,e,n,r){return Ht(function(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=gt(t),a=vt(e),o=Wt(r,n)-a;return r.setUTCDate(r.getUTCDate()-7*o),r}(t,n,r),r)},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:{priority:100,parse:function(t,e,n,r){switch(e){case"I":return Oe(Te.week,t);case"Io":return n.ordinalNumber(t,{unit:"week"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=53},set:function(t,e,n,r){return Nt(function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=gt(t),r=vt(e),a=Lt(n)-r;return n.setUTCDate(n.getUTCDate()-7*a),n}(t,n,r),r)},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:{priority:90,parse:function(t,e,n,r){switch(e){case"d":return Oe(Te.date,t);case"do":return n.ordinalNumber(t,{unit:"date"});default:return De(e.length,t)}},validate:function(t,e,n){var r=Ie(t.getUTCFullYear()),a=t.getUTCMonth();return r?e>=1&&e<=Ue[a]:e>=1&&e<=Ae[a]},set:function(t,e,n,r){return t.setUTCDate(n),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:{priority:90,parse:function(t,e,n,r){switch(e){case"D":case"DD":return Oe(Te.dayOfYear,t);case"Do":return n.ordinalNumber(t,{unit:"date"});default:return De(e.length,t)}},validate:function(t,e,n){return Ie(t.getUTCFullYear())?e>=1&&e<=366:e>=1&&e<=365},set:function(t,e,n,r){return t.setUTCMonth(0,n),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:{priority:90,parse:function(t,e,n,r){switch(e){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["D","i","e","c","t","T"]},e:{priority:90,parse:function(t,e,n,r){var a=function(t){var e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return De(e.length,t,a);case"eo":return n.ordinalNumber(t,{unit:"day",valueCallback:a});case"eee":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeeee":return n.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:{priority:90,parse:function(t,e,n,r){var a=function(t){var e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return De(e.length,t,a);case"co":return n.ordinalNumber(t,{unit:"day",valueCallback:a});case"ccc":return n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"ccccc":return n.day(t,{width:"narrow",context:"standalone"});case"cccccc":return n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return n.day(t,{width:"wide",context:"standalone"})||n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:{priority:90,parse:function(t,e,n,r){var a=function(t){return 0===t?7:t};switch(e){case"i":case"ii":return De(e.length,t);case"io":return n.ordinalNumber(t,{unit:"day"});case"iii":return n.day(t,{width:"abbreviated",context:"formatting",valueCallback:a})||n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiiii":return n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiiiii":return n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiii":default:return n.day(t,{width:"wide",context:"formatting",valueCallback:a})||n.day(t,{width:"abbreviated",context:"formatting",valueCallback:a})||n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a})}},validate:function(t,e,n){return e>=1&&e<=7},set:function(t,e,n,r){return(t=function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=vt(e);n%7==0&&(n-=7);var r=gt(t),a=((n%7+7)%7<1?7:0)+n-r.getUTCDay();return r.setUTCDate(r.getUTCDate()+a),r}(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:{priority:80,parse:function(t,e,n,r){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["b","B","H","K","k","t","T"]},b:{priority:80,parse:function(t,e,n,r){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["a","B","H","K","k","t","T"]},B:{priority:80,parse:function(t,e,n,r){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["a","b","t","T"]},h:{priority:70,parse:function(t,e,n,r){switch(e){case"h":return Oe(Te.hour12h,t);case"ho":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=12},set:function(t,e,n,r){var a=t.getUTCHours()>=12;return a&&n<12?t.setUTCHours(n+12,0,0,0):a||12!==n?t.setUTCHours(n,0,0,0):t.setUTCHours(0,0,0,0),t},incompatibleTokens:["H","K","k","t","T"]},H:{priority:70,parse:function(t,e,n,r){switch(e){case"H":return Oe(Te.hour23h,t);case"Ho":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=23},set:function(t,e,n,r){return t.setUTCHours(n,0,0,0),t},incompatibleTokens:["a","b","h","K","k","t","T"]},K:{priority:70,parse:function(t,e,n,r){switch(e){case"K":return Oe(Te.hour11h,t);case"Ko":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.getUTCHours()>=12&&n<12?t.setUTCHours(n+12,0,0,0):t.setUTCHours(n,0,0,0),t},incompatibleTokens:["a","b","h","H","k","t","T"]},k:{priority:70,parse:function(t,e,n,r){switch(e){case"k":return Oe(Te.hour24h,t);case"ko":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=24},set:function(t,e,n,r){var a=n<=24?n%24:n;return t.setUTCHours(a,0,0,0),t},incompatibleTokens:["a","b","h","H","K","t","T"]},m:{priority:60,parse:function(t,e,n,r){switch(e){case"m":return Oe(Te.minute,t);case"mo":return n.ordinalNumber(t,{unit:"minute"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=59},set:function(t,e,n,r){return t.setUTCMinutes(n,0,0),t},incompatibleTokens:["t","T"]},s:{priority:50,parse:function(t,e,n,r){switch(e){case"s":return Oe(Te.second,t);case"so":return n.ordinalNumber(t,{unit:"second"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=59},set:function(t,e,n,r){return t.setUTCSeconds(n,0),t},incompatibleTokens:["t","T"]},S:{priority:30,parse:function(t,e,n,r){return De(e.length,t,function(t){return Math.floor(t*Math.pow(10,3-e.length))})},set:function(t,e,n,r){return t.setUTCMilliseconds(n),t},incompatibleTokens:["t","T"]},X:{priority:10,parse:function(t,e,n,r){switch(e){case"X":return je(xe,t);case"XX":return je(Ce,t);case"XXXX":return je(Pe,t);case"XXXXX":return je(ke,t);case"XXX":default:return je(Se,t)}},set:function(t,e,n,r){return e.timestampIsSet?t:new Date(t.getTime()-n)},incompatibleTokens:["t","T","x"]},x:{priority:10,parse:function(t,e,n,r){switch(e){case"x":return je(xe,t);case"xx":return je(Ce,t);case"xxxx":return je(Pe,t);case"xxxxx":return je(ke,t);case"xxx":default:return je(Se,t)}},set:function(t,e,n,r){return e.timestampIsSet?t:new Date(t.getTime()-n)},incompatibleTokens:["t","T","X"]},t:{priority:40,parse:function(t,e,n,r){return Re(t)},set:function(t,e,n,r){return[new Date(1e3*n),{timestampIsSet:!0}]},incompatibleTokens:"*"},T:{priority:20,parse:function(t,e,n,r){return Re(t)},set:function(t,e,n,r){return[new Date(n),{timestampIsSet:!0}]},incompatibleTokens:"*"}},Ne=10,qe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Be=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Le=/^'(.*?)'?$/,He=/''/g,Ye=/\S/,ze=/[a-zA-Z]/;function We(t,e,n,r){if(arguments.length<3)throw new TypeError("3 arguments required, but only "+arguments.length+" present");var a=String(t),o=String(e),i=r||{},s=i.locale||kt;if(!s.match)throw new RangeError("locale must contain match property");var u=s.options&&s.options.firstWeekContainsDate,l=null==u?1:vt(u),c=null==i.firstWeekContainsDate?l:vt(i.firstWeekContainsDate);if(!(c>=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var d=s.options&&s.options.weekStartsOn,f=null==d?0:vt(d),h=null==i.weekStartsOn?f:vt(i.weekStartsOn);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===o)return""===a?gt(n):new Date(NaN);var p,g={firstWeekContainsDate:c,weekStartsOn:h,locale:s},v=[{priority:Ne,set:Qe,index:0}],m=o.match(Be).map(function(t){var e=t[0];return"p"===e||"P"===e?(0,oe[e])(t,s.formatLong,g):t}).join("").match(qe),w=[];for(p=0;p0&&Ye.test(a))return new Date(NaN);var k=v.map(function(t){return t.priority}).sort(function(t,e){return e-t}).filter(function(t,e,n){return n.indexOf(t)===e}).map(function(t){return v.filter(function(e){return e.priority===t}).reverse()}).map(function(t){return t[0]}),O=gt(n);if(isNaN(O))return new Date(NaN);var j=Ot(O,wt(O)),R={};for(p=0;p0?1:a}(t,e):1:-1},Ge.format=function(t,e){if(null==t)return"";var n=We(t,e.dateInputFormat,new Date);return yt(n)?ve(n,e.dateOutputFormat):(console.error('Not a valid date: "'.concat(t,'"')),null)};var Xe=Object.freeze({default:Ge}),Ke=J(at);Ke.isRight=!0,Ke.filterPredicate=function(t,e){return 0===Ke.compare(t,e)},Ke.compare=function(t,e){function n(t){return null==t?-1/0:t.indexOf(".")>=0?parseFloat(t):parseInt(t,10)}return(t="number"==typeof t?t:n(t))<(e="number"==typeof e?e:n(e))?-1:t>e?1:0};var Ve=Object.freeze({default:Ke}),Je=J(Ke);Je.format=function(t){return null==t?"":parseFloat(Math.round(100*t)/100).toFixed(2)};var Ze=Object.freeze({default:Je}),tn=J(Ke);tn.format=function(t){return null==t?"":"".concat(parseFloat(100*t).toFixed(2),"%")};var en=Object.freeze({default:tn}),nn=J(at);nn.isRight=!0,nn.filterPredicate=function(t,e){return 0===nn.compare(t,e)},nn.compare=function(t,e){function n(t){return"boolean"==typeof t?t?1:0:"string"==typeof t?"true"===t?1:0:-1/0}return(t=n(t))<(e=n(e))?-1:t>e?1:0};var rn={},an={date:Xe,decimal:Ze,number:Ve,percentage:en,boolean:Object.freeze({default:nn})};O(Object.keys(an),function(t){var e=t.replace(/^\.\//,"").replace(/\.js/,"");rn[e]=an[t].default});var on=it({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:t.wrapStyleClasses},[t.isLoading?n("div",{staticClass:"vgt-loading vgt-center-align"},[t._t("loadingContent",[n("span",{staticClass:"vgt-loading__content"},[t._v("\n Loading...\n ")])])],2):t._e(),t._v(" "),n("div",{staticClass:"vgt-inner-wrap",class:{"is-loading":t.isLoading}},[t.paginate&&t.paginateOnTop?t._t("pagination-top",[n("vgt-pagination",{ref:"paginationTop",attrs:{perPage:t.perPage,rtl:t.rtl,total:t.totalRows||t.totalRowCount,mode:t.paginationMode,nextText:t.nextText,prevText:t.prevText,rowsPerPageText:t.rowsPerPageText,customRowsPerPageDropdown:t.customRowsPerPageDropdown,paginateDropdownAllowAll:t.paginateDropdownAllowAll,ofText:t.ofText,pageText:t.pageText,allText:t.allText},on:{"page-changed":t.pageChanged,"per-page-changed":t.perPageChanged}})],{pageChanged:t.pageChanged,perPageChanged:t.perPageChanged,total:t.totalRows||t.totalRowCount}):t._e(),t._v(" "),n("vgt-global-search",{attrs:{"search-enabled":t.searchEnabled&&null==t.externalSearchQuery,"global-search-placeholder":t.searchPlaceholder},on:{"on-keyup":t.searchTableOnKeyUp,"on-enter":t.searchTableOnEnter},model:{value:t.globalSearchTerm,callback:function(e){t.globalSearchTerm=e},expression:"globalSearchTerm"}},[n("template",{slot:"internal-table-actions"},[t._t("table-actions")],2)],2),t._v(" "),t.selectedRowCount&&!t.disableSelectInfo?n("div",{staticClass:"vgt-selection-info-row clearfix",class:t.selectionInfoClass},[t._v("\n "+t._s(t.selectionInfo)+"\n "),n("a",{attrs:{href:""},on:{click:function(e){return e.preventDefault(),t.unselectAllInternal(!0)}}},[t._v("\n "+t._s(t.clearSelectionText)+"\n ")]),t._v(" "),n("div",{staticClass:"vgt-selection-info-row__actions vgt-pull-right"},[t._t("selected-row-actions")],2)]):t._e(),t._v(" "),n("div",{staticClass:"vgt-fixed-header"},[t.fixedHeader?n("table",{class:t.tableStyleClasses},[n("vgt-table-header",{ref:"table-header-secondary",tag:"thead",attrs:{columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"all-selected":t.allSelected,"all-selected-indeterminate":t.allSelectedIndeterminate,mode:t.mode,sortable:t.sortable,"typed-columns":t.typedColumns,getClasses:t.getClasses,searchEnabled:t.searchEnabled,paginated:t.paginated,"table-ref":t.$refs.table},on:{"on-toggle-select-all":t.toggleSelectAll,"on-sort-change":t.changeSort,"filter-changed":t.filterRows},scopedSlots:t._u([{key:"table-column",fn:function(e){return[t._t("table-column",[n("span",[t._v(t._s(e.column.label))])],{column:e.column})]}}],null,!0)})],1):t._e()]),t._v(" "),n("div",{class:{"vgt-responsive":t.responsive},style:t.wrapperStyles},[n("table",{ref:"table",class:t.tableStyles},[n("vgt-table-header",{ref:"table-header-primary",tag:"thead",attrs:{columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"all-selected":t.allSelected,"all-selected-indeterminate":t.allSelectedIndeterminate,mode:t.mode,sortable:t.sortable,"typed-columns":t.typedColumns,getClasses:t.getClasses,searchEnabled:t.searchEnabled},on:{"on-toggle-select-all":t.toggleSelectAll,"on-sort-change":t.changeSort,"filter-changed":t.filterRows},scopedSlots:t._u([{key:"table-column",fn:function(e){return[t._t("table-column",[n("span",[t._v(t._s(e.column.label))])],{column:e.column})]}},{key:"column-filter",fn:function(e){return[t._t("column-filter",null,{column:e.column,updateFilters:e.updateFilters})]}}],null,!0)}),t._v(" "),t._l(t.paginated,function(e,r){return n("tbody",{key:r},[t.groupHeaderOnTop?n("vgt-header-row",{class:t.getRowStyleClass(e),attrs:{"header-row":e,columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"select-all-by-group":t.selectAllByGroup,collapsable:t.groupOptions.collapsable,"collect-formatted":t.collectFormatted,"formatted-row":t.formattedRow,"get-classes":t.getClasses,"full-colspan":t.fullColspan,groupIndex:r},on:{vgtExpand:function(n){return t.toggleExpand(e[t.rowKeyField])},"on-select-group-change":function(n){return t.toggleSelectGroup(n,e)}},scopedSlots:t._u([{key:"table-header-row",fn:function(e){return t.hasHeaderRowTemplate?[t._t("table-header-row",null,{column:e.column,formattedRow:e.formattedRow,row:e.row})]:void 0}}],null,!0)}):t._e(),t._v(" "),t._l(e.children,function(r,a){return!t.groupOptions.collapsable||e.vgtIsExpanded?n("tr",{key:r.originalIndex,class:t.getRowStyleClass(r),on:{mouseenter:function(e){return t.onMouseenter(r,a)},mouseleave:function(e){return t.onMouseleave(r,a)},dblclick:function(e){return t.onRowDoubleClicked(r,a,e)},click:function(e){return t.onRowClicked(r,a,e)},auxclick:function(e){return t.onRowAuxClicked(r,a,e)}}},[t.lineNumbers?n("th",{staticClass:"line-numbers"},[t._v("\n "+t._s(t.getCurrentIndex(a))+"\n ")]):t._e(),t._v(" "),t.selectable?n("th",{staticClass:"vgt-checkbox-col",on:{click:function(e){return e.stopPropagation(),t.onCheckboxClicked(r,a,e)}}},[n("input",{attrs:{type:"checkbox"},domProps:{checked:r.vgtSelected}})]):t._e(),t._v(" "),t._l(t.columns,function(e,o){return!e.hidden&&e.field?n("td",{key:o,class:t.getClasses(o,"td",r),attrs:{"data-label":t.compactMode?e.label:void 0},on:{click:function(n){return t.onCellClicked(r,e,a,n)}}},[t._t("table-row",[e.html?t._e():n("span",[t._v("\n "+t._s(t.collectFormatted(r,e))+"\n ")]),t._v(" "),e.html?n("span",{domProps:{innerHTML:t._s(t.collect(r,e.field))}}):t._e()],{row:r,column:e,formattedRow:t.formattedRow(r),index:a})],2):t._e()})],2):t._e()}),t._v(" "),t.groupHeaderOnBottom?n("vgt-header-row",{attrs:{"header-row":e,columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"select-all-by-group":t.selectAllByGroup,"collect-formatted":t.collectFormatted,"formatted-row":t.formattedRow,"get-classes":t.getClasses,"full-colspan":t.fullColspan,groupIndex:r},on:{"on-select-group-change":function(n){return t.toggleSelectGroup(n,e)}},scopedSlots:t._u([{key:"table-header-row",fn:function(e){return t.hasHeaderRowTemplate?[t._t("table-header-row",null,{column:e.column,formattedRow:e.formattedRow,row:e.row})]:void 0}}],null,!0)}):t._e()],2)}),t._v(" "),t.showEmptySlot?n("tbody",[n("tr",[n("td",{attrs:{colspan:t.fullColspan}},[t._t("emptystate",[n("div",{staticClass:"vgt-center-align vgt-text-disabled"},[t._v("\n No data for table\n ")])])],2)])]):t._e()],2)]),t._v(" "),t.hasFooterSlot?n("div",{staticClass:"vgt-wrap__actions-footer"},[t._t("table-actions-bottom")],2):t._e(),t._v(" "),t.paginate&&t.paginateOnBottom?t._t("pagination-bottom",[n("vgt-pagination",{ref:"paginationBottom",attrs:{perPage:t.perPage,rtl:t.rtl,total:t.totalRows||t.totalRowCount,mode:t.paginationMode,nextText:t.nextText,prevText:t.prevText,rowsPerPageText:t.rowsPerPageText,customRowsPerPageDropdown:t.customRowsPerPageDropdown,paginateDropdownAllowAll:t.paginateDropdownAllowAll,ofText:t.ofText,pageText:t.pageText,allText:t.allText},on:{"page-changed":t.pageChanged,"per-page-changed":t.perPageChanged}})],{pageChanged:t.pageChanged,perPageChanged:t.perPageChanged,total:t.totalRows||t.totalRowCount}):t._e()],2)])},staticRenderFns:[]},void 0,{name:"vue-good-table",props:{isLoading:{default:null,type:Boolean},maxHeight:{default:null,type:String},fixedHeader:Boolean,theme:{default:""},mode:{default:"local"},totalRows:{},styleClass:{default:"vgt-table bordered"},columns:{},rows:{},lineNumbers:Boolean,responsive:{default:!0,type:Boolean},rtl:Boolean,rowStyleClass:{default:null,type:[Function,String]},compactMode:Boolean,groupOptions:{default:function(){return{enabled:!1,collapsable:!1,rowKey:null}}},selectOptions:{default:function(){return{enabled:!1,selectionInfoClass:"",selectionText:"rows selected",clearSelectionText:"clear",disableSelectInfo:!1,selectAllByGroup:!1}}},sortOptions:{default:function(){return{enabled:!0,initialSortBy:{}}}},paginationOptions:{default:function(){return{enabled:!1,perPage:10,perPageDropdown:null,position:"bottom",dropdownAllowAll:!0,mode:"records"}}},searchOptions:{default:function(){return{enabled:!1,trigger:null,externalQuery:null,searchFn:null,placeholder:"Search Table"}}}},data:function(){return{tableLoading:!1,nextText:"Next",prevText:"Prev",rowsPerPageText:"Rows per page",ofText:"of",allText:"All",pageText:"page",selectable:!1,selectOnCheckboxOnly:!1,selectAllByPage:!0,disableSelectInfo:!1,selectionInfoClass:"",selectionText:"rows selected",clearSelectionText:"clear",maintainExpanded:!0,expandedRowKeys:new Set,sortable:!0,defaultSortBy:null,searchEnabled:!1,searchTrigger:null,externalSearchQuery:null,searchFn:null,searchPlaceholder:"Search Table",searchSkipDiacritics:!1,perPage:null,paginate:!1,paginateOnTop:!1,paginateOnBottom:!0,customRowsPerPageDropdown:[],paginateDropdownAllowAll:!0,paginationMode:"records",currentPage:1,currentPerPage:10,sorts:[],globalSearchTerm:"",filteredRows:[],columnFilters:{},forceSearch:!1,sortChanged:!1,dataTypes:rn||{}}},watch:{rows:{handler:function(){this.$emit("update:isLoading",!1),this.filterRows(this.columnFilters,!1)},deep:!0,immediate:!0},selectOptions:{handler:function(){this.initializeSelect()},deep:!0,immediate:!0},paginationOptions:{handler:function(t,e){tt(t,e)||this.initializePagination()},deep:!0,immediate:!0},searchOptions:{handler:function(){void 0!==this.searchOptions.externalQuery&&this.searchOptions.externalQuery!==this.searchTerm&&(this.externalSearchQuery=this.searchOptions.externalQuery,this.handleSearch()),this.initializeSearch()},deep:!0,immediate:!0},sortOptions:{handler:function(t,e){tt(t,e)||this.initializeSort()},deep:!0},selectedRows:function(t,e){tt(t,e)||this.$emit("on-selected-rows-change",{selectedRows:this.selectedRows})}},computed:{tableStyles:function(){return this.compactMode?this.tableStyleClasses+"vgt-compact":this.tableStyleClasses},hasFooterSlot:function(){return!!this.$slots["table-actions-bottom"]},wrapperStyles:function(){return{overflow:"scroll-y",maxHeight:this.maxHeight?this.maxHeight:"auto"}},rowKeyField:function(){return this.groupOptions.rowKey||"vgt_header_id"},hasHeaderRowTemplate:function(){return!!this.$slots["table-header-row"]||!!this.$scopedSlots["table-header-row"]},showEmptySlot:function(){return!this.paginated.length||"no groups"===this.paginated[0].label&&!this.paginated[0].children.length},allSelected:function(){return this.selectedRowCount>0&&(this.selectAllByPage&&this.selectedPageRowsCount===this.totalPageRowCount||!this.selectAllByPage&&this.selectedRowCount===this.totalRowCount)},allSelectedIndeterminate:function(){return!this.allSelected&&(this.selectAllByPage&&this.selectedPageRowsCount>0||!this.selectAllByPage&&this.selectedRowCount>0)},selectionInfo:function(){return"".concat(this.selectedRowCount," ").concat(this.selectionText)},selectedRowCount:function(){return this.selectedRows.length},selectedPageRowsCount:function(){return this.selectedPageRows.length},selectedPageRows:function(){var t=[];return O(this.paginated,function(e){O(e.children,function(e){e.vgtSelected&&t.push(e)})}),t},selectedRows:function(){var t=[];return O(this.processedRows,function(e){O(e.children,function(e){e.vgtSelected&&t.push(e)})}),t.sort(function(t,e){return t.originalIndex-e.originalIndex})},fullColspan:function(){for(var t=0,e=0;e=e.length||-1===this.currentPerPage)&&(this.currentPage=1,n=0);var a=e.length+1;-1!==this.currentPerPage&&(a=this.currentPage*this.currentPerPage),e=e.slice(n,a)}var o=[];return e.forEach(function(e){if(void 0!==e.vgt_header_id){t.handleExpanded(e);var n=J(e);n.children=[],o.push(n)}else{var r=o.find(function(t){return t.vgt_header_id===e.vgt_id});r||(r=t.processedRows.find(function(t){return t.vgt_header_id===e.vgt_id}))&&((r=J(r)).children=[],o.push(r)),r.children.push(e)}}),o},originalRows:function(){var t=J(this.rows),e=[];e=this.groupOptions.enabled?this.handleGrouped(t):this.handleGrouped([{label:"no groups",children:t}]);var n=0;return O(e,function(t,e){O(t.children,function(t,e){t.originalIndex=n++})}),e},typedColumns:function(){for(var t=X(this.columns,[]),e=0;e2&&void 0!==arguments[2]&&arguments[2]&&e.headerField?this.collect(t,e.headerField):this.collect(t,e.field)))return"";if(e.formatFn&&"function"==typeof e.formatFn)return e.formatFn(n,t);var r=e.typeDef;r||(r=this.dataTypes[e.type]||at);var a=r.format(n,e);return!this.compactMode||""!=a&&null!=a?a:"-"},formattedRow:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={},r=0;r1&&void 0!==arguments[1])||arguments[1];this.columnFilters=t;var a=J(this.originalRows);if(this.columnFilters&&Object.keys(this.columnFilters).length){if(("remote"!==this.mode||r)&&this.changePage(1),r&&this.$emit("on-column-filter",{columnFilters:this.columnFilters}),"remote"===this.mode)return void(r?this.$emit("update:isLoading",!0):this.filteredRows=a);for(var o=function(t){var r=n.typedColumns[t];n.columnFilters[r.field]&&(a=O(a,function(t){var a=t.children.filter(function(t){return r.filterOptions&&"function"==typeof r.filterOptions.filterFn?r.filterOptions.filterFn(n.collect(t,r.field),n.columnFilters[r.field]):r.typeDef.filterPredicate(n.collect(t,r.field),n.columnFilters[r.field],!1,r.filterOptions&&"object"===e(r.filterOptions.filterDropdownItems))});t.children=a}))},i=0;i-1&&t%1==0&&t-1&&t%1==0&&t<=a}(t.length)&&!function(t){var e=function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}(t)?p.call(t):"";return e==i||e==s}(t)}function S(t){return P(t)?m(t):T(t)}function k(t){return t}var O=function(t,e){return(C(t)?l:b)(t,"function"==typeof e?e:k)},j=9007199254740991,R="[object Arguments]",D="[object Function]",E="[object GeneratorFunction]",F=/^(?:0|[1-9]\d*)$/;var M=Object.prototype,A=M.hasOwnProperty,U=M.toString,I=M.propertyIsEnumerable,$=function(t,e){return function(n){return t(e(n))}}(Object.keys,Object),N=Math.max,q=!I.call({valueOf:1},"valueOf");function B(t,e){var n=W(t)||function(t){return function(t){return function(t){return!!t&&"object"==typeof t}(t)&&Q(t)}(t)&&A.call(t,"callee")&&(!I.call(t,"callee")||U.call(t)==R)}(t)?function(t,e){for(var n=-1,r=Array(t);++n-1&&t%1==0&&t-1&&t%1==0&&t<=j}(t.length)&&!function(t){var e=G(t)?U.call(t):"";return e==D||e==E}(t)}function G(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var X=function(t){return e=function(e,n){var r=-1,a=n.length,o=a>1?n[a-1]:void 0,i=a>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(a--,o):void 0,i&&function(t,e,n){if(!G(n))return!1;var r=typeof e;return!!("number"==r?Q(n)&&H(e,n.length):"string"==r&&e in n)&&z(n[e],t)}(n[0],n[1],i)&&(o=a<3?void 0:o,a=1),e=Object(e);++r-1},St.prototype.set=function(t,e){var n=this.__data__,r=Dt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},kt.prototype.clear=function(){this.__data__={hash:new Pt,map:new(ht||St),string:new Pt}},kt.prototype.delete=function(t){return Ut(this,t).delete(t)},kt.prototype.get=function(t){return Ut(this,t).get(t)},kt.prototype.has=function(t){return Ut(this,t).has(t)},kt.prototype.set=function(t,e){return Ut(this,t).set(t,e),this},Ot.prototype.clear=function(){this.__data__=new St},Ot.prototype.delete=function(t){return this.__data__.delete(t)},Ot.prototype.get=function(t){return this.__data__.get(t)},Ot.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.set=function(t,e){var r=this.__data__;if(r instanceof St){var a=r.__data__;if(!ht||a.length-1&&t%1==0&&t-1&&t%1==0&&t<=a}(t.length)&&!Qt(t)}var Wt=ct||function(){return!1};function Qt(t){var e=Gt(t)?tt.call(t):"";return e==u||e==l}function Gt(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Xt(t){return zt(t)?jt(t):function(t){if(!Bt(t))return dt(t);var e=[];for(var n in Object(t))Z.call(t,n)&&"constructor"!=n&&e.push(n);return e}(t)}t.exports=function(t){return Et(t,!0,!0)}}),Z=V(function(t,e){var n=200,r="Expected a function",a="__lodash_hash_undefined__",o=1,i=2,s=1/0,u=9007199254740991,l="[object Arguments]",c="[object Array]",d="[object Boolean]",f="[object Date]",h="[object Error]",p="[object Function]",g="[object GeneratorFunction]",v="[object Map]",m="[object Number]",w="[object Object]",y="[object RegExp]",b="[object Set]",_="[object String]",T="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",P=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,S=/^\w*$/,k=/^\./,O=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,j=/\\(\\)?/g,R=/^\[object .+?Constructor\]$/,D=/^(?:0|[1-9]\d*)$/,E={};E["[object Float32Array]"]=E["[object Float64Array]"]=E["[object Int8Array]"]=E["[object Int16Array]"]=E["[object Int32Array]"]=E["[object Uint8Array]"]=E["[object Uint8ClampedArray]"]=E["[object Uint16Array]"]=E["[object Uint32Array]"]=!0,E[l]=E[c]=E[x]=E[d]=E[C]=E[f]=E[h]=E[p]=E[v]=E[m]=E[w]=E[y]=E[b]=E[_]=E["[object WeakMap]"]=!1;var F="object"==typeof K&&K&&K.Object===Object&&K,M="object"==typeof self&&self&&self.Object===Object&&self,A=F||M||Function("return this")(),U=e&&!e.nodeType&&e,I=U&&t&&!t.nodeType&&t,$=I&&I.exports===U&&F.process,N=function(){try{return $&&$.binding("util")}catch(t){}}(),q=N&&N.isTypedArray;function B(t,e){for(var n=-1,r=t?t.length:0,a=0,o=[];++n-1},Pt.prototype.set=function(t,e){var n=this.__data__,r=Rt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},St.prototype.clear=function(){this.__data__={hash:new Ct,map:new(dt||Pt),string:new Ct}},St.prototype.delete=function(t){return Yt(this,t).delete(t)},St.prototype.get=function(t){return Yt(this,t).get(t)},St.prototype.has=function(t){return Yt(this,t).has(t)},St.prototype.set=function(t,e){return Yt(this,t).set(t,e),this},kt.prototype.add=kt.prototype.push=function(t){return this.__data__.set(t,a),this},kt.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.clear=function(){this.__data__=new Pt},Ot.prototype.delete=function(t){return this.__data__.delete(t)},Ot.prototype.get=function(t){return this.__data__.get(t)},Ot.prototype.has=function(t){return this.__data__.has(t)},Ot.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Pt){var a=r.__data__;if(!dt||a.lengthl))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var f=-1,h=!0,p=a&o?new kt:void 0;for(s.set(t,e),s.set(e,t);++f-1&&t%1==0&&t-1&&t%1==0&&t<=u}function se(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ue(t){return!!t&&"object"==typeof t}function le(t){return"symbol"==typeof t||ue(t)&&rt.call(t)==T}var ce=q?function(t){return function(e){return t(e)}}(q):function(t){return ue(t)&&ie(t.length)&&!!E[rt.call(t)]};function de(t){return ae(t)?jt(t):Bt(t)}function fe(t){return t}t.exports=function(t,e){return(re(t)?B:Mt)(t,qt(e))}}),tt=V(function(t,e){var n=200,r="__lodash_hash_undefined__",a=1,o=2,i=9007199254740991,s="[object Arguments]",u="[object Array]",l="[object AsyncFunction]",c="[object Boolean]",d="[object Date]",f="[object Error]",h="[object Function]",p="[object GeneratorFunction]",g="[object Map]",v="[object Number]",m="[object Null]",w="[object Object]",y="[object Proxy]",b="[object RegExp]",_="[object Set]",T="[object String]",x="[object Symbol]",C="[object Undefined]",P="[object ArrayBuffer]",S="[object DataView]",k=/^\[object .+?Constructor\]$/,O=/^(?:0|[1-9]\d*)$/,j={};j["[object Float32Array]"]=j["[object Float64Array]"]=j["[object Int8Array]"]=j["[object Int16Array]"]=j["[object Int32Array]"]=j["[object Uint8Array]"]=j["[object Uint8ClampedArray]"]=j["[object Uint16Array]"]=j["[object Uint32Array]"]=!0,j[s]=j[u]=j[P]=j[c]=j[S]=j[d]=j[f]=j[h]=j[g]=j[v]=j[w]=j[b]=j[_]=j[T]=j["[object WeakMap]"]=!1;var R="object"==typeof K&&K&&K.Object===Object&&K,D="object"==typeof self&&self&&self.Object===Object&&self,E=R||D||Function("return this")(),F=e&&!e.nodeType&&e,M=F&&t&&!t.nodeType&&t,A=M&&M.exports===F,U=A&&R.process,I=function(){try{return U&&U.binding&&U.binding("util")}catch(t){}}(),$=I&&I.isTypedArray;function N(t,e){for(var n=-1,r=null==t?0:t.length;++nl))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var f=-1,h=!0,p=n&o?new St:void 0;for(s.set(t,e),s.set(e,t);++f-1},Ct.prototype.set=function(t,e){var n=this.__data__,r=jt(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Pt.prototype.clear=function(){this.size=0,this.__data__={hash:new xt,map:new(dt||Ct),string:new xt}},Pt.prototype.delete=function(t){var e=It(this,t).delete(t);return this.size-=e?1:0,e},Pt.prototype.get=function(t){return It(this,t).get(t)},Pt.prototype.has=function(t){return It(this,t).has(t)},Pt.prototype.set=function(t,e){var n=It(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},St.prototype.add=St.prototype.push=function(t){return this.__data__.set(t,r),this},St.prototype.has=function(t){return this.__data__.has(t)},kt.prototype.clear=function(){this.__data__=new Ct,this.size=0},kt.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},kt.prototype.get=function(t){return this.__data__.get(t)},kt.prototype.has=function(t){return this.__data__.has(t)},kt.prototype.set=function(t,e){var r=this.__data__;if(r instanceof Ct){var a=r.__data__;if(!dt||a.length-1&&t%1==0&&t-1&&t%1==0&&t<=i}function Xt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Kt(t){return null!=t&&"object"==typeof t}var Vt=$?function(t){return function(e){return t(e)}}($):function(t){return Kt(t)&&Gt(t.length)&&!!j[Rt(t)]};function Jt(t){return null!=(e=t)&&Gt(e.length)&&!Qt(e)?Ot(t):Mt(t);var e}t.exports=function(t,e){return Et(t,e)}}),et={a:["a","à","á","â","ã","ä","å","æ","ā","ă","ą","ǎ","ǟ","ǡ","ǻ","ȁ","ȃ","ȧ","ɐ","ɑ","ɒ","ͣ","а","ӑ","ӓ","ᵃ","ᵄ","ᶏ","ḁ","ẚ","ạ","ả","ấ","ầ","ẩ","ẫ","ậ","ắ","ằ","ẳ","ẵ","ặ","ₐ","ⱥ","a"],A:["A","À","Á","Â","Ã","Ä","Å","Ā","Ă","Ą","Ǎ","Ǟ","Ǡ","Ǻ","Ȁ","Ȃ","Ȧ","Ⱥ","А","Ӑ","Ӓ","ᴀ","ᴬ","Ḁ","Ạ","Ả","Ấ","Ầ","Ẩ","Ẫ","Ậ","Ắ","Ằ","Ẳ","Ẵ","Ặ","A"],b:["b","ƀ","ƃ","ɓ","ᖯ","ᵇ","ᵬ","ᶀ","ḃ","ḅ","ḇ","b"],B:["B","Ɓ","Ƃ","Ƀ","ʙ","ᛒ","ᴃ","ᴮ","ᴯ","Ḃ","Ḅ","Ḇ","B"],c:["c","ç","ć","ĉ","ċ","č","ƈ","ȼ","ɕ","ͨ","ᴄ","ᶜ","ḉ","ↄ","c"],C:["C","Ç","Ć","Ĉ","Ċ","Č","Ƈ","Ȼ","ʗ","Ḉ","C"],d:["d","ď","đ","Ƌ","ƌ","ȡ","ɖ","ɗ","ͩ","ᵈ","ᵭ","ᶁ","ᶑ","ḋ","ḍ","ḏ","ḑ","ḓ","d"],D:["D","Ď","Đ","Ɖ","Ɗ","ᴰ","Ḋ","Ḍ","Ḏ","Ḑ","Ḓ","D"],e:["e","è","é","ê","ë","ē","ĕ","ė","ę","ě","ǝ","ȅ","ȇ","ȩ","ɇ","ɘ","ͤ","ᵉ","ᶒ","ḕ","ḗ","ḙ","ḛ","ḝ","ẹ","ẻ","ẽ","ế","ề","ể","ễ","ệ","ₑ","e"],E:["E","È","É","Ê","Ë","Ē","Ĕ","Ė","Ę","Ě","Œ","Ǝ","Ɛ","Ȅ","Ȇ","Ȩ","Ɇ","ɛ","ɜ","ɶ","Є","Э","э","є","Ӭ","ӭ","ᴇ","ᴈ","ᴱ","ᴲ","ᵋ","ᵌ","ᶓ","ᶔ","ᶟ","Ḕ","Ḗ","Ḙ","Ḛ","Ḝ","Ẹ","Ẻ","Ẽ","Ế","Ề","Ể","Ễ","Ệ","E","𐐁","𐐩"],f:["f","ƒ","ᵮ","ᶂ","ᶠ","ḟ","f"],F:["F","Ƒ","Ḟ","ⅎ","F"],g:["g","ĝ","ğ","ġ","ģ","ǥ","ǧ","ǵ","ɠ","ɡ","ᵍ","ᵷ","ᵹ","ᶃ","ᶢ","ḡ","g"],G:["G","Ĝ","Ğ","Ġ","Ģ","Ɠ","Ǥ","Ǧ","Ǵ","ɢ","ʛ","ᴳ","Ḡ","G"],h:["h","ĥ","ħ","ƕ","ȟ","ɥ","ɦ","ʮ","ʯ","ʰ","ʱ","ͪ","Һ","һ","ᑋ","ᶣ","ḣ","ḥ","ḧ","ḩ","ḫ","ⱨ","h"],H:["H","Ĥ","Ħ","Ȟ","ʜ","ᕼ","ᚺ","ᚻ","ᴴ","Ḣ","Ḥ","Ḧ","Ḩ","Ḫ","Ⱨ","H"],i:["i","ì","í","î","ï","ĩ","ī","ĭ","į","ǐ","ȉ","ȋ","ɨ","ͥ","ᴉ","ᵎ","ᵢ","ᶖ","ᶤ","ḭ","ḯ","ỉ","ị","i"],I:["I","Ì","Í","Î","Ï","Ĩ","Ī","Ĭ","Į","İ","Ǐ","Ȉ","Ȋ","ɪ","І","ᴵ","ᵻ","ᶦ","ᶧ","Ḭ","Ḯ","Ỉ","Ị","I"],j:["j","ĵ","ǰ","ɉ","ʝ","ʲ","ᶡ","ᶨ","j"],J:["J","Ĵ","ᴊ","ᴶ","J"],k:["k","ķ","ƙ","ǩ","ʞ","ᵏ","ᶄ","ḱ","ḳ","ḵ","ⱪ","k"],K:["K","Ķ","Ƙ","Ǩ","ᴷ","Ḱ","Ḳ","Ḵ","Ⱪ","K"],l:["l","ĺ","ļ","ľ","ŀ","ł","ƚ","ȴ","ɫ","ɬ","ɭ","ˡ","ᶅ","ᶩ","ᶪ","ḷ","ḹ","ḻ","ḽ","ℓ","ⱡ"],L:["L","Ĺ","Ļ","Ľ","Ŀ","Ł","Ƚ","ʟ","ᴌ","ᴸ","ᶫ","Ḷ","Ḹ","Ḻ","Ḽ","Ⱡ","Ɫ"],m:["m","ɯ","ɰ","ɱ","ͫ","ᴟ","ᵐ","ᵚ","ᵯ","ᶆ","ᶬ","ᶭ","ḿ","ṁ","ṃ","㎡","㎥","m"],M:["M","Ɯ","ᴍ","ᴹ","Ḿ","Ṁ","Ṃ","M"],n:["n","ñ","ń","ņ","ň","ʼn","ƞ","ǹ","ȵ","ɲ","ɳ","ᵰ","ᶇ","ᶮ","ᶯ","ṅ","ṇ","ṉ","ṋ","ⁿ","n"],N:["N","Ñ","Ń","Ņ","Ň","Ɲ","Ǹ","Ƞ","ɴ","ᴎ","ᴺ","ᴻ","ᶰ","Ṅ","Ṇ","Ṉ","Ṋ","N"],o:["o","ò","ó","ô","õ","ö","ø","ō","ŏ","ő","ơ","ǒ","ǫ","ǭ","ǿ","ȍ","ȏ","ȫ","ȭ","ȯ","ȱ","ɵ","ͦ","о","ӧ","ө","ᴏ","ᴑ","ᴓ","ᴼ","ᵒ","ᶱ","ṍ","ṏ","ṑ","ṓ","ọ","ỏ","ố","ồ","ổ","ỗ","ộ","ớ","ờ","ở","ỡ","ợ","ₒ","o","𐐬"],O:["O","Ò","Ó","Ô","Õ","Ö","Ø","Ō","Ŏ","Ő","Ɵ","Ơ","Ǒ","Ǫ","Ǭ","Ǿ","Ȍ","Ȏ","Ȫ","Ȭ","Ȯ","Ȱ","О","Ӧ","Ө","Ṍ","Ṏ","Ṑ","Ṓ","Ọ","Ỏ","Ố","Ồ","Ổ","Ỗ","Ộ","Ớ","Ờ","Ở","Ỡ","Ợ","O","𐐄"],p:["p","ᵖ","ᵱ","ᵽ","ᶈ","ṕ","ṗ","p"],P:["P","Ƥ","ᴘ","ᴾ","Ṕ","Ṗ","Ᵽ","P"],q:["q","ɋ","ʠ","ᛩ","q"],Q:["Q","Ɋ","Q"],r:["r","ŕ","ŗ","ř","ȑ","ȓ","ɍ","ɹ","ɻ","ʳ","ʴ","ʵ","ͬ","ᵣ","ᵲ","ᶉ","ṙ","ṛ","ṝ","ṟ"],R:["R","Ŕ","Ŗ","Ř","Ʀ","Ȑ","Ȓ","Ɍ","ʀ","ʁ","ʶ","ᚱ","ᴙ","ᴚ","ᴿ","Ṙ","Ṛ","Ṝ","Ṟ","Ɽ"],s:["s","ś","ŝ","ş","š","ș","ʂ","ᔆ","ᶊ","ṡ","ṣ","ṥ","ṧ","ṩ","s"],S:["S","Ś","Ŝ","Ş","Š","Ș","ȿ","ˢ","ᵴ","Ṡ","Ṣ","Ṥ","Ṧ","Ṩ","S"],t:["t","ţ","ť","ŧ","ƫ","ƭ","ț","ʇ","ͭ","ᵀ","ᵗ","ᵵ","ᶵ","ṫ","ṭ","ṯ","ṱ","ẗ","t"],T:["T","Ţ","Ť","Ƭ","Ʈ","Ț","Ⱦ","ᴛ","ᵀ","Ṫ","Ṭ","Ṯ","Ṱ","T"],u:["u","ù","ú","û","ü","ũ","ū","ŭ","ů","ű","ų","ư","ǔ","ǖ","ǘ","ǚ","ǜ","ȕ","ȗ","ͧ","ߎ","ᵘ","ᵤ","ṳ","ṵ","ṷ","ṹ","ṻ","ụ","ủ","ứ","ừ","ử","ữ","ự","u"],U:["U","Ù","Ú","Û","Ü","Ũ","Ū","Ŭ","Ů","Ű","Ų","Ư","Ǔ","Ǖ","Ǘ","Ǚ","Ǜ","Ȕ","Ȗ","Ʉ","ᴜ","ᵁ","ᵾ","Ṳ","Ṵ","Ṷ","Ṹ","Ṻ","Ụ","Ủ","Ứ","Ừ","Ử","Ữ","Ự","U"],v:["v","ʋ","ͮ","ᵛ","ᵥ","ᶹ","ṽ","ṿ","ⱱ","v","ⱴ"],V:["V","Ʋ","Ʌ","ʌ","ᴠ","ᶌ","Ṽ","Ṿ","V"],w:["w","ŵ","ʷ","ᵂ","ẁ","ẃ","ẅ","ẇ","ẉ","ẘ","ⱳ","w"],W:["W","Ŵ","ʍ","ᴡ","Ẁ","Ẃ","Ẅ","Ẇ","Ẉ","Ⱳ","W"],x:["x","̽","͓","ᶍ","ͯ","ẋ","ẍ","ₓ","x"],X:["X","ˣ","ͯ","Ẋ","Ẍ","☒","✕","✖","✗","✘","X"],y:["y","ý","ÿ","ŷ","ȳ","ɏ","ʸ","ẏ","ỳ","ỵ","ỷ","ỹ","y"],Y:["Y","Ý","Ŷ","Ÿ","Ƴ","ƴ","Ȳ","Ɏ","ʎ","ʏ","Ẏ","Ỳ","Ỵ","Ỷ","Ỹ","Y"],z:["z","ź","ż","ž","ƶ","ȥ","ɀ","ʐ","ʑ","ᙆ","ᙇ","ᶻ","ᶼ","ᶽ","ẑ","ẓ","ẕ","ⱬ","z"],Z:["Z","Ź","Ż","Ž","Ƶ","Ȥ","ᴢ","ᵶ","Ẑ","Ẓ","Ẕ","Ⱬ","Z"]},nt=function(t){for(var e=[],n=0;n2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(null==t)return!1;var a=n?String(t).toLowerCase():nt(rt(String(t)).toLowerCase()),o=n?e.toLowerCase():nt(rt(e).toLowerCase());return r?a===o:a.indexOf(o)>-1},compare:function(t,e){function n(t){return null==t?"":nt(t.toLowerCase())}return(t=n(t))<(e=n(e))?-1:t>e?1:0}},ot={name:"VgtPaginationPageInfo",props:{currentPage:{default:1},lastPage:{default:1},totalRecords:{default:0},ofText:{default:"of",type:String},pageText:{default:"page",type:String}},data:function(){return{}},computed:{pageInfo:function(){return"".concat(this.ofText," ").concat(this.lastPage)}},methods:{changePage:function(t){var e=parseInt(t.target.value,10);if(Number.isNaN(e)||e>this.lastPage||e<1)return t.target.value=this.currentPage,!1;t.target.value=e,this.$emit("page-changed",e)}},mounted:function(){},components:{}};function it(t,e,n,r,a,o,i,s,u,l){"boolean"!=typeof i&&(u=s,s=i,i=!1);const c="function"==typeof n?n.options:n;let d;if(t&&t.render&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0,a&&(c.functional=!0)),r&&(c._scopeId=r),o?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,u(t)),t&&t._registeredComponents&&t._registeredComponents.add(o)},c._ssrRegister=d):e&&(d=i?function(t){e.call(this,l(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,s(t))}),d)if(c.functional){const t=c.render;c.render=function(e,n){return d.call(n),t(e,n)}}else{const t=c.beforeCreate;c.beforeCreate=t?[].concat(t,d):[d]}return n}var st=[10,20,30,40,50],ut=it({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vgt-wrap__footer vgt-clearfix"},[n("div",{staticClass:"footer__row-count vgt-pull-left"},[n("span",{staticClass:"footer__row-count__label"},[t._v(t._s(t.rowsPerPageText))]),t._v(" "),n("select",{directives:[{name:"model",rawName:"v-model",value:t.currentPerPage,expression:"currentPerPage"}],staticClass:"footer__row-count__select",attrs:{autocomplete:"off",name:"perPageSelect"},on:{change:[function(e){var n=Array.prototype.filter.call(e.target.options,function(t){return t.selected}).map(function(t){return"_value"in t?t._value:t.value});t.currentPerPage=e.target.multiple?n:n[0]},t.perPageChanged]}},[t._l(t.rowsPerPageOptions,function(e,r){return n("option",{key:"rows-dropdown-option-"+r,domProps:{value:e}},[t._v("\n "+t._s(e)+"\n ")])}),t._v(" "),t.paginateDropdownAllowAll?n("option",{domProps:{value:t.total}},[t._v(t._s(t.allText))]):t._e()],2)]),t._v(" "),n("div",{staticClass:"footer__navigation vgt-pull-right"},[n("a",{staticClass:"footer__navigation__page-btn",class:{disabled:!t.prevIsPossible},attrs:{href:"javascript:undefined",tabindex:"0"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.previousPage(e)}}},[n("span",{staticClass:"chevron",class:{left:!t.rtl,right:t.rtl}}),t._v(" "),n("span",[t._v(t._s(t.prevText))])]),t._v(" "),"pages"===t.mode?n("pagination-page-info",{attrs:{totalRecords:t.total,lastPage:t.pagesCount,currentPage:t.currentPage,ofText:t.ofText,pageText:t.pageText},on:{"page-changed":t.changePage}}):n("div",{staticClass:"footer__navigation__info"},[t._v(t._s(t.paginatedInfo))]),t._v(" "),n("a",{staticClass:"footer__navigation__page-btn",class:{disabled:!t.nextIsPossible},attrs:{href:"javascript:undefined",tabindex:"0"},on:{click:function(e){return e.preventDefault(),e.stopPropagation(),t.nextPage(e)}}},[n("span",[t._v(t._s(t.nextText))]),t._v(" "),n("span",{staticClass:"chevron",class:{right:!t.rtl,left:t.rtl}})])],1)])},staticRenderFns:[]},void 0,{name:"VgtPagination",props:{styleClass:{default:"table table-bordered"},total:{default:null},perPage:{},rtl:{default:!1},customRowsPerPageDropdown:{default:function(){return[]}},paginateDropdownAllowAll:{default:!0},mode:{default:"records"},nextText:{default:"Next"},prevText:{default:"Prev"},rowsPerPageText:{default:"Rows per page:"},ofText:{default:"of"},pageText:{default:"page"},allText:{default:"All"}},data:function(){return{currentPage:1,prevPage:0,currentPerPage:10,rowsPerPageOptions:[]}},watch:{perPage:{handler:function(t,e){this.handlePerPage(),this.perPageChanged(e)},immediate:!0},customRowsPerPageDropdown:function(){this.handlePerPage()},total:{handler:function(t,e){-1===this.rowsPerPageOptions.indexOf(this.currentPerPage)&&(this.currentPerPage=t)}}},computed:{pagesCount:function(){var t=Math.floor(this.total/this.currentPerPage);return 0===this.total%this.currentPerPage?t:t+1},paginatedInfo:function(){var t=(this.currentPage-1)*this.currentPerPage+1,e=Math.min(this.total,this.currentPage*this.currentPerPage);return 0===e&&(t=0),"".concat(t," - ").concat(e," ").concat(this.ofText," ").concat(this.total)},nextIsPossible:function(){return this.currentPage1}},methods:{changePage:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t>0&&this.total>this.currentPerPage*(t-1)&&(this.prevPage=this.currentPage,this.currentPage=t,e&&this.pageChanged())},nextPage:function(){this.nextIsPossible&&(this.prevPage=this.currentPage,++this.currentPage,this.pageChanged())},previousPage:function(){this.prevIsPossible&&(this.prevPage=this.currentPage,--this.currentPage,this.pageChanged())},pageChanged:function(){this.$emit("page-changed",{currentPage:this.currentPage,prevPage:this.prevPage})},perPageChanged:function(t){t&&this.$emit("per-page-changed",{currentPerPage:this.currentPerPage}),this.changePage(1,!1)},handlePerPage:function(){if(null!==this.customRowsPerPageDropdown&&Array.isArray(this.customRowsPerPageDropdown)&&0!==this.customRowsPerPageDropdown.length?this.rowsPerPageOptions=J(this.customRowsPerPageDropdown):this.rowsPerPageOptions=J(st),this.perPage){this.currentPerPage=this.perPage;for(var t=!1,e=0;e0&&void 0!==arguments[0]&&arguments[0];this.columnFilters={},t&&this.$emit("filter-changed",this.columnFilters)},isFilterable:function(t){return t.filterOptions&&t.filterOptions.enabled},isDropdown:function(t){return this.isFilterable(t)&&t.filterOptions.filterDropdownItems&&t.filterOptions.filterDropdownItems.length},isDropdownObjects:function(t){return this.isDropdown(t)&&"object"===e(t.filterOptions.filterDropdownItems[0])},isDropdownArray:function(t){return this.isDropdown(t)&&"object"!==e(t.filterOptions.filterDropdownItems[0])},getPlaceholder:function(t){return this.isFilterable(t)&&t.filterOptions.placeholder||"Filter ".concat(t.label)},updateFiltersOnEnter:function(t,e){this.timer&&clearTimeout(this.timer),this.updateFiltersImmediately(t.field,e)},updateFiltersOnKeyup:function(t,e){"enter"!==t.filterOptions.trigger&&this.updateFilters(t,e)},updateSlotFilter:function(t,e){var n=t.filterOptions.slotFilterField||t.field;"function"==typeof t.filterOptions.formatValue&&(e=t.filterOptions.formatValue(e)),this.updateFiltersImmediately(n,e)},updateFilters:function(t,e){var n=this;this.timer&&clearTimeout(this.timer),this.timer=setTimeout(function(){n.updateFiltersImmediately(t.field,e)},400)},updateFiltersImmediately:function(t,e){this.$set(this.columnFilters,t,e),this.$emit("filter-changed",this.columnFilters)},populateInitialFilters:function(){for(var t=0;t0?"in "+r:r+" ago":r},formatLong:Tt,formatRelative:function(t,e,n,r){return xt[t]},localize:{ordinalNumber:function(t,e){var n=Number(t),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Ct({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Ct({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return Number(t)-1}}),month:Ct({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Ct({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Ct({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(St={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t,e){var n=String(t),r=e||{},a=n.match(St.matchPattern);if(!a)return null;var o=a[0],i=n.match(St.parsePattern);if(!i)return null;var s=St.valueCallback?St.valueCallback(i[0]):i[0];return{value:s=r.valueCallback?r.valueCallback(s):s,rest:n.slice(o.length)}}),era:Pt({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:Pt({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:Pt({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:Pt({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:Pt({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ot(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");return function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=gt(t).getTime(),r=vt(e);return new Date(n+r)}(t,-vt(e))}function jt(t,e){for(var n=t<0?"-":"",r=Math.abs(t).toString();r.length0?n:1-n;return jt("yy"===e?r%100:r,e.length)},Dt=function(t,e){var n=t.getUTCMonth();return"M"===e?String(n+1):jt(n+1,2)},Et=function(t,e){return jt(t.getUTCDate(),e.length)},Ft=function(t,e){return jt(t.getUTCHours()%12||12,e.length)},Mt=function(t,e){return jt(t.getUTCHours(),e.length)},At=function(t,e){return jt(t.getUTCMinutes(),e.length)},Ut=function(t,e){return jt(t.getUTCSeconds(),e.length)},It=function(t,e){var n=e.length,r=t.getUTCMilliseconds();return jt(Math.floor(r*Math.pow(10,n-3)),e.length)},$t=864e5;function Nt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getUTCDay(),r=(n<1?7:0)+n-1;return e.setUTCDate(e.getUTCDate()-r),e.setUTCHours(0,0,0,0),e}function qt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=Nt(r),o=new Date(0);o.setUTCFullYear(n,0,4),o.setUTCHours(0,0,0,0);var i=Nt(o);return e.getTime()>=a.getTime()?n+1:e.getTime()>=i.getTime()?n:n-1}var Bt=6048e5;function Lt(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=Nt(e).getTime()-function(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=qt(t),n=new Date(0);return n.setUTCFullYear(e,0,4),n.setUTCHours(0,0,0,0),Nt(n)}(e).getTime();return Math.round(n/Bt)+1}function Ht(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=e||{},r=n.locale,a=r&&r.options&&r.options.weekStartsOn,o=null==a?0:vt(a),i=null==n.weekStartsOn?o:vt(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var s=gt(t),u=s.getUTCDay(),l=(u=1&&u<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=new Date(0);l.setUTCFullYear(r+1,0,u),l.setUTCHours(0,0,0,0);var c=Ht(l,e),d=new Date(0);d.setUTCFullYear(r,0,u),d.setUTCHours(0,0,0,0);var f=Ht(d,e);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}var zt=6048e5;function Wt(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=gt(t),r=Ht(n,e).getTime()-function(t,e){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var n=e||{},r=n.locale,a=r&&r.options&&r.options.firstWeekContainsDate,o=null==a?1:vt(a),i=null==n.firstWeekContainsDate?o:vt(n.firstWeekContainsDate),s=Yt(t,e),u=new Date(0);return u.setUTCFullYear(s,0,i),u.setUTCHours(0,0,0,0),Ht(u,e)}(n,e).getTime();return Math.round(r/zt)+1}var Qt="midnight",Gt="noon",Xt="morning",Kt="afternoon",Vt="evening",Jt="night",Zt={G:function(t,e,n){var r=t.getUTCFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var r=t.getUTCFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Rt(t,e)},Y:function(t,e,n,r){var a=Yt(t,r),o=a>0?a:1-a;return"YY"===e?jt(o%100,2):"Yo"===e?n.ordinalNumber(o,{unit:"year"}):jt(o,e.length)},R:function(t,e){return jt(qt(t),e.length)},u:function(t,e){return jt(t.getUTCFullYear(),e.length)},Q:function(t,e,n){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return jt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,n){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return jt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,n){var r=t.getUTCMonth();switch(e){case"M":case"MM":return Dt(t,e);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,n){var r=t.getUTCMonth();switch(e){case"L":return String(r+1);case"LL":return jt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,n,r){var a=Wt(t,r);return"wo"===e?n.ordinalNumber(a,{unit:"week"}):jt(a,e.length)},I:function(t,e,n){var r=Lt(t);return"Io"===e?n.ordinalNumber(r,{unit:"week"}):jt(r,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):Et(t,e)},D:function(t,e,n){var r=function(t){if(arguments.length<1)throw new TypeError("1 argument required, but only "+arguments.length+" present");var e=gt(t),n=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var r=n-e.getTime();return Math.floor(r/$t)+1}(t);return"Do"===e?n.ordinalNumber(r,{unit:"dayOfYear"}):jt(r,e.length)},E:function(t,e,n){var r=t.getUTCDay();switch(e){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,n,r){var a=t.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(o);case"ee":return jt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(t,e,n,r){var a=t.getUTCDay(),o=(a-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(o);case"cc":return jt(o,e.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(t,e,n){var r=t.getUTCDay(),a=0===r?7:r;switch(e){case"i":return String(a);case"ii":return jt(a,e.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,n){var r=t.getUTCHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(t,e,n){var r,a=t.getUTCHours();switch(r=12===a?Gt:0===a?Qt:a/12>=1?"pm":"am",e){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(t,e,n){var r,a=t.getUTCHours();switch(r=a>=17?Vt:a>=12?Kt:a>=4?Xt:Jt,e){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var r=t.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ft(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):Mt(t,e)},K:function(t,e,n){var r=t.getUTCHours()%12;return"Ko"===e?n.ordinalNumber(r,{unit:"hour"}):jt(r,e.length)},k:function(t,e,n){var r=t.getUTCHours();return 0===r&&(r=24),"ko"===e?n.ordinalNumber(r,{unit:"hour"}):jt(r,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):At(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):Ut(t,e)},S:function(t,e){return It(t,e)},X:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();if(0===a)return"Z";switch(e){case"X":return ee(a);case"XXXX":case"XX":return ne(a);case"XXXXX":case"XXX":default:return ne(a,":")}},x:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"x":return ee(a);case"xxxx":case"xx":return ne(a);case"xxxxx":case"xxx":default:return ne(a,":")}},O:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+te(a,":");case"OOOO":default:return"GMT"+ne(a,":")}},z:function(t,e,n,r){var a=(r._originalDate||t).getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+te(a,":");case"zzzz":default:return"GMT"+ne(a,":")}},t:function(t,e,n,r){var a=r._originalDate||t;return jt(Math.floor(a.getTime()/1e3),e.length)},T:function(t,e,n,r){return jt((r._originalDate||t).getTime(),e.length)}};function te(t,e){var n=t>0?"-":"+",r=Math.abs(t),a=Math.floor(r/60),o=r%60;if(0===o)return n+String(a);var i=e||"";return n+String(a)+i+jt(o,2)}function ee(t,e){return t%60==0?(t>0?"-":"+")+jt(Math.abs(t)/60,2):ne(t,e)}function ne(t,e){var n=e||"",r=t>0?"-":"+",a=Math.abs(t);return r+jt(Math.floor(a/60),2)+n+jt(a%60,2)}function re(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}}function ae(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}}var oe={p:ae,P:function(t,e){var n,r=t.match(/(P+)(p+)?/),a=r[1],o=r[2];if(!o)return re(t,e);switch(a){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;case"PPPP":default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",re(a,e)).replace("{{time}}",ae(o,e))}},ie=["D","DD"],se=["YY","YYYY"];function ue(t){return-1!==ie.indexOf(t)}function le(t){return-1!==se.indexOf(t)}function ce(t){if("YYYY"===t)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===t)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===t)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===t)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}var de=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,fe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,he=/^'(.*?)'?$/,pe=/''/g,ge=/[a-zA-Z]/;function ve(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=String(e),a=n||{},o=a.locale||kt,i=o.options&&o.options.firstWeekContainsDate,s=null==i?1:vt(i),u=null==a.firstWeekContainsDate?s:vt(a.firstWeekContainsDate);if(!(u>=1&&u<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var l=o.options&&o.options.weekStartsOn,c=null==l?0:vt(l),d=null==a.weekStartsOn?c:vt(a.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!o.localize)throw new RangeError("locale must contain localize property");if(!o.formatLong)throw new RangeError("locale must contain formatLong property");var f=gt(t);if(!yt(f))throw new RangeError("Invalid time value");var h=Ot(f,wt(f)),p={firstWeekContainsDate:u,weekStartsOn:d,locale:o,_originalDate:f};return r.match(fe).map(function(t){var e=t[0];return"p"===e||"P"===e?(0,oe[e])(t,o.formatLong,p):t}).join("").match(de).map(function(t){if("''"===t)return"'";var e=t[0];if("'"===e)return t.match(he)[1].replace(pe,"'");var n=Zt[e];if(n)return!a.useAdditionalWeekYearTokens&&le(t)&&ce(t),!a.useAdditionalDayOfYearTokens&&ue(t)&&ce(t),n(h,t,o.localize,p);if(e.match(ge))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return t}).join("")}function me(t,e){if(null==t)throw new TypeError("assign requires that input parameter not be null or undefined");for(var n in e=e||{})e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function we(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=n||{},a=r.locale,o=a&&a.options&&a.options.weekStartsOn,i=null==o?0:vt(o),s=null==r.weekStartsOn?i:vt(r.weekStartsOn);if(!(s>=0&&s<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var u=gt(t),l=vt(e),c=((l%7+7)%70,a=r?e:1-e;if(a<=50)n=t||100;else{var o=a+50;n=t+100*Math.floor(o/100)-(t>=o%100?100:0)}return r?n:1-n}var Ae=[31,28,31,30,31,30,31,31,30,31,30,31],Ue=[31,29,31,30,31,30,31,31,30,31,30,31];function Ie(t){return t%400==0||t%4==0&&t%100!=0}var $e={G:{priority:140,parse:function(t,e,n,r){switch(e){case"G":case"GG":case"GGG":return n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"});case"GGGGG":return n.era(t,{width:"narrow"});case"GGGG":default:return n.era(t,{width:"wide"})||n.era(t,{width:"abbreviated"})||n.era(t,{width:"narrow"})}},set:function(t,e,n,r){return e.era=n,t.setUTCFullYear(n,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["R","u","t","T"]},y:{priority:130,parse:function(t,e,n,r){var a=function(t){return{year:t,isTwoDigitYear:"yy"===e}};switch(e){case"y":return De(4,t,a);case"yo":return n.ordinalNumber(t,{unit:"year",valueCallback:a});default:return De(e.length,t,a)}},validate:function(t,e,n){return e.isTwoDigitYear||e.year>0},set:function(t,e,n,r){var a=t.getUTCFullYear();if(n.isTwoDigitYear){var o=Me(n.year,a);return t.setUTCFullYear(o,0,1),t.setUTCHours(0,0,0,0),t}var i="era"in e&&1!==e.era?1-n.year:n.year;return t.setUTCFullYear(i,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","u","w","I","i","e","c","t","T"]},Y:{priority:130,parse:function(t,e,n,r){var a=function(t){return{year:t,isTwoDigitYear:"YY"===e}};switch(e){case"Y":return De(4,t,a);case"Yo":return n.ordinalNumber(t,{unit:"year",valueCallback:a});default:return De(e.length,t,a)}},validate:function(t,e,n){return e.isTwoDigitYear||e.year>0},set:function(t,e,n,r){var a=Yt(t,r);if(n.isTwoDigitYear){var o=Me(n.year,a);return t.setUTCFullYear(o,0,r.firstWeekContainsDate),t.setUTCHours(0,0,0,0),Ht(t,r)}var i="era"in e&&1!==e.era?1-n.year:n.year;return t.setUTCFullYear(i,0,r.firstWeekContainsDate),t.setUTCHours(0,0,0,0),Ht(t,r)},incompatibleTokens:["y","R","u","Q","q","M","L","I","d","D","i","t","T"]},R:{priority:130,parse:function(t,e,n,r){return Ee("R"===e?4:e.length,t)},set:function(t,e,n,r){var a=new Date(0);return a.setUTCFullYear(n,0,4),a.setUTCHours(0,0,0,0),Nt(a)},incompatibleTokens:["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]},u:{priority:130,parse:function(t,e,n,r){return Ee("u"===e?4:e.length,t)},set:function(t,e,n,r){return t.setUTCFullYear(n,0,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["G","y","Y","R","w","I","i","e","c","t","T"]},Q:{priority:120,parse:function(t,e,n,r){switch(e){case"Q":case"QQ":return De(e.length,t);case"Qo":return n.ordinalNumber(t,{unit:"quarter"});case"QQQ":return n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return n.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(t,{width:"wide",context:"formatting"})||n.quarter(t,{width:"abbreviated",context:"formatting"})||n.quarter(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=1&&e<=4},set:function(t,e,n,r){return t.setUTCMonth(3*(n-1),1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]},q:{priority:120,parse:function(t,e,n,r){switch(e){case"q":case"qq":return De(e.length,t);case"qo":return n.ordinalNumber(t,{unit:"quarter"});case"qqq":return n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return n.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(t,{width:"wide",context:"standalone"})||n.quarter(t,{width:"abbreviated",context:"standalone"})||n.quarter(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=1&&e<=4},set:function(t,e,n,r){return t.setUTCMonth(3*(n-1),1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]},M:{priority:110,parse:function(t,e,n,r){var a=function(t){return t-1};switch(e){case"M":return Oe(Te.month,t,a);case"MM":return De(2,t,a);case"Mo":return n.ordinalNumber(t,{unit:"month",valueCallback:a});case"MMM":return n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return n.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(t,{width:"wide",context:"formatting"})||n.month(t,{width:"abbreviated",context:"formatting"})||n.month(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.setUTCMonth(n,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]},L:{priority:110,parse:function(t,e,n,r){var a=function(t){return t-1};switch(e){case"L":return Oe(Te.month,t,a);case"LL":return De(2,t,a);case"Lo":return n.ordinalNumber(t,{unit:"month",valueCallback:a});case"LLL":return n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return n.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(t,{width:"wide",context:"standalone"})||n.month(t,{width:"abbreviated",context:"standalone"})||n.month(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.setUTCMonth(n,1),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]},w:{priority:100,parse:function(t,e,n,r){switch(e){case"w":return Oe(Te.week,t);case"wo":return n.ordinalNumber(t,{unit:"week"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=53},set:function(t,e,n,r){return Ht(function(t,e,n){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var r=gt(t),a=vt(e),o=Wt(r,n)-a;return r.setUTCDate(r.getUTCDate()-7*o),r}(t,n,r),r)},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","i","t","T"]},I:{priority:100,parse:function(t,e,n,r){switch(e){case"I":return Oe(Te.week,t);case"Io":return n.ordinalNumber(t,{unit:"week"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=53},set:function(t,e,n,r){return Nt(function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=gt(t),r=vt(e),a=Lt(n)-r;return n.setUTCDate(n.getUTCDate()-7*a),n}(t,n,r),r)},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]},d:{priority:90,parse:function(t,e,n,r){switch(e){case"d":return Oe(Te.date,t);case"do":return n.ordinalNumber(t,{unit:"date"});default:return De(e.length,t)}},validate:function(t,e,n){var r=Ie(t.getUTCFullYear()),a=t.getUTCMonth();return r?e>=1&&e<=Ue[a]:e>=1&&e<=Ae[a]},set:function(t,e,n,r){return t.setUTCDate(n),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","w","I","D","i","e","c","t","T"]},D:{priority:90,parse:function(t,e,n,r){switch(e){case"D":case"DD":return Oe(Te.dayOfYear,t);case"Do":return n.ordinalNumber(t,{unit:"date"});default:return De(e.length,t)}},validate:function(t,e,n){return Ie(t.getUTCFullYear())?e>=1&&e<=366:e>=1&&e<=365},set:function(t,e,n,r){return t.setUTCMonth(0,n),t.setUTCHours(0,0,0,0),t},incompatibleTokens:["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]},E:{priority:90,parse:function(t,e,n,r){switch(e){case"E":case"EE":case"EEE":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return n.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["D","i","e","c","t","T"]},e:{priority:90,parse:function(t,e,n,r){var a=function(t){var e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"e":case"ee":return De(e.length,t,a);case"eo":return n.ordinalNumber(t,{unit:"day",valueCallback:a});case"eee":return n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeeee":return n.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return n.day(t,{width:"wide",context:"formatting"})||n.day(t,{width:"abbreviated",context:"formatting"})||n.day(t,{width:"short",context:"formatting"})||n.day(t,{width:"narrow",context:"formatting"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]},c:{priority:90,parse:function(t,e,n,r){var a=function(t){var e=7*Math.floor((t-1)/7);return(t+r.weekStartsOn+6)%7+e};switch(e){case"c":case"cc":return De(e.length,t,a);case"co":return n.ordinalNumber(t,{unit:"day",valueCallback:a});case"ccc":return n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"ccccc":return n.day(t,{width:"narrow",context:"standalone"});case"cccccc":return n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return n.day(t,{width:"wide",context:"standalone"})||n.day(t,{width:"abbreviated",context:"standalone"})||n.day(t,{width:"short",context:"standalone"})||n.day(t,{width:"narrow",context:"standalone"})}},validate:function(t,e,n){return e>=0&&e<=6},set:function(t,e,n,r){return(t=we(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]},i:{priority:90,parse:function(t,e,n,r){var a=function(t){return 0===t?7:t};switch(e){case"i":case"ii":return De(e.length,t);case"io":return n.ordinalNumber(t,{unit:"day"});case"iii":return n.day(t,{width:"abbreviated",context:"formatting",valueCallback:a})||n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiiii":return n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiiiii":return n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a});case"iiii":default:return n.day(t,{width:"wide",context:"formatting",valueCallback:a})||n.day(t,{width:"abbreviated",context:"formatting",valueCallback:a})||n.day(t,{width:"short",context:"formatting",valueCallback:a})||n.day(t,{width:"narrow",context:"formatting",valueCallback:a})}},validate:function(t,e,n){return e>=1&&e<=7},set:function(t,e,n,r){return(t=function(t,e){if(arguments.length<2)throw new TypeError("2 arguments required, but only "+arguments.length+" present");var n=vt(e);n%7==0&&(n-=7);var r=gt(t),a=((n%7+7)%7<1?7:0)+n-r.getUTCDay();return r.setUTCDate(r.getUTCDate()+a),r}(t,n,r)).setUTCHours(0,0,0,0),t},incompatibleTokens:["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]},a:{priority:80,parse:function(t,e,n,r){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["b","B","H","K","k","t","T"]},b:{priority:80,parse:function(t,e,n,r){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["a","B","H","K","k","t","T"]},B:{priority:80,parse:function(t,e,n,r){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return n.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(t,{width:"wide",context:"formatting"})||n.dayPeriod(t,{width:"abbreviated",context:"formatting"})||n.dayPeriod(t,{width:"narrow",context:"formatting"})}},set:function(t,e,n,r){return t.setUTCHours(Fe(n),0,0,0),t},incompatibleTokens:["a","b","t","T"]},h:{priority:70,parse:function(t,e,n,r){switch(e){case"h":return Oe(Te.hour12h,t);case"ho":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=12},set:function(t,e,n,r){var a=t.getUTCHours()>=12;return a&&n<12?t.setUTCHours(n+12,0,0,0):a||12!==n?t.setUTCHours(n,0,0,0):t.setUTCHours(0,0,0,0),t},incompatibleTokens:["H","K","k","t","T"]},H:{priority:70,parse:function(t,e,n,r){switch(e){case"H":return Oe(Te.hour23h,t);case"Ho":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=23},set:function(t,e,n,r){return t.setUTCHours(n,0,0,0),t},incompatibleTokens:["a","b","h","K","k","t","T"]},K:{priority:70,parse:function(t,e,n,r){switch(e){case"K":return Oe(Te.hour11h,t);case"Ko":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=11},set:function(t,e,n,r){return t.getUTCHours()>=12&&n<12?t.setUTCHours(n+12,0,0,0):t.setUTCHours(n,0,0,0),t},incompatibleTokens:["a","b","h","H","k","t","T"]},k:{priority:70,parse:function(t,e,n,r){switch(e){case"k":return Oe(Te.hour24h,t);case"ko":return n.ordinalNumber(t,{unit:"hour"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=1&&e<=24},set:function(t,e,n,r){var a=n<=24?n%24:n;return t.setUTCHours(a,0,0,0),t},incompatibleTokens:["a","b","h","H","K","t","T"]},m:{priority:60,parse:function(t,e,n,r){switch(e){case"m":return Oe(Te.minute,t);case"mo":return n.ordinalNumber(t,{unit:"minute"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=59},set:function(t,e,n,r){return t.setUTCMinutes(n,0,0),t},incompatibleTokens:["t","T"]},s:{priority:50,parse:function(t,e,n,r){switch(e){case"s":return Oe(Te.second,t);case"so":return n.ordinalNumber(t,{unit:"second"});default:return De(e.length,t)}},validate:function(t,e,n){return e>=0&&e<=59},set:function(t,e,n,r){return t.setUTCSeconds(n,0),t},incompatibleTokens:["t","T"]},S:{priority:30,parse:function(t,e,n,r){return De(e.length,t,function(t){return Math.floor(t*Math.pow(10,3-e.length))})},set:function(t,e,n,r){return t.setUTCMilliseconds(n),t},incompatibleTokens:["t","T"]},X:{priority:10,parse:function(t,e,n,r){switch(e){case"X":return je(xe,t);case"XX":return je(Ce,t);case"XXXX":return je(Pe,t);case"XXXXX":return je(ke,t);case"XXX":default:return je(Se,t)}},set:function(t,e,n,r){return e.timestampIsSet?t:new Date(t.getTime()-n)},incompatibleTokens:["t","T","x"]},x:{priority:10,parse:function(t,e,n,r){switch(e){case"x":return je(xe,t);case"xx":return je(Ce,t);case"xxxx":return je(Pe,t);case"xxxxx":return je(ke,t);case"xxx":default:return je(Se,t)}},set:function(t,e,n,r){return e.timestampIsSet?t:new Date(t.getTime()-n)},incompatibleTokens:["t","T","X"]},t:{priority:40,parse:function(t,e,n,r){return Re(t)},set:function(t,e,n,r){return[new Date(1e3*n),{timestampIsSet:!0}]},incompatibleTokens:"*"},T:{priority:20,parse:function(t,e,n,r){return Re(t)},set:function(t,e,n,r){return[new Date(n),{timestampIsSet:!0}]},incompatibleTokens:"*"}},Ne=10,qe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Be=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Le=/^'(.*?)'?$/,He=/''/g,Ye=/\S/,ze=/[a-zA-Z]/;function We(t,e,n,r){if(arguments.length<3)throw new TypeError("3 arguments required, but only "+arguments.length+" present");var a=String(t),o=String(e),i=r||{},s=i.locale||kt;if(!s.match)throw new RangeError("locale must contain match property");var u=s.options&&s.options.firstWeekContainsDate,l=null==u?1:vt(u),c=null==i.firstWeekContainsDate?l:vt(i.firstWeekContainsDate);if(!(c>=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var d=s.options&&s.options.weekStartsOn,f=null==d?0:vt(d),h=null==i.weekStartsOn?f:vt(i.weekStartsOn);if(!(h>=0&&h<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(""===o)return""===a?gt(n):new Date(NaN);var p,g={firstWeekContainsDate:c,weekStartsOn:h,locale:s},v=[{priority:Ne,set:Qe,index:0}],m=o.match(Be).map(function(t){var e=t[0];return"p"===e||"P"===e?(0,oe[e])(t,s.formatLong,g):t}).join("").match(qe),w=[];for(p=0;p0&&Ye.test(a))return new Date(NaN);var k=v.map(function(t){return t.priority}).sort(function(t,e){return e-t}).filter(function(t,e,n){return n.indexOf(t)===e}).map(function(t){return v.filter(function(e){return e.priority===t}).reverse()}).map(function(t){return t[0]}),O=gt(n);if(isNaN(O))return new Date(NaN);var j=Ot(O,wt(O)),R={};for(p=0;p0?1:a}(t,e):1:-1},Ge.format=function(t,e){if(null==t)return"";var n=We(t,e.dateInputFormat,new Date);return yt(n)?ve(n,e.dateOutputFormat):(console.error('Not a valid date: "'.concat(t,'"')),null)};var Xe=Object.freeze({default:Ge}),Ke=J(at);Ke.isRight=!0,Ke.filterPredicate=function(t,e){return 0===Ke.compare(t,e)},Ke.compare=function(t,e){function n(t){return null==t?-1/0:t.indexOf(".")>=0?parseFloat(t):parseInt(t,10)}return(t="number"==typeof t?t:n(t))<(e="number"==typeof e?e:n(e))?-1:t>e?1:0};var Ve=Object.freeze({default:Ke}),Je=J(Ke);Je.format=function(t){return null==t?"":parseFloat(Math.round(100*t)/100).toFixed(2)};var Ze=Object.freeze({default:Je}),tn=J(Ke);tn.format=function(t){return null==t?"":"".concat(parseFloat(100*t).toFixed(2),"%")};var en=Object.freeze({default:tn}),nn=J(at);nn.isRight=!0,nn.filterPredicate=function(t,e){return 0===nn.compare(t,e)},nn.compare=function(t,e){function n(t){return"boolean"==typeof t?t?1:0:"string"==typeof t?"true"===t?1:0:-1/0}return(t=n(t))<(e=n(e))?-1:t>e?1:0};var rn={},an={date:Xe,decimal:Ze,number:Ve,percentage:en,boolean:Object.freeze({default:nn})};O(Object.keys(an),function(t){var e=t.replace(/^\.\//,"").replace(/\.js/,"");rn[e]=an[t].default});var on=it({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{class:t.wrapStyleClasses},[t.isLoading?n("div",{staticClass:"vgt-loading vgt-center-align"},[t._t("loadingContent",[n("span",{staticClass:"vgt-loading__content"},[t._v("\n Loading...\n ")])])],2):t._e(),t._v(" "),n("div",{staticClass:"vgt-inner-wrap",class:{"is-loading":t.isLoading}},[t.paginate&&t.paginateOnTop?t._t("pagination-top",[n("vgt-pagination",{ref:"paginationTop",attrs:{perPage:t.perPage,rtl:t.rtl,total:t.totalRows||t.totalRowCount,mode:t.paginationMode,nextText:t.nextText,prevText:t.prevText,rowsPerPageText:t.rowsPerPageText,customRowsPerPageDropdown:t.customRowsPerPageDropdown,paginateDropdownAllowAll:t.paginateDropdownAllowAll,ofText:t.ofText,pageText:t.pageText,allText:t.allText},on:{"page-changed":t.pageChanged,"per-page-changed":t.perPageChanged}})],{pageChanged:t.pageChanged,perPageChanged:t.perPageChanged,total:t.totalRows||t.totalRowCount}):t._e(),t._v(" "),n("vgt-global-search",{attrs:{"search-enabled":t.searchEnabled&&null==t.externalSearchQuery,"global-search-placeholder":t.searchPlaceholder},on:{"on-keyup":t.searchTableOnKeyUp,"on-enter":t.searchTableOnEnter},model:{value:t.globalSearchTerm,callback:function(e){t.globalSearchTerm=e},expression:"globalSearchTerm"}},[n("template",{slot:"internal-table-actions"},[t._t("table-actions")],2)],2),t._v(" "),t.selectedRowCount&&!t.disableSelectInfo?n("div",{staticClass:"vgt-selection-info-row clearfix",class:t.selectionInfoClass},[t._v("\n "+t._s(t.selectionInfo)+"\n "),n("a",{attrs:{href:""},on:{click:function(e){return e.preventDefault(),t.unselectAllInternal(!0)}}},[t._v("\n "+t._s(t.clearSelectionText)+"\n ")]),t._v(" "),n("div",{staticClass:"vgt-selection-info-row__actions vgt-pull-right"},[t._t("selected-row-actions")],2)]):t._e(),t._v(" "),n("div",{staticClass:"vgt-fixed-header"},[t.fixedHeader?n("table",{class:t.tableStyleClasses},[n("vgt-table-header",{ref:"table-header-secondary",tag:"thead",attrs:{columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"all-selected":t.allSelected,"all-selected-indeterminate":t.allSelectedIndeterminate,mode:t.mode,sortable:t.sortable,"typed-columns":t.typedColumns,getClasses:t.getClasses,searchEnabled:t.searchEnabled,paginated:t.paginated,"table-ref":t.$refs.table},on:{"on-toggle-select-all":t.toggleSelectAll,"on-sort-change":t.changeSort,"filter-changed":t.filterRows},scopedSlots:t._u([{key:"table-column",fn:function(e){return[t._t("table-column",[n("span",[t._v(t._s(e.column.label))])],{column:e.column})]}}],null,!0)})],1):t._e()]),t._v(" "),n("div",{class:{"vgt-responsive":t.responsive},style:t.wrapperStyles},[n("table",{ref:"table",class:t.tableStyles},[n("vgt-table-header",{ref:"table-header-primary",tag:"thead",attrs:{columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"all-selected":t.allSelected,"all-selected-indeterminate":t.allSelectedIndeterminate,mode:t.mode,sortable:t.sortable,"typed-columns":t.typedColumns,getClasses:t.getClasses,searchEnabled:t.searchEnabled},on:{"on-toggle-select-all":t.toggleSelectAll,"on-sort-change":t.changeSort,"filter-changed":t.filterRows},scopedSlots:t._u([{key:"table-column",fn:function(e){return[t._t("table-column",[n("span",[t._v(t._s(e.column.label))])],{column:e.column})]}},{key:"column-filter",fn:function(e){return[t._t("column-filter",null,{column:e.column,updateFilters:e.updateFilters})]}}],null,!0)}),t._v(" "),t._l(t.paginated,function(e,r){return n("tbody",{key:r},[t.groupHeaderOnTop?n("vgt-header-row",{class:t.getRowStyleClass(e),attrs:{"header-row":e,columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"select-all-by-group":t.selectAllByGroup,collapsable:t.groupOptions.collapsable,"collect-formatted":t.collectFormatted,"formatted-row":t.formattedRow,"get-classes":t.getClasses,"full-colspan":t.fullColspan,groupIndex:r},on:{vgtExpand:function(n){return t.toggleExpand(e[t.rowKeyField])},"on-select-group-change":function(n){return t.toggleSelectGroup(n,e)}},scopedSlots:t._u([{key:"table-header-row",fn:function(e){return t.hasHeaderRowTemplate?[t._t("table-header-row",null,{column:e.column,formattedRow:e.formattedRow,row:e.row})]:void 0}}],null,!0)}):t._e(),t._v(" "),t._l(e.children,function(r,a){return!t.groupOptions.collapsable||e.vgtIsExpanded?n("tr",{key:r.originalIndex,class:t.getRowStyleClass(r),on:{mouseenter:function(e){return t.onMouseenter(r,a)},mouseleave:function(e){return t.onMouseleave(r,a)},dblclick:function(e){return t.onRowDoubleClicked(r,a,e)},click:function(e){return t.onRowClicked(r,a,e)},auxclick:function(e){return t.onRowAuxClicked(r,a,e)}}},[t.lineNumbers?n("th",{staticClass:"line-numbers"},[t._v("\n "+t._s(t.getCurrentIndex(a))+"\n ")]):t._e(),t._v(" "),t.selectable?n("th",{staticClass:"vgt-checkbox-col",on:{click:function(e){return e.stopPropagation(),t.onCheckboxClicked(r,a,e)}}},[n("input",{attrs:{type:"checkbox"},domProps:{checked:r.vgtSelected}})]):t._e(),t._v(" "),t._l(t.columns,function(e,o){return!e.hidden&&e.field?n("td",{key:o,class:t.getClasses(o,"td",r),attrs:{"data-label":t.compactMode?e.label:void 0},on:{click:function(n){return t.onCellClicked(r,e,a,n)}}},[t._t("table-row",[e.html?t._e():n("span",[t._v("\n "+t._s(t.collectFormatted(r,e))+"\n ")]),t._v(" "),e.html?n("span",{domProps:{innerHTML:t._s(t.collect(r,e.field))}}):t._e()],{row:r,column:e,formattedRow:t.formattedRow(r),index:a})],2):t._e()})],2):t._e()}),t._v(" "),t.groupHeaderOnBottom?n("vgt-header-row",{attrs:{"header-row":e,columns:t.columns,"line-numbers":t.lineNumbers,selectable:t.selectable,"select-all-by-group":t.selectAllByGroup,"collect-formatted":t.collectFormatted,"formatted-row":t.formattedRow,"get-classes":t.getClasses,"full-colspan":t.fullColspan,groupIndex:r},on:{"on-select-group-change":function(n){return t.toggleSelectGroup(n,e)}},scopedSlots:t._u([{key:"table-header-row",fn:function(e){return t.hasHeaderRowTemplate?[t._t("table-header-row",null,{column:e.column,formattedRow:e.formattedRow,row:e.row})]:void 0}}],null,!0)}):t._e()],2)}),t._v(" "),t.showEmptySlot?n("tbody",[n("tr",[n("td",{attrs:{colspan:t.fullColspan}},[t._t("emptystate",[n("div",{staticClass:"vgt-center-align vgt-text-disabled"},[t._v("\n No data for table\n ")])])],2)])]):t._e()],2)]),t._v(" "),t.hasFooterSlot?n("div",{staticClass:"vgt-wrap__actions-footer"},[t._t("table-actions-bottom")],2):t._e(),t._v(" "),t.paginate&&t.paginateOnBottom?t._t("pagination-bottom",[n("vgt-pagination",{ref:"paginationBottom",attrs:{perPage:t.perPage,rtl:t.rtl,total:t.totalRows||t.totalRowCount,mode:t.paginationMode,nextText:t.nextText,prevText:t.prevText,rowsPerPageText:t.rowsPerPageText,customRowsPerPageDropdown:t.customRowsPerPageDropdown,paginateDropdownAllowAll:t.paginateDropdownAllowAll,ofText:t.ofText,pageText:t.pageText,allText:t.allText},on:{"page-changed":t.pageChanged,"per-page-changed":t.perPageChanged}})],{pageChanged:t.pageChanged,perPageChanged:t.perPageChanged,total:t.totalRows||t.totalRowCount}):t._e()],2)])},staticRenderFns:[]},void 0,{name:"vue-good-table",props:{isLoading:{default:null,type:Boolean},maxHeight:{default:null,type:String},fixedHeader:Boolean,theme:{default:""},mode:{default:"local"},totalRows:{},styleClass:{default:"vgt-table bordered"},columns:{},rows:{},lineNumbers:Boolean,responsive:{default:!0,type:Boolean},rtl:Boolean,rowStyleClass:{default:null,type:[Function,String]},compactMode:Boolean,groupOptions:{default:function(){return{enabled:!1,collapsable:!1,rowKey:null}}},selectOptions:{default:function(){return{enabled:!1,selectionInfoClass:"",selectionText:"rows selected",clearSelectionText:"clear",disableSelectInfo:!1,selectAllByGroup:!1}}},sortOptions:{default:function(){return{enabled:!0,initialSortBy:{}}}},paginationOptions:{default:function(){return{enabled:!1,perPage:10,perPageDropdown:null,position:"bottom",dropdownAllowAll:!0,mode:"records"}}},searchOptions:{default:function(){return{enabled:!1,trigger:null,externalQuery:null,searchFn:null,placeholder:"Search Table"}}}},data:function(){return{tableLoading:!1,nextText:"Next",prevText:"Prev",rowsPerPageText:"Rows per page",ofText:"of",allText:"All",pageText:"page",selectable:!1,selectOnCheckboxOnly:!1,selectAllByPage:!0,disableSelectInfo:!1,selectionInfoClass:"",selectionText:"rows selected",clearSelectionText:"clear",maintainExpanded:!0,expandedRowKeys:new Set,sortable:!0,defaultSortBy:null,searchEnabled:!1,searchTrigger:null,externalSearchQuery:null,searchFn:null,searchPlaceholder:"Search Table",searchSkipDiacritics:!1,perPage:null,paginate:!1,paginateOnTop:!1,paginateOnBottom:!0,customRowsPerPageDropdown:[],paginateDropdownAllowAll:!0,paginationMode:"records",currentPage:1,currentPerPage:10,sorts:[],globalSearchTerm:"",filteredRows:[],columnFilters:{},forceSearch:!1,sortChanged:!1,dataTypes:rn||{}}},watch:{rows:{handler:function(){this.$emit("update:isLoading",!1),this.filterRows(this.columnFilters,!1)},deep:!0,immediate:!0},selectOptions:{handler:function(){this.initializeSelect()},deep:!0,immediate:!0},paginationOptions:{handler:function(t,e){tt(t,e)||this.initializePagination()},deep:!0,immediate:!0},searchOptions:{handler:function(){void 0!==this.searchOptions.externalQuery&&this.searchOptions.externalQuery!==this.searchTerm&&(this.externalSearchQuery=this.searchOptions.externalQuery,this.handleSearch()),this.initializeSearch()},deep:!0,immediate:!0},sortOptions:{handler:function(t,e){tt(t,e)||this.initializeSort()},deep:!0},selectedRows:function(t,e){tt(t,e)||this.$emit("on-selected-rows-change",{selectedRows:this.selectedRows})}},computed:{tableStyles:function(){return this.compactMode?this.tableStyleClasses+"vgt-compact":this.tableStyleClasses},hasFooterSlot:function(){return!!this.$slots["table-actions-bottom"]},wrapperStyles:function(){return{overflow:"scroll-y",maxHeight:this.maxHeight?this.maxHeight:"auto"}},rowKeyField:function(){return this.groupOptions.rowKey||"vgt_header_id"},hasHeaderRowTemplate:function(){return!!this.$slots["table-header-row"]||!!this.$scopedSlots["table-header-row"]},showEmptySlot:function(){return!this.paginated.length||"no groups"===this.paginated[0].label&&!this.paginated[0].children.length},allSelected:function(){return this.selectedRowCount>0&&(this.selectAllByPage&&this.selectedPageRowsCount===this.totalPageRowCount||!this.selectAllByPage&&this.selectedRowCount===this.totalRowCount)},allSelectedIndeterminate:function(){return!this.allSelected&&(this.selectAllByPage&&this.selectedPageRowsCount>0||!this.selectAllByPage&&this.selectedRowCount>0)},selectionInfo:function(){return"".concat(this.selectedRowCount," ").concat(this.selectionText)},selectedRowCount:function(){return this.selectedRows.length},selectedPageRowsCount:function(){return this.selectedPageRows.length},selectedPageRows:function(){var t=[];return O(this.paginated,function(e){O(e.children,function(e){e.vgtSelected&&t.push(e)})}),t},selectedRows:function(){var t=[];return O(this.processedRows,function(e){O(e.children,function(e){e.vgtSelected&&t.push(e)})}),t.sort(function(t,e){return t.originalIndex-e.originalIndex})},fullColspan:function(){for(var t=0,e=0;e=e.length||-1===this.currentPerPage)&&(this.currentPage=1,n=0);var a=e.length+1;-1!==this.currentPerPage&&(a=this.currentPage*this.currentPerPage),e=e.slice(n,a)}var o=[];return e.forEach(function(e){if(void 0!==e.vgt_header_id){t.handleExpanded(e);var n=J(e);n.children=[],o.push(n)}else{var r=o.find(function(t){return t.vgt_header_id===e.vgt_id});r||(r=t.processedRows.find(function(t){return t.vgt_header_id===e.vgt_id}))&&((r=J(r)).children=[],o.push(r)),r.children.push(e)}}),o},originalRows:function(){var t=J(this.rows),e=[];e=this.groupOptions.enabled?this.handleGrouped(t):this.handleGrouped([{label:"no groups",children:t}]);var n=0;return O(e,function(t,e){O(t.children,function(t,e){t.originalIndex=n++})}),e},typedColumns:function(){for(var t=X(this.columns,[]),e=0;e2&&void 0!==arguments[2]&&arguments[2]&&e.headerField?this.collect(t,e.headerField):this.collect(t,e.field)))return"";if(e.formatFn&&"function"==typeof e.formatFn)return e.formatFn(n,t);var r=e.typeDef;r||(r=this.dataTypes[e.type]||at);var a=r.format(n,e);return!this.compactMode||""!=a&&null!=a?a:"-"},formattedRow:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n={},r=0;r1&&void 0!==arguments[1])||arguments[1];this.columnFilters=t;var a=J(this.originalRows);if(this.columnFilters&&Object.keys(this.columnFilters).length){if(("remote"!==this.mode||r)&&this.changePage(1),r&&this.$emit("on-column-filter",{columnFilters:this.columnFilters}),"remote"===this.mode)return void(r?this.$emit("update:isLoading",!0):this.filteredRows=a);for(var o=function(t){var r=n.typedColumns[t];n.columnFilters[r.field]&&(a=O(a,function(t){var a=t.children.filter(function(t){return r.filterOptions&&"function"==typeof r.filterOptions.filterFn?r.filterOptions.filterFn(n.collect(t,r.field),n.columnFilters[r.field]):r.typeDef.filterPredicate(n.collect(t,r.field),n.columnFilters[r.field],!1,r.filterOptions&&"object"===e(r.filterOptions.filterDropdownItems))});t.children=a}))},i=0;i\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _([1, 2]).forEach(function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, typeof iteratee == 'function' ? iteratee : identity);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = forEach;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = filter;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","// all diacritics\r\nvar diacritics = \r\n\t{\r\n\t\t'a' : ['a','à','á','â','ã','ä','å','æ','ā','ă','ą','ǎ','ǟ','ǡ','ǻ','ȁ','ȃ','ȧ','ɐ','ɑ','ɒ','ͣ','а','ӑ','ӓ','ᵃ','ᵄ','ᶏ','ḁ','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','ậ','ắ','ằ','ẳ','ẵ','ặ','ₐ','ⱥ','a'],\r\n\t\t'A' : ['A','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','Ǎ','Ǟ','Ǡ','Ǻ','Ȁ','Ȃ','Ȧ','Ⱥ','А','Ӑ','Ӓ','ᴀ','ᴬ','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'],\r\n\t\t \r\n\t\t'b' : ['b','ƀ','ƃ','ɓ','ᖯ','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'],\r\n\t\t'B' : ['B','Ɓ','Ƃ','Ƀ','ʙ','ᛒ','ᴃ','ᴮ','ᴯ','Ḃ','Ḅ','Ḇ','B'],\r\n\t\t \r\n\t\t'c' : ['c','ç','ć','ĉ','ċ','č','ƈ','ȼ','ɕ','ͨ','ᴄ','ᶜ','ḉ','ↄ','c'],\r\n\t\t'C' : ['C','Ç','Ć','Ĉ','Ċ','Č','Ƈ','Ȼ','ʗ','Ḉ','C'],\r\n\t\t\r\n\t\t'd' : ['d','ď','đ','Ƌ','ƌ','ȡ','ɖ','ɗ','ͩ','ᵈ','ᵭ','ᶁ','ᶑ','ḋ','ḍ','ḏ','ḑ','ḓ','d'],\r\n\t\t'D' : ['D','Ď','Đ','Ɖ','Ɗ','ᴰ','Ḋ','Ḍ','Ḏ','Ḑ','Ḓ','D'],\r\n\t\t\r\n\t\t'e' : ['e','è','é','ê','ë','ē','ĕ','ė','ę','ě','ǝ','ȅ','ȇ','ȩ','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','ḝ','ẹ','ẻ','ẽ','ế','ề','ể','ễ','ệ','ₑ','e'],\r\n\t\t'E' : ['E','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','Œ','Ǝ','Ɛ','Ȅ','Ȇ','Ȩ','Ɇ','ɛ','ɜ','ɶ','Є','Э','э','є','Ӭ','ӭ','ᴇ','ᴈ','ᴱ','ᴲ','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','E','𐐁','𐐩'],\r\n\t\t\r\n\t\t'f' : ['f','ƒ','ᵮ','ᶂ','ᶠ','ḟ','f'],\r\n\t\t'F' : ['F','Ƒ','Ḟ','ⅎ','F'],\r\n\t\t\r\n\t\t'g' : ['g','ĝ','ğ','ġ','ģ','ǥ','ǧ','ǵ','ɠ','ɡ','ᵍ','ᵷ','ᵹ','ᶃ','ᶢ','ḡ','g'],\r\n\t\t'G' : ['G','Ĝ','Ğ','Ġ','Ģ','Ɠ','Ǥ','Ǧ','Ǵ','ɢ','ʛ','ᴳ','Ḡ','G'],\r\n\t\t\r\n\t\t'h' : ['h','ĥ','ħ','ƕ','ȟ','ɥ','ɦ','ʮ','ʯ','ʰ','ʱ','ͪ','Һ','һ','ᑋ','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'],\r\n\t\t'H' : ['H','Ĥ','Ħ','Ȟ','ʜ','ᕼ','ᚺ','ᚻ','ᴴ','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'],\r\n\t\t\r\n\t\t'i' : ['i','ì','í','î','ï','ĩ','ī','ĭ','į','ǐ','ȉ','ȋ','ɨ','ͥ','ᴉ','ᵎ','ᵢ','ᶖ','ᶤ','ḭ','ḯ','ỉ','ị','i'],\r\n\t\t'I' : ['I','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','Ǐ','Ȉ','Ȋ','ɪ','І','ᴵ','ᵻ','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'],\r\n\t\t\r\n\t\t'j' : ['j','ĵ','ǰ','ɉ','ʝ','ʲ','ᶡ','ᶨ','j'],\r\n\t\t'J' : ['J','Ĵ','ᴊ','ᴶ','J'],\r\n\t\t\r\n\t\t'k' : ['k','ķ','ƙ','ǩ','ʞ','ᵏ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'],\r\n\t\t'K' : ['K','Ķ','Ƙ','Ǩ','ᴷ','Ḱ','Ḳ','Ḵ','Ⱪ','K'],\r\n\t\t\r\n\t\t'l' : ['l','ĺ','ļ','ľ','ŀ','ł','ƚ','ȴ','ɫ','ɬ','ɭ','ˡ','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','ℓ','ⱡ'],\r\n\t\t'L' : ['L','Ĺ','Ļ','Ľ','Ŀ','Ł','Ƚ','ʟ','ᴌ','ᴸ','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','Ⱡ','Ɫ'],\r\n\t\t\r\n\t\t'm' : ['m','ɯ','ɰ','ɱ','ͫ','ᴟ','ᵐ','ᵚ','ᵯ','ᶆ','ᶬ','ᶭ','ḿ','ṁ','ṃ','㎡','㎥','m'],\r\n\t\t'M' : ['M','Ɯ','ᴍ','ᴹ','Ḿ','Ṁ','Ṃ','M'],\r\n\t\t\r\n\t\t'n' : ['n','ñ','ń','ņ','ň','ʼn','ƞ','ǹ','ȵ','ɲ','ɳ','ᵰ','ᶇ','ᶮ','ᶯ','ṅ','ṇ','ṉ','ṋ','ⁿ','n'],\r\n\t\t'N' : ['N','Ñ','Ń','Ņ','Ň','Ɲ','Ǹ','Ƞ','ɴ','ᴎ','ᴺ','ᴻ','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','N'],\r\n\t\t\r\n\t\t'o' : ['o','ò','ó','ô','õ','ö','ø','ō','ŏ','ő','ơ','ǒ','ǫ','ǭ','ǿ','ȍ','ȏ','ȫ','ȭ','ȯ','ȱ','ɵ','ͦ','о','ӧ','ө','ᴏ','ᴑ','ᴓ','ᴼ','ᵒ','ᶱ','ṍ','ṏ','ṑ','ṓ','ọ','ỏ','ố','ồ','ổ','ỗ','ộ','ớ','ờ','ở','ỡ','ợ','ₒ','o','𐐬'],\r\n\t\t'O' : ['O','Ò','Ó','Ô','Õ','Ö','Ø','Ō','Ŏ','Ő','Ɵ','Ơ','Ǒ','Ǫ','Ǭ','Ǿ','Ȍ','Ȏ','Ȫ','Ȭ','Ȯ','Ȱ','О','Ӧ','Ө','Ṍ','Ṏ','Ṑ','Ṓ','Ọ','Ỏ','Ố','Ồ','Ổ','Ỗ','Ộ','Ớ','Ờ','Ở','Ỡ','Ợ','O','𐐄'],\r\n\t\t\r\n\t\t'p' : ['p','ᵖ','ᵱ','ᵽ','ᶈ','ṕ','ṗ','p'],\r\n\t\t'P' : ['P','Ƥ','ᴘ','ᴾ','Ṕ','Ṗ','Ᵽ','P'],\r\n\t\t\r\n\t\t'q' : ['q','ɋ','ʠ','ᛩ','q'],\r\n\t\t'Q' : ['Q','Ɋ','Q'],\r\n\t\t\r\n\t\t'r' : ['r','ŕ','ŗ','ř','ȑ','ȓ','ɍ','ɹ','ɻ','ʳ','ʴ','ʵ','ͬ','ᵣ','ᵲ','ᶉ','ṙ','ṛ','ṝ','ṟ'],\r\n\t\t'R' : ['R','Ŕ','Ŗ','Ř','Ʀ','Ȑ','Ȓ','Ɍ','ʀ','ʁ','ʶ','ᚱ','ᴙ','ᴚ','ᴿ','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'],\r\n\t\t\r\n\t\t's' : ['s','ś','ŝ','ş','š','ș','ʂ','ᔆ','ᶊ','ṡ','ṣ','ṥ','ṧ','ṩ','s'],\r\n\t\t'S' : ['S','Ś','Ŝ','Ş','Š','Ș','ȿ','ˢ','ᵴ','Ṡ','Ṣ','Ṥ','Ṧ','Ṩ','S'],\r\n\t\t\r\n\t\t't' : ['t','ţ','ť','ŧ','ƫ','ƭ','ț','ʇ','ͭ','ᵀ','ᵗ','ᵵ','ᶵ','ṫ','ṭ','ṯ','ṱ','ẗ','t'],\r\n\t\t'T' : ['T','Ţ','Ť','Ƭ','Ʈ','Ț','Ⱦ','ᴛ','ᵀ','Ṫ','Ṭ','Ṯ','Ṱ','T'],\r\n\t \t\r\n\t\t'u' : ['u','ù','ú','û','ü','ũ','ū','ŭ','ů','ű','ų','ư','ǔ','ǖ','ǘ','ǚ','ǜ','ȕ','ȗ','ͧ','ߎ','ᵘ','ᵤ','ṳ','ṵ','ṷ','ṹ','ṻ','ụ','ủ','ứ','ừ','ử','ữ','ự','u'],\r\n\t\t'U' : ['U','Ù','Ú','Û','Ü','Ũ','Ū','Ŭ','Ů','Ű','Ų','Ư','Ǔ','Ǖ','Ǘ','Ǚ','Ǜ','Ȕ','Ȗ','Ʉ','ᴜ','ᵁ','ᵾ','Ṳ','Ṵ','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','Ữ','Ự','U'],\r\n\t\t\r\n\t\t'v' : ['v','ʋ','ͮ','ᵛ','ᵥ','ᶹ','ṽ','ṿ','ⱱ','v','ⱴ'],\r\n\t\t'V' : ['V','Ʋ','Ʌ','ʌ','ᴠ','ᶌ','Ṽ','Ṿ','V'],\r\n\t\t\r\n\t\t'w' : ['w','ŵ','ʷ','ᵂ','ẁ','ẃ','ẅ','ẇ','ẉ','ẘ','ⱳ','w'],\r\n\t\t'W' : ['W','Ŵ','ʍ','ᴡ','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','Ⱳ','W'],\r\n\t\t\r\n\t\t'x' : ['x','̽','͓','ᶍ','ͯ','ẋ','ẍ','ₓ','x'],\r\n\t\t'X' : ['X','ˣ','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'],\r\n\t\t\r\n\t\t'y' : ['y','ý','ÿ','ŷ','ȳ','ɏ','ʸ','ẏ','ỳ','ỵ','ỷ','ỹ','y'],\r\n\t\t'Y' : ['Y','Ý','Ŷ','Ÿ','Ƴ','ƴ','Ȳ','Ɏ','ʎ','ʏ','Ẏ','Ỳ','Ỵ','Ỷ','Ỹ','Y'],\r\n\t\t\r\n\t\t'z' : ['z','ź','ż','ž','ƶ','ȥ','ɀ','ʐ','ʑ','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'],\r\n\t\t'Z' : ['Z','Ź','Ż','Ž','Ƶ','Ȥ','ᴢ','ᵶ','Ẑ','Ẓ','Ẕ','Ⱬ','Z']\r\n\t};\r\n\r\n/*\r\n * Main function of the module which removes all diacritics from the received text\r\n */\r\nmodule.exports = function (text) {\r\n var result = [];\r\n\r\n\t// iterate over all the characters of the received text\r\n for(var i=0; i str.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\nexport default {\n format(x) {\n return x;\n },\n filterPredicate(rowval, filter, skipDiacritics = false, fromDropdown = false) {\n // take care of nulls\n if (typeof rowval === 'undefined' || rowval === null) {\n return false;\n }\n\n // row value\n const rowValue = skipDiacritics\n ? String(rowval).toLowerCase()\n : diacriticless(escapeRegExp(String(rowval)).toLowerCase());\n\n // search term\n const searchTerm = skipDiacritics\n ? filter.toLowerCase()\n : diacriticless(escapeRegExp(filter).toLowerCase());\n\n // comparison\n return fromDropdown ? rowValue === searchTerm : (rowValue.indexOf(searchTerm) > -1);\n },\n\n compare(x, y) {\n function cook(d) {\n if (typeof d === 'undefined' || d === null) return '';\n return diacriticless(d.toLowerCase());\n }\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n },\n};\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n\n\n","const DEFAULT_SORT_TYPE = 'asc';\n\nfunction getColumnFirstSortType(column) {\n return column.firstSortType || DEFAULT_SORT_TYPE;\n}\n\nfunction getCurrentPrimarySort(sortArray, column) {\n return ( sortArray.length === 1 && sortArray[0].field === column.field )\n ? sortArray[0].type\n : undefined;\n}\n\nfunction getNextSort(currentSort) {\n return (currentSort === 'asc')\n ? 'desc'\n : DEFAULT_SORT_TYPE;\n}\n\nfunction getIndex(sortArray, column) {\n for (let i = 0; i < sortArray.length; i++) {\n if (column.field === sortArray[i].field) return i;\n }\n return -1;\n}\n\nexports.primarySort = (sortArray, column) => {\n const currentPrimarySort = getCurrentPrimarySort(sortArray, column);\n return [{\n field: column.field,\n type: currentPrimarySort ? getNextSort(currentPrimarySort) : getColumnFirstSortType(column),\n }];\n};\n\nexports.secondarySort = (sortArray, column) => {\n const index = getIndex(sortArray, column);\n if (index === -1) {\n sortArray.push({\n field: column.field,\n type: getColumnFirstSortType(column),\n });\n } else {\n sortArray[index].type = getNextSort(sortArray[index].type);\n }\n return sortArray;\n};\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","var MILLISECONDS_IN_MINUTE = 60000;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../toDate/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `true` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `backupDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `backupDate` which works as a context of parsing.\n *\n * `backupDate` must be passed for correct work of the function.\n * If you're not sure which `backupDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `backupDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `backupDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} backupDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {\n if (arguments.length < 3) {\n throw new TypeError('3 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBackupDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyBackupDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import { format, parse, isValid, compareAsc } from 'date-fns';\nimport clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst date = clone(def);\n\ndate.isRight = true;\n\ndate.compare = function (x, y, column) {\n function cook(d) {\n if (column && column.dateInputFormat) {\n return parse(`${d}`, `${column.dateInputFormat}`, new Date());\n }\n return d;\n }\n x = cook(x);\n y = cook(y);\n if (!isValid(x)) {\n return -1;\n }\n if (!isValid(y)) {\n return 1;\n }\n return compareAsc(x, y);\n};\n\ndate.format = function (v, column) {\n if (v === undefined || v === null) return '';\n // convert to date\n const date = parse(v, column.dateInputFormat, new Date());\n if (isValid(date)) {\n return format(date, column.dateOutputFormat);\n }\n console.error(`Not a valid date: \"${v}\"`);\n return null;\n};\n\nexport default date;\n","import toDate from '../toDate/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst number = clone(def);\n\nnumber.isRight = true;\n\nnumber.filterPredicate = function (rowval, filter) {\n return number.compare(rowval, filter) === 0;\n};\n\n\nnumber.compare = function (x, y) {\n function cook(d) {\n // if d is null or undefined we give it the smallest\n // possible value\n if (d === undefined || d === null) return -Infinity;\n return d.indexOf('.') >= 0 ? parseFloat(d) : parseInt(d, 10);\n }\n\n x = typeof x === 'number' ? x : cook(x);\n y = typeof y === 'number' ? y : cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nexport default number;\n","import clone from 'lodash.clonedeep';\nimport number from './number';\n\nconst decimal = clone(number);\ndecimal.format = function (v) {\n if (v === undefined || v === null) return '';\n return parseFloat(Math.round(v * 100) / 100).toFixed(2);\n};\n\nexport default decimal;\n","import clone from 'lodash.clonedeep';\nimport number from './number';\n\nconst percentage = clone(number);\n\npercentage.format = function (v) {\n if (v === undefined || v === null) return '';\n return `${parseFloat(v * 100).toFixed(2)}%`;\n};\n\nexport default percentage;\n","import clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst boolean = clone(def);\n\nboolean.isRight = true;\n\nboolean.filterPredicate = function (rowval, filter) {\n return boolean.compare(rowval, filter) === 0;\n};\n\n\nboolean.compare = function (x, y) {\n function cook(d) {\n if (typeof d === 'boolean') return d ? 1 : 0;\n if (typeof d === 'string') return d === 'true' ? 1 : 0;\n return -Infinity;\n }\n\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nexport default boolean;\n","import * as date from './date';\nimport * as decimal from './decimal';\nimport * as number from './number';\nimport * as percentage from './percentage';\nimport * as boolean from './boolean';\n\nexport default {\n date,\n decimal,\n number,\n percentage,\n boolean,\n};\n","import VueGoodTable from './components/Table.vue';\n\nconst VueGoodTablePlugin = {\n install(Vue, options) {\n Vue.component(VueGoodTable.name, VueGoodTable);\n },\n};\n\n// Automatic installation if Vue has been added to the global scope.\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VueGoodTablePlugin);\n}\n\nexport default VueGoodTablePlugin;\nexport { VueGoodTable };\n"],"names":["MAX_SAFE_INTEGER","argsTag","funcTag","genTag","reIsUint","arrayEach","array","iteratee","index","length","func","transform","objectProto","Object","prototype","hasOwnProperty","objectToString","toString","propertyIsEnumerable","nativeKeys","keys","arg","arrayLikeKeys","value","inherited","result","isArray","isObjectLike","isArrayLike","isArrayLikeObject","call","isArguments","n","Array","baseTimes","String","skipIndexes","key","isIndex","push","eachFunc","fromRight","baseEach","object","baseFor","collection","iterable","keysFunc","props","createBaseFor","baseKeys","Ctor","constructor","proto","test","isLength","tag","type","isObject","isFunction","identity","overArg","nativeMax","Math","max","nonEnumShadows","valueOf","assignValue","objValue","eq","undefined","isPrototype","other","assigner","sources","customizer","guard","isIterateeCall","source","start","args","arguments","otherArgs","thisArg","apply","this","createAssigner","newValue","copyObject","LARGE_ARRAY_SIZE","HASH_UNDEFINED","boolTag","dateTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","cloneableTags","freeGlobal","global","freeSelf","self","root","Function","freeExports","exports","nodeType","freeModule","module","moduleExports","addMapEntry","map","pair","set","addSetEntry","add","arrayReduce","accumulator","initAccum","isHostObject","e","mapToArray","size","forEach","setToArray","uid","arrayProto","funcProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","reIsNative","RegExp","replace","Buffer","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","clear","entry","ListCache","MapCache","Stack","__data__","assocIndexOf","baseClone","isDeep","isFull","stack","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","slice","copy","cloneBuffer","initCloneObject","getSymbols","copySymbols","baseAssign","cloneFunc","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneSet","symbol","initCloneByTag","stacked","get","symbolsFunc","values","offset","arrayPush","baseGetAllKeys","getAllKeys","subValue","baseIsNative","arrayBuffer","getMapData","data","getValue","has","pop","hash","string","cache","pairs","ArrayBuffer","resolve","ctorString","FUNC_ERROR_TEXT","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","INFINITY","arrayTag","errorTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","typedArrayTags","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arrayFilter","predicate","resIndex","arraySome","symbolToString","SetCache","baseFilter","baseGet","path","isKey","castPath","toKey","baseHasIn","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","name","message","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIteratee","srcValue","isStrictComparable","matchesStrictComparable","defaultValue","hasFunc","hasPath","hasIn","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","stringToPath","arrLength","seen","arrValue","othIndex","isSymbol","memoize","baseToString","match","number","quote","resolver","TypeError","memoized","Cache","baseUnary","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","asyncTag","nullTag","proxyTag","undefinedTag","nativeObjectToString","symToStringTag","toStringTag","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","diacritics","a","A","b","B","c","C","d","D","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","text","searchChar","charAt","foundChar","indexOf","join","escapeRegExp","str","format","filterPredicate","rowval","filter","skipDiacritics","fromDropdown","rowValue","toLowerCase","diacriticless","searchTerm","compare","cook","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","options","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","concat","DEFAULT_SORT_TYPE","getColumnFirstSortType","column","firstSortType","getNextSort","currentSort","sortArray","field","getIndex","currentPrimarySort","getCurrentPrimarySort","toDate","argument","argStr","Date","getTime","console","warn","Error","NaN","toInteger","dirtyNumber","Number","isNaN","ceil","floor","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","date","baseTimezoneOffset","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","width","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","rest","locale","formatDistance","token","count","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","weekStartsOn","firstWeekContainsDate","subMilliseconds","dirtyAmount","timestamp","amount","addMilliseconds","addLeadingZeros","targetLength","sign","output","abs","formatters","signedYear","getUTCFullYear","year","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","pow","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","round","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","firstWeek","startOfUTCWeekYear","dayPeriodEnum","unit","lightFormatters","signedWeekYear","weekYear","week","isoWeek","dayOfYear","setUTCMonth","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","defaultLocale","utcDate","formatterOptions","substring","firstCharacter","longFormatter","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","assign","target","dirtyObject","property","setUTCDay","dirtyDay","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","parseNumericPattern","parseTimezonePattern","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","priority","parse","flags","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","isLeapYear","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","TIMEZONE_UNIT_PRIORITY","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyBackupDate","dateString","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","usedTokens","parser","incompatibleToken","_i","usedToken","fullToken","uniquePrioritySetters","setter","sort","reverse","setterArray","convertedDate","setFullYear","setHours","clone","def","isRight","dateInputFormat","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","compareAsc","dateOutputFormat","error","Infinity","parseFloat","decimal","toFixed","percentage","boolean","VueGoodTablePlugin","install","Vue","component","VueGoodTable","window","use"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-good-table.min.js","sources":["../node_modules/lodash.foreach/index.js","../node_modules/lodash.assign/index.js","../node_modules/lodash.clonedeep/index.js","../node_modules/lodash.filter/index.js","../node_modules/lodash.isequal/index.js","../node_modules/diacriticless/diacriticless.js","../src/components/types/default.js","../node_modules/vue-runtime-helpers/dist/normalize-component.mjs","../src/components/VgtPaginationPageInfo.vue","../src/components/utils/sort.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../src/components/types/date.js","../node_modules/date-fns/esm/compareAsc/index.js","../src/components/types/number.js","../src/components/types/decimal.js","../src/components/types/percentage.js","../src/components/types/boolean.js","../src/components/types/index.js","../src/index.js"],"sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _([1, 2]).forEach(function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, typeof iteratee == 'function' ? iteratee : identity);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = forEach;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array ? array.length : 0,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity]\n * The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = filter;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","// all diacritics\r\nvar diacritics = \r\n\t{\r\n\t\t'a' : ['a','à','á','â','ã','ä','å','æ','ā','ă','ą','ǎ','ǟ','ǡ','ǻ','ȁ','ȃ','ȧ','ɐ','ɑ','ɒ','ͣ','а','ӑ','ӓ','ᵃ','ᵄ','ᶏ','ḁ','ẚ','ạ','ả','ấ','ầ','ẩ','ẫ','ậ','ắ','ằ','ẳ','ẵ','ặ','ₐ','ⱥ','a'],\r\n\t\t'A' : ['A','À','Á','Â','Ã','Ä','Å','Ā','Ă','Ą','Ǎ','Ǟ','Ǡ','Ǻ','Ȁ','Ȃ','Ȧ','Ⱥ','А','Ӑ','Ӓ','ᴀ','ᴬ','Ḁ','Ạ','Ả','Ấ','Ầ','Ẩ','Ẫ','Ậ','Ắ','Ằ','Ẳ','Ẵ','Ặ','A'],\r\n\t\t \r\n\t\t'b' : ['b','ƀ','ƃ','ɓ','ᖯ','ᵇ','ᵬ','ᶀ','ḃ','ḅ','ḇ','b'],\r\n\t\t'B' : ['B','Ɓ','Ƃ','Ƀ','ʙ','ᛒ','ᴃ','ᴮ','ᴯ','Ḃ','Ḅ','Ḇ','B'],\r\n\t\t \r\n\t\t'c' : ['c','ç','ć','ĉ','ċ','č','ƈ','ȼ','ɕ','ͨ','ᴄ','ᶜ','ḉ','ↄ','c'],\r\n\t\t'C' : ['C','Ç','Ć','Ĉ','Ċ','Č','Ƈ','Ȼ','ʗ','Ḉ','C'],\r\n\t\t\r\n\t\t'd' : ['d','ď','đ','Ƌ','ƌ','ȡ','ɖ','ɗ','ͩ','ᵈ','ᵭ','ᶁ','ᶑ','ḋ','ḍ','ḏ','ḑ','ḓ','d'],\r\n\t\t'D' : ['D','Ď','Đ','Ɖ','Ɗ','ᴰ','Ḋ','Ḍ','Ḏ','Ḑ','Ḓ','D'],\r\n\t\t\r\n\t\t'e' : ['e','è','é','ê','ë','ē','ĕ','ė','ę','ě','ǝ','ȅ','ȇ','ȩ','ɇ','ɘ','ͤ','ᵉ','ᶒ','ḕ','ḗ','ḙ','ḛ','ḝ','ẹ','ẻ','ẽ','ế','ề','ể','ễ','ệ','ₑ','e'],\r\n\t\t'E' : ['E','È','É','Ê','Ë','Ē','Ĕ','Ė','Ę','Ě','Œ','Ǝ','Ɛ','Ȅ','Ȇ','Ȩ','Ɇ','ɛ','ɜ','ɶ','Є','Э','э','є','Ӭ','ӭ','ᴇ','ᴈ','ᴱ','ᴲ','ᵋ','ᵌ','ᶓ','ᶔ','ᶟ','Ḕ','Ḗ','Ḙ','Ḛ','Ḝ','Ẹ','Ẻ','Ẽ','Ế','Ề','Ể','Ễ','Ệ','E','𐐁','𐐩'],\r\n\t\t\r\n\t\t'f' : ['f','ƒ','ᵮ','ᶂ','ᶠ','ḟ','f'],\r\n\t\t'F' : ['F','Ƒ','Ḟ','ⅎ','F'],\r\n\t\t\r\n\t\t'g' : ['g','ĝ','ğ','ġ','ģ','ǥ','ǧ','ǵ','ɠ','ɡ','ᵍ','ᵷ','ᵹ','ᶃ','ᶢ','ḡ','g'],\r\n\t\t'G' : ['G','Ĝ','Ğ','Ġ','Ģ','Ɠ','Ǥ','Ǧ','Ǵ','ɢ','ʛ','ᴳ','Ḡ','G'],\r\n\t\t\r\n\t\t'h' : ['h','ĥ','ħ','ƕ','ȟ','ɥ','ɦ','ʮ','ʯ','ʰ','ʱ','ͪ','Һ','һ','ᑋ','ᶣ','ḣ','ḥ','ḧ','ḩ','ḫ','ⱨ','h'],\r\n\t\t'H' : ['H','Ĥ','Ħ','Ȟ','ʜ','ᕼ','ᚺ','ᚻ','ᴴ','Ḣ','Ḥ','Ḧ','Ḩ','Ḫ','Ⱨ','H'],\r\n\t\t\r\n\t\t'i' : ['i','ì','í','î','ï','ĩ','ī','ĭ','į','ǐ','ȉ','ȋ','ɨ','ͥ','ᴉ','ᵎ','ᵢ','ᶖ','ᶤ','ḭ','ḯ','ỉ','ị','i'],\r\n\t\t'I' : ['I','Ì','Í','Î','Ï','Ĩ','Ī','Ĭ','Į','İ','Ǐ','Ȉ','Ȋ','ɪ','І','ᴵ','ᵻ','ᶦ','ᶧ','Ḭ','Ḯ','Ỉ','Ị','I'],\r\n\t\t\r\n\t\t'j' : ['j','ĵ','ǰ','ɉ','ʝ','ʲ','ᶡ','ᶨ','j'],\r\n\t\t'J' : ['J','Ĵ','ᴊ','ᴶ','J'],\r\n\t\t\r\n\t\t'k' : ['k','ķ','ƙ','ǩ','ʞ','ᵏ','ᶄ','ḱ','ḳ','ḵ','ⱪ','k'],\r\n\t\t'K' : ['K','Ķ','Ƙ','Ǩ','ᴷ','Ḱ','Ḳ','Ḵ','Ⱪ','K'],\r\n\t\t\r\n\t\t'l' : ['l','ĺ','ļ','ľ','ŀ','ł','ƚ','ȴ','ɫ','ɬ','ɭ','ˡ','ᶅ','ᶩ','ᶪ','ḷ','ḹ','ḻ','ḽ','ℓ','ⱡ'],\r\n\t\t'L' : ['L','Ĺ','Ļ','Ľ','Ŀ','Ł','Ƚ','ʟ','ᴌ','ᴸ','ᶫ','Ḷ','Ḹ','Ḻ','Ḽ','Ⱡ','Ɫ'],\r\n\t\t\r\n\t\t'm' : ['m','ɯ','ɰ','ɱ','ͫ','ᴟ','ᵐ','ᵚ','ᵯ','ᶆ','ᶬ','ᶭ','ḿ','ṁ','ṃ','㎡','㎥','m'],\r\n\t\t'M' : ['M','Ɯ','ᴍ','ᴹ','Ḿ','Ṁ','Ṃ','M'],\r\n\t\t\r\n\t\t'n' : ['n','ñ','ń','ņ','ň','ʼn','ƞ','ǹ','ȵ','ɲ','ɳ','ᵰ','ᶇ','ᶮ','ᶯ','ṅ','ṇ','ṉ','ṋ','ⁿ','n'],\r\n\t\t'N' : ['N','Ñ','Ń','Ņ','Ň','Ɲ','Ǹ','Ƞ','ɴ','ᴎ','ᴺ','ᴻ','ᶰ','Ṅ','Ṇ','Ṉ','Ṋ','N'],\r\n\t\t\r\n\t\t'o' : ['o','ò','ó','ô','õ','ö','ø','ō','ŏ','ő','ơ','ǒ','ǫ','ǭ','ǿ','ȍ','ȏ','ȫ','ȭ','ȯ','ȱ','ɵ','ͦ','о','ӧ','ө','ᴏ','ᴑ','ᴓ','ᴼ','ᵒ','ᶱ','ṍ','ṏ','ṑ','ṓ','ọ','ỏ','ố','ồ','ổ','ỗ','ộ','ớ','ờ','ở','ỡ','ợ','ₒ','o','𐐬'],\r\n\t\t'O' : ['O','Ò','Ó','Ô','Õ','Ö','Ø','Ō','Ŏ','Ő','Ɵ','Ơ','Ǒ','Ǫ','Ǭ','Ǿ','Ȍ','Ȏ','Ȫ','Ȭ','Ȯ','Ȱ','О','Ӧ','Ө','Ṍ','Ṏ','Ṑ','Ṓ','Ọ','Ỏ','Ố','Ồ','Ổ','Ỗ','Ộ','Ớ','Ờ','Ở','Ỡ','Ợ','O','𐐄'],\r\n\t\t\r\n\t\t'p' : ['p','ᵖ','ᵱ','ᵽ','ᶈ','ṕ','ṗ','p'],\r\n\t\t'P' : ['P','Ƥ','ᴘ','ᴾ','Ṕ','Ṗ','Ᵽ','P'],\r\n\t\t\r\n\t\t'q' : ['q','ɋ','ʠ','ᛩ','q'],\r\n\t\t'Q' : ['Q','Ɋ','Q'],\r\n\t\t\r\n\t\t'r' : ['r','ŕ','ŗ','ř','ȑ','ȓ','ɍ','ɹ','ɻ','ʳ','ʴ','ʵ','ͬ','ᵣ','ᵲ','ᶉ','ṙ','ṛ','ṝ','ṟ'],\r\n\t\t'R' : ['R','Ŕ','Ŗ','Ř','Ʀ','Ȑ','Ȓ','Ɍ','ʀ','ʁ','ʶ','ᚱ','ᴙ','ᴚ','ᴿ','Ṙ','Ṛ','Ṝ','Ṟ','Ɽ'],\r\n\t\t\r\n\t\t's' : ['s','ś','ŝ','ş','š','ș','ʂ','ᔆ','ᶊ','ṡ','ṣ','ṥ','ṧ','ṩ','s'],\r\n\t\t'S' : ['S','Ś','Ŝ','Ş','Š','Ș','ȿ','ˢ','ᵴ','Ṡ','Ṣ','Ṥ','Ṧ','Ṩ','S'],\r\n\t\t\r\n\t\t't' : ['t','ţ','ť','ŧ','ƫ','ƭ','ț','ʇ','ͭ','ᵀ','ᵗ','ᵵ','ᶵ','ṫ','ṭ','ṯ','ṱ','ẗ','t'],\r\n\t\t'T' : ['T','Ţ','Ť','Ƭ','Ʈ','Ț','Ⱦ','ᴛ','ᵀ','Ṫ','Ṭ','Ṯ','Ṱ','T'],\r\n\t \t\r\n\t\t'u' : ['u','ù','ú','û','ü','ũ','ū','ŭ','ů','ű','ų','ư','ǔ','ǖ','ǘ','ǚ','ǜ','ȕ','ȗ','ͧ','ߎ','ᵘ','ᵤ','ṳ','ṵ','ṷ','ṹ','ṻ','ụ','ủ','ứ','ừ','ử','ữ','ự','u'],\r\n\t\t'U' : ['U','Ù','Ú','Û','Ü','Ũ','Ū','Ŭ','Ů','Ű','Ų','Ư','Ǔ','Ǖ','Ǘ','Ǚ','Ǜ','Ȕ','Ȗ','Ʉ','ᴜ','ᵁ','ᵾ','Ṳ','Ṵ','Ṷ','Ṹ','Ṻ','Ụ','Ủ','Ứ','Ừ','Ử','Ữ','Ự','U'],\r\n\t\t\r\n\t\t'v' : ['v','ʋ','ͮ','ᵛ','ᵥ','ᶹ','ṽ','ṿ','ⱱ','v','ⱴ'],\r\n\t\t'V' : ['V','Ʋ','Ʌ','ʌ','ᴠ','ᶌ','Ṽ','Ṿ','V'],\r\n\t\t\r\n\t\t'w' : ['w','ŵ','ʷ','ᵂ','ẁ','ẃ','ẅ','ẇ','ẉ','ẘ','ⱳ','w'],\r\n\t\t'W' : ['W','Ŵ','ʍ','ᴡ','Ẁ','Ẃ','Ẅ','Ẇ','Ẉ','Ⱳ','W'],\r\n\t\t\r\n\t\t'x' : ['x','̽','͓','ᶍ','ͯ','ẋ','ẍ','ₓ','x'],\r\n\t\t'X' : ['X','ˣ','ͯ','Ẋ','Ẍ','☒','✕','✖','✗','✘','X'],\r\n\t\t\r\n\t\t'y' : ['y','ý','ÿ','ŷ','ȳ','ɏ','ʸ','ẏ','ỳ','ỵ','ỷ','ỹ','y'],\r\n\t\t'Y' : ['Y','Ý','Ŷ','Ÿ','Ƴ','ƴ','Ȳ','Ɏ','ʎ','ʏ','Ẏ','Ỳ','Ỵ','Ỷ','Ỹ','Y'],\r\n\t\t\r\n\t\t'z' : ['z','ź','ż','ž','ƶ','ȥ','ɀ','ʐ','ʑ','ᙆ','ᙇ','ᶻ','ᶼ','ᶽ','ẑ','ẓ','ẕ','ⱬ','z'],\r\n\t\t'Z' : ['Z','Ź','Ż','Ž','Ƶ','Ȥ','ᴢ','ᵶ','Ẑ','Ẓ','Ẕ','Ⱬ','Z']\r\n\t};\r\n\r\n/*\r\n * Main function of the module which removes all diacritics from the received text\r\n */\r\nmodule.exports = function (text) {\r\n var result = [];\r\n\r\n\t// iterate over all the characters of the received text\r\n for(var i=0; i str.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\nexport default {\n format(x) {\n return x;\n },\n filterPredicate(rowval, filter, skipDiacritics = false, fromDropdown = false) {\n // take care of nulls\n if (typeof rowval === 'undefined' || rowval === null) {\n return false;\n }\n\n // row value\n const rowValue = skipDiacritics\n ? String(rowval).toLowerCase()\n : diacriticless(escapeRegExp(String(rowval)).toLowerCase());\n\n // search term\n const searchTerm = skipDiacritics\n ? filter.toLowerCase()\n : diacriticless(escapeRegExp(filter).toLowerCase());\n\n // comparison\n return fromDropdown ? rowValue === searchTerm : (rowValue.indexOf(searchTerm) > -1);\n },\n\n compare(x, y) {\n function cook(d) {\n if (typeof d === 'undefined' || d === null) return '';\n return diacriticless(d.toLowerCase());\n }\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n },\n};\n","function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nexport default normalizeComponent;\n//# sourceMappingURL=normalize-component.mjs.map\n","\n\n\n\n\n","const DEFAULT_SORT_TYPE = 'asc';\n\nfunction getColumnFirstSortType(column) {\n return column.firstSortType || DEFAULT_SORT_TYPE;\n}\n\nfunction getCurrentPrimarySort(sortArray, column) {\n return ( sortArray.length === 1 && sortArray[0].field === column.field )\n ? sortArray[0].type\n : undefined;\n}\n\nfunction getNextSort(currentSort) {\n return (currentSort === 'asc')\n ? 'desc'\n : DEFAULT_SORT_TYPE;\n}\n\nfunction getIndex(sortArray, column) {\n for (let i = 0; i < sortArray.length; i++) {\n if (column.field === sortArray[i].field) return i;\n }\n return -1;\n}\n\nexports.primarySort = (sortArray, column) => {\n const currentPrimarySort = getCurrentPrimarySort(sortArray, column);\n return [{\n field: column.field,\n type: currentPrimarySort ? getNextSort(currentPrimarySort) : getColumnFirstSortType(column),\n }];\n};\n\nexports.secondarySort = (sortArray, column) => {\n const index = getIndex(sortArray, column);\n if (index === -1) {\n sortArray.push({\n field: column.field,\n type: getColumnFirstSortType(column),\n });\n } else {\n sortArray[index].type = getNextSort(sortArray[index].type);\n }\n return sortArray;\n};\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","var MILLISECONDS_IN_MINUTE = 60000;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../toDate/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `true` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `backupDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `backupDate` which works as a context of parsing.\n *\n * `backupDate` must be passed for correct work of the function.\n * If you're not sure which `backupDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `backupDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `backupDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} backupDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyBackupDate, dirtyOptions) {\n if (arguments.length < 3) {\n throw new TypeError('3 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBackupDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyBackupDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import { format, parse, isValid, compareAsc } from 'date-fns';\nimport clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst date = clone(def);\n\ndate.isRight = true;\n\ndate.compare = function (x, y, column) {\n function cook(d) {\n if (column && column.dateInputFormat) {\n return parse(`${d}`, `${column.dateInputFormat}`, new Date());\n }\n return d;\n }\n x = cook(x);\n y = cook(y);\n if (!isValid(x)) {\n return -1;\n }\n if (!isValid(y)) {\n return 1;\n }\n return compareAsc(x, y);\n};\n\ndate.format = function (v, column) {\n if (v === undefined || v === null) return '';\n // convert to date\n const date = parse(v, column.dateInputFormat, new Date());\n if (isValid(date)) {\n return format(date, column.dateOutputFormat);\n }\n console.error(`Not a valid date: \"${v}\"`);\n return null;\n};\n\nexport default date;\n","import toDate from '../toDate/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present');\n }\n\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst number = clone(def);\n\nnumber.isRight = true;\n\nnumber.filterPredicate = function (rowval, filter) {\n return number.compare(rowval, filter) === 0;\n};\n\n\nnumber.compare = function (x, y) {\n function cook(d) {\n // if d is null or undefined we give it the smallest\n // possible value\n if (d === undefined || d === null) return -Infinity;\n return d.indexOf('.') >= 0 ? parseFloat(d) : parseInt(d, 10);\n }\n\n x = typeof x === 'number' ? x : cook(x);\n y = typeof y === 'number' ? y : cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nexport default number;\n","import clone from 'lodash.clonedeep';\nimport number from './number';\n\nconst decimal = clone(number);\ndecimal.format = function (v) {\n if (v === undefined || v === null) return '';\n return parseFloat(Math.round(v * 100) / 100).toFixed(2);\n};\n\nexport default decimal;\n","import clone from 'lodash.clonedeep';\nimport number from './number';\n\nconst percentage = clone(number);\n\npercentage.format = function (v) {\n if (v === undefined || v === null) return '';\n return `${parseFloat(v * 100).toFixed(2)}%`;\n};\n\nexport default percentage;\n","import clone from 'lodash.clonedeep';\nimport def from './default';\n\nconst boolean = clone(def);\n\nboolean.isRight = true;\n\nboolean.filterPredicate = function (rowval, filter) {\n return boolean.compare(rowval, filter) === 0;\n};\n\n\nboolean.compare = function (x, y) {\n function cook(d) {\n if (typeof d === 'boolean') return d ? 1 : 0;\n if (typeof d === 'string') return d === 'true' ? 1 : 0;\n return -Infinity;\n }\n\n x = cook(x);\n y = cook(y);\n if (x < y) return -1;\n if (x > y) return 1;\n return 0;\n};\n\nexport default boolean;\n","import * as date from './date';\nimport * as decimal from './decimal';\nimport * as number from './number';\nimport * as percentage from './percentage';\nimport * as boolean from './boolean';\n\nexport default {\n date,\n decimal,\n number,\n percentage,\n boolean,\n};\n","import VueGoodTable from './components/Table.vue';\n\nconst VueGoodTablePlugin = {\n install(Vue, options) {\n Vue.component(VueGoodTable.name, VueGoodTable);\n },\n};\n\n// Automatic installation if Vue has been added to the global scope.\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VueGoodTablePlugin);\n}\n\nexport default VueGoodTablePlugin;\nexport { VueGoodTable };\n"],"names":["MAX_SAFE_INTEGER","argsTag","funcTag","genTag","reIsUint","arrayEach","array","iteratee","index","length","func","transform","objectProto","Object","prototype","hasOwnProperty","objectToString","toString","propertyIsEnumerable","nativeKeys","keys","arg","arrayLikeKeys","value","inherited","result","isArray","isObjectLike","isArrayLike","isArrayLikeObject","call","isArguments","n","Array","baseTimes","String","skipIndexes","key","isIndex","push","eachFunc","fromRight","baseEach","object","baseFor","collection","iterable","keysFunc","props","createBaseFor","baseKeys","Ctor","constructor","proto","test","isLength","tag","type","isObject","isFunction","identity","overArg","nativeMax","Math","max","nonEnumShadows","valueOf","assignValue","objValue","eq","undefined","isPrototype","other","assigner","sources","customizer","guard","isIterateeCall","source","start","args","arguments","otherArgs","thisArg","apply","this","createAssigner","newValue","copyObject","LARGE_ARRAY_SIZE","HASH_UNDEFINED","boolTag","dateTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","cloneableTags","freeGlobal","global","freeSelf","self","root","Function","freeExports","exports","nodeType","freeModule","module","moduleExports","addMapEntry","map","pair","set","addSetEntry","add","arrayReduce","accumulator","initAccum","isHostObject","e","mapToArray","size","forEach","setToArray","uid","arrayProto","funcProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","reIsNative","RegExp","replace","Buffer","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","clear","entry","ListCache","MapCache","Stack","__data__","assocIndexOf","baseClone","isDeep","isFull","stack","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","slice","copy","cloneBuffer","initCloneObject","getSymbols","copySymbols","baseAssign","cloneFunc","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneSet","symbol","initCloneByTag","stacked","get","symbolsFunc","values","offset","arrayPush","baseGetAllKeys","getAllKeys","subValue","baseIsNative","arrayBuffer","getMapData","data","getValue","has","pop","hash","string","cache","pairs","ArrayBuffer","resolve","ctorString","FUNC_ERROR_TEXT","UNORDERED_COMPARE_FLAG","PARTIAL_COMPARE_FLAG","INFINITY","arrayTag","errorTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","typedArrayTags","freeProcess","process","nodeUtil","binding","nodeIsTypedArray","isTypedArray","arrayFilter","predicate","resIndex","arraySome","symbolToString","SetCache","baseFilter","baseGet","path","isKey","castPath","toKey","baseHasIn","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","name","message","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIteratee","srcValue","isStrictComparable","matchesStrictComparable","defaultValue","hasFunc","hasPath","hasIn","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","stringToPath","arrLength","seen","arrValue","othIndex","isSymbol","memoize","baseToString","match","number","quote","resolver","TypeError","memoized","Cache","baseUnary","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","asyncTag","nullTag","proxyTag","undefinedTag","nativeObjectToString","symToStringTag","toStringTag","isArg","isBuff","isType","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","diacritics","a","A","b","B","c","C","d","D","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","text","searchChar","charAt","foundChar","indexOf","join","escapeRegExp","str","format","filterPredicate","rowval","filter","skipDiacritics","fromDropdown","rowValue","toLowerCase","diacriticless","searchTerm","compare","cook","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","options","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","concat","DEFAULT_SORT_TYPE","getColumnFirstSortType","column","firstSortType","getNextSort","currentSort","sortArray","field","getIndex","currentPrimarySort","getCurrentPrimarySort","toDate","argument","argStr","Date","getTime","console","warn","Error","NaN","toInteger","dirtyNumber","Number","isNaN","ceil","floor","MILLISECONDS_IN_MINUTE","getTimezoneOffsetInMilliseconds","dirtyDate","date","baseTimezoneOffset","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","width","defaultWidth","formats","formatLong","full","long","medium","short","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","rest","locale","formatDistance","token","count","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseInt","parseResult","any","weekStartsOn","firstWeekContainsDate","subMilliseconds","dirtyAmount","timestamp","amount","addMilliseconds","addLeadingZeros","targetLength","sign","output","abs","formatters","signedYear","getUTCFullYear","year","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","pow","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","diff","setUTCDate","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","round","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","RangeError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","firstWeek","startOfUTCWeekYear","dayPeriodEnum","unit","lightFormatters","signedWeekYear","weekYear","week","isoWeek","dayOfYear","setUTCMonth","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","hours","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeFormat","datePattern","timePattern","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","defaultLocale","utcDate","formatterOptions","substring","firstCharacter","longFormatter","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","assign","target","dirtyObject","property","setUTCDay","dirtyDay","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_SECOND","numericPatterns","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","parseNumericPattern","parseTimezonePattern","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","priority","parse","flags","incompatibleTokens","isTwoDigitYear","validate","normalizedTwoDigitYear","_match","_flags","firstWeekOfYear","dirtyWeek","setUTCWeek","dirtyISOWeek","setUTCISOWeek","isLeapYear","wholeWeekDays","setUTCISODay","isPM","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","timestampIsSet","_token","TIMEZONE_UNIT_PRIORITY","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyBackupDate","dateString","formatString","subFnOptions","setters","dateToSystemTimezone","tokens","usedTokens","parser","incompatibleToken","_i","usedToken","fullToken","uniquePrioritySetters","setter","sort","reverse","setterArray","convertedDate","setFullYear","setHours","clone","def","isRight","dateInputFormat","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","compareAsc","dateOutputFormat","error","Infinity","parseFloat","decimal","toFixed","percentage","boolean","VueGoodTablePlugin","install","Vue","component","VueGoodTable","window","use"],"mappings":"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"} \ No newline at end of file diff --git a/src/components/Table.vue b/src/components/Table.vue index d37cccae..3d9e8b18 100644 --- a/src/components/Table.vue +++ b/src/components/Table.vue @@ -66,9 +66,13 @@
+ + +
+ + + {{ collectFormatted(row, column) }} - + @@ -426,7 +431,7 @@ export default { // text options nextText: 'Next', - prevText: 'Prev', + prevText: 'Previous', rowsPerPageText: 'Rows per page', ofText: 'of', allText: 'All', diff --git a/src/components/VgtGlobalSearch.vue b/src/components/VgtGlobalSearch.vue index fef30c7c..4d22b380 100644 --- a/src/components/VgtGlobalSearch.vue +++ b/src/components/VgtGlobalSearch.vue @@ -1,18 +1,25 @@